Clipper On Line • Ver Tópico - COMANDOS SINTEGRA - Funções de formatação.

COMANDOS SINTEGRA - Funções de formatação.

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

COMANDOS SINTEGRA - Funções de formatação.

Mensagempor rochinha » 01 Fev 2012 21:07

Amiguinhos,

Com alguns ajustes e criticas voces podem se ajudar.

Bastando passar para as funções as informações necessárias a cada registro elas devolvem uma string formatada.

Uso:

...
   SintegraInicia()
   ...
   ? SintegraRegistro10( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13 )
...


Codigo:
*********************************************************************************************************
*** FUNCOES COMPATIVEIS COM SINTEGRA PARA GERACAO DOS REGISTROS
Function SintegraInicia()
   ******************************************************************************************************
   local _Arquivo_ := "SINTEGRA.TXT"
   public aSintegraRegistros := {}
   public aSintegraRegistro10 := {}
   public aSintegraRegistro11 := {}
   public aSintegraRegistro50 := {}
   public aSintegraRegistro51 := {}
   public aSintegraRegistro53 := {}
   public aSintegraRegistro54 := {}
   public aSintegraRegistro74 := {}
   public aSintegraRegistro75 := {}
   public aSintegraRegistro90 := {}
   public aSintegraListagem   := {}
   nHandle := fCreate(_Arquivo_)
   fWrite( nHandle, "", LEN("") )
   fClose( nHandle )
   return .t.

Function SintegraRegistro10( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13 )
   local cCRLF := "chr(13)+chr(10)"
   *** Registro10 - Mestre do Estabelecimento - Indentifição do Estabelecimento informante
   *** |.|.............|.............|..................................|.............................|.|.........|.......|.......||||
   *** 1003449994000116626479717119  Nome do Contribuinte               SAO PAULO                     SP113371181820100718201007181311
   cTrailler := "10"
   cTrailler := cTrailler + StrFill( p02, 14, "0", "R" ) // (14 N) CGC/MF do estabelecimento informante   
   cTrailler := cTrailler + StrFill( p03, 14, " ", "R" ) // (14 X) Inscricao estadual do estabelecimento informante   
   cTrailler := cTrailler + StrFill( p04, 35, " ", "R" ) // (35 X) Nome comercial (razao Social/denominação) do contribuinte    
   cTrailler := cTrailler + StrFill( p05, 30, " ", "R" ) // (30 X) Município onde esta domiciliado o estabelecimento informante   
   cTrailler := cTrailler + StrFill( p06, 02, " ", "R" ) // (02 X) Unidade da Federacao referente ao Municipio   
   cTrailler := cTrailler + StrFill( p07, 10, " ", "R" ) // (10 N) Numero do fax do estabelecimento informante   
   cTrailler := cTrailler + StrFill( p08, 08, " ", "R" ) // (08 N) A data do inicio do periodo referente as informacoes prestadas   
   cTrailler := cTrailler + StrFill( p09, 08, " ", "R" ) // (08 N) A data do fim do periodo referente as informacoes prestadas   
   cTrailler := cTrailler + StrFill( p10, 01, " ", "R" ) // (01 X) Codigo da identificacao do Convenio utilizado no arquivo magnetico ICSM TAB(7.1)
   cTrailler := cTrailler + StrFill( p11, 01, " ", "R" ) // (01 X) Codigo da identificacao da natureza das operacoes informadas TAB(7.2)
   cTrailler := cTrailler + StrFill( p12, 01, " ", "R" ) // (01 X) Codigo da finalidade utilizado no arquivo magnetico
   cTrailler := cTrailler + StrFill( p13, 01, " ", "R" ) // (01 X) Codigo da Identificacao do Layout
   cTrailler := substr( cTrailler, 1, 126 ) + &(cCRLF)
   return cTrailler

Function SintegraRegistro11( p02,p03,p04,p05,p06,p07,p08 )
   local cCRLF := "chr(13)+chr(10)"
   *** Registro11 - Enderecamento e Localizacao
   *** |.|.................................|....|.....................|..............|.......|...........................|...........
   *** 11Logradouro                        00236Complemento           Bairro         41720050Nome do Contato             000713711818
   cTrailler := "11"
   cTrailler := cTrailler + StrFill( p02, 34, " ", "R" ) // (34 X) Logradouro
   cTrailler := cTrailler + StrFill( p03, 05, "0", "L" ) // (05 N) Número
   cTrailler := cTrailler + StrFill( p04, 22, " ", "R" ) // (22 X) Complemento
   cTrailler := cTrailler + StrFill( p05, 15, " ", "R" ) // (15 X) Bairro
   cTrailler := cTrailler + StrFill( p06, 08, "0", "L" ) // (08 N) Código de Endereçamento Postal
   cTrailler := cTrailler + StrFill( p07, 28, " ", "R" ) // (28 X) Nome do Contato   Pessoa responsável para contatos
   cTrailler := cTrailler + StrFill( p08, 12, "0", "R" ) // (14 N) Número dos telefones para contatos
   cTrailler := substr( cTrailler, 1, 126 ) + &(cCRLF)
   return cTrailler

Function SintegraRegistro50( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro50 - Registro de Total de Nota Fiscal   
   *** |.|.............|.............|.......|.|.|..|.....|...||............|............|............|............|............|...|
   *** 50238595070001097075793310062 21062010BA1A1  5013065111P000000005181900000000518190000000003627000000000000000000000000000700N
   *** 5034261131000144ISENTO        20050101BA011  0001235101P000000005181900000000518190000000008809000000000000000000000000001700N
   p03 := iif( len(alltrim(p02))<14, "ISENTO", p03 )
   cTrailler := "50"
   cTrailler := cTrailler + StrFill( p02, 14, "0", "L" ) // CGC/MF do remetente nas entradas e do destinatário nas saídas
   cTrailler := cTrailler + StrFill( p03, 14, " ", "R" ) // Inscrição Estadual do remetente nas entradas ou do destinatário nas saídas
   cTrailler := cTrailler + StrFill( p04, 08, " ", "R" ) // Data de emissão na saída ou de recebimento na entrada
   cTrailler := cTrailler + StrFill( p05, 02, " ", "R" ) // Sigla da unidade da Federação do remetente nas entradas ou do destinatário nas saídas
   cTrailler := cTrailler + StrFill( p06, 02, "0", "L" ) // Código do modelo da Nota Fiscal
   cTrailler := cTrailler + StrFill( p07, 03, " ", "R" ) // Série da nota fiscal
   cTrailler := cTrailler + StrFill( p08, 06, "0", "L" ) // Número da nota fiscal
   cTrailler := cTrailler + StrFill( p09, 04, "0", "L" ) // Código Fiscal de Operação e Prestação
   cTrailler := cTrailler + StrFill( p10, 01, " ", "R" ) // Emitente
   cTrailler := cTrailler + StrFill( p11, 13, "0", "L" ) // Valor total da nota fiscal (com 2 decimais)
   cTrailler := cTrailler + StrFill( p12, 13, "0", "L" ) // Base de Cálculo do ICMS (com 2 decimais)
   cTrailler := cTrailler + StrFill( p13, 13, "0", "L" ) // Montante do imposto (com 2 decimais)
   cTrailler := cTrailler + StrFill( p14, 13, "0", "L" ) // Valor amparado por isenção ou não incidência (com 2 decimais)
   cTrailler := cTrailler + StrFill( p15, 13, "0", "L" ) // Valor que não confira débito ou crédito do ICMS (com 2 decimais)
   cTrailler := cTrailler + StrFill( p16, 04, "0", "L" ) // Alíquota do ICMS (com 2 decimais)
   cTrailler := cTrailler + StrFill( p17, 01, " ", "R" ) // Situação do documento fiscal quanto ao cancelamento
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler
   
Function SintegraRegistro51( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro51 - Registros de Total de Nota Fiscal Quanto ao IPI
   ***
   p03 := iif( len(alltrim(p02))<14, "ISENTO", p03 )
   cTrailler := "51"
   cTrailler := cTrailler + StrFill( p02, 14, "0", "L" ) // CNPJ do remetente nas entradas e do destinatário nas saídas
   cTrailler := cTrailler + StrFill( p03, 14, " ", "R" ) // Inscrição Estadual do remetente nas entradas e do destinatário nas saídas
   cTrailler := cTrailler + StrFill( p04, 08, " ", "R" ) // Data de emissão na saída ou recebimento na entrada
   cTrailler := cTrailler + StrFill( p05, 02, " ", "R" ) // Sigla da unidade da Federação do remetente nas entradas e do destinatário nas saídas
   cTrailler := cTrailler + StrFill( p06, 03, " ", "R" ) // Série da nota fiscal
   cTrailler := cTrailler + StrFill( p07, 06, "0", "L" ) // Número da nota fiscal
   cTrailler := cTrailler + StrFill( p08, 04, " ", "R" ) // Código Fiscal de Operação e Prestação
                                                         // Emitente
   cTrailler := cTrailler + StrFill( p09, 13, "0", "L" ) // Valor total da nota fiscal (com 2 decimais)
   cTrailler := cTrailler + StrFill( p10, 13, "0", "L" ) // Montante do IPI (com 2 decimais)
   cTrailler := cTrailler + StrFill( p11, 13, "0", "L" ) // Valor amparado por isenção ou não incidência do IPI (com 2 decimais)
   cTrailler := cTrailler + StrFill( p12, 13, "0", "L" ) // Valor que não confira débito ou crédito do IPI (com 2 decimais)
   cTrailler := cTrailler + StrFill( p13, 20, " ", "R" ) // Brancos
   cTrailler := cTrailler + StrFill( p14, 01, " ", "R" ) // Situação do documento fiscal quanto ao cancelamento
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro53( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro53 - Registro de Total de Documento Fical  quanto a substituição tributária
   *** 5334261131000144ISENTO        20050101BA011  0000015111T000000005181900000000036270000000000000N1                             
   p03 := iif( len(alltrim(p02))<14, "ISENTO", p03 )
   cTrailler := "53"
   cTrailler := cTrailler + StrFill( p02, 14, "0", "L" ) // CNPJ do contribuinte Substituído/ contribuinte substituto/remetente da mercadoria/produto
   cTrailler := cTrailler + StrFill( p03, 14, " ", "R" ) // Inscrição Estadual do Contribuinte substituído
   cTrailler := cTrailler + StrFill( p04, 08, " ", "R" ) // Data de emissão na saída ou recebimento na entrada
   cTrailler := cTrailler + StrFill( p05, 02, " ", "R" ) // Sigla da unidade da Federação do contribuinte substituído
   cTrailler := cTrailler + StrFill( p06, 02, " ", "L" ) // Código do modelo da nota fiscal
   cTrailler := cTrailler + StrFill( p07, 03, " ", "R" ) // Série da nota fiscal
   cTrailler := cTrailler + StrFill( p08, 06, "0", "L" ) // Número da nota fiscal
   cTrailler := cTrailler + StrFill( p09, 04, " ", "R" ) // Código Fiscal de Operação e Prestação
   cTrailler := cTrailler + StrFill( p10, 01, " ", "R" ) // Emitente da Nota Fiscal (P-próprio/T-terceiros)
   cTrailler := cTrailler + StrFill( p11, 13, "0", "L" ) // Base de cálculo de retenção do ICMS (com 2 decimais)
   cTrailler := cTrailler + StrFill( p12, 13, "0", "L" ) // ICMS retido pelo substituto (com 2 decimais)
   cTrailler := cTrailler + StrFill( p13, 13, "0", "L" ) // Soma das despesas acessórias (frete, seguro e outras - com 2 decimais)
   cTrailler := cTrailler + StrFill( p14, 01, " ", "R" ) // Situação da Nota Fiscal
   cTrailler := cTrailler + StrFill( p15, 01, " ", "R" ) // Código que identifica o tipo da Antecipação Tributária
   cTrailler := cTrailler + StrFill( p16, 16, " ", "R" ) // Brancos
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro54( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro54 - Registro de Produto (Classificação Fiscal)
   *** 5434261131000144011  0001235101000001123           000000000010000000518190000000000000000000518190000000000000000000051811700
   cTrailler := "54"
   cTrailler := cTrailler + StrFill( p02, 14, " ", "R" ) // CNPJ do remetente nas entradas e do destinatário nas saídas
   cTrailler := cTrailler + StrFill( p03, 02, "0", "L" ) // Código do modelo da nota fiscal
   cTrailler := cTrailler + StrFill( p04, 03, "0", "L" ) // Série da nota fiscal
   cTrailler := cTrailler + StrFill( p05, 06, "0", "L" ) // Número da nota fiscal
   cTrailler := cTrailler + StrFill( p06, 04, " ", "R" ) // Código Fiscal de Operação e Prestação
   cTrailler := cTrailler + StrFill( p07, 03, " ", "R" ) // Código da Situação Tributária
   cTrailler := cTrailler + StrFill( p08, 03, "0", "L" ) // Número de ordem do item na nota fiscal
   cTrailler := cTrailler + StrFill( p09, 14, " ", "R" ) // Código do produto ou serviço  do informante
   cTrailler := cTrailler + StrFill( p10, 11, "0", "L" ) // Quantidade do produto (com 3 decimais)
   cTrailler := cTrailler + StrFill( p11, 12, "0", "L" ) // Valor bruto do produto (valor unitário multiplicado por quantidade) - com 2 decimais
   cTrailler := cTrailler + StrFill( p12, 12, "0", "L" ) // Valor do Desconto  Concedido no item (com 2 decimais)
   cTrailler := cTrailler + StrFill( p13, 12, "0", "L" ) // Base de cálculo do ICMS (com 2 decimais)
   cTrailler := cTrailler + StrFill( p14, 12, "0", "L" ) // Base de cálculo do ICMS de retenção na Substituição Tributária (com 2 decimais)
   cTrailler := cTrailler + StrFill( p15, 12, "0", "L" ) // Valor do IPI (com 2 decimais)
   cTrailler := cTrailler + StrFill( p16, 04, "0", "L" ) // Alíquota Utilizada no Cálculo do ICMS (com 2 decimais)
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler
   
Function SintegraRegistro55( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro55 - Registro de Guia Nacional de Recolhimento de Tributos Estaduais
   *** 55339276580001000625406080023 20050101BAMG00100011                   0000000000001200501011020051                             
   p03 := iif( len(alltrim(p02))<14, "ISENTO", p03 )
   cTrailler := "55"
   cTrailler := cTrailler + StrFill( p02, 14, "0", "L" ) // CNPJ do contribuinte Substituto tributário
   cTrailler := cTrailler + StrFill( p03, 14, " ", "R" ) // Inscrição Estadual na Unidade da Federação destinatária) do contribuinte substituto tributário
   cTrailler := cTrailler + StrFill( p04, 08, " ", "R" ) // Data do pagamento do documento de Arrecadação
   cTrailler := cTrailler + StrFill( p05, 02, " ", "R" ) // Sigla da unidade da Federação do contribuinte substituto tributário
   cTrailler := cTrailler + StrFill( p06, 02, " ", "R" ) // Sigla da unidade da Federação de destino (favorecida)
   cTrailler := cTrailler + StrFill( p07, 03, " ", "L" ) // Código do Banco onde foi Efetuado o recolhimento
   cTrailler := cTrailler + StrFill( p08, 04, "0", "L" ) // Agência onde foi efetuado o recolhimento
   cTrailler := cTrailler + StrFill( p09, 20, " ", "R" ) // Número de autenticação Bancária do documento de Arrecadação
   cTrailler := cTrailler + StrFill( p10, 13, "0", "L" ) // Valor recolhido (com 2 decimais)
   cTrailler := cTrailler + StrFill( p11, 08, " ", "R" ) // Data do vencimento do ICMS substituído
   cTrailler := cTrailler + StrFill( p12, 06, " ", "R" ) // Mês e ano referente à ocorrência do fato gerador, formato MMAAAA
   cTrailler := cTrailler + StrFill( p13, 30, " ", "R" ) // Número do Convênio ou Protocolo/Mercadoria   Preencher com o conteúdo Do campo 15 da GNRE
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro56( CNPJ_Adquirente, Modelo, Serie , Nro, CFOP, CST, Nro_Item, Cod_Produto_Servico, Tipo_Operacao, CNPJ_Concessionaria, Aliquota_IPI , Chassi, Brancos )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro56 - Este registro deverá ser composto pelas montadoras, concessionárias e importadoras, nas operações com veículos automotores novos
   *** 5634261131000144011  00000151110000011             133927658000100070012345678912345678                                       
   cTrailler := "56"
   cTrailler := cTrailler + StrFill( p02, , " ", "R" ) //
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro60M( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro60M - Registro de informação de operações/prestações realizadas com ECF, Indentificador do Equipamento
   *** 60M200501011                   0010200000100000200000100100000000000000020000000000000004                                     
   cTrailler := "60"
   cTrailler := cTrailler + StrFill( p02, 01, " ", "R" ) // Subtipo M
   cTrailler := cTrailler + StrFill( p03, 08, " ", "R" ) // Data de emissão dos documentos fiscais
   cTrailler := cTrailler + StrFill( p04, 20, " ", "R" ) // Número de série de fabricação do equipamento
   cTrailler := cTrailler + StrFill( p05, 03, " ", "R" ) // Número atribuído pelo estabelecimento ao equipamento
   cTrailler := cTrailler + StrFill( p06, 02, " ", "R" ) // Código do modelo do documento fiscal
   cTrailler := cTrailler + StrFill( p07, 06, "0", "L" ) // Número do primeiro documento fiscal emitido no dia (Número do Contador de Ordem de Operação - COO)
   cTrailler := cTrailler + StrFill( p08, 06, "0", "L" ) // Número do último documento fiscal emitido no dia (Número do Contador de Ordem de Operação - COO)
   cTrailler := cTrailler + StrFill( p09, 06, "0", "R" ) // Número do Contador de Redução Z (CRZ)
   cTrailler := cTrailler + StrFill( p10, 03, "0", "L" ) // Valor acumulado no Contador de Reinício de Operação (CRO)
   cTrailler := cTrailler + StrFill( p11, 16, "0", "L" ) // Valor acumulado no totalizador de Venda Bruta
   cTrailler := cTrailler + StrFill( p12, 16, "0", "L" ) // Valor acumulado no Totalizador Geral
   cTrailler := cTrailler + StrFill( p13, 37, " ", "R" ) // Brancos
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro60A( p02,p03,p04,p05,p06,p07 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro60A - Registro de informação de operações/prestações realizadas com ECF, Indentificador de cada situação tributária no final do dia de cada equipamento emissor de cupom fiscal.
   *** 60A200501011                   0700000000000001                                                                               
   cTrailler := "60"
   cTrailler := cTrailler + StrFill( p02, 01, " ", "R" ) // Subtipo   A
   cTrailler := cTrailler + StrFill( p03, 08, " ", "R" ) // Data de emissão dos documentos fiscais
   cTrailler := cTrailler + StrFill( p04, 20, " ", "R" ) // Número de série de fabricação do equipamento
   cTrailler := cTrailler + StrFill( p05, 04, " ", "R" ) // Identificador da Situação Tributária / Alíquota do ICMS
   cTrailler := cTrailler + StrFill( p06, 12, "0", "L" ) // Valor acumulado no final do dia no totalizador parcial da situação tributária / alíquota indicada no campo 06 (com 2 decimais)
   cTrailler := cTrailler + StrFill( p07, 79, " ", "R" ) // Brancos   
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro60D( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro60D – (Resumo Diario) Registro de produto ou serviço registrado em documento fiscal emitido por Terminal Ponto de Venda (PDV) ou equipamento Emissor de Cupom Fiscal (ECF)
   *** 60D200501011                   1             0000000000001000000000000000100000000000017000   0000000000017                   
   cTrailler := "60"
   cTrailler := cTrailler + StrFill( p02, 01, " ", "R" ) // Subtipo D
   cTrailler := cTrailler + StrFill( p03, 08, " ", "R" ) // Data de emissão dos documentos fiscais
   cTrailler := cTrailler + StrFill( p04, 20, " ", "R" ) // Número de série de fabricação do equipamento
   cTrailler := cTrailler + StrFill( p05, 14, " ", "R" ) // Código do produto ou serviço  do informante
   cTrailler := cTrailler + StrFill( p06, 13, "0", "L" ) // Quantidade comercializada do produto no dia (com 3 decimais)
   cTrailler := cTrailler + StrFill( p07, 16, "0", "L" ) // valor acumulado do produto no dia (com 2 decimais)
   cTrailler := cTrailler + StrFill( p08, 16, "0", "L" ) // valor acumulado no dia (com 2 decimais)
   cTrailler := cTrailler + StrFill( p09, 04, " ", "R" ) // Identificador da Situação Tributária / Alíquota do ICMS (com 2 decimais)
   cTrailler := cTrailler + StrFill( p10, 13, "0", "L" ) // Montante do imposto
   cTrailler := cTrailler + StrFill( p11, 19, " ", "R" ) // Brancos   
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro60I( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro60I - Item do documento fiscal documento fiscal emitido por Terminal Ponto de Venda (PDV) ou equipamento Emissor de Cupom Fiscal (ECF)
   *** 60I200501011                   1A0000010011             000000000000100000000000010000000017000   000000000017               
   cTrailler := "60"
   cTrailler := cTrailler + StrFill( p02, 01, " ", "R" ) // Subtipo I
   cTrailler := cTrailler + StrFill( p03, 08, "0", "L" ) // Data de emissão do documento fiscal
   cTrailler := cTrailler + StrFill( p04, 20, " ", "R" ) // Número de série de fabricação do equipamento
   cTrailler := cTrailler + StrFill( p05, 02, " ", "R" ) // Código do modelo do documento fiscal
   cTrailler := cTrailler + StrFill( p06, 06, "0", "L" ) // Número do Contador de Ordem de Operação (COO)
   cTrailler := cTrailler + StrFill( p07, 03, "0", "L" ) // Número de Ordem do item no Documento Fiscal
   cTrailler := cTrailler + StrFill( p08, 14, " ", "R" ) // Código do produto ou serviço  do informante
   cTrailler := cTrailler + StrFill( p09, 13, "0", "L" ) // Quantidade do Produto   (com 3 decimais)
   cTrailler := cTrailler + StrFill( p10, 13, "0", "L" ) // Valor Unitário do produto (com 3 decimais)
   cTrailler := cTrailler + StrFill( p11, 12, "0", "LR" ) // Base de Cálculo do ICMS do Item (com 2 decimais)
   cTrailler := cTrailler + StrFill( p12, 04, " ", "R" ) // Identificador da Situação Tributária / Alíquota do ICMS (com 2 decimais)
   cTrailler := cTrailler + StrFill( p13, 12, "0", "L" ) // Montante do imposto
   cTrailler := cTrailler + StrFill( p14, 16, " ", "R" ) // Brancos   
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro60R( p02,p03,p04,p05,p06,p07,p08,p09 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro60R - (Resumo Mensal) Registro de informação de operações/prestações realizadas com ECF, Registro de Produto ou serviço processado em equipamento emissor de cupom fiscal
   *** 60R1020051             0000000000001000000000000000100000000000000017,00                                                     
   cTrailler := "60"
   cTrailler := cTrailler + StrFill( p02, 01, " ", "R" ) // Subtipo R
   cTrailler := cTrailler + StrFill( p03, 06, "0", "L" ) // Mês e Ano de emissão dos documentos fiscais
   cTrailler := cTrailler + StrFill( p04, 14, " ", "R" ) // Código do produto ou serviço  do informante
   cTrailler := cTrailler + StrFill( p05, 13, "0", "L" ) // Quantidade do produto no mês (com 3 decimais)
   cTrailler := cTrailler + StrFill( p06, 16, "0", "L" ) // valor acumulado do produto no mês (com 2 decimais)
   cTrailler := cTrailler + StrFill( p07, 16, "0", "L" ) // valor acumulado no mês (com 2 decimais)
   cTrailler := cTrailler + StrFill( p08, 04, " ", "R" ) // Identificador da Situação Tributária / Alíquota do ICMS (com 2 decimais)
   cTrailler := cTrailler + StrFill( p09, 54, " ", "R" ) // Brancos   
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro61( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro61 - Para Documentos quando não emitidos por ECF
   *** 61                            20050101021    00000100000200000000000010000000000001000000000007000000000000000000000000000700
   cTrailler := "61"
   cTrailler := cTrailler + StrFill( p02, 14, " ", "R" ) // Brancos      14   X
   cTrailler := cTrailler + StrFill( p03, 14, " ", "R" ) // Brancos      14   X
   cTrailler := cTrailler + StrFill( p04, 08, "0", "L" ) // Data de emissão do(s) documento(s) fiscal(is)   8   N
   cTrailler := cTrailler + StrFill( p05, 02, "0", "L" ) // Modelo do(s) documento(s) fiscal(is)   2   N
   cTrailler := cTrailler + StrFill( p06, 03, " ", "R" ) // Série do(s) documento(s) fiscal(is)   3   X
   cTrailler := cTrailler + StrFill( p07, 02, " ", "R" ) // Subsérie do(s) documento(s) fiscal(is)   2   X
   cTrailler := cTrailler + StrFill( p08, 06, " ", "R" ) // Número do primeiro documento fiscal emitido no dia do mesmo modelo, série e subsérie   6   N
   cTrailler := cTrailler + StrFill( p09, 06, "0", "L" ) // Número do último documento fiscal emitido no dia do mesmo modelo, série e subsérie   6   N
   cTrailler := cTrailler + StrFill( p10, 13, "0", "L" ) // Valor total do(s) documento(s) fiscal(is)/Movimento diário (com 2 decimais)   13   N
   cTrailler := cTrailler + StrFill( p11, 13, "0", "L" ) // Base de cálculo do(s) documento(s) fiscal(is)/Total diário (com 2 decimais)   13   N
   cTrailler := cTrailler + StrFill( p12, 12, "0", "L" ) // Valor do Montante do Imposto/Total diário (com 2 decimais)   12   N
   cTrailler := cTrailler + StrFill( p13, 13, "0", "L" ) // Valor amparado por isenção ou não-incidência/Total diário (com 2 decimais)   13   N
   cTrailler := cTrailler + StrFill( p14, 13, "0", "L" ) // Valor que não confira débito ou crédito de ICMS/Total diário   (com 2 decimais)   13   N
   cTrailler := cTrailler + StrFill( p15, 04, "0", "L" ) // Alíquota do ICMS  (com 2 decimais)   4   N
   cTrailler := cTrailler + StrFill( p16, 01, " ", "R" ) // Branco   1   X
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro61R( p02,p03,p04,p05,p06,p07,p08,p09 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro61R - (Resumo Mensal por Item) Registro de mercadoria/produto ou serviço comercializados através de Nota Fiscal de Produtor ou Nota Fiscal de Venda a Consumidor não emitida por ECF
   *** 61R1020051             0000000000001000000000000000100000000000000010700                                                     
   cTrailler := "61"
   cTrailler := cTrailler + StrFill( p02, 01, " ", "R" ) // Mestre/Analítico/Resumo   R
   cTrailler := cTrailler + StrFill( p03, 06, "0", "L" ) // Mês e Ano de emissão dos documentos fiscais
   cTrailler := cTrailler + StrFill( p04, 14, " ", "R" ) // Código do produto do informante
   cTrailler := cTrailler + StrFill( p05, 13, "0", "L" ) // Quantidade do produto acumulada vendida no mês (com 3 decimais)
   cTrailler := cTrailler + StrFill( p06, 16, "0", "L" ) // Valor bruto do produto - valor acumulado da venda do produto no mês (com 2 decimais)
   cTrailler := cTrailler + StrFill( p07, 16, "0", "L" ) // Base de cálculo do ICMS do valor acumulado no mês (com 2 decimais)
   cTrailler := cTrailler + StrFill( p08, 04, "0", "L" ) // Alíquota do ICMS do produto
   cTrailler := cTrailler + StrFill( p09, 54, " ", "R" ) // Preencher posições com espaços em branco
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro70( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro70 - Registro de Total quanto ao ICMS
   *** 7034261131000144ISENTO        20050101BA011  00000105110000000000001000000000000010000000000000000000000000000000000000000001N
   p03 := iif( len(alltrim(p02))<14, "ISENTO", p03 )
   cTrailler := "70"
   cTrailler := cTrailler + StrFill( p02, 14, "0", "L" ) // CNPJ do emitente do documento, no caso de aquisição de serviço; CNPJ do tomador do serviço, no caso de emissão do documento
   cTrailler := cTrailler + StrFill( p03, 14, " ", "R" ) // Inscrição Estadual do emitente do documento, no caso de aquisição de serviço; Inscrição Estadual do tomador do serviço, no caso de emissão do documento
   cTrailler := cTrailler + StrFill( p04, 08, " ", "R" ) // Data de emissão para o prestador, ou data de utilização do serviço para o tomador
   cTrailler := cTrailler + StrFill( p05, 02, " ", "R" ) // Sigla da unidade da Federação do emitente do documento, no caso de aquisição de serviço, ou do tomador do serviço, no caso de emissão do documento
   cTrailler := cTrailler + StrFill( p06, 02, "0", "L" ) // Código do modelo do documento fiscal
   cTrailler := cTrailler + StrFill( p07, 01, " ", "R" ) // Série do documento
   cTrailler := cTrailler + StrFill( p08, 02, " ", "R" ) // Subsérie do documento
   cTrailler := cTrailler + StrFill( p09, 06, "0", "L" ) // Número do documento   
   cTrailler := cTrailler + StrFill( p10, 04, "0", "L" ) // Um registro para cada CFOP do documento fiscal
   cTrailler := cTrailler + StrFill( p11, 13, "0", "L" ) // Valor total do documento fiscal (com 2 decimais)
   cTrailler := cTrailler + StrFill( p12, 14, "0", "L" ) // Base de cálculo do ICMS (com duas decimais)
   cTrailler := cTrailler + StrFill( p13, 14, "0", "L" ) // Montante do imposto (com duas decimais)
   cTrailler := cTrailler + StrFill( p14, 14, "0", "L" ) // Valor amparado por isenção ou não incidência (com duas decimais)
   cTrailler := cTrailler + StrFill( p15, 14, "0", "L" ) // Valor que não confira débito ou crédito do ICMS (com duas decimais)
   cTrailler := cTrailler + StrFill( p16, 01, "0", "L" ) // CIF/FOB Modalidade do frete – 1 – CIF ou 2 – FOB
   cTrailler := cTrailler + StrFill( p17, 01, " ", "R" ) // Situação do documento fiscal quanto ao cancelamento   
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro71( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro71 - Registro de Informações de Carga Transportada
   *** 7133927658000100ISENTO        20050101BA011  000001BA34261131000144ISENTO        20050101011  00000100000000000001           
   p03 := iif( len(alltrim(p02))<14, "ISENTO", p03 )
   cTrailler := "71"
   cTrailler := cTrailler + StrFill( p02, 14, "0", "L" ) // CNPJ do tomador do serviço
   cTrailler := cTrailler + StrFill( p03, 14, " ", "R" ) // Inscrição estadual do tomador do serviço
   cTrailler := cTrailler + StrFill( p04, 08, "0", "L" ) // Data de emissão do conhecimento
   cTrailler := cTrailler + StrFill( p05, 02, " ", "R" ) // Unidade da Federação do tomador do serviço
   cTrailler := cTrailler + StrFill( p06, 02, " ", "R" ) // Modelo do conhecimento
   cTrailler := cTrailler + StrFill( p07, 01, " ", "R" ) // Série do conhecimento
   cTrailler := cTrailler + StrFill( p08, 02, " ", "R" ) // Subsérie do conhecimento
   cTrailler := cTrailler + StrFill( p09, 06, "0", "L" ) // Número do conhecimento
   cTrailler := cTrailler + StrFill( p10, 02, " ", "R" ) // Unidade da Federação do remetente, se o destinatário for o tomador ou unidade da Federação do destinatário, se o remetente for o tomador
   cTrailler := cTrailler + StrFill( p11, 14, "0", "L" ) // CNPJ do remetente, se o destinatário for o tomador ou CNPJ do destinatário, se o remetente for o tomador
   cTrailler := cTrailler + StrFill( p12, 14, " ", "R" ) // Inscrição Estadual do remetente, se o destinatário for o tomador ou Inscrição Estadual do destinatário, se o remetente for o tomador
   cTrailler := cTrailler + StrFill( p13, 08, "0", "L" ) // Data de emissão da nota fiscal que acoberta a carga transportada
   cTrailler := cTrailler + StrFill( p14, 02, " ", "R" ) // Modelo da nota fiscal que acoberta a carga transportada
   cTrailler := cTrailler + StrFill( p15, 03, " ", "R" ) // Série da nota fiscal que acoberta a carga transportada
   cTrailler := cTrailler + StrFill( p16, 06, "0", "L" ) // Número da nota fiscal que acoberta a carga transportada
   cTrailler := cTrailler + StrFill( p17, 14, "0", "L" ) // Valor total da nota fiscal que acoberta a carga transportada (com duas decimais)
   cTrailler := cTrailler + StrFill( p18, 12, " ", "R" ) // Brancos   
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro74( p02,p03,p04,p05,p06,p07,p08,p09,p10 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro74 - Registro de Inventário
   *** 74200501011             00000000000010000000000001134261131000144              BA                                             
   cTrailler := "74"
   cTrailler := cTrailler + StrFill( p02, 08, " ", "R" ) // Data do Inventário no formato AAAAMMDD
   cTrailler := cTrailler + StrFill( p03, 14, " ", "R" ) // Código do produto do informante
   cTrailler := cTrailler + StrFill( p04, 13, "0", "L" ) // Quantidade do produto (com 3 decimais)
   cTrailler := cTrailler + StrFill( p05, 13, "0", "L" ) // Valor bruto do produto (valor unitário multiplicado por quantidade) – com 2 decimais
   cTrailler := cTrailler + StrFill( p06, 01, " ", "R" ) // Código de Posse das Mercadorias Inventariadas, conforme tabela abaixo
   cTrailler := cTrailler + StrFill( p07, 14, "0", "L" ) // CNPJ do Possuidor da Mercadoria de propriedade do Informante, ou do proprietário da Mercadoria em poder do Informante
   cTrailler := cTrailler + StrFill( p08, 14, " ", "R" ) // Inscrição Estadual do Possuidor da Mercadoria de propriedade do Informante, ou do proprietário da Mercadoria em poder do Informante   
   cTrailler := cTrailler + StrFill( p09, 02, " ", "R" ) // Unidade da Federação do Possuidor da Mercadoria de propriedade do Informante, ou do proprietário da Mercadoria em poder do Informante
   cTrailler := cTrailler + StrFill( p10, 45, " ", "R" ) // Brancos   
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro75( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro75 - Registro de Código de Produto e Serviço
   *** 752005010120050131123                   Descrição de Produto                                 CX    000001700000000000000000000
   cTrailler := "75"
   cTrailler := cTrailler + StrFill( p02, 08, "0", "L" ) // Data inicial do período de validade das informações   
   cTrailler := cTrailler + StrFill( p03, 08, "0", "L" ) // Data final do período de validade das informações
   cTrailler := cTrailler + StrFill( p04, 14, " ", "R" ) // Código do produto ou serviço utilizado pelo contribuinte
   cTrailler := cTrailler + StrFill( p05, 08, "0", "L" ) // Codificação da Nomenclatura Comum do Mercosul
   cTrailler := cTrailler + StrFill( p06, 53, " ", "R" ) // Descrição do produto ou serviço
   cTrailler := cTrailler + StrFill( p07, 06, " ", "R" ) // Unidade de medida de comercialização do produto (un, kg, mt, m3, sc, frd, kwh, etc..)
   cTrailler := cTrailler + StrFill( p08, 05, "0", "L" ) // Alíquota do IPI do produto
   cTrailler := cTrailler + StrFill( p09, 04, "0", "L" ) // Alíquota do ICMS aplicável a mercadoria ou serviço nas operações ou prestações internas ou naquelas que se tiverem iniciado no exterior
   cTrailler := cTrailler + StrFill( p10, 05, "0", "L" ) // Redução na base de cálculo do ICMS, nas operações internas
   cTrailler := cTrailler + StrFill( p11, 13, "0", "L" ) // Base de Cálculo do ICMS de substituição tributária (com 2 decimais)
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro76( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro76 - Este registro deverá ser composto por contribuintes do ICMS, prestadores de serviço de comunicação e telecomunicação.
   *** 7634261131000144ISENTO        221   00000000015111120050101BA0000000051819000000005181900000000362700000000000000000000000070N
   p03 := iif( len(alltrim(p02))<14, "ISENTO", p03 )
   cTrailler := "76"
   cTrailler := cTrailler + StrFill( p02, 14, "0", "L" ) // CNPJ/CPF do tomador do serviço
   cTrailler := cTrailler + StrFill( p03, 14, " ", "R" ) // Inscrição Estadual do do tomador do serviço
   cTrailler := cTrailler + StrFill( p04, 02, "0", "L" ) // Código do modelo da nota fiscal
   cTrailler := cTrailler + StrFill( p05, 02, " ", "R" ) // Série da nota fiscal
   cTrailler := cTrailler + StrFill( p06, 02, " ", "R" ) // Subsérie da nota fiscal
   cTrailler := cTrailler + StrFill( p07, 10, "0", "L" ) // Número da nota fiscal
   cTrailler := cTrailler + StrFill( p08, 04, "0", "L" ) // Código Fiscal de Operação e Prestação
   cTrailler := cTrailler + StrFill( p09, 01, "0", "L" ) // Código da identificação do tipo de receita, conforme tabela abaixo
   cTrailler := cTrailler + StrFill( p10, 08, "0", "L" ) // Data de emissão na saída ou de Recebimento na entrada
   cTrailler := cTrailler + StrFill( p11, 02, " ", "R" ) // Sigla da Unidade da Federação do Remetente nas entradas e do destinatário nas saídas
   cTrailler := cTrailler + StrFill( p12, 13, "0", "L" ) // Valor total da nota fiscal(com 2 decimais)
   cTrailler := cTrailler + StrFill( p13, 13, "0", "L" ) // Base de Cálculo do ICMS (com 2 decimais)
   cTrailler := cTrailler + StrFill( p14, 12, "0", "L" ) // Montante do imposto(com 2 decimais)
   cTrailler := cTrailler + StrFill( p15, 12, "0", "L" ) // Valor amparado por isenção ou não- Incidência (com 2 decimais)
   cTrailler := cTrailler + StrFill( p16, 12, "0", "L" ) // Valor que não confira débito ou Crédito do ICMS (com 2 decimais)
   cTrailler := cTrailler + StrFill( p17, 02, "0", "L" ) // Alíquota do ICMS (valor inteiro)
   cTrailler := cTrailler + StrFill( p18, 01, " ", "R" ) // Situação da nota fiscal quanto ao Cancelamento
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro77( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro77 - Este registro deverá ser composto por contribuintes do ICMS, prestadores de serviço de comunicação e telecomunicação
   *** 7734261131000144221   000000000151111001123        000000000000100000005181900000000000000000005181970342611310001440000000123
   cTrailler := "77"
   cTrailler := cTrailler + StrFill( p02, 14, "0", "L" ) // CNPJ/CPF do tomador do serviço
   cTrailler := cTrailler + StrFill( p03, 02, "0", "L" ) // Código do modelo da nota fiscal   
   cTrailler := cTrailler + StrFill( p04, 02, " ", "R" ) // Série da nota fiscal
   cTrailler := cTrailler + StrFill( p05, 02, " ", "R" ) // Subsérie da nota fiscal   
   cTrailler := cTrailler + StrFill( p06, 10, "0", "L" ) // Número da nota fiscal
   cTrailler := cTrailler + StrFill( p07, 04, "0", "L" ) // Código Fiscal de Operação e Prestação
   cTrailler := cTrailler + StrFill( p08, 01, "0", "L" ) // Código da identificação do tipo de receita, conforme tabela abaixo
   cTrailler := cTrailler + StrFill( p09, 03, "0", "L" ) // Número de ordem do item na nota fiscal
   cTrailler := cTrailler + StrFill( p10, 11, " ", "R" ) // Código do serviço do informante
   cTrailler := cTrailler + StrFill( p11, 13, "0", "L" ) // Quantidade do serviço (com 3 decimais)
   cTrailler := cTrailler + StrFill( p12, 12, "0", "L" ) // Valor bruto do serviço (valor unitário multiplicado por Quantidade) – com 2 decimais
   cTrailler := cTrailler + StrFill( p13, 12, "0", "L" ) // Valor do Desconto  Concedido no item (com 2 decimais)
   cTrailler := cTrailler + StrFill( p14, 12, "0", "L" ) // Base de cálculo do ICMS  (com 2 decimais)
   cTrailler := cTrailler + StrFill( p15, 02, "0", "L" ) // Alíquota Utilizada no Cálculo do ICMS (valor inteiro)
   cTrailler := cTrailler + StrFill( p16, 14, "0", "L" ) // CNPJ/MF da operadora de destino
   cTrailler := cTrailler + StrFill( p17, 10, "0", "L" ) // Código que designa o usuário final na rede do informante
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro85( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro85 -  Este registro se destina a informar dados relativos à exportação, obrigatório para as  Empresas Comerciais Exportadoras e  "Trading Companies"
   *** 850000000000101010620S000000000123010106201234            0101062012024900000654010106200000010101062001001                   
   cTrailler := "85"
   cTrailler := cTrailler + StrFill( p02, 11, "0", "L" ) // Numero da declaração de Exportação
   cTrailler := cTrailler + StrFill( p03, 08, "0", "L" ) // Data da Declaração de Exportação (AAAAMMDD)   
   cTrailler := cTrailler + StrFill( p04, 01, " ", "R" ) // Informação quanto à averbação do Despacho de Exportação. (Preencher  com “S”- SIM ou “N” – Não)
   cTrailler := cTrailler + StrFill( p05, 12, "0", "L" ) // Nº do registro de Exportação
   cTrailler := cTrailler + StrFill( p06, 08, "0", "L" ) // Data do Registro de Exportação (AAAAMMDD)
   cTrailler := cTrailler + StrFill( p07, 16, " ", "R" ) // Nº do conhecimento de embarque
   cTrailler := cTrailler + StrFill( p08, 08, "0", "L" ) // Data do conhecimento de embarque (AAAAMMDD)
   cTrailler := cTrailler + StrFill( p09, 02, "0", "L" ) // Informação do tipo de conhecimento de transporte (Preencher conforme tabela de tipo de documento de carga do SISCOMEX - anexa)
   cTrailler := cTrailler + StrFill( p10, 04, "0", "L" ) // Código do país de destino da mercadoria (Preencher conforme tabela do SISCOMEX)   
   cTrailler := cTrailler + StrFill( p11, 08, "0", "L" ) // Número do Comprovante de Exportação   
   cTrailler := cTrailler + StrFill( p12, 08, "0", "L" ) // Data do comprovante de exportação (AAAAMMDD)
   cTrailler := cTrailler + StrFill( p13, 06, "0", "L" ) // Número de Nota Fiscal de Exportação emitida pela Comercial Exportadora ou “Trading Company”   
   cTrailler := cTrailler + StrFill( p14, 08, "0", "L" ) // Data da emissão da NF de exportação / revenda (AAAAMMDD)
   cTrailler := cTrailler + StrFill( p15, 02, "0", "L" ) // Código do modelo da NF
   cTrailler := cTrailler + StrFill( p16, 03, "0", "L" ) // Série da Nota Fiscal
   cTrailler := cTrailler + StrFill( p17, 19, " ", "R" ) // Brancos
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro86( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro86 -  Este registro se destina a informar dados relativos à exportação, obrigatório para as  Empresas Comerciais Exportadoras e  "Trading Companies"
   *** 860000000001232005010134261131000144ISENTO        BA00000101010620010011             000000000010000000000010000000000010     
   p05 := iif( len(alltrim(p02))<14, "ISENTO", p03 )
   cTrailler := "86"
   cTrailler := cTrailler + StrFill( p02, 12, "0", "L" ) // Nº do registro de Exportação
   cTrailler := cTrailler + StrFill( p03, 08, "0", "L" ) // Data do Registro de Exportação (AAAAMMDD)
   cTrailler := cTrailler + StrFill( p04, 14, "0", "L" ) // CNPJ do contribuinte Produtor/Industrial/Fabricante que promoveu a remessa com fim específico
   cTrailler := cTrailler + StrFill( p05, 14, " ", "R" ) // Inscrição Estadual do contribuinte Produtor/Industrial/Fabricante que promoveu a remessa com fim específico
   cTrailler := cTrailler + StrFill( p06, 02, " ", "R" ) // Unidade da Federação do Produtor/Industrial/Fabricante que promoveu remessa com fim específico
   cTrailler := cTrailler + StrFill( p07, 06, "0", "L" ) // Nº da Nota Fiscal de remessa com fim específico de exportação recebida
   cTrailler := cTrailler + StrFill( p08, 08, "0", "L" ) // Data de emissão da Nota Fiscal da remessa com fim específico (AAAAMMMDD)
   cTrailler := cTrailler + StrFill( p09, 02, "0", "L" ) // Código do modelo do documento fiscal
   cTrailler := cTrailler + StrFill( p10, 03, "0", "L" ) // Série da Nota Fiscal
   cTrailler := cTrailler + StrFill( p11, 14, " ", "R" ) // Código do produto adotado no registro tipo 75 quando do registro de entrada da Nota Fiscal de remessa com fim específico
   cTrailler := cTrailler + StrFill( p12, 11, "0", "L" ) // Quantidade, efetivamente exportada, do produto declarado na Nota Fiscal de remessa com fim específico recebida (com três decimais)
   cTrailler := cTrailler + StrFill( p13, 12, "0", "L" ) // Valor unitário do produto (com duas decimais)
   cTrailler := cTrailler + StrFill( p14, 12, "0", "L" ) // Valor total do produto (valor unitário multiplicado pela quantidade) – com 2 decimais
   cTrailler := cTrailler + StrFill( p15, 01, "0", "L" ) // Preencher conforme tabela de códigos de relacionamento entre Registro de Exportação e Nota Fiscal de remessa com fim específico – Tabela A
   cTrailler := cTrailler + StrFill( p16, 05, " ", "R" ) // Brancos   
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro88PN( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro88PN -  Programa de Desenvolvimento da Indústria Náutica
   *** 88PNAISENTO        20050101BA221 00000100000000518190000000051819000000104720050101                                           
   cTrailler := "88"
   cTrailler := cTrailler + StrFill( p02, 02, " ", "R" ) // Subtipo   "PN"
   cTrailler := cTrailler + StrFill( p03, 01, " ", "R" ) // Preencher com A, B ou C, conforme abaixo :A – fornecimentos;B – aquisições;C – importações
   cTrailler := cTrailler + StrFill( p04, 14, " ", "R" ) // Inscrição Estadual do remetente nas entradas ou do destinatário nas saídas
   cTrailler := cTrailler + StrFill( p05, 08, "0", "L" ) // Data de emissão na saída ou de recebimento na entrada
   cTrailler := cTrailler + StrFill( p06, 02, " ", "R" ) // Sigla da unidade da Federação do remetente nas entradas ou do destinatário nas saídas
   cTrailler := cTrailler + StrFill( p07, 02, "0", "L" ) // Código do modelo do documento fiscal
   cTrailler := cTrailler + StrFill( p08, 02, " ", "R" ) // Série do documento fiscal
   cTrailler := cTrailler + StrFill( p09, 06, "0", "L" ) // Número do documento fiscal
   cTrailler := cTrailler + StrFill( p10, 13, "0", "L" ) // Valor da mercadoria (com 2 decimais)
   cTrailler := cTrailler + StrFill( p11, 13, "0", "L" ) // Montante do imposto diferido ou dilatado (com 2 decimais)
   cTrailler := cTrailler + StrFill( p12, 10, "0", "L" ) // Declaração de Importação
   cTrailler := cTrailler + StrFill( p13, 08, "0", "L" ) // Data do Registro da DI
   cTrailler := cTrailler + StrFill( p14, 43, " ", "R" ) // Descrição da Mercadoria   
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro88ECF( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro88ECF – Equipamentos ECF
   *** 88ECF34261131000144011  0000015101000001123           ABC123456           00000000000
   cTrailler := "88"
   cTrailler := cTrailler + StrFill( p02, 02, " ", "R" ) // Subtipo   " ECF "   
   cTrailler := cTrailler + StrFill( p03, 14, "0", "L" ) // CNPJ do remetente nas entradas e do destinatário nas saídas   
   cTrailler := cTrailler + StrFill( p04, 02, "0", "L" ) // Código do modelo da nota fiscal
   cTrailler := cTrailler + StrFill( p05, 03, " ", "R" ) // Série da nota fiscal
   cTrailler := cTrailler + StrFill( p06, 06, "0", "L" ) // Número da nota fiscal
   cTrailler := cTrailler + StrFill( p07, 04, "0", "L" ) // Código Fiscal de Operação e Prestação
   cTrailler := cTrailler + StrFill( p08, 03, "0", "L" ) // Código da Situação Tributária
   cTrailler := cTrailler + StrFill( p09, 03, "0", "L" ) // Número de ordem do item na nota   
   cTrailler := cTrailler + StrFill( p10, 14, " ", "R" ) // Código do produto ou serviço do informante
   cTrailler := cTrailler + StrFill( p11, 20, " ", "R" ) // Número de série de fabricação do equipamento ECF
   cTrailler := cTrailler + StrFill( p12, 11, "0", "L" ) // Brancos   Complementação com espaços
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro88SME_MG( p02,p03,p04,p05 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro88SME_MG – Informação sobre mês sem movimento de Entradas
   *** 88SME33927658000100Mensagem                                                                                                   
   cTrailler := "88"
   cTrailler := cTrailler + StrFill( p02, 03, " ", "R" ) // Subtipo   "SME_MG"
   cTrailler := cTrailler + StrFill( p03, 14, "0", "L" ) // CNPJ ou CPF do Informante
   cTrailler := cTrailler + StrFill( p04, 34, " ", "R" ) // Sem Movimento de Saídas   
   cTrailler := cTrailler + StrFill( p05, 73, " ", "R" ) // Complementação com espaços
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler
Nota de Moderação:
Toledo: Tópicos foram unidos, pois tratam do mesmo assunto
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

COMANDOS SINTEGRA - Funções de formatação. continuação...

Mensagempor rochinha » 01 Fev 2012 21:12

Amiguinhos,

Continuação dos comandos...
Function SintegraRegistro88SMS_MG( p02,p03,p04,p05 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro88SMS_MG – Informação sobre mês sem movimento de Saidas
   *** 88SMS33927658000100Mensagem                                                                                                   
   cTrailler := "88"
   cTrailler := cTrailler + StrFill( p02, 03, " ", "R" ) // Subtipo   "SMS_MG"
   cTrailler := cTrailler + StrFill( p03, 14, "0", "L" ) // CNPJ do informante
   cTrailler := cTrailler + StrFill( p04, 34, " ", "R" ) // Sem movimento de entradas
   cTrailler := cTrailler + StrFill( p05, 73, " ", "R" ) // Complementação com espaços
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro88SME_MS( CNPJ_informante, IE_informante, Mensagem )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro88SME_MS – Informação sobre mês sem movimento de Entradas
   *** 88SME3392765800010000000026858614Mensagem                                                                                     
   cTrailler := "88"
   cTrailler := cTrailler + StrFill( p02, , " ", "R" ) //
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro88SF( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro88SOFTWARE– Informação sobre dados da empresa/do técnico produtor do software que gera os dados do arquivo magnético do SINTEGRA
   *** 88SFNome da Empresa                    339276580001008091091257207133711818tks@igara.com.br                                  0
   cTrailler := "88"
   cTrailler := cTrailler + StrFill( p02, 02, " ", "R" ) // Subtipo   " SF"
   cTrailler := cTrailler + StrFill( p03, 14, " ", "R" ) // Inscrição Estadual do remetente nas entradas ou do destinatário nas saídas
   cTrailler := cTrailler + StrFill( p04, 08, "0", "L" ) // Data de emissão na saída ou de recebimento na entrada
   cTrailler := cTrailler + StrFill( p05, 02, " ", "R" ) // Sigla da unidade da Federação do remetente nas entradas ou do destinatário nas saídas
   cTrailler := cTrailler + StrFill( p06, 02, "0", "L" ) // Código do modelo do documento fiscal
   cTrailler := cTrailler + StrFill( p07, 02, " ", "R" ) // Série do documento fiscal
   cTrailler := cTrailler + StrFill( p08, 02, " ", "R" ) // Subsérie do documento fiscal
   cTrailler := cTrailler + StrFill( p09, 06, "0", "L" ) // Número do documento fiscal
   cTrailler := cTrailler + StrFill( p10, 03, "0", "L" ) // Código Fiscal de Operação e Prestação
   cTrailler := cTrailler + StrFill( p11, 13, "0", "L" ) // Valor total do documento fiscal (com 2 decimais)
   cTrailler := cTrailler + StrFill( p12, 13, "0", "L" ) // Montante do imposto (com 2 decimais)
   cTrailler := cTrailler + StrFill( p13, 13, "0", "L" ) // Montante do imposto retido (com 2 decimais)   
   cTrailler := cTrailler + StrFill( p14, 11, " ", "R" ) // Codificação do selo aposto no documento fiscal
   cTrailler := cTrailler + StrFill( p15, 33, " ", "R" ) // Brancos   
   cTrailler := cTrailler + StrFill( p16, 01, " ", "R" ) // Situação do documento fiscal quanto ao cancelamento   
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro88D( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro88D – Informações sobre a data de emissão dos documentos fiscais e locais de armazenagem.
   ***
   p04 := iif( len(alltrim(p02))<14, "ISENTO", p03 )
   cTrailler := "88"
   cTrailler := cTrailler + StrFill( p02, 01, " ", "R" ) // Subtipo   "D"
   cTrailler := cTrailler + StrFill( p03, 14, "0", "L" ) // CNPJ ou CPF do remetente nas entradas e do destinatário nas saídas
   cTrailler := cTrailler + StrFill( p04, 14, " ", "R" ) // Inscrição Estadual do remetente nas entradas e do destinatário nas saídas
   cTrailler := cTrailler + StrFill( p05, 02, " ", "R" ) // Unidade da federação do remetente nas entradas e do destinatário nas saídas
   cTrailler := cTrailler + StrFill( p06, 02, "0", "L" ) // Código do modelo do documento fiscal
   cTrailler := cTrailler + StrFill( p07, 03, " ", "R" ) // Série do Documento Fiscal
   cTrailler := cTrailler + StrFill( p08, 06, "0", "L" ) // Número do Documento Fiscal
   cTrailler := cTrailler + StrFill( p09, 04, "0", "L" ) // Código Fiscal de Operação e Prestação
   cTrailler := cTrailler + StrFill( p10, 08, " ", "R" ) // Data de emissão do documento fiscal   
   cTrailler := cTrailler + StrFill( p11, 08, " ", "R" ) // Data de saída / entrada dos produtos/mercadorias
   cTrailler := cTrailler + StrFill( p12, 14, "0", "L" ) // CNPJ do local de saída dos produtos/mercadorias   
   cTrailler := cTrailler + StrFill( p13, 02, " ", "R" ) // Unidade da federação do local de saída dos produtos/mercadorias   
   cTrailler := cTrailler + StrFill( p14, 14, " ", "R" ) // Inscrição Estadual do local de saída dos produtos/mercadorias
   cTrailler := cTrailler + StrFill( p15, 14, "0", "L" ) // CNPJ do local de recebimento/entrega dos produtos/mercadorias
   cTrailler := cTrailler + StrFill( p16, 02, " ", "R" ) // Unidade da federação do local de recebimento/entrega dos produtos/mercadorias
   cTrailler := cTrailler + StrFill( p17, 14, " ", "R" ) // Inscrição Estadual do local de recebimento/entrega dos produtos/mercadorias
   cTrailler := cTrailler + StrFill( p18, 02, " ", "R" ) // Complementação com espaços
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro88E( p02,p03,p04,p05,p06,p07 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro88E – Equivalência de códigos de produtos / Mercadorias e serviços
   *** 88E3392765800010026858614      0             0000                                                                             
   p04 := iif( len(alltrim(p02))<14, "ISENTO", p03 )
   cTrailler := "88"
   cTrailler := cTrailler + StrFill( p02, 01, " ", "R" ) // Subtipo   "E"
   cTrailler := cTrailler + StrFill( p03, 14, "0", "L" ) // CNPJ ou CPF do informante
   cTrailler := cTrailler + StrFill( p04, 14, " ", "R" ) // Inscrição Estadual do informante
   cTrailler := cTrailler + StrFill( p05, 14, " ", "R" ) // Código do Produto / Mercadoria ou Serviço adotado pelo informante
   cTrailler := cTrailler + StrFill( p06, 14, " ", "R" ) // Código do Produto / Mercadoria ou Serviço constante da tabela da SEFAZ
   cTrailler := cTrailler + StrFill( p07, 67, " ", "R" ) // Complementação com espaços
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro8814_PB( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro8814_PB - Informações Crédito Presumido – EPP.
   *** 881400000010000000010000000010010000000100100100000001000000001001010000000100000000100000000100000000100000000100000000100   
   cTrailler := "88"
   cTrailler := cTrailler + StrFill( p02, , " ", "R" ) //
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro8850_PB( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13,p14,p15,p16,p17,p18 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro8850_PB -- Coluna Observação na Nota Fiscal.
   *** 885033927658000100ISENTO        20050101BA011  0001235102Sem obs                       000000000000001                       
   cTrailler := "88"
   cTrailler := cTrailler + StrFill( p02, , " ", "R" ) //
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler

Function SintegraRegistro90( p02,p03 )
   LOCAL cCRLF := "chr(13)+chr(10)"
   *** Registro90 - Registro de Totalização do Arquivo
   *** |.|.............|.............|.|.......|.|.......|.|.......|.|.......|.|.......|.|.......|.|.......|.|.......|.|.......|.....
   *** 903392765800010026858614      5000000001530000000154000000039900000008                                                       1
   cTrailler := "90"
   cTrailler := cTrailler + StrFill( p02, 14, "0", "L" ) // CGC/MF do informante
   cTrailler := cTrailler + StrFill( p03, 14, " ", "R" ) // Inscrição Estadual do informante
   nSR10 := nSR11 := nSR50 := nSR51 := nSR53 := nSR54 := nSR74 := nSR75 := 0
   for i = 1 to len( aSintegraRegistros )
       nSR10 := nSR10 + iif( "10" = aSintegraRegistros[i], 1, 0 )
       nSR11 := nSR11 + iif( "11" = aSintegraRegistros[i], 1, 0 )
       nSR50 := nSR50 + iif( "50" = aSintegraRegistros[i], 1, 0 )
       nSR51 := nSR51 + iif( "51" = aSintegraRegistros[i], 1, 0 )
       nSR53 := nSR53 + iif( "53" = aSintegraRegistros[i], 1, 0 )
       nSR54 := nSR54 + iif( "54" = aSintegraRegistros[i], 1, 0 )
       nSR74 := nSR74 + iif( "74" = aSintegraRegistros[i], 1, 0 )
       nSR75 := nSR75 + iif( "75" = aSintegraRegistros[i], 1, 0 )
   next
   // Tipo de registro totalizado / Total de registros do tipo em questao
   if nSR50 > 0; cTrailler := cTrailler + "50" + strZero( nSR50, 8 ); endif
   if nSR51 > 0; cTrailler := cTrailler + "51" + strZero( nSR51, 8 ); endif
   if nSR53 > 0; cTrailler := cTrailler + "53" + strZero( nSR53, 8 ); endif
   if nSR54 > 0; cTrailler := cTrailler + "54" + strZero( nSR54, 8 ); endif
   if nSR74 > 0; cTrailler := cTrailler + "74" + strZero( nSR74, 8 ); endif
   if nSR75 > 0; cTrailler := cTrailler + "75" + strZero( nSR75, 8 ); endif
   //
   cTrailler := cTrailler + "99" + strZero( len( aSintegraRegistros ) + 1, 8 )
   cTrailler := StrFill( cTrailler, 125, " ", "R" )
   cTrailler := cTrailler + "1"
   cTrailler := cTrailler + &(cCRLF)
   return cTrailler
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

COMANDOS SINTEGRA - Funções de formatação.

Mensagempor lugab » 23 Jan 2017 00:44

Olá Rochinha, tenho duas dúvidas sobre essa contribuição sua:

1) 4 anos depois, esse layout ainda é o válido ?
2) O programa encerra logo após gravar todas as notas (no esquema abaixo) ou após gravar as notas ainda é necessário sortear o arquivo por alguma ordem diferente da que foi gerado nesse esquema ?

SintegraInicia()
Do While..  //Gera Registros para cada nota
   SintegraRegistro10( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13 )
   SintegraRegistro11( p02,p03,p04,p05,p06,p07,p08 )
   ...
   ...
   SintegraRegistro99( p02,p03,p04,p05,p06,p07,p08,p09,p10,p11,p12,p13 ) // Totaliza
   GravacomFwrite() // Grava a Nota
Enddo
// Rotina Final (Sortear o arquivo de forma especial)
// Submeter o Arquivo ao Site da SEFAZ

Obrigado
lugab
lugab
Colaborador

Colaborador
 
Mensagens: 843
Data de registro: 19 Mai 2009 15:58
Curtiu: 126 vezes
Mens.Curtidas: 38 vezes

COMANDOS SINTEGRA - Funções de formatação.

Mensagempor rochinha » 23 Jan 2017 16:59

Amiguinhos,

lugab, realmente o tempo ruge e o leão foge...

Olha você ainda precisará destas funções. Pois o set de funções que disponibilizei era para dar asas as imaginações.
*********************************************************************************************************
*** Funcao Finalizadora - Salva os Registros no arquivo de Saida Padrao
Function SalvaRegistro( _Trailler_ )
   ******************************************************************************************************
   local _Arquivo_  := "SINTEGRA.TXT"
   do case
      case substr( _Trailler_, 1, 2 ) = "75"
           for iRegistros = 1 TO LEN(aSintegraListagem)
               if aSintegraListagem[iRegistros] = _Trailler_
                  return ""
               endif
           next
   endcase
   aadd( aSintegraRegistros, substr( _Trailler_, 1, 2 ) )
   do case
      case substr( _Trailler_, 1, 2 ) = "10" ; aadd( aSintegraRegistro10, _Trailler_ )
      case substr( _Trailler_, 1, 2 ) = "11" ; aadd( aSintegraRegistro11, _Trailler_ )
      case substr( _Trailler_, 1, 2 ) = "50" ; aadd( aSintegraRegistro50, _Trailler_ )
      case substr( _Trailler_, 1, 2 ) = "51" ; aadd( aSintegraRegistro51, _Trailler_ )
      case substr( _Trailler_, 1, 2 ) = "53" ; aadd( aSintegraRegistro53, _Trailler_ )
      case substr( _Trailler_, 1, 2 ) = "54" ; aadd( aSintegraRegistro54, _Trailler_ )
      case substr( _Trailler_, 1, 2 ) = "74" ; aadd( aSintegraRegistro74, _Trailler_ )
      case substr( _Trailler_, 1, 2 ) = "75" ; aadd( aSintegraRegistro75, _Trailler_ )
      case substr( _Trailler_, 1, 2 ) = "90" ; aadd( aSintegraRegistro90, _Trailler_ )
      //otherwise
      //     aadd( aSintegraListagem, _Trailler_ )
   endcase
   return ""

Function SintegraFinaliza( cSintegraPath )
   local aSintegra   := ASORT( aSintegraListagem )
   local aSintegra50 := ASORT( aSintegraRegistro50,,,{|x,y|val(substr(x,31,8))<val(substr(y,31,8))} )
   local aSintegra51 := aSintegraRegistro51
   local aSintegra53 := aSintegraRegistro53
   local aSintegra54 := ASORT( aSintegraRegistro54,,,{|x,y|val(substr(x,35,3))<val(substr(y,35,3))} )
   local aSintegra74 := aSintegraRegistro74
   local aSintegra75 := aSintegraRegistro75
   local aSintegra90 := aSintegraRegistro90
   local nSintegra   := fCreate( "SINTEGRA.TXT" )
   //local nSintegra50 := fCreate( "SINTEG50.TXT" )
   //local nSintegra51 := fCreate( "SINTEG51.TXT" )
   //local nSintegra53 := fCreate( "SINTEG53.TXT" )
   //local nSintegra54 := fCreate( "SINTEG54.TXT" )
   //local nSintegra74 := fCreate( "SINTEG74.TXT" )
   //local nSintegra75 := fCreate( "SINTEG75.TXT" )
   // Ordena asintegra
   FOR I = 1 TO LEN(aSintegraRegistro10) ; fWrite( nSintegra, aSintegraRegistro10[I], LEN(aSintegraRegistro10[I]) ) ; NEXT
   FOR I = 1 TO LEN(aSintegraRegistro11) ; fWrite( nSintegra, aSintegraRegistro11[I], LEN(aSintegraRegistro11[I]) ) ; NEXT
   FOR I = 1 TO LEN(aSintegra50)         ; fWrite( nSintegra, aSintegra50[I]        , LEN(aSintegra50[I]) ) ; NEXT       
   FOR I = 1 TO LEN(aSintegra51)         ; fWrite( nSintegra, aSintegra51[I]        , LEN(aSintegra51[I]) ) ; NEXT       
   FOR I = 1 TO LEN(aSintegra53)         ; fWrite( nSintegra, aSintegra53[I]        , LEN(aSintegra53[I]) ) ; NEXT       
   FOR I = 1 TO LEN(aSintegra54)         ; fWrite( nSintegra, aSintegra54[I]        , LEN(aSintegra54[I]) ) ; NEXT       
   FOR I = 1 TO LEN(aSintegra74)         ; fWrite( nSintegra, aSintegra74[I]        , LEN(aSintegra74[I]) ) ; NEXT       
   FOR I = 1 TO LEN(aSintegra75)         ; fWrite( nSintegra, aSintegra75[I]        , LEN(aSintegra75[I]) ) ; NEXT       
   FOR I = 1 TO LEN(aSintegraRegistro90) ; fWrite( nSintegra, aSintegraRegistro90[I], LEN(aSintegraRegistro90[I]) ) ; NEXT
   fClose( nSintegra )
   return .t.


Exemplo de uso:
#include "FiveWin.ch"

function Main()

   *** Função Inicializadora
   SintegraInicia()

   *** Registro10 - Mestre do Estabelecimento - Indentifição do Estabelecimento informante
   SalvaRegistro( ;
   SintegraRegistro10(;
                      '03.449.994/0001-16',;             // CGC
                      '626.479.717.119',;                // IE
                      'ABCD DAS ESPUMAS IND E COM LTDA',;// Nome_Contribuinte
                      'SAO PAULO',;                      // Municipio
                      'SP',;                             // UF
                      '(011)4432-4081',;                 // Fax
                      '2010/08/01',;                     // Data Inicial
                      '2010/08/31',;                     // Data Final
                      '3',;                              // Convênio 76/03
                      '1',;                              // Totalidade das Operacoes
                      '1');                              // Normal
                      )

   *** Registro11 - Enderecamento e Localizacao do emitente
   SalvaRegistro( ;
   SintegraRegistro11(;
                      "AV QUEIROZ DOS SANTOS",;          // Logradouro
                      "1060",;                           // Numero
                      "PREDIO",;                         // Complemento
                      "CASA BRANCA",;                    // Bairro
                      "09015-310",;                      // CEP
                      "ROCHA",;                          // Pessoa para Contato
                      "(011)4432-4081" );                // Fone para Contato
                      )
                  
   *** Registro50 - Registro de Total de Nota Fiscal
   SalvaRegistro( ;
   SintegraRegistro50(;
                      '00.280.911/0001-10',;             // CNPJ
                      'ISENTO',;                         // IE
                      '2010/08/21',;                     // Data_Emissao_Recebimento
                      'SP',;                             // UF
                      '1',;                              // Modelo
                      '1',;                              // Serie
                      '501306',;                         // Nro
                      '5101',;                           // CFOP
                      'P',;                              // Emitente
                      '518,19',;                         // Valor_Total
                      '518,19',;                         // Base_ICMS
                      '93,27',;                          // Valor_ICMS
                      '0,00',;                           // Isenta
                      '0,00',;                           // Outras
                      '18,00',;                          // Aliquota
                      'N');                              // Situacao
                      )

   *** Registro54 - Registro de Produto (Classificação Fiscal)
   SalvaRegistro( ;
   SintegraRegistro54(;
                      '23.859.507/0001-09',;             //CNPJ
                      '1A',;                             //Modelo
                      '1',;                              //Serie
                      '123',;                            //Nº
                      '5101',;                           //CFOP
                      '010',;                            //CST
                      '001',;                            //Nº Item
                      '123',;                            //Codigo Produto
                      '1',;                              //Quantidade
                      '518,19',;                         //Valor Produto
                      '0,00',;                           //Valor Desconto
                      '518,19',;                         //Base ICMS
                      '0,00',;                           //Base ICMS S. Trib.
                      '51,81',;                          //Valor IPI
                      '17,00');                          //Aliquota ICMS
                      )

   *** Registro90 - Registro de Totalização do Arquivo
   SalvaRegistro( ;
   SintegraRegistro90(;
                      '03.449.994/0001-16',;             // CGC
                      '626.479.717.119',;                // IE
                      '50',;                             // Tipo de registro que será totalizado pelo próximo campo
                      '0000001',;                        // Total de registros do tipo informado no campo anterior
                      '1');                              // Número de registros tipo 90
                      )

   *** Função finalizadora
   SintegraFinaliza()
   RETURN NIL

#include "sintegra.prg"
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

COMANDOS SINTEGRA - Funções de formatação.

Mensagempor lugab » 23 Jan 2017 21:16

Obrigado, Rochinha...

Nunca usei o FIVEWIN, entretanto, baseando-me em meus limitados conhecimentos de programação, cheguei a conclusão
que vc extraiu o código de tal forma que não é necessário linkar o #include "FiveWin.ch" , por que o código que vc
postou ficou tipo MODO CONSOLE.

Estou certo quanto a não precisar do Fivewin, Rochinha ? Se for necessário eu "mifu" !!!!

PS: No código postado eu não achei a definição/inicialização de -cSintegraPath. Seria a pasta onde gerar o arquivo final ??
lugab
lugab
Colaborador

Colaborador
 
Mensagens: 843
Data de registro: 19 Mai 2009 15:58
Curtiu: 126 vezes
Mens.Curtidas: 38 vezes

COMANDOS SINTEGRA - Funções de formatação.

Mensagempor rochinha » 27 Jan 2017 00:00

Amiguinhos,

lugab
Pode retirar a chamada ao include fivewin. Ela é irrelevante.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

COMANDOS SINTEGRA - Funções de formatação.

Mensagempor lugab » 27 Jan 2017 13:42

Bom dia Rochinha...

To usando Hb30 e não sei onde encontrar a função
StrFill( )

Pesquisei aqui no fórum, no google, carreguei um monte de .LIB e de .CH pra testar , e não achei em lugar nenhum.
Vc pode me orientar ?
lugab
lugab
Colaborador

Colaborador
 
Mensagens: 843
Data de registro: 19 Mai 2009 15:58
Curtiu: 126 vezes
Mens.Curtidas: 38 vezes

COMANDOS SINTEGRA - Funções de formatação.

Mensagempor rochinha » 27 Jan 2017 16:39

Amiguinhos,

lugab
Function StrFill( _string_, _tamanho_, _fill_, _direction_ )
   default _fill_ := " ", _direction_ := "R"
   cStrFill := alltrim( CharRem( "[<(/-.,)>]*&@", _string_ ) )
   if _direction_ = "R"
      cStrFill := PadL(SubStr(cStrFill,1,_tamanho_),_tamanho_,_fill_)
   else    
      cStrFill := PadR(SubStr(cStrFill,1,_tamanho_),_tamanho_,_fill_)
   endif
   return cStrFill
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes




Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 21 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro