Ir para conteúdo
  • Cadastre-se

fdsilva.desenv

Membros
  • Total de ítens

    54
  • Registro em

  • Última visita

1 Seguidor

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

fdsilva.desenv's Achievements

Enthusiast

Enthusiast (6/14)

  • First Post
  • Collaborator Rare
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

9

Reputação

1

Community Answers

  1. Olá Renato, bom dia. Então utilizo a porta: 465, uso ssl, e smtp smtpout.secureserver.net que a godaddy me passou. Mas ao tentar enviar o e-mail, aparece a mensagem: "Unable To Send Mailfrom".
  2. Pessoal, boa tarde. Utilizo o servidor da GODADDY (servidor: smtpout.secureserver.net) para envios de e-mail, e não encontrei nada sobre a configuração do ACBrMail para este servidor. Se alguém puder me ajudar, eu agradeço.
  3. Entendi Juliomar. Por gentileza, pode postar aqui o caminho (diretório) do exemplo para que eu possa analisar?
  4. Não sei exatamente qual foi o código, porque eu atualizei a pasta inteira do AcBrTEFD, praticamente. Foi algo que notei no meu .exe, antes da atualização, quando feito em homologação o PIX, tinha "timer" de 20seg para finalizar corretamente a compra em homologação. Após a atualização, a imagem do QrCode que levamos na tela não fecha mais automaticamente (finalizando a compra corretamente em homologação). Vou enviar o código de como carregamos o QrCode do PIX para que, talvez vocês possam nos ajudar a entender se precisamos implementar algo mais para que a transação finalize corretamente a partir de um tempo aberta quando o sistema estiver em homologação. constructor TFpgQrcEdForm.Create(AOwner: TComponent; ADados: String); var QRCode: TDelphiZXingQRCode; QRCodeBitmap: TBitmap; Row, Column: Integer; begin inherited Create(AOwner); QRCode := TDelphiZXingQRCode.Create; QRCodeBitmap := TBitmap.Create; try QRCode.Encoding := qrUTF8BOM; QRCode.QuietZone := 2; QRCode.Data := widestring(ADados); QRCodeBitmap.Width := QRCode.Columns; QRCodeBitmap.Height := QRCode.Rows; for Row := 0 to QRCode.Rows - 1 do begin for Column := 0 to QRCode.Columns - 1 do begin if (QRCode.IsBlack[Row, Column]) then QRCodeBitmap.Canvas.Pixels[Column, Row] := clBlack else QRCodeBitmap.Canvas.Pixels[Column, Row] := clWhite; end; end; ImgQRCode.Picture.Bitmap.Assign(QRCodeBitmap); finally QRCode.Free; QRCodeBitmap.Free; end; end; E abrimos a tela desta maneira: private FFpgQrcEdForm: TFpgQrcEdForm; property FpgQrcEdForm : TFpgQrcEdForm read FFpgQrcEdForm write FFpgQrcEdForm; procedure TPDV.Evento_TEFDExibeQRCode(const Dados: String); begin if (Dados <> '') then begin try FTEF.BloquearMouseTeclado(False); FpgQrcEdForm := TFpgQrcEdForm.Create(Self,Dados); FpgQrcEdForm.ShowModal; FpgQrcEdForm.Update; Application.ProcessMessages; finally RestaurarFocoAplicacao('FpgQrcEdForm'); end; end; end; ---------------------------------------------------------------------------- procedure inicializa FTEF.OnExibeQRCode := Evento_TEFDExibeQRCode; ---------------------------------------------------------------------------- property OnExibeQRCode: TACBrTEFDExibeQRCode read fOnExibeQRCode write fOnExibeQRCode;
  5. Utilizo o sitef demonstração, da SoftExpress. Trago em uma img o ACBrDelphiZXingQRCode através de um form, e antes de atualizar o ACBrTEFD, a unit ficava no ar por 20 seg e fechava automaticamente finalizando a compra em homologação levando a mensagem antes de finalizar a venda de: "Transação Aguardando Pagamento". Com a atualização, a unit não fechou mais finalizando a compra em homologação.
  6. Galera, boa tarde. Apenas uma dúvida. Recentemente atualizei os componentes da pasta ACBrTEFD para sanar o cancelamento de transação manual quando há um pagamento tipo PIX. Hoje, eu consigo com o ESC, cancelar a transação sem com que ficasse o status de "Transação aguardando pagamento". Porém, antes de atualizar, a mensagem "Transação aguardando pagamento" aparecia após cerca de 20seg de espera e agora, ela não aparece mais, o que dificultou a finalização da venda quando o TEF está em homologação. Cheguei a por um timer na tela de até 10 minutos de espera para cancelar automático, para ver se a mensagem de espera voltasse a aparecer, e não voltou. Gostaria de saber, em que momento, nesta nova versão do ACBrTEFD, a mensagem: "Transação aguardando pagamento" aparecerá novamente? Preciso acionar alguma chamada, ou dar valor à alguma variável para tal? Obrigado.
  7. Boa tarde turma. Meu colega conseguiu resolver. No componente do FDQuery, havia uma função chamada OnBeforePost, onde tinham campos numeric que recebia valores, e ali não foi tratado o CAST como mencionado acima. Obrigado à todos. Fórum Finalizado!!!
  8. Boa tarde. O erro persiste em todas as situações acima. Pode ser a versão do Delphi. O código é feito no Xe8 e eu tenho o 10.4. Vou tentar baixar essa versão e ver se o erro persiste.
  9. Renato, bom dia. Fiz o teste que me solicitou e o problema dá em duas fontes: 1- os campos que recebem ".value := 0", eles são do tipo blob, saberia me dizer como receber null nestes campos ? 2- Os campos que são BCD como o abaixo. Trocando para Currency, Float o erro persiste. QryPedidos.FieldByName('VFCP_W04H').AsExtended := 0;
  10. Resolvi o lance do BCD, colocando numeric(15,2) nos campos. Mas mesmo assim, o erro persiste : ' ' is invalid floating point value. Após o processo de post. function TDmTabelas.IncluirCupomExecute(var Mensagem: String; pDAV: Boolean; pPV: Boolean = False): Boolean; var aMensagem : String; aEstadoECF: TACBrECFEstado; aOK : Boolean; function BuscaNovoPedido : integer; begin with FControllerConexao.QueryFD.FDQuerySQL do begin Close; SQL.Clear; SQL.CommaText := ''; SQL.Add(' select max(id) idmax from pedido '); Open; Result := FieldByName('idmax').AsInteger + 1; end; end; begin Result := True; aOK := False; if (pDAV) or (pPV) or (QryPedidos.RecordCount = 0) or (QryPedidos.FieldByName('ID_MESA').AsInteger > 0) or (QryPedidos.FieldByName('ABASTECIMENTO').AsString = 'S') then begin PAFECF.CapturaContadoresECF; aOK := True; // if aOK then begin // abre tabela de classificação PAFECF.CapturaContadoresECF; DmTabelas.Dados_PedidoClassificacao(0, QryConfig.FieldByName('ID_CLASSIFICACAO_PADRAO').AsInteger); QryPedidos.Close; QryPedidos.SQL.Clear; QryPedidos.sql.add('select ID,ID_VENDEDOR,ID_CLASSIFICACAO,IDEMPRESA,ID_FORMAPAG,'); QryPedidos.sql.add('COO,CCF,GNF,CAIXA,NUMSERIEECF,DATA_ENTREGA ,HORA_ENTREGA,'); QryPedidos.sql.add('DAV,ID_CLIENTE,CLIENTE,END_ENTREGA,NUM_END_ENTREGA,COMPL_END_ENTREGA,'); QryPedidos.sql.add('BAIRRO_END_ENTREGA,CID_END_ENTREGA,UF_END_ENTREGA,CEP_END_ENTREGA,'); QryPedidos.sql.add('CNPJCPF,INSCEST,PLACA_VEIC,ODOMETRO,'); QryPedidos.sql.add('PEDIDO_NUM,DATA_PEDIDO,HORA_PEDIDO,CONFIRMADA,ENTREGUE,CANCELADO,' + 'TIPODOC,TIPO_PEDIDO,DAV_IMPRESSO,NATOP,MD5REGISTRO,NUMPV,'+ 'CER,ABASTECIMENTO,ID_MESA,STATUS_ABASTEC,CHAVE_NFE,STATUS_NFE,PROTOCOLO_NFE,'+ 'RECIBO_NFE,DEVOLUCAO,NUMERO_DOC,SINCRONIZADO,IDUSUARIOCANC,NUMDAV,TIPO_FRETE,IDPLANOCONTAS,'+ 'IDCENTROCUSTO,NFE_TIPOEMISS,NUM_LOTE,NAUTORIZA_VIDALINK,ARQUIVO_XML,NOTAMANUAL,'+ 'COO_CONF_MESA,MODELO,DATA_AUTORIZA,HORA_AUTORIZA,NRAUTORIZA_FARMAPOP,NAUTORIZA_FUNCIONAL,'+ 'VEN_PBM,COD_PBM,OBSNFE_1,OBSNFE_2,OBSNFE_3,OBSNFE_4,CODIGOSEFAZ,NUMEROSESSAO,STATUS_CANCEL_NFCE,'+ 'PROTOCOLO_CANCEL_NFCE,DH_CANCEL_NFCE,VINCULADO_PBM_FARMAPOP,VINCULADO_PBM_PORTAL,VINCULADO_PBM_FUNCIONAL,'+ 'VINCULADO_PBM_VIDALINK,VINCULADO_PBM_EPHARMA,NRAUTORIZA_PORTAL,SERIE_B07,AJUSTE_NFCE_MANUAL,NUM_TENTATIVA_ENVIO,OBSERVACAO,'); QryPedidos.SQL.Add('cast(VALOR as double precision) as VALOR,'); QryPedidos.SQL.Add('cast(DESCONTO as double precision) as DESCONTO,'); QryPedidos.SQL.Add('cast(ACRESCIMO as double precision) as ACRESCIMO,'); QryPedidos.SQL.Add('cast(OUTRAS_DESPESAS as double precision) as OUTRAS_DESPESAS,'); QryPedidos.SQL.Add('cast(VALOR_TOTAL as double precision) as VALOR_TOTAL,'); QryPedidos.SQL.Add('cast(VALOR_REAL as double precision) as VALOR_REAL,'); QryPedidos.SQL.Add('cast(MARGEM_VENDA as double precision) as MARGEM_VENDA,'); QryPedidos.SQL.Add('cast(VALOR_COMISSAO as double precision) as VALOR_COMISSAO,'); QryPedidos.SQL.Add('cast(TOTAL_GERAL as double precision) as TOTAL_GERAL,'); QryPedidos.SQL.Add('cast(VALOR_TROCO as double precision) as VALOR_TROCO,'); QryPedidos.SQL.Add('cast(ALIQ_ICMS as double precision) as ALIQ_ICMS,'); QryPedidos.SQL.Add('cast(BASE_ICMS as double precision) as BASE_ICMS,'); QryPedidos.SQL.Add('cast(VALOR_ICMS as double precision) as VALOR_ICMS,'); QryPedidos.SQL.Add('cast(ALIQ_ICMS_ST as double precision) as ALIQ_ICMS_ST,'); QryPedidos.SQL.Add('cast(BASE_ICMS_ST as double precision) as BASE_ICMS_ST,'); QryPedidos.SQL.Add('cast(VALOR_ICMS_ST as double precision) as VALOR_ICMS_ST,'); QryPedidos.SQL.Add('cast(VALOR_PIS as double precision) as VALOR_PIS,'); QryPedidos.SQL.Add('cast(VALOR_COFINS as double precision) as VALOR_COFINS,'); QryPedidos.SQL.Add('cast(VALOR_IPI as double precision) as VALOR_IPI,'); QryPedidos.SQL.Add('cast(VALOR_CARGA_TRIB as double precision) as VALOR_CARGA_TRIB,'); QryPedidos.SQL.Add('cast(VALOR_FRETE as double precision) as VALOR_FRETE,'); QryPedidos.SQL.Add('cast(VALOR_SEGURO as double precision) as VALOR_SEGURO,'); QryPedidos.SQL.Add('cast(VALOR_OUTROS as double precision) as VALOR_OUTROS,'); QryPedidos.SQL.Add('cast(BASE_ISS as double precision) as BASE_ISS,'); QryPedidos.SQL.Add('cast(VALOR_ISS as double precision) as VALOR_ISS,'); QryPedidos.SQL.Add('cast(BASE_PIS as double precision) as BASE_PIS,'); QryPedidos.SQL.Add('cast(BASE_COFINS as double precision) as BASE_COFINS,'); QryPedidos.SQL.Add('cast(BASE_IPI as double precision) as BASE_IPI,'); QryPedidos.SQL.Add('cast(VAL_CARGA_FED as double precision) as VAL_CARGA_FED,'); QryPedidos.SQL.Add('cast(VAL_CARGA_EST as double precision) as VAL_CARGA_EST,'); QryPedidos.SQL.Add('cast(VAL_CARGA_MUN as double precision) as VAL_CARGA_MUN,'); QryPedidos.SQL.Add('cast(DESCONTO_PROD as double precision) as DESCONTO_PROD,'); QryPedidos.SQL.Add('cast(VFCP_W04H as numeric(15,2)) as VFCP_W04H,'); QryPedidos.SQL.Add('cast(VFCPST_W06A as numeric(15,2)) as VFCPST_W06A,'); QryPedidos.SQL.Add('cast(VFCPSTRET_W06B as numeric(15,2)) as VFCPSTRET_W06B,'); QryPedidos.SQL.Add('cast(VIPIDEVOL_W12A as numeric(15,2)) as VIPIDEVOL_W12A,'); QryPedidos.SQL.Add('cast(VALOR_SUBTOTAL as numeric(15,2)) as VALOR_SUBTOTAL'); QryPedidos.sql.add('from pedido where 0=0'); QryPedidos.Open; if QryPedidos.RecordCount = 0 then QryPedidos.Append else QryPedidos.Edit; QryPedidos.FieldByName('ID').AsInteger := BuscaNovoPedido; QryPedidos.FieldByName('ID_VENDEDOR').AsInteger := QryConfig.FieldByName('ID_VENDEDOR_PADRAO').AsInteger; QryPedidos.FieldByName('ID_CLASSIFICACAO').AsInteger := QryConfig.FieldByName('ID_CLASSIFICACAO_PADRAO').AsInteger; QryPedidos.FieldByName('IDEMPRESA').AsInteger := sIDEmpresa; QryPedidos.FieldByName('ID_FORMAPAG').AsInteger := QryFormaPag.FieldByName('ID').AsInteger; QryPedidos.FieldByName('COO').AsInteger := DmTabelas.PAFECF.gCOO; QryPedidos.FieldByName('CCF').AsInteger := DmTabelas.PAFECF.gCCF; QryPedidos.FieldByName('GNF').AsInteger := DmTabelas.PAFECF.gGNF; QryPedidos.FieldByName('CAIXA').AsString := DmTabelas.PAFECF.gCaixa; QryPedidos.FieldByName('NUMSERIEECF').AsString := ''; QryPedidos.FieldByName('DATA_ENTREGA').AsDateTime := now; QryPedidos.FieldByName('HORA_ENTREGA').AsDateTime := now; QryPedidos.FieldByName('DAV').AsString := 'S'; if not pDAV then QryPedidos.FieldByName('DAV').AsString := 'N'; // preenche dados do cliente if DmClientes.Dados_Contato(ClienteCupom.ID) then begin QryPedidos.FieldByName('ID_CLIENTE').AsInteger := ClienteCupom.ID; QryPedidos.FieldByName('CLIENTE').AsStringTrim := ClienteCupom.Cliente; QryPedidos.FieldByName('END_ENTREGA').AsStringTrim := ClienteCupom.Endereco; QryPedidos.FieldByName('NUM_END_ENTREGA').AsStringTrim := ClienteCupom.Numero; QryPedidos.FieldByName('COMPL_END_ENTREGA').AsStringTrim := ClienteCupom.Complemento; QryPedidos.FieldByName('BAIRRO_END_ENTREGA').AsStringTrim := ClienteCupom.Bairro; QryPedidos.FieldByName('CID_END_ENTREGA').AsStringTrim := ClienteCupom.Cidade; QryPedidos.FieldByName('UF_END_ENTREGA').AsString := ClienteCupom.UF; QryPedidos.FieldByName('CEP_END_ENTREGA').AsStringTrim := ClienteCupom.Cep; QryPedidos.FieldByName('CNPJCPF').AsStringTrim := ClienteCupom.CPF; QryPedidos.FieldByName('INSCEST').AsStringTrim := ClienteCupom.Identidade; QryPedidos.FieldByName('PLACA_VEIC').AsStringTrim := ClienteCupom.Placa; QryPedidos.FieldByName('ODOMETRO').AsStringTrim := ClienteCupom.Odometro; end; QryPedidos.FieldByName('VALOR').AsExtended := 0;//formatfloat('#,##0.00',0); QryPedidos.FieldByName('DESCONTO').AsExtended := 0; QryPedidos.FieldByName('ACRESCIMO').AsExtended := 0; QryPedidos.FieldByName('OUTRAS_DESPESAS').AsExtended := 0; QryPedidos.FieldByName('VALOR_TOTAL').AsExtended := 0; QryPedidos.FieldByName('VALOR_REAL').AsExtended := 0; QryPedidos.FieldByName('MARGEM_VENDA').AsExtended := 0; QryPedidos.FieldByName('VALOR_COMISSAO').AsExtended := 0; QryPedidos.FieldByName('TOTAL_GERAL').AsExtended := 0; QryPedidos.FieldByName('VALOR_TROCO').AsExtended := 0; QryPedidos.FieldByName('ALIQ_ICMS').AsExtended := 0; QryPedidos.FieldByName('BASE_ICMS').AsExtended := 0; QryPedidos.FieldByName('VALOR_ICMS').AsExtended := 0; QryPedidos.FieldByName('ALIQ_ICMS_ST').AsExtended := 0; QryPedidos.FieldByName('BASE_ICMS_ST').AsExtended := 0; QryPedidos.FieldByName('VALOR_ICMS_ST').AsExtended := 0; QryPedidos.FieldByName('VALOR_PIS').AsExtended := 0; QryPedidos.FieldByName('VALOR_COFINS').AsExtended := 0; QryPedidos.FieldByName('VALOR_IPI').AsExtended := 0; QryPedidos.FieldByName('VALOR_CARGA_TRIB').AsExtended := 0; QryPedidos.FieldByName('VALOR_FRETE').AsExtended := 0; QryPedidos.FieldByName('VALOR_SEGURO').AsExtended := 0; QryPedidos.FieldByName('VALOR_OUTROS').AsExtended := 0; QryPedidos.FieldByName('BASE_ISS').AsExtended := 0; QryPedidos.FieldByName('VALOR_ISS').AsExtended := 0; QryPedidos.FieldByName('BASE_PIS').AsExtended := 0; QryPedidos.FieldByName('BASE_COFINS').AsExtended := 0; QryPedidos.FieldByName('BASE_IPI').AsExtended := 0; QryPedidos.FieldByName('VAL_CARGA_FED').AsExtended := 0; QryPedidos.FieldByName('VAL_CARGA_EST').AsExtended := 0; QryPedidos.FieldByName('VAL_CARGA_MUN').AsExtended := 0; QryPedidos.FieldByName('DESCONTO_PROD').AsExtended := 0; QryPedidos.FieldByName('VFCP_W04H').AsExtended := 0; QryPedidos.FieldByName('VFCPST_W06A').AsExtended := 0; QryPedidos.FieldByName('VFCPSTRET_W06B').AsExtended := 0; QryPedidos.FieldByName('VIPIDEVOL_W12A').AsExtended := 0; QryPedidos.FieldByName('VALOR_SUBTOTAL').AsExtended := 0; QryPedidos.FieldByName('PEDIDO_NUM').AsString := ''; QryPedidos.FieldByName('DATA_PEDIDO').AsDateTime := now; QryPedidos.FieldByName('HORA_PEDIDO').AsDateTime := now; QryPedidos.FieldByName('CONFIRMADA').AsString := 'S'; QryPedidos.FieldByName('ENTREGUE').AsString := 'S'; QryPedidos.FieldByName('CANCELADO').AsString := 'N'; QryPedidos.FieldByName('TIPODOC').AsInteger := 1; QryPedidos.FieldByName('TIPO_PEDIDO').AsInteger := 1; QryPedidos.FieldByName('DAV_IMPRESSO').AsInteger := 0; QryPedidos.FieldByName('NATOP').AsString := ''; QryPedidos.FieldByName('MD5REGISTRO').AsString := ''; QryPedidos.FieldByName('NUMPV').AsString := ''; QryPedidos.FieldByName('CER').AsInteger := 0; QryPedidos.FieldByName('ID_MESA').AsInteger := 0; QryPedidos.FieldByName('ABASTECIMENTO').AsString := 'N'; QryPedidos.FieldByName('STATUS_ABASTEC').AsInteger := 0; QryPedidos.FieldByName('CHAVE_NFE').AsString := ''; QryPedidos.FieldByName('STATUS_NFE').AsString := 'NFE'; QryPedidos.FieldByName('PROTOCOLO_NFE').AsString := ''; QryPedidos.FieldByName('RECIBO_NFE').AsString := '' ; QryPedidos.FieldByName('DEVOLUCAO').AsString := 'N'; QryPedidos.FieldByName('NUMERO_DOC').AsString := ''; QryPedidos.FieldByName('SINCRONIZADO').AsString := 'N'; QryPedidos.FieldByName('IDUSUARIOCANC').AsInteger := 0; QryPedidos.FieldByName('NUMDAV').AsString := ''; QryPedidos.FieldByName('TIPO_FRETE').AsInteger := 1; QryPedidos.FieldByName('IDPLANOCONTAS').AsInteger := 1; QryPedidos.FieldByName('IDCENTROCUSTO').AsInteger := 1; QryPedidos.FieldByName('NFE_TIPOEMISS').AsInteger := 1; QryPedidos.FieldByName('NAUTORIZA_VIDALINK').AsString := ''; QryPedidos.FieldByName('NUM_LOTE').AsString := ''; QryPedidos.FieldByName('ARQUIVO_XML').AsString := ''; QryPedidos.FieldByName('NOTAMANUAL').AsString := 'N'; QryPedidos.FieldByName('COO_CONF_MESA').AsInteger := 0; QryPedidos.FieldByName('MODELO').AsString := 'NFE'; QryPedidos.FieldByName('DATA_AUTORIZA').AsDateTime := now; QryPedidos.FieldByName('HORA_AUTORIZA').AsDateTime := now; QryPedidos.FieldByName('NRAUTORIZA_FARMAPOP').AsString := ''; QryPedidos.FieldByName('NAUTORIZA_FUNCIONAL').AsString := ''; QryPedidos.FieldByName('VEN_PBM').AsString := 'N'; QryPedidos.FieldByName('COD_PBM').AsInteger := 0; QryPedidos.FieldByName('OBSNFE_1').AsString := ''; QryPedidos.FieldByName('OBSNFE_2').AsString := ''; QryPedidos.FieldByName('OBSNFE_3').AsString := ''; QryPedidos.FieldByName('OBSNFE_4').AsString := ''; QryPedidos.FieldByName('CODIGOSEFAZ').AsInteger := 100; QryPedidos.FieldByName('NUMEROSESSAO').AsInteger := 0; QryPedidos.FieldByName('STATUS_CANCEL_NFCE').AsString := 'NFA'; QryPedidos.FieldByName('PROTOCOLO_CANCEL_NFCE').AsString := ''; QryPedidos.FieldByName('DH_CANCEL_NFCE').AsDateTime := now; QryPedidos.FieldByName('VINCULADO_PBM_FARMAPOP').Value := 0; QryPedidos.FieldByName('VINCULADO_PBM_PORTAL').Value := 0; QryPedidos.FieldByName('VINCULADO_PBM_FUNCIONAL').Value := 0; QryPedidos.FieldByName('VINCULADO_PBM_VIDALINK').Value := 0; QryPedidos.FieldByName('VINCULADO_PBM_EPHARMA').Value := 0; QryPedidos.FieldByName('NRAUTORIZA_PORTAL').AsString := ''; QryPedidos.FieldByName('SERIE_B07').AsString := ''; QryPedidos.FieldByName('AJUSTE_NFCE_MANUAL').AsString := ''; QryPedidos.FieldByName('NUM_TENTATIVA_ENVIO').AsInteger := 0; QryPedidos.FieldByName('OBSERVACAO').Value := 0; // confirma os dados no banco try QryPedidos.Post; except on E: Exception do ShowMessage(E.Message +' '); end; end; end; end;
  11. Fiz a query colocando todos os campos da tabela, mas os ultimos 5 campos (iniciando pelo campo VFCP_W04H) são do tipo BCD, se eu coloco como Double Precision ele dá o erro dizendo que o campo é BCD mas tá esperando Float, se mudo pra numeric, dá o mesmo erro dizendo que o campo é BCd e tá esperando integer. Como tratar campos do tipo BCD na query ? QryPedidos.Close; QryPedidos.SQL.Clear; QryPedidos.sql.add('select ID,ID_VENDEDOR,ID_CLASSIFICACAO,IDEMPRESA,ID_FORMAPAG,'); QryPedidos.sql.add('COO,CCF,GNF,CAIXA,NUMSERIEECF,DATA_ENTREGA ,HORA_ENTREGA,'); QryPedidos.sql.add('DAV,ID_CLIENTE,CLIENTE,END_ENTREGA,NUM_END_ENTREGA,COMPL_END_ENTREGA,'); QryPedidos.sql.add('BAIRRO_END_ENTREGA,CID_END_ENTREGA,UF_END_ENTREGA,CEP_END_ENTREGA,'); QryPedidos.sql.add('CNPJCPF,INSCEST,PLACA_VEIC,ODOMETRO,'); QryPedidos.sql.add('PEDIDO_NUM,DATA_PEDIDO,HORA_PEDIDO,CONFIRMADA,ENTREGUE,CANCELADO,' + 'TIPODOC,TIPO_PEDIDO,DAV_IMPRESSO,NATOP,MD5REGISTRO,NUMPV,'+ 'CER,ABASTECIMENTO,ID_MESA,STATUS_ABASTEC,CHAVE_NFE,STATUS_NFE,PROTOCOLO_NFE,'+ 'RECIBO_NFE,DEVOLUCAO,NUMERO_DOC,SINCRONIZADO,IDUSUARIOCANC,NUMDAV,TIPO_FRETE,IDPLANOCONTAS,'+ 'IDCENTROCUSTO,NFE_TIPOEMISS,NUM_LOTE,NAUTORIZA_VIDALINK,ARQUIVO_XML,NOTAMANUAL,'+ 'COO_CONF_MESA,MODELO,DATA_AUTORIZA,HORA_AUTORIZA,NRAUTORIZA_FARMAPOP,NAUTORIZA_FUNCIONAL,'+ 'VEN_PBM,COD_PBM,OBSNFE_1,OBSNFE_2,OBSNFE_3,OBSNFE_4,CODIGOSEFAZ,NUMEROSESSAO,STATUS_CANCEL_NFCE,'+ 'PROTOCOLO_CANCEL_NFCE,DH_CANCEL_NFCE,VINCULADO_PBM_FARMAPOP,VINCULADO_PBM_PORTAL,VINCULADO_PBM_FUNCIONAL,'+ 'VINCULADO_PBM_VIDALINK,VINCULADO_PBM_EPHARMA,NRAUTORIZA_PORTAL,SERIE_B07,AJUSTE_NFCE_MANUAL,NUM_TENTATIVA_ENVIO,OBSERVACAO,'); QryPedidos.SQL.Add('cast(VALOR as double precision) as VALOR,'); QryPedidos.SQL.Add('cast(DESCONTO as double precision) as DESCONTO,'); QryPedidos.SQL.Add('cast(ACRESCIMO as double precision) as ACRESCIMO,'); QryPedidos.SQL.Add('cast(OUTRAS_DESPESAS as double precision) as OUTRAS_DESPESAS,'); QryPedidos.SQL.Add('cast(VALOR_TOTAL as double precision) as VALOR_TOTAL,'); QryPedidos.SQL.Add('cast(VALOR_REAL as double precision) as VALOR_REAL,'); QryPedidos.SQL.Add('cast(MARGEM_VENDA as double precision) as MARGEM_VENDA,'); QryPedidos.SQL.Add('cast(VALOR_COMISSAO as double precision) as VALOR_COMISSAO,'); QryPedidos.SQL.Add('cast(TOTAL_GERAL as double precision) as TOTAL_GERAL,'); QryPedidos.SQL.Add('cast(VALOR_TROCO as double precision) as VALOR_TROCO,'); QryPedidos.SQL.Add('cast(ALIQ_ICMS as double precision) as ALIQ_ICMS,'); QryPedidos.SQL.Add('cast(BASE_ICMS as double precision) as BASE_ICMS,'); QryPedidos.SQL.Add('cast(VALOR_ICMS as double precision) as VALOR_ICMS,'); QryPedidos.SQL.Add('cast(ALIQ_ICMS_ST as double precision) as ALIQ_ICMS_ST,'); QryPedidos.SQL.Add('cast(BASE_ICMS_ST as double precision) as BASE_ICMS_ST,'); QryPedidos.SQL.Add('cast(VALOR_ICMS_ST as double precision) as VALOR_ICMS_ST,'); QryPedidos.SQL.Add('cast(VALOR_PIS as double precision) as VALOR_PIS,'); QryPedidos.SQL.Add('cast(VALOR_COFINS as double precision) as VALOR_COFINS,'); QryPedidos.SQL.Add('cast(VALOR_IPI as double precision) as VALOR_IPI,'); QryPedidos.SQL.Add('cast(VALOR_CARGA_TRIB as double precision) as VALOR_CARGA_TRIB,'); QryPedidos.SQL.Add('cast(VALOR_FRETE as double precision) as VALOR_FRETE,'); QryPedidos.SQL.Add('cast(VALOR_SEGURO as double precision) as VALOR_SEGURO,'); QryPedidos.SQL.Add('cast(VALOR_OUTROS as double precision) as VALOR_OUTROS,'); QryPedidos.SQL.Add('cast(BASE_ISS as double precision) as BASE_ISS,'); QryPedidos.SQL.Add('cast(VALOR_ISS as double precision) as VALOR_ISS,'); QryPedidos.SQL.Add('cast(BASE_PIS as double precision) as BASE_PIS,'); QryPedidos.SQL.Add('cast(BASE_COFINS as double precision) as BASE_COFINS,'); QryPedidos.SQL.Add('cast(BASE_IPI as double precision) as BASE_IPI,'); QryPedidos.SQL.Add('cast(VAL_CARGA_FED as double precision) as VAL_CARGA_FED,'); QryPedidos.SQL.Add('cast(VAL_CARGA_EST as double precision) as VAL_CARGA_EST,'); QryPedidos.SQL.Add('cast(VAL_CARGA_MUN as double precision) as VAL_CARGA_MUN,'); QryPedidos.SQL.Add('cast(DESCONTO_PROD as double precision) as DESCONTO_PROD,'); QryPedidos.SQL.Add('cast(VFCP_W04H as double precision) as VFCP_W04H,'); QryPedidos.SQL.Add('cast(VFCPST_W06A as double precision) as VFCPST_W06A,'); QryPedidos.SQL.Add('cast(VFCPSTRET_W06B as double precision) as VFCPSTRET_W06B,'); QryPedidos.SQL.Add('cast(VIPIDEVOL_W12A as double precision) as VIPIDEVOL_W12A,'); QryPedidos.SQL.Add('cast(VALOR_SUBTOTAL as double precision) as VALOR_SUBTOTAL');
  12. Então em uma query onde eu tenho campos do tipo double precision e/ou numeric, como ficaria um campo (exemplo) de cast no firebird aplicado no select?
  13. Desculpe, não entendi. Antes disso eu coloco: QryPedidos.Close; QryPedidos.SQL.Clear; QryPedidos.sql.add('select * from pedido'); QryPedidos.Open; Mas eu quero colocar um novo item nesse pedido, não é Append e no final Post ? De qualquer forma, colocando Append ou Edit, ao final, quando dou um POST, dá o erro acima.
  14. Prezados, bom dia. Utilizo o Delphi 10.4 e banco de dados Firebird 4.0 para uma determinada aplicação. Acontece que estou enfrentando um erro quando tento utilizar um FDQUERY para incluir campos em uma tabela. Aparece o erro : '' is invalid floating point value. Após o processo de post. A princípio, pensei, em algum campo da minha tabela que é double precision ou numeric estar passando vazio, mas mesmo incluindo esses campos no código recebendo 0 ou qualquer valor, o erro persiste. Abaixo o código: if QryPedidos.RecordCount = 0 then QryPedidos.Append else QryPedidos.Edit; QryPedidos.FieldByName('ID').AsInteger := BuscaNovoPedido; QryPedidos.FieldByName('ID_VENDEDOR').AsInteger := QryConfig.FieldByName('ID_VENDEDOR_PADRAO').AsInteger; QryPedidos.FieldByName('ID_CLASSIFICACAO').AsInteger := QryConfig.FieldByName('ID_CLASSIFICACAO_PADRAO').AsInteger; QryPedidos.FieldByName('IDEMPRESA').AsInteger := sIDEmpresa; QryPedidos.FieldByName('ID_FORMAPAG').AsInteger := QryFormaPag.FieldByName('ID').AsInteger; QryPedidos.FieldByName('COO').AsInteger := DmTabelas.PAFECF.gCOO; QryPedidos.FieldByName('CCF').AsInteger := DmTabelas.PAFECF.gCCF; QryPedidos.FieldByName('GNF').AsInteger := DmTabelas.PAFECF.gGNF; QryPedidos.FieldByName('CAIXA').AsString := DmTabelas.PAFECF.gCaixa; QryPedidos.FieldByName('NUMSERIEECF').AsString := ''; QryPedidos.FieldByName('DATA_ENTREGA').AsDateTime := now; QryPedidos.FieldByName('HORA_ENTREGA').AsDateTime := now; QryPedidos.FieldByName('DAV').AsString := 'S'; if not pDAV then QryPedidos.FieldByName('DAV').AsString := 'N'; // preenche dados do cliente if DmClientes.Dados_Contato(ClienteCupom.ID) then begin QryPedidos.FieldByName('ID_CLIENTE').AsInteger := ClienteCupom.ID; QryPedidos.FieldByName('CLIENTE').AsStringTrim := ClienteCupom.Cliente; QryPedidos.FieldByName('END_ENTREGA').AsStringTrim := ClienteCupom.Endereco; QryPedidos.FieldByName('NUM_END_ENTREGA').AsStringTrim := ClienteCupom.Numero; QryPedidos.FieldByName('COMPL_END_ENTREGA').AsStringTrim := ClienteCupom.Complemento; QryPedidos.FieldByName('BAIRRO_END_ENTREGA').AsStringTrim := ClienteCupom.Bairro; QryPedidos.FieldByName('CID_END_ENTREGA').AsStringTrim := ClienteCupom.Cidade; QryPedidos.FieldByName('UF_END_ENTREGA').AsString := ClienteCupom.UF; QryPedidos.FieldByName('CEP_END_ENTREGA').AsStringTrim := ClienteCupom.Cep; QryPedidos.FieldByName('CNPJCPF').AsStringTrim := ClienteCupom.CPF; QryPedidos.FieldByName('INSCEST').AsStringTrim := ClienteCupom.Identidade; QryPedidos.FieldByName('PLACA_VEIC').AsStringTrim := ClienteCupom.Placa; QryPedidos.FieldByName('ODOMETRO').AsStringTrim := ClienteCupom.Odometro; end; QryPedidos.FieldByName('VALOR').AsExtended := 0;//formatfloat('#,##0.00',0); QryPedidos.FieldByName('DESCONTO').AsExtended := 0; QryPedidos.FieldByName('ACRESCIMO').AsExtended := 0; QryPedidos.FieldByName('OUTRAS_DESPESAS').AsExtended := 0; QryPedidos.FieldByName('VALOR_TOTAL').AsExtended := 0; QryPedidos.FieldByName('VALOR_REAL').AsExtended := 0; QryPedidos.FieldByName('MARGEM_VENDA').AsExtended := 0; QryPedidos.FieldByName('VALOR_COMISSAO').AsExtended := 0; QryPedidos.FieldByName('TOTAL_GERAL').AsExtended := 0; QryPedidos.Post; Todos os campos acima estão criados no FieldEditors também. Não sei mais o que fazer !!!! Se alguém tiver alguma ideia do que posso fazer, de repente uam propriedade no componente que posso mudar, ou algo no código que preciso implementar, eu agradeço.
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.