rogercon
-
Total de ítens
296 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Posts postados por rogercon
-
-
Italo, ve pra mim a questao do EMISSOR NAO HABILITADO A EMITIR CTE
-
Bom dia Rogercon,
Uma coisa não tem nada haver com outra.
A propriedade tpMed se refere ao tipo de medida como por exemplo "Peso Bruto" ou "Peso Liquido", etc. logo temos que alimentar essa propriedade, caso contrario ocorre erro ao validar o XML do CT-e.
O erro informando que não é possível se conectar com a SEFAZ ai já é outra história, você tem que checar se esse erro não esta sendo causado por Firewall, antivirus, proxy, ou até mesmo a falta de acesso a internet.
resolvido, obrigado.
-
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á.
-
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 dobegincUnid := 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.OK RESOLVIDO, COLOQUEI uM3 e passou.
-
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 dobegincUnid := 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. -
í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 dobeginmodelo:=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; -
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 ?
-
obrigado, o problema era o ambiente de homologacao, o qual nao está liberado para mim.
-
eu ja tenho autorizacao da prefeitura, meu contador providenciou tudo, mas o problema é este erro que ocorreu, alguem tem ideia do que pode ser ?
-
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á.
-
ok, segue o clique no botao VALIDAR que chama a rotina...
procedure Tfrmcadastropedidos.cxButton3Click(Sender: TObject);beginIF q_pedidos.IsEmpty thenbeginShowMessage('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 gerarnfeprocedure tfrmcadastropedidos.gerarnfe(tipo: string);varvAux : 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;beginTOT_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' thenbeginfrmprincipal.ACBrNFe1.DANFE.Logo:= dm.q_empresalogadaCAMINHOLOGOTIPO.AsString;frmprincipal.ACBrNFeDANFERaveCB1.Logo:= dm.q_empresalogadaCAMINHOLOGOTIPO.AsString;end;with frmprincipal.ACBrNFe1.NotasFiscais.Add.NFe dobeginIde.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' thenbeginIde.tpAmb := taProducao;frmprincipal.ACBrNFe1.Configuracoes.WebServices.Ambiente:= taProducao;endelsebeginIde.tpAmb := taHomologacao;frmprincipal.ACBrNFe1.Configuracoes.WebServices.Ambiente:= taHomologacao;end;if frmcadastropedidos.q_pedidoside_tpnf.asstring = 'ENTRADA' thenIde.tpNF := tnEntradaelseIde.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 thenbeginIde.indPag := ipVista;end elsebeginq_contas.First;while not q_contas.Eof dobeginq_contas.edit;if q_contasDATA_VENCIMENTO.AsDateTime > frmcadastropedidos.q_pedidosIDE_DEMI.AsDateTime thenVctofatura:='APRAZO';q_contas.next;end;end;if Vctofatura='APRAZO' thenIde.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' thenIde.finNFe := fnNormalelseif frmcadastropedidos.q_pedidoside_finnfe.asstring = 'COMPLEMENTAR' thenbeginIde.finNFe := fnComplementar;//Para NFe referenciada use os campos abaixowith Ide.NFref.Add dobegin{ 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;endelseIde.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.0Emit.IM := ''; // Preencher no caso de existir serviços na notaEmit.CNAE := ''; // Verifique na cidade do emissor da NFe se é permitido// a inclusão de serviços na NFeif frmcadastropedidos.q_pedidosTIPO_DESTINO.AsString = 'E' thenbeginexporta.UFembarq := frmcadastropedidos.q_pedidosUFEMBARQ.AsString;exporta.xLocEmbarq := frmcadastropedidos.q_pedidosXLOCEMBARQ.AsString;end;if dm.q_empresalogadaCOD_REGIME.AsString='1' thenbeginEmit.CRT := crtSimplesNacional; //nfe 2.0CRT := '1';endelseif dm.q_empresalogadaCOD_REGIME.AsString='1' thenbeginEmit.CRT := crtSimplesExcessoReceita; //nfe 2.0CRT := '2';endelseif dm.q_empresalogadaCOD_REGIME.AsString='1' thenbeginEmit.CRT := crtRegimeNormal; //nfe 2.0CRT := '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 camposif frmcadastropedidos.q_pedidosPAIS.AsString <> 'BRASIL' thenbeginDest.CNPJCPF := '';Dest.IE := '';Dest.EnderDest.cMun := 9999999;Dest.EnderDest.xMun := 'EXTERIOR';endelsebeginif frmcadastropedidos.q_pedidosdest_TIPOPESSOA.AsString = 'J' thenDest.CNPJCPF := q_clientesCPF.AsStringelseDest.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.0Dest.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 dobeginwith Det.Add dobeginProd.nItem := q_buscaitemNITEM.AsInteger;prod.NCM := q_buscaitemNCM.AsString; //NFe 2.0if q_buscaitemcod_anp.asstring <> '' thenbeginProd.comb.cProdANP:= strtoint(q_buscaitemcod_anp.asstring);prod.comb.UFcons := 'SP';prod.comb.qTemp:= 1;end;if not q_buscaitem.isempty thenbeginProd.CFOP := q_buscaitemcfop.asstring;end elsebeginprod.cfop := frmcadastropedidos.q_pedidoscfop.asstring;end;Prod.cProd := q_buscaitemCODPRODUTO.AsString;Prod.EXTIPI := ''; //NFE 2.0Prod.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 descontorat_desc := Arredondar((Total_desc / Qtd_Prd_Desc),2);Prod.vDesc := rat_desc;Total_desc := Total_desc - rat_desc;dec(Qtd_Prd_Desc);//fim rateio descontoProd.qTrib := q_buscaitemQUANTIDADE.AsFloat;Prod.uTrib := q_buscaitemUNIDADE.AsString;Prod.vUnTrib := q_buscaitemPRECO.AsFloat;//*Rateio do freterat_frete := Arredondar((Total_Frete / Qtd_Prd_Frete),2);prod.vFrete := rat_frete;Total_Frete := Total_Frete - rat_frete;dec(Qtd_Prd_Frete);//** fim rateio freteinfAdProd := ''; //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 dobeginwith ICMS dobeginif CRT = '1' thenbegin// inicio teste CSOSNif q_buscaitemCSOSN.AsString = '101' thenbeginOrig := q_buscaitemORIGEM.AsVariant;CSOSN := csosn101;pCredSN := q_buscaitemICMS.AsCurrency;vCredICMSSN := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat)*((q_buscaitemICMS.AsCurrency) / 100);CODCSOSN := q_buscaitemCSOSN.AsString;endelseif q_buscaitemCSOSN.AsString = '102' thenbeginOrig := q_buscaitemORIGEM.AsVariant;CSOSN := csosn102;CODCSOSN := q_buscaitemCSOSN.AsString;endelseif q_buscaitemCSOSN.AsString = '103' thenbeginOrig := q_buscaitemORIGEM.AsVariant;CSOSN := csosn103;CODCSOSN := q_buscaitemCSOSN.AsString;endelseif q_buscaitemCSOSN.AsString = '201' thenbeginICMS.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') thenbeginICMS.VBCST := frmcadastropedidos.q_pedidosBS_ICMS_ST.AsFloat;ICMS.VICMSST := frmcadastropedidos.q_pedidosVL_ICMS_ST.value;endelsebeginICMS.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;endelseif q_buscaitemCSOSN.AsString = '202' thenbeginICMS.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') thenbeginICMS.VBCST := frmcadastropedidos.q_pedidosBS_ICMS_ST.AsFloat;ICMS.VICMSST := frmcadastropedidos.q_pedidosVL_ICMS_ST.AsFloat;endelsebeginICMS.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;endelseif q_buscaitemCSOSN.AsString = '203' thenbeginOrig := 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') thenbeginICMS.VBCST := frmcadastropedidos.q_pedidosBS_ICMS_ST.AsFloat;ICMS.VICMSST := frmcadastropedidos.q_pedidosVL_ICMS_ST.AsFloat;endelsebeginvBCST := 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;endelseif q_buscaitemCSOSN.AsString = '300' thenbeginOrig := q_buscaitemORIGEM.AsVariant;CSOSN := csosn300;CODCSOSN := q_buscaitemCSOSN.AsString;endelseif q_buscaitemCSOSN.AsString = '400' thenbeginOrig := q_buscaitemORIGEM.AsVariant;CSOSN := csosn400;CODCSOSN := q_buscaitemCSOSN.AsString;endelseif q_buscaitemCSOSN.AsString = '500' thenbeginOrig := q_buscaitemORIGEM.AsVariant;CSOSN := csosn500;vBCSTRet := 0; //??vICMSSTRet := 0; //?CODCSOSN := q_buscaitemCSOSN.AsString;endelseif q_buscaitemCSOSN.AsString = '900' thenbeginOrig := 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 CSOSNendelsebeginif q_buscaitemCST.AsString = '0' thenbeginICMS.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') thenbeginICMS.VBC := frmcadastropedidos.q_pedidosBS_ICMS.AsFloat;ICMS.VICMS := frmcadastropedidos.q_pedidosVL_ICMS.AsFloat;endelsebeginICMS.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' thenbeginICMS.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' thenbeginICMS.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' thenbeginICMS.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' thenbeginICMS.CST := cst40;ICMS.Orig := q_buscaitemORIGEM.AsVariant;COD_CST := '40';end;if q_buscaitemCST.AsString = '41' thenbeginICMS.CST := cst41;ICMS.Orig := q_buscaitemORIGEM.AsVariant;COD_CST := '41';end;if q_buscaitemCST.AsString = '50' thenbeginICMS.CST := cst50;ICMS.Orig := q_buscaitemORIGEM.AsVariant;COD_CST := '50';end;if q_buscaitemCST.AsString = '51' thenbeginICMS.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' thenbeginICMS.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' thenbeginICMS.CST := cst70;ICMS.Orig := q_buscaitemORIGEM.AsVariant;case q_buscaitemICMS_BC_MOD.AsVariant of0: 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 of0: 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' thenbeginICMS.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 icmswith IPI dobeginif q_buscaitemIPI_SIT.AsString = '00' thenbeginCST := ipi00;pIPI := q_buscaitemIPI.AsFloat;VBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat);vIPI := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat) * q_buscaitemIPI.AsFloat/100;endelseif q_buscaitemIPI_SIT.AsString = '01' thenCST := ipi01elseif q_buscaitemIPI_SIT.AsString = '02' thenCST := ipi02elseif q_buscaitemIPI_SIT.AsString = '03' thenCST := ipi03elseif q_buscaitemIPI_SIT.AsString = '04' thenCST := ipi04elseif q_buscaitemIPI_SIT.AsString = '05' thenCST := ipi05elseif q_buscaitemIPI_SIT.AsString = '49' thenbeginCST := ipi49;pIPI := q_buscaitemIPI.AsFloat;VBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat);vIPI := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat) * q_buscaitemIPI.AsFloat/100;endelseif q_buscaitemIPI_SIT.AsString = '50' thenbeginCST := ipi50;pIPI := q_buscaitemIPI.AsFloat;VBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat);vIPI := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat) * q_buscaitemIPI.AsFloat/100;endelseif q_buscaitemIPI_SIT.AsString = '51' thenCST := ipi51elseif q_buscaitemIPI_SIT.AsString = '52' thenCST := ipi52elseif q_buscaitemIPI_SIT.AsString = '53' thenCST := ipi53elseif q_buscaitemIPI_SIT.AsString = '54' thenCST := ipi54elseif q_buscaitemIPI_SIT.AsString = '55' thenCST := ipi55elseif q_buscaitemIPI_SIT.AsString = '99' thenbeginCST := ipi99;pIPI := q_buscaitemIPI.AsFloat;VBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat);vIPI := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat) * q_buscaitemIPI.AsFloat/100;endend;with PIS dobeginif q_buscaitemCOD_PIS.AsString = '01' thenbeginCST := pis01;PIS.vBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat);PIS.pPIS := q_buscaitemALIQ_PIS.AsFloat;PIS.vPIS := (PIS.vBC * q_buscaitemALIQ_PIS.AsCurrency) / 100;endelseif q_buscaitemCOD_PIS.AsString = '02' thenbeginCST := pis02;PIS.vBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat);PIS.pPIS := q_buscaitemALIQ_PIS.AsFloat;PIS.vPIS := (PIS.vBC * q_buscaitemALIQ_PIS.AsCurrency) / 100;endelseif q_buscaitemCOD_PIS.AsString = '03' thenbeginCST := pis03;PIS.qBCProd := q_buscaitemQUANTIDADE.AsCurrency;PIS.vAliqProd := q_buscaitemALIQ_PIS_VALOR.AsFloat;PIS.vPIS := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemALIQ_PIS_VALOR.AsFloat);endelseif q_buscaitemCOD_PIS.AsString = '04' thenbeginCST := pis04;endelseif q_buscaitemCOD_PIS.AsString = '06' thenbeginCST := pis06;endelseif q_buscaitemCOD_PIS.AsString = '07' thenbeginCST := pis07;endelseif q_buscaitemCOD_PIS.AsString = '08' thenbeginCST := pis08;endelseif q_buscaitemCOD_PIS.AsString = '09' thenbeginCST := 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 dobeginif q_buscaitemCOD_COFINS.AsString = '01' thenbeginCST := cof01;COFINS.vBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat);COFINS.pCOFINS := q_buscaitemALIQ_COFINS.AsFloat;COFINS.vCOFINS := (COFINS.vBC * q_buscaitemALIQ_COFINS.AsCurrency) / 100;endelseif q_buscaitemCOD_COFINS.AsString = '02' thenbeginCST := cof02;COFINS.vBC := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemPRECO.AsFloat);COFINS.pCOFINS := q_buscaitemALIQ_COFINS.AsFloat;COFINS.vCOFINS := (COFINS.vBC * q_buscaitemALIQ_COFINS.AsCurrency) / 100;endelseif q_buscaitemCOD_COFINS.AsString = '03' thenbeginCST := cof03;COFINS.qBCProd := q_buscaitemQUANTIDADE.AsCurrency;;COFINS.vAliqProd := q_buscaitemALIQ_COFINS_VALOR.AsFloat;;COFINS.vCOFINS := (q_buscaitemQUANTIDADE.AsCurrency * q_buscaitemALIQ_COFINS_VALOR.AsFloat);;endelseif q_buscaitemCOD_COFINS.AsString = '04' thenbeginCST := cof04;endelseif q_buscaitemCOD_COFINS.AsString = '06' thenbeginCST := cof06;endelseif q_buscaitemCOD_COFINS.AsString = '07' thenbeginCST := cof07;endelseif q_buscaitemCOD_COFINS.AsString = '08' thenbeginCST := cof08;endelseif q_buscaitemCOD_COFINS.AsString = '09' thenbeginCST := cof09;endelseif q_buscaitemCOD_COFINS.AsString = '99' thenbeginCST := 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 thenbeginq_contas.first;While not q_contas.eof dobeginwith Cobr.Dup.Add dobeginnDup:= 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' thenTransp.modFrete:= mfContaEmitenteelseIf frmcadastropedidos.q_pedidosFRETE_CONTA.AsString = '1' thenTransp.modFrete:= mfContaDestinatarioelseIf frmcadastropedidos.q_pedidosFRETE_CONTA.AsString = '2' thenTransp.modFrete:= mfContaTerceiroselseIf frmcadastropedidos.q_pedidosFRETE_CONTA.AsString = '9' thenTransp.modFrete:= mfSemFrete;if frmcadastropedidos.q_pedidosCOD_TRANSP.AsInteger <> 0 thenbeginQry_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 <> '' thenTransp.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 dobeginqVol:= 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') thenbeginTotal.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;endelsebegin// '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' thenbegintrytryfrmprincipal.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 thenwchave:=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' thenbeginmmEmailMsg.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<>'') thenbeginCC:=TstringList.Create;CC.Add(dm.q_empresalogadaEMAIL_CONTADOR.AsString); //especifique um email válidoCC.Add(dm.q_empresalogadaEMAIL.AsString); //especifique um email válidoCC.Add('[email protected]'); //especifique um email válidofrmprincipal.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 TLSCC.Free;end;end;////********************Enviar email******************frmprincipal.ACBrNFe1.NotasFiscais.Clear;CODCSOSN := '';CRT := '';excepton E: EXCEPTION DOshowmessage('Ocorreu um erro: '+ E.Message);end;finallytryexceptend;end;end else if tipo='VALIDAR' thenbeginfrmprincipal.ACBrNFe1.NotasFiscais.Valida;if frmprincipal.ACBrNFe1.NotasFiscais.Items[0].Alertas <> '' thenfrmprincipal.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 -
-
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.
-
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 dobeginif pos('<Signature',Self.Items.XML) = 0 thenAssinar;if not(NotaUtil.Valida(('<NFe xmlns' + RetornarConteudoEntre(Self.Items.XML, '<NFe xmlns', '</NFe>')+ '</NFe>'),FMsg, Self.FConfiguracoes.Geral.PathSchemas, Self.FConfiguracoes.Geral.ModeloDF)) thenbeginSelf.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. -
desculpem, esta correto mesmo, o erro foi meu, podem excluir este topico se quiserem, muito obrigdo.
-
bom dia, no campo modalidade eu passei o mesmo valor do campo carteira.
-
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.
Cte Versão 2.0
em ACBrCTe
Postado
sim para tudo, inclusive até configurei corretamente o RNTRC da transportadora, lembrando que pelo emissor gratuito o cte é transmitido com sucesso!.