Jump to content

fdsilva.desenv

Membros
  • Posts

    52
  • Joined

  • Last visited

1 Follower

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

fdsilva.desenv's Achievements

Enthusiast

Enthusiast (6/14)

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

Recent Badges

9

Reputation

1

Community Answers

  1. Entendi Juliomar. Por gentileza, pode postar aqui o caminho (diretório) do exemplo para que eu possa analisar?
  2. 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;
  3. 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.
  4. 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.
  5. 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!!!
  6. 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.
  7. 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;
  8. 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;
  9. 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');
  10. 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?
  11. 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.
  12. 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.
  13. Se alguém tiver uma ideia de onde to errando, eu agradeço turma rsrs tá difícil.
  14. Juliomar, bom dia. Realizei a alteração pra "CustomHeaders.Add('Authorization:Bearer '+Token);" e o erro persiste. Sei que está funcionando, pois eu consigo o token, que é chamado em um post. O Problema está neste tipo de autenticação que não consigo passar o bearer utilizando os componentes TIdHTTP e TIdSSLOHandlerSocket. O post que funciona e eu chamo antes da chamada acima é este: function TForm1.GetToken(url, username, password: string): string; var sresponse, parametros : string; StringStream : TStringStream; json_root : ISuperObject; begin try with IdHTTP1.Request do begin Clear; ContentType := 'application/x-www-form-urlencoded'; BasicAuthentication := True; end; parametros := 'grant_type=' + 'password' + '&' +'username=' + username + '&' +'password=' + password; StringStream := TStringStream.Create(UTF8Encode(parametros)); StringStream.Position := 0; sResponse := idHTTP1.Post(url,StringStream); json_root:=SO(sresponse); Result := json_root.S['access_token']; except on E: Exception do begin //Result := e.message; exit; end; end; end;
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.