Ir para conteúdo
  • Cadastre-se

rodrigo_sanmac

Membros
  • Total de ítens

    62
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que rodrigo_sanmac postou

  1. Bom dia Fabricio e Andre! Não sei se a forma que eu fiz poderia ajudar a vcs. Não precisa de componente algum. Segue: if sMsg = OK then begin for i := 1 to 17 do begin repeat case i of 1 : sMsg := cECF_Usa_Gerencial(iECF_Modelo,'a)No.do Laudo......: '+sPAF_Laudo); 2 : sMsg := cECF_Usa_Gerencial(iECF_Modelo,'b)Identificação da empresa desenvolvedora'); 3 : sMsg := cECF_Usa_Gerencial(iECF_Modelo,' b1)CNPJ..........: '+sPAF_CNPJ); 4 : sMsg := cECF_Usa_Gerencial(iECF_Modelo,' b2)Razão Social..: '+sPAF_Empresa); 5 : sMsg := cECF_Usa_Gerencial(iECF_Modelo,' b3)Endereço......: '+sPAF_Endereco); 6 : sMsg := cECF_Usa_Gerencial(iECF_Modelo,' b4)Telefone......: '+sPAF_Telefone); 7 : sMsg := cECF_Usa_Gerencial(iECF_Modelo,' b6)Contato.......: '+sPAF_Contato); 8 : sMsg := cECF_Usa_Gerencial(iECF_Modelo,'c)Identificação do PAF-ECF'); 9 : sMsg := cECF_Usa_Gerencial(iECF_Modelo,' c1)Nome Comercial: '+sPAF_Nome); 10: sMsg := cECF_Usa_Gerencial(iECF_Modelo,' c2)Versão........: '+sPAF_Versao); 11: sMsg := cECF_Usa_Gerencial(iECF_Modelo,' c3)Principal EXE.: '+sPAF_Executavel); 12: sMsg := cECF_Usa_Gerencial(iECF_Modelo,' '+sPAF_MD5); 13: begin sMsg := cECF_Usa_Gerencial(iECF_Modelo,' c4)Outros Arq/MD5: '); ArqTexto := ExtractFilePath('c:\sistema\paf\')+'ArqMD5.txt'; sPAF_MD5_Auxiliar := MD5Print(MD5File(ArqTexto)); AssignFile(F,ArqTexto); Reset( F ); while not Eoln( F ) do begin ReadLn(F,Entrada); sMsg := cECF_Usa_Gerencial(iECF_Modelo,' '+Entrada); end; CloseFile( F ); end; 14: sMsg := cECF_Usa_Gerencial(iECF_Modelo,' c5)Arquivo Texto....: '+ExtractFilePath('c:\sistema\paf\')+'ArqMD5.txt'); 15: sMsg := cECF_Usa_Gerencial(iECF_Modelo,' '+sPAF_MD5_Auxiliar); 16: sMsg := cECF_Usa_Gerencial(iECF_Modelo,' c6)Versao ER-PAF-ECF: '+sPAF_Versao_ER); 17: sMsg := cECF_Usa_Gerencial(iECF_Modelo,'d)'+sECF_Serial); end;
  2. Bom dia amigos! Alguém poderia me dar uma ajuda de como eu faço pra 'chamar' o txt que tem os exes e as dlls que fazem parte do meu sistema pra lançar no Relatório Gerencial de Identificação do Aplicativo? Grato.
  3. Bom dia Pessoal! Desculpe a minha falta de atenção... Mas resolvi esse problema com a dica de vcs. Como tinha falado antes, o meu conhecimento em SQL é fraquinho. Mas estou quase lá... Atcs, Rodrigo Machado
  4. ok Isaque, obrigado pela atenção... é que o meu conhecimento em SQL é fraquinho, sei apenas o básico mesmo, e estou tentando fazer o máximo pra deixar ele bem enxuto e simples, pois, dependo de vcs, poderiam até usar um exemplo com banco de dados nos fontes do projeto... acredito que ficaria bem mais simples para quem ainda não fez o sped. Pelo que eu vejo com algumas softhouses, eles estão exportando um txt que o sistema da contabilidade (sistema de terceiros) importa e monta o sped. Acho que isso se dá por falta de tempo dos programadores, visto que é muita coisa para se fazer hoje em dia. Mas valeu mesmo, vou tentar identificar aqui onde está o meu erro. Abs, Rodrigo Machado
  5. bom dia galera! Estou meio que enrolado com o meu sped, só que ele é o icms/ipi. No Bloco C, tem a parte do C190, que está me dando uma dorzinha de cabeça... Vou postar parte do meu código pra ver se vcs podem me ajudar a localizar o meu erro. Segue: qrcupom_item.close; qrcupom_item.sql.clear; qrcupom_item.sql.add('select'); qrcupom_item.sql.add('sum(base_calculo) as base_icms,'); qrcupom_item.sql.add('sum(valor_icms) as valor_icms,'); qrcupom_item.sql.add('sum(base_sub) as base_sub,'); qrcupom_item.sql.add('sum(icms_sub) as icms_sub,'); qrcupom_item.sql.add('sum(valor_ipi) as valor_ipi,'); qrcupom_item.sql.add('sum(total) as valor_total,'); qrcupom_item.sql.add('cst, cfop, icms'); qrcupom_item.sql.add('from c000062'); qrcupom_item.SQL.add('where codnota = '''+qrItens.fieldbyname('codigo').asstring+''''); qrcupom_item.sql.add('group by cfop'); qrcupom_item.SQL.add('order by cfop'); qrcupom_item.open; qrcupom_item.first; while not qrcupom_item.eof do begin with RegistroC190New do //Inicio Adicionar os Impostos: begin CST_ICMS := qrcupom_item.fieldbyname('cst').asstring; CFOP := qrcupom_item.fieldbyname('cfop').asstring; ALIQ_ICMS := StrToFloat(qrcupom_item.fieldbyname('icms').asstring); VL_OPR := 0; VL_BC_ICMS := StrToFloat(qrcupom_item.fieldbyname('base_icms').asstring); VL_ICMS := StrToFloat(qrcupom_item.fieldbyname('valor_icms').asstring); VL_BC_ICMS_ST := StrToFloat(qrcupom_item.fieldbyname('base_sub').asstring); VL_ICMS_ST := StrToFloat(qrcupom_item.fieldbyname('icms_sub').asstring); VL_RED_BC := 0; VL_IPI := StrToFloat(qrcupom_item.fieldbyname('valor_ipi').asstring); COD_OBS := '000'; qrcupom_item.next; end; end; Isso eu faço logo depois do C170, mas pelo que vi, ele não está me filtrando corretamente... não sei se erro de estrutura do sql ou na forma de fazê-lo. Se alguém puder me ajudar, fico grato. Atcs, Rodrigo Machado [editado] "Lembre-se de usar a tag code ao postar um código" - EMBarbosa
  6. Boa tarde rodnei! vc está usando o demo do RecuperarXML que vai junto com o componente? Com a ajuda do italojjr, dei uma melhorada no ACBrHTMLtoXML.pas. Ele gera um XML com a NFe na versão 1.10. Mas quando a NFe está na versão 2.0, ele não gera o nome do XML correto, falta o código da UF, nem gera os dados do emitente, nem os dados dos pordutos, já que na questão dos produtos o layout do HTML da sefaz mudou. Se alguém pudesse nos ajudar a concluir esse ACBrHTMLtoXML.pas seria de grande ajuda para muitos programadores, visto que esse processo é "uma mão na roda" para nossos clientes. Atcs, Rodrigo Machado
  7. Ah sim! entendi Fernando! Muito obrigado. Agora acho que avanço um pouco nesse projeto meu aqui. Atcs, Rodrigo Machado
  8. Caro lampada! Aos poucos estou conseguindo gerar o meu sped, mas só uma dúvida que ficou... no Registro 0150, o componente só me tras um registro, ou seja, eu executo o SQL abaixo: // Clientes with Registro0150New do begin periodo := ' DATA_ULTIMACOMPRA >= :xDatai and DATA_ULTIMACOMPRA <= :xDataf '; query.Close; query.sql.clear; query.sql.add('select * from c000007 where '+ periodo); query.Params[0].asdatetime := ed_data_ini.date; query.Params[1].asdatetime := ed_data_fim.date; query.Active := True; query.Open; if query.RecordCount > 0 then begin query.first; while not query.eof do begin COD_PART := query.fieldbyname('codigo').asstring; NOME := query.fieldbyname('nome').asstring; COD_PAIS := '001'; if Length (SN(query.fieldbyname('cpf').asstring)) = 14 then begin CNPJ := SN(query.fieldbyname('cpf').asstring); CPF := ''; end else if Length (SN(query.fieldbyname('cpf').asstring)) = 11 then begin CNPJ := ''; CPF := SN(query.fieldbyname('cpf').asstring); end; IE := query.fieldbyname('rg').asstring; COD_MUN := StrToInt(query.fieldbyname('cod_municipio_ibge').asstring); SUFRAMA := ''; ENDERECO := query.fieldbyname('endereco').asstring; NUM := query.fieldbyname('numero').asstring; COMPL := query.fieldbyname('complemento').asstring; BAIRRO := query.fieldbyname('bairro').asstring; query.next; end; end; end; Mas ele só me traz o 1º registro da tabela que está nesse SQL. Tem alguma configuração que seja feita no componente, pois estou usando como base o demo que vem na pasta do ACBr. Grato, Rodrigo Machado
  9. Bom dia Lampada! Obrigado pela ajuda. Estou tendo só uns problemas de '' is not valid integer value, mesmo tendo os dados na minha tabela preenchidos. Se puder me ajudar, estou fazendo assim: procedure Tfrmspedfiscal.GerarDadosBloco(pBloco: String); var Int1, Int2, Notas, iAno, iCFinalidade, iPerfil, iAtividade : Integer; aTotalICMS : Double; begin aTotalICMS := 0; iAno := StrToInt(eAno.Text); iCFinalidade := tCFinalidade.ItemIndex; iPerfil := tPerfil.ItemIndex; iAtividade := tAtividade.ItemIndex; if pBloco = '0' then begin with ACBrSpedFiscal1.Bloco_0 do begin // informações da Empresa with Registro0000New do begin case iAno of 2009: begin COD_VER := vlVersao101; end; 2010: begin COD_VER := vlVersao102; end; 2011: begin COD_VER := vlVersao103; end; end; case iCFinalidade of 0: begin COD_FIN := raOriginal; end; 1: begin COD_FIN := raSubstituto; end; end; NOME := frmmodulo.qremitente.fieldbyname('FILIAL').AsString; CNPJ := SN(frmmodulo.qremitente.fieldbyname('CNPJ').AsString); CPF := '01295327465'; // Deve ser uma informação valida UF := frmmodulo.qremitente.fieldbyname('UF').AsString; IE := frmmodulo.qremitente.fieldbyname('IE').AsString; COD_MUN := StrToInt(frmmodulo.qremitente.fieldbyname('COD_MUNICIPIO_IBGE').AsString); IM := frmmodulo.qremitente.fieldbyname('INSC_MUNICIPAL').AsString; SUFRAMA := eSuframa.Text; case iPerfil of 0: begin IND_PERFIL := pfPerfilA; end; 1: begin IND_PERFIL := pfPerfilB; end; 2: begin IND_PERFIL := pfPerfilC; end; end; case iAtividade of 0: begin IND_ATIV := atIndustrial; end; 1: begin IND_ATIV := atOutros; end; end; end; // informações complementares da Empresa with Registro0001New do begin IND_MOV := imComDados; with Registro0005New do begin FANTASIA := frmmodulo.qremitente.fieldbyname('FANTASIA').AsString; CEP := SN(frmmodulo.qremitente.fieldbyname('CEP').AsString); ENDERECO := frmmodulo.qremitente.fieldbyname('ENDERECO').AsString; NUM := frmmodulo.qremitente.fieldbyname('NUMERO').AsString; COMPL := frmmodulo.qremitente.fieldbyname('COMPLEMENTO').AsString; BAIRRO := frmmodulo.qremitente.fieldbyname('BAIRRO').AsString; FONE := SN(frmmodulo.qremitente.fieldbyname('TELEFONE').AsString); FAX := SN(frmmodulo.qremitente.fieldbyname('FAZ').AsString); EMAIL := eEmail.Text; end; // informações da contabilidade. with Registro0100New do begin NOME := frmmodulo.qremitente.fieldbyname('CONTADOR_NOME').AsString; CPF := SN(frmmodulo.qremitente.fieldbyname('CONTADOR_CPF').AsString); // Deve ser uma informação valida CRC := SN(frmmodulo.qremitente.fieldbyname('CONTADOR_CRC').AsString); CNPJ := SN(frmmodulo.qremitente.fieldbyname('CONTADOR_CNPJ').AsString); CEP := SN(frmmodulo.qremitente.fieldbyname('CONTADOR_CEP').AsString); ENDERECO := frmmodulo.qremitente.fieldbyname('CONTADOR_ENDERECO').AsString; NUM := frmmodulo.qremitente.fieldbyname('CONTADOR_NUMERO').AsString; COMPL := frmmodulo.qremitente.fieldbyname('CONTADOR_COMPLEMENTO').AsString; BAIRRO := frmmodulo.qremitente.fieldbyname('CONTADOR_BAIRRO').AsString; FONE := SN(frmmodulo.qremitente.fieldbyname('CONTADOR_FONE').AsString); FAX := SN(frmmodulo.qremitente.fieldbyname('CONTADOR_FAX').AsString); EMAIL := frmmodulo.qremitente.fieldbyname('CONTADOR_EMAIL').AsString; COD_MUN := frmmodulo.qremitente.fieldbyname('CONTADOR_COD_MUNICIPIO').AsInteger; end; (...) end;
  10. Boa tarde! Será que seria possível de alguém disponibilizar o sped icms/ipi com um banco de dados pra exemplo. Não sei se sou apenas eu mas pelo demo, ficou fácil de montar os registros que tem apenas uma informação, como o nome da empresa, cnpj... mas para campos que possuem vários valores que eu tenho a dúvida. Por exemplo aqui: with Registro0150New do begin COD_PART := '000001'; NOME := 'RAZAO SOCIAL DO CLIENTE'; COD_PAIS := '001'; CNPJ := '12345678000123'; CPF := ''; IE := ''; COD_MUN := 1; SUFRAMA := ''; ENDERECO := 'ENDERECO'; NUM := ''; COMPL := 'COMPL'; BAIRRO := 'BAIRRO'; end; Como eu poderia fazer pra ele puxar os cadastros da minha tabela? Grato, Rodrigo Machado
  11. Pessoal, boa tarde! Estive olhando o ACBrHTMLtoXML.pas no RecuperarXML e vi algumas falhas, como no CNPJ do emitente e do Destinatário, como também o Estado, cidade e código de municipio que não estavam sendos gerados pelo demo. Arrumei também a parte da trasnportadora. A unica coisa que está faltando agora é pra colocar o encerramento do XML, com o Motivo, Digiest e o Protocolo de Autorização. Essa parte que estou com duvidas. Tentei fazer o seguinte: NFE.procNFe.digVal := LerCampo(Grupo, 'Digest Value da NF-e'); NFe.procNFe.xMotivo := LerCampo(Grupo, 'Ocorrência'); NFe.procNFe.nProt := LerCampo(Grupo, 'Protocolo'); NFe.procNFe.dhRecbto := StrToDateDef(LerCampo(Grupo,'Data/Hora'),0); Mas sem sucesso. Alguém teria uma idéia de como fazer esses lançamentos? Se tiverem interesse, posso postar o ACBrHTMLtoXML.pas corrigido e gerando certinho. Abs, Rodrigo Machado
×
×
  • 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.