Ir para conteúdo
  • Cadastre-se

rogercon

Membros
  • Total de ítens

    296
  • Registro em

  • Última visita

Tudo que rogercon postou

  1. sim para tudo, inclusive até configurei corretamente o RNTRC da transportadora, lembrando que pelo emissor gratuito o cte é transmitido com sucesso!.
  2. Italo, ve pra mim a questao do EMISSOR NAO HABILITADO A EMITIR CTE
  3. resolvido, obrigado.
  4. pessoal agora meu problema mudou, como estou iniciando ainda estou presenciando vários problemas, vamos lá... após todas as validações, creio que estou na última delas, EMISSOR NAO HABILITADO PARA EMISSÃO DO CTE. Fiz um teste pelo emissor gratuito da sefaz e validou e transmitiu o cte normalmente , somente no demo do acbr que estou com este problema. agradeço desde já.
  5. italo, o caso acima foi resolvido, lendo eu resolvi isso usando o txt que vem na pasta do exemplo do acbr, porem agora meu problema é mais sério, olha só o codigo abaixo. // // UnidMed = (uM3,uKG, uTON, uUNIDADE, uLITROS); with infCTeNorm.infCarga.InfQ.Add do begin cUnid := uKg; // tpMed := 'Peso Bruto'; // se escrever trava // tpMed := ''; // se deixar em branco, nao valida, diz que tpmed nao pode ser value = '' qCarga := RoundTo(100, -2); end; o campo tpmed, se eu deixar em branco, a nota nao valida, pois diz que falta um valor neste campo, porém reparei que o campo é string, se eu por qualquer valor(string) neste campo, simplesmente da erro dizendo que nao foi possivel se conectar na sefaz, se precisar posto o print do erro, desde já agradeço.
  6. ítalo boa tarde, estou tentando emitir a cte, após migrar para 2.0 no acbr.inc, começou a dar erro dizendo que a série está em branco, eu tentei passar a seria de 3 formas observe. mesmo passando das 3 formas, ta dizendo que a serie é vazio, ja tentei serie 1 2 e 3. desde já obrigado. Ide.serie:=1; Ide.nCT:=1; Ide.dhEmi:=Now; Ide.tpImp:=tiRetrato; // with infCTeNorm.infDoc.infNF.Add do begin modelo:=moNF011AAvulsa; serie:='3'; dEmi:= now; nDoc:='2'; // nCT:=1; // dhEmi:=Now; // tpImp:=tiRetrato; end; infCTeNorm.infDoc.infNF.Items[0].dEmi:=now; infCTeNorm.infDoc.infNF.Items[0].serie:='3'; infCTeNorm.infDoc.infNF.Items[0].nCFOP:=5201;
  7. rogercon

    Nfse Com Quick Report

    Boa tarde pessoal, Instalei o componente ACBrNFSeDanfseQRpkg.dpk com sucesso, porém ele não aparece na relação de componentes instalados no delphi ? alguém já passou por isso ?
  8. obrigado, o problema era o ambiente de homologacao, o qual nao está liberado para mim.
  9. eu ja tenho autorizacao da prefeitura, meu contador providenciou tudo, mas o problema é este erro que ocorreu, alguem tem ideia do que pode ser ?
  10. rogercon

    Erro Com Schema

    Boa noite pessoal, estou iniciando no mundo da nfse, e estou encontrando alguns problemas, para resumir ainda nao sei nada sobre nfse, ou quase nada, em minha empresa tenho login e senha do GINFES para emitir direto pelo site, mas com o demo do acbr estou encontrando problemas... segue o erro em anexo quando tento GERAR E ENVIAR LOTE. Outra dúvida, eu tenho um certificado digital da NFE aqui modelo A1, o que tem haver com NFSE, sendo que no demo pede para por o número do certificado ? nao entendi... o certificado digital serve tanto para NFE quanto para NFSE. ? obrigado desde já.
  11. ok, segue o clique no botao VALIDAR que chama a rotina... procedure Tfrmcadastropedidos.cxButton3Click(Sender: TObject); begin IF q_pedidos.IsEmpty then begin ShowMessage('Nenhum pedidos selecionado!'); exit; end; gerarnfe('VALIDAR'); end; lobo abaixo segue toda a procedure GERARNFE que faz a validacao, observe que a parte que faz a validade está lá no final, após o ELSE. //inicio gerarnfe procedure tfrmcadastropedidos.gerarnfe(tipo: string); var vAux : String; vNumLote : integer; CRT,NomeComp,CODCSOSN, COD_CST : string; LocNFeW : TNFeW; wchave: string; wnome_arquivo: string; Qtd_Prd_Frete, Qtd_Prd_Desc: integer; rat_frete, rat_desc, Total_desc,Total_Frete: real; Tot_CSOSN, Tot_vBCST,TOT_ICMS, TOT_ICMS_ST, TOT_BC_ICMS, TOT_BC_ICMS_ST : real; Tot_CST10,Tot_CST30,Tot_CST60,Tot_CST90 : Real; Para : String; CC: Tstrings; varbcicmsstVSaliq,varTotProdVSaliq: real; Vctofatura:string; itemTOT_ICMS_ST: Double; itemTOT_BC_ICMS_ST: Double; begin TOT_ICMS := 0; TOT_ICMS_ST := 0; TOT_BC_ICMS := 0; TOT_BC_ICMS_ST:= 0; Tot_CST10:= 0; Tot_CST30 := 0; Tot_CST60 := 0; Tot_CST90 := 0; vAux := frmcadastropedidos.q_pedidoside_nnf.AsString; // vNumLote := frmcadastropedidos.q_pedidoside_nnf.AsString; vnumlote := StrToInt(FormatDateTime('yymmddhhmm', NOW)); frmprincipal.ACBrNFe1.NotasFiscais.Clear; frmprincipal.ACBrNFe1.Configuracoes.Certificados.NumeroSerie:= dm.q_empresalogadaNSERIE_CERTIFICADO.AsString; frmprincipal.ACBrNFe1.Configuracoes.Certificados.Senha:= dm.q_empresalogadaSENHA_CERTIFICADO.AsString; frmprincipal.ACBrNFe1.DANFE.PathPDF:= ExtractFilePath(ParamStr(0))+'\nfe\pdf'; frmprincipal.ACBrNFe1.Configuracoes.Arquivos.PathCan:= ExtractFilePath(ParamStr(0))+'\nfe\cancelar'; frmprincipal.ACBrNFe1.Configuracoes.Arquivos.PathInu:= ExtractFilePath(ParamStr(0))+'\nfe\inutilizar'; frmprincipal.ACBrNFe1.Configuracoes.Arquivos.PathNFe:= ExtractFilePath(ParamStr(0))+'\nfe\enviadas'; frmprincipal.ACBrNFe1.Configuracoes.Arquivos.PathEvento:= ExtractFilePath(ParamStr(0))+'\nfe\eventos'; frmprincipal.ACBrNFe1.Configuracoes.Arquivos.PathCCe:= ExtractFilePath(ParamStr(0))+'\nfe\cce'; IF tipo='GERAR' then begin frmprincipal.ACBrNFe1.DANFE.Logo:= dm.q_empresalogadaCAMINHOLOGOTIPO.AsString; frmprincipal.ACBrNFeDANFERaveCB1.Logo:= dm.q_empresalogadaCAMINHOLOGOTIPO.AsString; end; with frmprincipal.ACBrNFe1.NotasFiscais.Add.NFe do begin Ide.natOp := copy(frmcadastropedidos.q_pedidosNATUREZA.AsString,0,59); Qry_Aux.close; Ide.nNF := StrToInt(vAux); Ide.cNF := StrToInt(vAux); Ide.modelo := 55; Ide.serie := 1; Ide.dEmi := Date; Ide.dSaiEnt := frmcadastropedidos.q_pedidosIDE_DSAIENT.AsDateTime; ide.hSaiEnt := frmcadastropedidos.q_pedidosIDE_HSAIENT.AsDateTime; if dm.q_empresalogadaambiente.asstring='PRODUCAO' then begin Ide.tpAmb := taProducao; frmprincipal.ACBrNFe1.Configuracoes.WebServices.Ambiente:= taProducao; end else begin Ide.tpAmb := taHomologacao; frmprincipal.ACBrNFe1.Configuracoes.WebServices.Ambiente:= taHomologacao; end; if frmcadastropedidos.q_pedidoside_tpnf.asstring = 'ENTRADA' then Ide.tpNF := tnEntrada else Ide.tpNF := tnSaida; q_contas.close; q_contas.sql.clear; q_contas.sql.Add('select * from contas where cod_pedido = '+ quotedstr(q_pedidoscodigo.AsString)); q_contas.open; if q_contas.IsEmpty then begin Ide.indPag := ipVista; end else begin q_contas.First; while not q_contas.Eof do begin q_contas.edit; if q_contasDATA_VENCIMENTO.AsDateTime > frmcadastropedidos.q_pedidosIDE_DEMI.AsDateTime then Vctofatura:='APRAZO'; q_contas.next; end; end; if Vctofatura='APRAZO' then Ide.indPag:= ipPrazo; // Ide.indPag := ipOutras // Ide.indPag := ipPrazo; Qry_Aux.close; ////////////////////////////////////////////////////// Ide.verProc := '2.0.0.0'; Ide.cUF := StrToIntDef(Copy(dm.q_empresalogadaCOD_UF.AsString, 1, 2), 0); Ide.cMunFG := StrToIntDef(dm.q_empresalogadaCOD_CIDADE.AsString, 0); if frmcadastropedidos.q_pedidoside_finnfe.asstring = 'NORMAL' then Ide.finNFe := fnNormal else if frmcadastropedidos.q_pedidoside_finnfe.asstring = 'COMPLEMENTAR' then begin Ide.finNFe := fnComplementar; //Para NFe referenciada use os campos abaixo with Ide.NFref.Add do begin { refNFe := frmcadastropedidos.q_pedidosNFE_REF.AsString; RefNF.cUF := StrToIntDef(Copy(QryEmpCODCID.AsString, 1, 2), 0); RefNF.AAMM := FormatDateTime('yymm', date); RefNF.CNPJ := QryEmpCGC.AsString; RefNF.modelo := 1; RefNF.serie := 1; RefNF.nNF := StrToInt(vAux);} end; end else Ide.finNFe := fnAjuste; Emit.CNPJCPF := dm.q_empresalogadaCNPJ.AsString; Emit.IE := dm.q_empresalogadaINSCEST.AsString; Emit.xNome := dm.q_empresalogadaRAZAO.AsString; Emit.xFant := dm.q_empresalogadaFANTASIA.AsString; Emit.EnderEmit.fone := dm.q_empresalogadaTELEFONE.AsString; Emit.EnderEmit.CEP := StrToInt(dm.q_empresalogadacep.AsString); Emit.EnderEmit.xLgr := dm.q_empresalogadaLOGRADOURO.AsString; Emit.EnderEmit.nro := dm.q_empresalogadaNUMERO.asstring; Emit.EnderEmit.xCpl := dm.q_empresalogadaCOMPLEMENTO.AsString; Emit.EnderEmit.xBairro := dm.q_empresalogadaBAIRRO.asstring; Emit.EnderEmit.cMun := StrToInt(dm.q_empresalogadacod_cidade.asstring); Emit.EnderEmit.xMun := dm.q_empresalogadacidade.asstring; Emit.EnderEmit.UF := dm.q_empresalogadauf.AsString; Emit.enderEmit.cPais := 1058; Emit.enderEmit.xPais := 'BRASIL'; Emit.IEST := ''; // NFE 2.0 Emit.IM := ''; // Preencher no caso de existir serviços na nota Emit.CNAE := ''; // Verifique na cidade do emissor da NFe se é permitido // a inclusão de serviços na NFe if frmcadastropedidos.q_pedidosTIPO_DESTINO.AsString = 'E' then begin exporta.UFembarq := frmcadastropedidos.q_pedidosUFEMBARQ.AsString; exporta.xLocEmbarq := frmcadastropedidos.q_pedidosXLOCEMBARQ.AsString; end; if dm.q_empresalogadaCOD_REGIME.AsString='1' then begin Emit.CRT := crtSimplesNacional; //nfe 2.0 CRT := '1'; end else if dm.q_empresalogadaCOD_REGIME.AsString='1' then begin Emit.CRT := crtSimplesExcessoReceita; //nfe 2.0 CRT := '2'; end else if dm.q_empresalogadaCOD_REGIME.AsString='1' then begin Emit.CRT := crtRegimeNormal; //nfe 2.0 CRT := '3'; end; q_clientes.close; q_clientes.sql.clear; q_clientes.sql.add('select * from clientes where codigo = '+ quotedstr(frmcadastropedidos.q_pedidosDEST_CODIGO.AsString)); q_clientes.open; // se for uma nota de exportação devo limpar alguns campos if frmcadastropedidos.q_pedidosPAIS.AsString <> 'BRASIL' then begin Dest.CNPJCPF := ''; Dest.IE := ''; Dest.EnderDest.cMun := 9999999; Dest.EnderDest.xMun := 'EXTERIOR'; end else begin if frmcadastropedidos.q_pedidosdest_TIPOPESSOA.AsString = 'J' then Dest.CNPJCPF := q_clientesCPF.AsString else Dest.CNPJCPF := removechar(q_clientescpf.AsString); Dest.IE := q_clientesRG.AsString; Dest.EnderDest.cMun := StrToInt(q_pedidosDEST_CODCIDADE.AsString); Dest.EnderDest.xMun := q_pedidosDEST_XMUN.AsString; end; Dest.ISUF := ''; //NFE2.0 Dest.EnderDest.CEP := StrToInt(q_pedidosDEST_CEP.AsString); Dest.EnderDest.xLgr := q_pedidosDEST_XLGR.asstring; Dest.EnderDest.nro := q_pedidosDEST_NRO.asstring; Dest.EnderDest.xCpl := q_pedidosDEST_XCPL.AsString; Dest.EnderDest.xBairro := q_pedidosDEST_XBAIRRO.asstring; Dest.EnderDest.UF := q_pedidosDEST_UF.AsString; Dest.EnderDest.Fone := q_clientesTELEFONE.AsString; Dest.xNome := q_clientesRAZAO.AsString; Dest.EnderDest.cPais := strtoint(q_pedidosCODPAIS.AsString); Dest.EnderDest.xPais := q_pedidosPAIS.AsString; //Use os campos abaixo para informar o endereço de retirada quando for diferente do Remetente/Destinatário { Retirada.CNPJCPF := ''; Retirada.xLgr := ''; Retirada.nro := ''; Retirada.xCpl := ''; Retirada.xBairro := ''; Retirada.cMun := 0; Retirada.xMun := ''; Retirada.UF := '';} //Use os campos abaixo para informar o endereço de entrega quando for diferente do Remetente/Destinatário { Entrega.CNPJCPF := ''; Entrega.xLgr := ''; Entrega.nro := ''; Entrega.xCpl := ''; Entrega.xBairro := ''; Entrega.cMun := 0; Entrega.xMun := ''; Entrega.UF := '';} // QryProduto.Close; // QryProduto.Params.ParamByName('PNum').asinteger := frmcadastropedidos.q_pedidosCODIGO.AsInteger; // QryProduto.Open; q_buscaitem.close; q_buscaitem.sql.clear; q_buscaitem.sql.add('select * from itens where nroped = '+ QuotedStr(frmcadastropedidos.q_pedidosCODIGO.AsString)); q_buscaitem.open; Qtd_Prd_Frete := q_buscaitem.RecordCount; Qtd_Prd_Desc := q_buscaitem.RecordCount; Total_Frete := frmcadastropedidos.q_pedidosVL_FRETE.AsFloat; Total_desc := frmcadastropedidos.q_pedidosVL_DESCONTO.AsFloat; itemTOT_ICMS_ST:= 0; itemTOT_BC_ICMS_ST:= 0; q_buscaitem.first; While not q_buscaitem.eof do begin with Det.Add do begin Prod.nItem := q_buscaitemNITEM.AsInteger; prod.NCM := q_buscaitemNCM.AsString; //NFe 2.0 if q_buscaitemcod_anp.asstring <> '' then begin Prod.comb.cProdANP:= strtoint(q_buscaitemcod_anp.asstring); prod.comb.UFcons := 'SP'; prod.comb.qTemp:= 1; end; if not q_buscaitem.isempty then begin Prod.CFOP := q_buscaitemcfop.asstring; end else begin prod.cfop := frmcadastropedidos.q_pedidoscfop.asstring; end; Prod.cProd := q_buscaitemCODPRODUTO.AsString; Prod.EXTIPI := ''; //NFE 2.0 Prod.xProd := q_buscaitemproduto.AsString; Prod.qCom := q_buscaitemQUANTIDADE.AsFloat; Prod.uCom := q_buscaitemUNIDADE.AsString; Prod.vProd := q_buscaitemVALOR_TOTAL.AsFloat; Prod.vUnCom := q_buscaitemPRECO.AsFloat; // ver esse campo // prod.IndTot := itNaoSomaTotalNFe; //Rateio do desconto rat_desc := Arredondar((Total_desc / Qtd_Prd_Desc),2); Prod.vDesc := rat_desc; Total_desc := Total_desc - rat_desc; dec(Qtd_Prd_Desc); //fim rateio desconto Prod.qTrib := q_buscaitemQUANTIDADE.AsFloat; Prod.uTrib := q_buscaitemUNIDADE.AsString; Prod.vUnTrib := q_buscaitemPRECO.AsFloat; //*Rateio do frete rat_frete := Arredondar((Total_Frete / Qtd_Prd_Frete),2); prod.vFrete := rat_frete; Total_Frete := Total_Frete - rat_frete; dec(Qtd_Prd_Frete); //** fim rateio frete infAdProd := ''; //NFE 2. //Declaração de Importação. Pode ser adicionada várias através do comando Prod.DI.Add // if frmcadastropedidos.q_pedidosIMP_DI.AsString <> '' then // begin // with Prod.DI.Add do // begin // nDi := '1'; // dDi := date; // xLocDesemb := ''; // UFDesemb := ''; // dDesemb := date; // cExportador := ''; // // with adi.Add do // begin // nAdicao := ''; // nSeqAdi := ''; // cFabricante := ''; // vDescDI := ''; // end; // end; // end; with Imposto do begin with ICMS do begin if CRT = '1' then begin // inicio teste CSOSN if q_buscaitemCSOSN.AsString = '101' then begin Orig := q_buscaitemORIGEM.AsVariant; CSOSN := csosn101; pCredSN := q_buscaitemICMS.AsCurrency; vCredICMSSN := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat)*((q_buscaitemICMS.AsCurrency) / 100); CODCSOSN := q_buscaitemCSOSN.AsString; end else if q_buscaitemCSOSN.AsString = '102' then begin Orig := q_buscaitemORIGEM.AsVariant; CSOSN := csosn102; CODCSOSN := q_buscaitemCSOSN.AsString; end else if q_buscaitemCSOSN.AsString = '103' then begin Orig := q_buscaitemORIGEM.AsVariant; CSOSN := csosn103; CODCSOSN := q_buscaitemCSOSN.AsString; end else if q_buscaitemCSOSN.AsString = '201' then begin ICMS.Orig := q_buscaitemORIGEM.AsVariant; ICMS.CSOSN := csosn201; ICMS.modBCST := q_buscaitemICMS_BC_ST_MOD.AsVariant; ICMS.pMVAST := q_buscaitemICMS_PMVAST.AsVariant; ICMS.pRedBCST := q_buscaitemICMS_REDUCAO_ST.AsVariant; if (frmcadastropedidos.q_pedidoside_finnfe.asstring = 'AJUSTE') or (frmcadastropedidos.q_pedidoside_finnfe.asstring = 'COMPLEMENTAR') then begin ICMS.VBCST := frmcadastropedidos.q_pedidosBS_ICMS_ST.AsFloat; ICMS.VICMSST := frmcadastropedidos.q_pedidosVL_ICMS_ST.value; end else begin ICMS.vBCST := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat); ICMS.VICMSST := ((ICMS.vBCST + (ICMS.vBCST * q_buscaitemICMS_PMVAST.AsVariant / 100)) * q_buscaitemICMS_ALIQ_ST.AsVariant / 100); end; ICMS.pICMSST := q_buscaitemICMS_ALIQ_ST.AsVariant; TOT_BC_ICMS_ST := TOT_BC_ICMS_ST + ICMS.VBCST; TOT_ICMS_ST := TOT_ICMS_ST + ICMS.VICMSST; pCredSN := 0; vCredICMSSN := 0; CODCSOSN := q_buscaitemCSOSN.AsString; end else if q_buscaitemCSOSN.AsString = '202' then begin ICMS.Orig := q_buscaitemORIGEM.AsVariant; ICMS.CSOSN := csosn202; ICMS.modBCST := q_buscaitemICMS_BC_ST_MOD.AsVariant; ICMS.pMVAST := q_buscaitemICMS_PMVAST.AsVariant; ICMS.pRedBCST := q_buscaitemICMS_REDUCAO_ST.AsVariant; if (frmcadastropedidos.q_pedidoside_finnfe.asstring = 'AJUSTE') or (frmcadastropedidos.q_pedidoside_finnfe.asstring = 'COMPLEMENTAR') then begin ICMS.VBCST := frmcadastropedidos.q_pedidosBS_ICMS_ST.AsFloat; ICMS.VICMSST := frmcadastropedidos.q_pedidosVL_ICMS_ST.AsFloat; end else begin ICMS.vBCST := (q_buscaitemVALOR_TOTAL.value * q_buscaitemICMS_PMVAST.value) / 100; varbcicmsstVSaliq:= ((ICMS.vBCST+q_buscaitemVALOR_TOTAL.value)* q_buscaitemICMS_ALIQ_ST.value) / 100; varTotProdVSaliq:= (q_buscaitemVALOR_TOTAL.value) * (q_buscaitemICMS_ALIQ_ST.value / 100); ICMS.VICMSST := varbcicmsstVSaliq - varTotProdVSaliq; end; ICMS.pICMSST := q_buscaitemICMS_ALIQ_ST.value; // TOT_BC_ICMS_ST := TOT_BC_ICMS_ST + ICMS.VBCST; // TOT_ICMS_ST := TOT_ICMS_ST + ICMS.VICMSST; TOT_BC_ICMS_ST := TOT_BC_ICMS_ST+(ICMS.VBCST+q_buscaitemVALOR_TOTAL.value); TOT_ICMS_ST := TOT_ICMS_ST+ ICMS.VICMSST; CODCSOSN := q_buscaitemCSOSN.AsString; ICMS.vBCST:= ICMS.vBCST+q_buscaitemVALOR_TOTAL.value; end else if q_buscaitemCSOSN.AsString = '203' then begin Orig := q_buscaitemORIGEM.AsVariant; CSOSN := csosn203; modBCST := q_buscaitemICMS_BC_ST_MOD.AsVariant; pMVAST := q_buscaitemICMS_PMVAST.AsVariant; pRedBCST := q_buscaitemICMS_REDUCAO_ST.AsVariant; if (frmcadastropedidos.q_pedidoside_finnfe.asstring = 'AJUSTE') or (frmcadastropedidos.q_pedidoside_finnfe.asstring = 'COMPLEMENTAR') then begin ICMS.VBCST := frmcadastropedidos.q_pedidosBS_ICMS_ST.AsFloat; ICMS.VICMSST := frmcadastropedidos.q_pedidosVL_ICMS_ST.AsFloat; end else begin vBCST := Tot_vBCST + (Tot_vBCST * q_buscaitemICMS_PMVAST.AsVariant / 100); ICMS.VICMSST := ((ICMS.vBCST + (ICMS.vBCST * q_buscaitemICMS_PMVAST.AsVariant / 100)) * q_buscaitemICMS_ALIQ_ST.AsVariant / 100); end; pICMSST := q_buscaitemICMS_ALIQ_ST.AsVariant; TOT_BC_ICMS_ST := TOT_BC_ICMS_ST + ICMS.VBCST; TOT_ICMS_ST := TOT_ICMS_ST + ICMS.VICMSST; CODCSOSN := q_buscaitemCSOSN.AsString; end else if q_buscaitemCSOSN.AsString = '300' then begin Orig := q_buscaitemORIGEM.AsVariant; CSOSN := csosn300; CODCSOSN := q_buscaitemCSOSN.AsString; end else if q_buscaitemCSOSN.AsString = '400' then begin Orig := q_buscaitemORIGEM.AsVariant; CSOSN := csosn400; CODCSOSN := q_buscaitemCSOSN.AsString; end else if q_buscaitemCSOSN.AsString = '500' then begin Orig := q_buscaitemORIGEM.AsVariant; CSOSN := csosn500; vBCSTRet := 0; //?? vICMSSTRet := 0; //? CODCSOSN := q_buscaitemCSOSN.AsString; end else if q_buscaitemCSOSN.AsString = '900' then begin Orig := q_buscaitemORIGEM.AsVariant; CSOSN := csosn900; modBC := q_buscaitemICMS_BC_MOD.AsVariant; vBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat); pRedBC := q_buscaitemICMS_REDUCAO.AsVariant; pICMS := q_buscaitemICMS.AsCurrency; vICMS := (vBC * q_buscaitemICMS.AsCurrency) / 100; modBCST := q_buscaitemICMS_BC_ST_MOD.AsVariant; pMVAST := q_buscaitemICMS_PMVAST.AsVariant; pRedBCST := q_buscaitemICMS_REDUCAO_ST.AsVariant; vBCST := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat); pICMSST := q_buscaitemICMS_ALIQ_ST.AsVariant; ICMS.VICMSST := ((ICMS.vBCST + (ICMS.vBCST * q_buscaitemICMS_PMVAST.AsVariant / 100)) * q_buscaitemICMS_ALIQ_ST.AsVariant / 100); TOT_BC_ICMS_ST := TOT_BC_ICMS_ST + ICMS.VBCST; TOT_ICMS_ST := TOT_ICMS_ST + ICMS.VICMSST; TOT_BC_ICMS := TOT_BC_ICMS + ICMS.VBC; TOT_ICMS := TOT_ICMS + ICMS.VICMS; pCredSN := 0; //?? vCredICMSSN := 0; // ?? CODCSOSN := q_buscaitemCSOSN.AsString; end; // fim teste CSOSN end else begin if q_buscaitemCST.AsString = '0' then begin ICMS.CST := cst00; ICMS.Orig := q_buscaitemORIGEM.AsVariant; ICMS.ModBC := q_buscaitemICMS_BC_MOD.AsVariant; if (frmcadastropedidos.q_pedidoside_finnfe.asstring = 'AJUSTE') or (frmcadastropedidos.q_pedidoside_finnfe.asstring = 'COMPLEMENTAR') then begin ICMS.VBC := frmcadastropedidos.q_pedidosBS_ICMS.AsFloat; ICMS.VICMS := frmcadastropedidos.q_pedidosVL_ICMS.AsFloat; end else begin ICMS.VBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat); ICMS.VICMS := (ICMS.vBC * q_buscaitemICMS.AsCurrency) / 100; end; ICMS.PICMS := q_buscaitemICMS.AsCurrency; COD_CST := '0'; TOT_BC_ICMS := TOT_BC_ICMS + ICMS.VBC; TOT_ICMS := TOT_ICMS + ICMS.VICMS; end; if q_buscaitemCST.AsString = '10' then begin ICMS.CST := cst10; ICMS.Orig := q_buscaitemORIGEM.AsVariant; ICMS.ModBC := q_buscaitemICMS_BC_MOD.AsVariant; ICMS.VBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat); ICMS.PICMS := q_buscaitemICMS.AsCurrency; ICMS.VICMS := (ICMS.vBC * q_buscaitemICMS.AsCurrency) / 100; ICMS.ModBCST := q_buscaitemICMS_BC_ST_MOD.AsVariant; ICMS.PMVAST := q_buscaitemICMS_PMVAST.AsVariant; ICMS.PRedBCST := q_buscaitemICMS_REDUCAO_ST.AsVariant; ICMS.VBCST := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat); ICMS.PICMSST := q_buscaitemICMS_ALIQ_ST.AsVariant; Tot_CST10 := q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat; ICMS.VICMSST := ((Tot_CST10 + (Tot_CST10 * q_buscaitemICMS_PMVAST.AsVariant / 100)) * q_buscaitemICMS_ALIQ_ST.AsVariant / 100) - ICMS.VICMS; TOT_BC_ICMS_ST := TOT_BC_ICMS_ST + ICMS.VBCST; TOT_ICMS_ST := TOT_ICMS_ST + ICMS.VICMSST; TOT_BC_ICMS := TOT_BC_ICMS + ICMS.VBC; TOT_ICMS := TOT_ICMS + ICMS.VICMS; COD_CST := '10'; end; if q_buscaitemCST.AsString = '20' then begin ICMS.CST := cst20; ICMS.Orig := q_buscaitemORIGEM.AsVariant; ICMS.ModBC := q_buscaitemICMS_BC_MOD.AsVariant; ICMS.PRedBC := q_buscaitemICMS_REDUCAO.AsVariant; ICMS.VBC := ((q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat) - ((q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat) * q_buscaitemICMS_REDUCAO.AsVariant /100)); ICMS.PICMS := q_buscaitemICMS.AsCurrency; ICMS.VICMS := (ICMS.vBC * q_buscaitemICMS.AsCurrency) / 100; TOT_BC_ICMS := TOT_BC_ICMS + ICMS.VBC; TOT_ICMS := TOT_ICMS + ICMS.VICMS; COD_CST := '20'; end; if q_buscaitemCST.AsString = '30' then begin ICMS.CST := cst30; ICMS.Orig := q_buscaitemORIGEM.AsVariant; ICMS.ModBCST := q_buscaitemICMS_BC_ST_MOD.AsVariant; ICMS.PMVAST := q_buscaitemICMS_PMVAST.AsVariant; ICMS.PRedBCST := q_buscaitemICMS_REDUCAO_ST.AsVariant; ICMS.VBCST := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat); ICMS.PICMSST := q_buscaitemICMS_ALIQ_ST.AsVariant; Tot_CST30 := q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat; ICMS.VICMSST := ((Tot_CST30 + (Tot_CST30 * q_buscaitemICMS_PMVAST.AsVariant / 100)) * q_buscaitemICMS_ALIQ_ST.AsVariant / 100) - ICMS.VICMS; TOT_BC_ICMS_ST := TOT_BC_ICMS_ST + ICMS.VBCST; TOT_ICMS_ST := TOT_ICMS_ST + ICMS.VICMSST; COD_CST := '30'; end; if q_buscaitemCST.AsString = '40' then begin ICMS.CST := cst40; ICMS.Orig := q_buscaitemORIGEM.AsVariant; COD_CST := '40'; end; if q_buscaitemCST.AsString = '41' then begin ICMS.CST := cst41; ICMS.Orig := q_buscaitemORIGEM.AsVariant; COD_CST := '41'; end; if q_buscaitemCST.AsString = '50' then begin ICMS.CST := cst50; ICMS.Orig := q_buscaitemORIGEM.AsVariant; COD_CST := '50'; end; if q_buscaitemCST.AsString = '51' then begin ICMS.CST := cst51; ICMS.Orig := q_buscaitemORIGEM.AsVariant; ICMS.ModBC := q_buscaitemICMS_BC_MOD.AsVariant; ICMS.PRedBC := q_buscaitemICMS_REDUCAO.AsVariant; ICMS.VBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat); ICMS.PICMS := q_buscaitemICMS.AsCurrency; ICMS.VICMS := (ICMS.vBC * q_buscaitemICMS.AsCurrency) / 100; TOT_BC_ICMS := TOT_BC_ICMS + ICMS.VBC; TOT_ICMS := TOT_ICMS + ICMS.VICMS; COD_CST := '51'; end; if q_buscaitemCST.AsString = '60' then begin ICMS.CST := cst60; ICMS.Orig := q_buscaitemORIGEM.AsVariant; ICMS.VBCST := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat); Tot_CST60 := q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat; ICMS.VICMSST := ((Tot_CST60 + (Tot_CST60 * q_buscaitemICMS_PMVAST.AsVariant / 100)) * q_buscaitemICMS_ALIQ_ST.AsVariant / 100) - ICMS.VICMS; TOT_BC_ICMS_ST := TOT_BC_ICMS_ST + ICMS.VBCST; TOT_ICMS_ST := TOT_ICMS_ST + ICMS.VICMSST; COD_CST := '60'; end; if q_buscaitemCST.AsString = '70' then begin ICMS.CST := cst70; ICMS.Orig := q_buscaitemORIGEM.AsVariant; case q_buscaitemICMS_BC_MOD.AsVariant of 0: ICMS.modBC := dbiMargemValorAgregado; 1: ICMS.modBC := dbiPauta; 2: ICMS.modBC := dbiPrecoTabelado; 3: ICMS.modBC := dbiValorOperacao; end; ICMS.PRedBC := q_buscaitemICMS_REDUCAO.AsVariant; // ICMS.VBC := ((q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat) - ((q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat) * q_buscaitemICMS_REDUCAO.AsVariant /100)); ICMS.VBC := ((q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat) * q_buscaitemICMS_REDUCAO.AsVariant /100); ICMS.PICMS := q_buscaitemICMS.AsCurrency; ICMS.VICMS := (ICMS.vBC * q_buscaitemICMS.AsCurrency) / 100; case q_buscaitemICMS_BC_ST_MOD.AsVariant of 0: ICMS.modBCST := dbisPrecoTabelado; 1: ICMS.modBCST := dbisListaNegativa; 2: ICMS.modBCST := dbisListaPositiva; 3: ICMS.modBCST := dbisListaNeutra; 4: ICMS.modBCST := dbisMargemValorAgregado; 5: ICMS.modBCST := dbisPauta; end; ICMS.PMVAST := q_buscaitemICMS_PMVAST.AsVariant; ICMS.PRedBCST := q_buscaitemICMS_REDUCAO_ST.AsVariant; // ICMS.VBCST := ((q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat) - ((q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat) * q_buscaitemICMS_REDUCAO_ST.AsVariant /100)); ICMS.VBCST := ((q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat) * q_buscaitemICMS_REDUCAO_ST.AsVariant /100); ICMS.PICMSST := q_buscaitemICMS_ALIQ_ST.AsVariant; ICMS.VBCST := (ICMS.VBCST + (ICMS.VBCST * q_buscaitemICMS_PMVAST.AsVariant / 100)); ICMS.VICMSST := ((ICMS.VBCST * q_buscaitemICMS_ALIQ_ST.AsVariant / 100) - ICMS.VICMS); TOT_BC_ICMS_ST := TOT_BC_ICMS_ST + ICMS.VBCST; TOT_ICMS_ST := TOT_ICMS_ST + ICMS.VICMSST; TOT_BC_ICMS := TOT_BC_ICMS + ICMS.VBC; TOT_ICMS := TOT_ICMS + ICMS.VICMS; COD_CST := '70'; end; if q_buscaitemCST.AsString = '90' then begin ICMS.CST := cst90; ICMS.Orig := q_buscaitemORIGEM.AsVariant; ICMS.ModBC := q_buscaitemICMS_BC_MOD.AsVariant; ICMS.PRedBC := q_buscaitemICMS_REDUCAO.AsVariant; ICMS.VBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat); ICMS.PICMS := q_buscaitemICMS.AsCurrency; ICMS.VICMS := (ICMS.vBC * q_buscaitemICMS.AsCurrency) / 100; ICMS.ModBCST := q_buscaitemICMS_BC_ST_MOD.AsVariant; ICMS.PMVAST := q_buscaitemICMS_PMVAST.AsVariant; ICMS.PRedBCST := q_buscaitemICMS_REDUCAO_ST.AsVariant; ICMS.VBCST := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat); ICMS.PICMSST := q_buscaitemICMS_ALIQ_ST.AsVariant; Tot_CST90 := q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat; ICMS.VICMSST := ((Tot_CST90 + (Tot_CST90 * q_buscaitemICMS_PMVAST.AsVariant / 100)) * q_buscaitemICMS_ALIQ_ST.AsVariant / 100) - ICMS.VICMS; TOT_BC_ICMS_ST := TOT_BC_ICMS_ST + ICMS.VBCST; TOT_ICMS_ST := TOT_ICMS_ST + ICMS.VICMSST; TOT_BC_ICMS := TOT_BC_ICMS + ICMS.VBC; TOT_ICMS := TOT_ICMS + ICMS.VICMS; COD_CST := '90'; end; end; end; // fim do icms with IPI do begin if q_buscaitemIPI_SIT.AsString = '00' then begin CST := ipi00; pIPI := q_buscaitemIPI.AsFloat; VBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat); vIPI := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat) * q_buscaitemIPI.AsFloat/100; end else if q_buscaitemIPI_SIT.AsString = '01' then CST := ipi01 else if q_buscaitemIPI_SIT.AsString = '02' then CST := ipi02 else if q_buscaitemIPI_SIT.AsString = '03' then CST := ipi03 else if q_buscaitemIPI_SIT.AsString = '04' then CST := ipi04 else if q_buscaitemIPI_SIT.AsString = '05' then CST := ipi05 else if q_buscaitemIPI_SIT.AsString = '49' then begin CST := ipi49; pIPI := q_buscaitemIPI.AsFloat; VBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat); vIPI := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat) * q_buscaitemIPI.AsFloat/100; end else if q_buscaitemIPI_SIT.AsString = '50' then begin CST := ipi50; pIPI := q_buscaitemIPI.AsFloat; VBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat); vIPI := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat) * q_buscaitemIPI.AsFloat/100; end else if q_buscaitemIPI_SIT.AsString = '51' then CST := ipi51 else if q_buscaitemIPI_SIT.AsString = '52' then CST := ipi52 else if q_buscaitemIPI_SIT.AsString = '53' then CST := ipi53 else if q_buscaitemIPI_SIT.AsString = '54' then CST := ipi54 else if q_buscaitemIPI_SIT.AsString = '55' then CST := ipi55 else if q_buscaitemIPI_SIT.AsString = '99' then begin CST := ipi99; pIPI := q_buscaitemIPI.AsFloat; VBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat); vIPI := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat) * q_buscaitemIPI.AsFloat/100; end end; with PIS do begin if q_buscaitemCOD_PIS.AsString = '01' then begin CST := pis01; PIS.vBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat); PIS.pPIS := q_buscaitemALIQ_PIS.AsFloat; PIS.vPIS := (PIS.vBC * q_buscaitemALIQ_PIS.AsCurrency) / 100; end else if q_buscaitemCOD_PIS.AsString = '02' then begin CST := pis02; PIS.vBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat); PIS.pPIS := q_buscaitemALIQ_PIS.AsFloat; PIS.vPIS := (PIS.vBC * q_buscaitemALIQ_PIS.AsCurrency) / 100; end else if q_buscaitemCOD_PIS.AsString = '03' then begin CST := pis03; PIS.qBCProd := q_buscaitemQUANTIDADE.AsCurrency; PIS.vAliqProd := q_buscaitemALIQ_PIS_VALOR.AsFloat; PIS.vPIS := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemALIQ_PIS_VALOR.AsFloat); end else if q_buscaitemCOD_PIS.AsString = '04' then begin CST := pis04; end else if q_buscaitemCOD_PIS.AsString = '06' then begin CST := pis06; end else if q_buscaitemCOD_PIS.AsString = '07' then begin CST := pis07; end else if q_buscaitemCOD_PIS.AsString = '08' then begin CST := pis08; end else if q_buscaitemCOD_PIS.AsString = '09' then begin CST := pis09; PIS.vBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat); PIS.pPIS := q_buscaitemALIQ_PIS.AsFloat;; PIS.qBCProd := q_buscaitemQUANTIDADE.AsCurrency; PIS.vAliqProd := q_buscaitemALIQ_PIS_VALOR.AsFloat; PIS.vPIS := (PIS.vBC * q_buscaitemALIQ_PIS.AsCurrency) / 100; // em cima do valor ou porcentagem?? end; end; with COFINS do begin if q_buscaitemCOD_COFINS.AsString = '01' then begin CST := cof01; COFINS.vBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat); COFINS.pCOFINS := q_buscaitemALIQ_COFINS.AsFloat; COFINS.vCOFINS := (COFINS.vBC * q_buscaitemALIQ_COFINS.AsCurrency) / 100; end else if q_buscaitemCOD_COFINS.AsString = '02' then begin CST := cof02; COFINS.vBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat); COFINS.pCOFINS := q_buscaitemALIQ_COFINS.AsFloat; COFINS.vCOFINS := (COFINS.vBC * q_buscaitemALIQ_COFINS.AsCurrency) / 100; end else if q_buscaitemCOD_COFINS.AsString = '03' then begin CST := cof03; COFINS.qBCProd := q_buscaitemQUANTIDADE.AsCurrency;; COFINS.vAliqProd := q_buscaitemALIQ_COFINS_VALOR.AsFloat;; COFINS.vCOFINS := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemALIQ_COFINS_VALOR.AsFloat);; end else if q_buscaitemCOD_COFINS.AsString = '04' then begin CST := cof04; end else if q_buscaitemCOD_COFINS.AsString = '06' then begin CST := cof06; end else if q_buscaitemCOD_COFINS.AsString = '07' then begin CST := cof07; end else if q_buscaitemCOD_COFINS.AsString = '08' then begin CST := cof08; end else if q_buscaitemCOD_COFINS.AsString = '09' then begin CST := cof09; end else if q_buscaitemCOD_COFINS.AsString = '99' then begin CST := cof99; COFINS.vBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat); COFINS.pCOFINS := q_buscaitemALIQ_COFINS.AsFloat; COFINS.qBCProd := q_buscaitemQUANTIDADE.AsCurrency; COFINS.vAliqProd := q_buscaitemALIQ_COFINS_VALOR.AsFloat; COFINS.vCOFINS := (COFINS.vBC * q_buscaitemALIQ_COFINS.AsCurrency) / 100; end; end; end; end; q_buscaitem.Next; end; if not q_contas.isempty then begin q_contas.first; While not q_contas.eof do begin with Cobr.Dup.Add do begin nDup:= q_contascodigo.AsString; dVenc:= q_contasDATA_VENCIMENTO.AsDateTime; vDup:= q_contasVALOR_TOTAL.AsFloat; end; q_contas.Next; end; end; q_contas.Close; If frmcadastropedidos.q_pedidosFRETE_CONTA.AsString = '0' then Transp.modFrete:= mfContaEmitente else If frmcadastropedidos.q_pedidosFRETE_CONTA.AsString = '1' then Transp.modFrete:= mfContaDestinatario else If frmcadastropedidos.q_pedidosFRETE_CONTA.AsString = '2' then Transp.modFrete:= mfContaTerceiros else If frmcadastropedidos.q_pedidosFRETE_CONTA.AsString = '9' then Transp.modFrete:= mfSemFrete; if frmcadastropedidos.q_pedidosCOD_TRANSP.AsInteger <> 0 then begin Qry_Transp.Close; Qry_Transp.ParamByName('PCOD').asinteger := frmcadastropedidos.q_pedidosCOD_TRANSP.AsInteger; Qry_Transp.Open; Transp.Transporta.xNome := Qry_TranspRAZAO.AsString; if Qry_TranspCPF.AsString <> '' then Transp.Transporta.CNPJCPF:= Qry_TranspCpf.AsString; Transp.Transporta.xEnder:= Qry_TranspENDERECO.AsString; Transp.Transporta.xMun:= Qry_TranspCIDADE.AsString; Transp.Transporta.UF:= Qry_TranspUF.AsString; Transp.Transporta.IE:= ''; with Transp.Vol.Add do begin qVol:= frmcadastropedidos.q_pedidosTRANS_QTDE_VOLUMES.AsInteger; esp:= frmcadastropedidos.q_pedidosTRANS_ESPECIE_VOLUMES.AsString; marca:= frmcadastropedidos.q_pedidosTRANS_MARCA_VOLUM.AsString; nVol:= frmcadastropedidos.q_pedidosTRANS_NUMERO.AsString; pesoL:= frmcadastropedidos.q_pedidosTRANS_PELO_LIQUIDO.AsFloat; pesoB:= frmcadastropedidos.q_pedidosTRANS_PESO_BRUTO.AsFloat; end; Qry_Transp.Close; end; Total.ICMSTot.vOutro := frmcadastropedidos.q_pedidosVL_DESPESAS.AsFloat; Total.ICMSTot.vIPI := frmcadastropedidos.q_pedidosVL_IPI.AsFloat; Total.ICMSTot.vFrete := frmcadastropedidos.q_pedidosVL_FRETE.AsFloat; Total.ICMSTot.vSeg := frmcadastropedidos.q_pedidosVL_SEGURO.AsFloat; Total.ICMSTot.vDesc := frmcadastropedidos.q_pedidosVL_DESCONTO.AsFloat; if (frmcadastropedidos.q_pedidoside_finnfe.asstring = 'AJUSTE') or (frmcadastropedidos.q_pedidoside_finnfe.asstring = 'COMPLEMENTAR') then begin Total.ICMSTot.vBCST := frmcadastropedidos.q_pedidosBS_ICMS_ST.AsFloat; Total.ICMSTot.vST := frmcadastropedidos.q_pedidosVL_ICMS_ST.AsFloat; Total.ICMSTot.vBC := frmcadastropedidos.q_pedidosBS_ICMS.AsFloat; Total.ICMSTot.vICMS := frmcadastropedidos.q_pedidosVL_ICMS.AsFloat; end else begin // 'totais' Total.ICMSTot.vBCST := TOT_BC_ICMS_ST; Total.ICMSTot.vST := TOT_ICMS_ST; Total.ICMSTot.vBC := TOT_BC_ICMS; Total.ICMSTot.vICMS := TOT_ICMS; end; Total.ICMSTot.vProd := frmcadastropedidos.q_pedidosVL_PROD.AsFloat; Total.ICMSTot.vNF := frmcadastropedidos.q_pedidosVL_TOTAL.AsFloat + TOT_ICMS_ST; InfAdic.infCpl := frmcadastropedidos.q_pedidosmensagem.AsString; InfAdic.infAdFisco := ''; end; if tipo='GERAR' then begin try try frmprincipal.ACBrNFe1.Enviar(vNumLote,True); frmprincipal.MemoResp.Lines.Text := UTF8Encode(frmprincipal.ACBrNFe1.WebServices.Retorno.RetWS); frmprincipal.memoRespWS.Lines.Text := UTF8Encode(frmprincipal.ACBrNFe1.WebServices.Retorno.RetornoWS); frmprincipal.memolog.Lines.Add(UTF8Encode(frmprincipal.ACBrNFe1.WebServices.Retorno.RetWS)); frmprincipal.LoadXML(frmprincipal.MemoResp, frmprincipal.WBResposta); frmprincipal.ACBrNFe1.NotasFiscais.Items[0].SaveToFile; // Salvar a nota em PDF // frmprincipal.ACBrNFe1.DANFE.PathPDF := dm.q_empresalogadaCAMINHOARQUIVO.AsString; frmprincipal.ACBrNFe1.NotasFiscais.Items[0].ImprimirPDF; LocNFeW := TNFeW.Create(frmprincipal.ACBrNFe1.NotasFiscais.Items[0].Nfe); LocNFeW.schema := TsPL006; LocNFeW.Opcoes.GerarTXTSimultaneamente:=true; LocNFeW.GerarXml; wchave:=frmprincipal.ACBrNFe1.NotasFiscais.Items[0].Nfe.InfNFe.ID; if length(wchave)>44 then wchave:=copy(wchave,(length(wchave)-44)+1,44); wnome_arquivo:=frmprincipal.ACBrNFe1.Configuracoes.Geral.PathSalvar+wchave+'-nfe.txt'; LocNFeW.Gerador.SalvarArquivo(wnome_arquivo,fgTXT); LocNFeW.Free; frmcadastropedidos.q_pedidos.edit; frmcadastropedidos.q_pedidosRETORNOWS_CHAVEACESSO.AsString:= frmprincipal.ACBrNFe1.WebServices.Retorno.ChaveNFe; frmcadastropedidos.q_pedidosRETORNOWS_MOTIVO.AsString:= frmprincipal.ACBrNFe1.WebServices.Retorno.xMotivo; frmcadastropedidos.q_pedidosRETORNOWS_PROTOCOLO.AsString:= frmprincipal.ACBrNFe1.WebServices.Retorno.Protocolo; frmcadastropedidos.q_pedidosRETORNOWS_RECIBO.AsString:= frmprincipal.ACBrNFe1.WebServices.Retorno.Recibo; frmcadastropedidos.q_pedidosSITUACAO.AsString:='APROVADA'; emailcliente:= frmcadastropedidos.q_pedidosEMAIL.asstring; frmcadastropedidos.q_pedidos.Post; dm.conexao.commit; //********************Enviar email****************** if dm.q_empresalogadaenviaremailauto.asstring='SIM' then begin mmEmailMsg.Lines.Add(dm.q_empresalogadaMENSAGEM.AsString+#13+'Chave de Acesso para consulta da NFE: '+ frmcadastropedidos.q_pedidosRETORNOWS_CHAVEACESSO.AsString+#13+ 'Atenciosamente'+#13+dm.q_empresalogadaRAZAO.AsString); if (dm.q_empresalogadaEMAIL.AsString<>'') and (frmcadastropedidos.q_pedidosemail.AsString<>'') then begin CC:=TstringList.Create; CC.Add(dm.q_empresalogadaEMAIL_CONTADOR.AsString); //especifique um email válido CC.Add(dm.q_empresalogadaEMAIL.AsString); //especifique um email válido CC.Add('[email protected]'); //especifique um email válido frmprincipal.ACBrNFe1.NotasFiscais.Items[0].EnviarEmail(dm.q_empresalogadaSMTP.AsString //host , dm.q_empresalogadaPORTA.AsString //porta , dm.q_empresalogadaUSUARIO.AsString //usuario , dm.q_empresalogadaSENHA.AsString //senha , dm.q_empresalogadaEMAIL.AsString //usuario smtp , frmcadastropedidos.q_pedidosEMAIL.AsString //para(destinatarios , dm.q_empresalogadaRAZAO.asstring+' - '+ dm.q_empresalogadaassunto.asstring //assunto , mmEmailMsg.Lines , False // SSL - Conexão Segura , True //Enviar PDF junto , cc //Lista com emails que serão enviado cópias - TStrings , nil // Lista de anexos - TStrings , False //Pede confirmação de leitura do email , False //Aguarda Envio do Email(não usa thread) , dm.q_empresalogadaFANTASIA.AsString // Nome do Rementente , True ); // Auto TLS CC.Free; end; end; ////********************Enviar email****************** frmprincipal.ACBrNFe1.NotasFiscais.Clear; CODCSOSN := ''; CRT := ''; except on E: EXCEPTION DO showmessage('Ocorreu um erro: '+ E.Message); end; finally try except end; end; end else if tipo='VALIDAR' then begin frmprincipal.ACBrNFe1.NotasFiscais.Valida; if frmprincipal.ACBrNFe1.NotasFiscais.Items[0].Alertas <> '' then frmprincipal.MemoLOG.Lines.Add('Alertas: '+frmprincipal.ACBrNFe1.NotasFiscais.Items[0].Alertas); showmessage('Nota Fiscal Eletrônica Valida!'); frmprincipal.ACBrNFe1.NotasFiscais.Clear; CODCSOSN := ''; CRT := ''; end; end; //final gerarnfe
  12. eu tirei o raise e coloquei um showmessage no lugar dele, passa tranquilamente sem nenhum erro., mas com showmessage nao fica bom pois ele nao breca a rotina toda, no final acaba vindo a mensagem de NOTA FISCAL ELETRONICA VALIDA, sem ser de fato uma nota realmente valida, erros foram apresentados na tela.
  13. Pessoal, é um seguinte, ja vasculhei tudo e nao encontrei o problema, tenho duas aplicacoes, 1 delas está ok, e a outra está com o erro que vou relatar abaixo, de antemão ja sei, oras se uma aplicacao funciona e a outra nao, entao o erro é na aplicacao e nao no acbr, mas vou postar o problema para ver se alguem ja passou por isso... caso eu validar uma nfe e der algum erro, tipo falta de ncm, ou cst incorreto ou qualquer outro, dai o acbr vai mostrar a mensagem para o usuario correto, segue o codigo abaixo que está dentro do acbrnotasfiscais... for i:= 0 to Self.Count-1 do begin if pos('<Signature',Self.Items.XML) = 0 then Assinar; if not(NotaUtil.Valida(('<NFe xmlns' + RetornarConteudoEntre(Self.Items.XML, '<NFe xmlns', '</NFe>')+ '</NFe>'), FMsg, Self.FConfiguracoes.Geral.PathSchemas, Self.FConfiguracoes.Geral.ModeloDF)) then begin Self.Items.ErroValidacaoCompleto := 'Falha na validação dos dados da nota '+ IntToStr(Self.Items.NFe.Ide.nNF)+sLineBreak+ Self.Items.Alertas+ FMsg; Self.Items.ErroValidacao := 'Falha na validação dos dados da nota '+ IntToStr(Self.Items.NFe.Ide.nNF)+sLineBreak+ Self.Items.Alertas+ IfThen(Self.FConfiguracoes.Geral.ExibirErroSchema,FMsg,''); raise EACBrNFeException.Create(Self.Items.ErroValidacao); end; end; porém quando vai mostrar na tela, raise EACBrNFeException.Create(Self.Items.ErroValidacao), gera uma excessao na aplicacao, e dai a mesma é fechada sozinha causando a indesejada janelinha de NAO ENVIAR do windows. Alguma luz pessoal ? segue a janela do erro em anexo.
  14. desculpem, esta correto mesmo, o erro foi meu, podem excluir este topico se quiserem, muito obrigdo.
  15. bom dia, no campo modalidade eu passei o mesmo valor do campo carteira.
  16. Boa Noite, meu problema é o seguinte: ESPERADO 0339952657 76200000008 00217801018 1 59200000001000 ENVIADO 0339952657 76200000008 00217801018 9 55920000000100 Parece que o DV está danificando o restante, quem puder ajudar ficarei grato.
×
×
  • 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.

The popup will be closed in 10 segundos...