;** Regentra *******************************************************************
;*  Geracao do Registro de Entrada                                             *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 17/09/1998 por Anivel Augusto Rodrigues
;Ultima Alteracao: 20/03/2006 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Lancamento de Despesas
;Ultima Alteracao: 30/10/2006 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes MODAMIL
;Ultima Alteracao: 22/11/2006 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes MODAMIL
;Ultima Alteracao: 21/03/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes MODAMIL
;Ultima Alteracao: 18/05/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Serie
;Ultima Alteracao: 21/05/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes CFOP 2933
;Ultima Alteracao: 08/06/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes CFO Nota de Entrada Cancelada
;Ultima Alteracao: 20/06/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SAPI Nota de Devolucao Karol
;Ultima Alteracao: 30/11/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Substituicao Devolu‡Æo Fund.S.Geraldo
;Ultima Alteracao: 08/01/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes CFOP Item                             
;Ultima Alteracao: 12/01/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Rateio Subst                      
;Ultima Alteracao: 18/02/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ICMS Frete Simples                
;Ultima Alteracao: 28/03/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Emitente da Nota Fiscal
;Ultima Alteracao: 20/05/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Venus Modas
;Ultima Alteracao: 10/06/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes CFOP do Item
;Ultima Alteracao: 01/09/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Substituicao/Despesas Reg_53
;Ultima Alteracao: 12/01/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Substituicao Destinat
;Ultima Alteracao: 05/02/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ICMS Outros+IPI Somente Aplicacao Direta
;Ultima Alteracao: 09/02/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Rateio Substituicao Destinat
;Ultima Alteracao: 06/10/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Campo Codigo do Documento RegEntra
;Ultima Alteracao: 17/12/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes IPI MigTextil/Item CF 200              
;Ultima Alteracao: 06/01/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Ask Tipo de Pagamento                  
;Ultima Alteracao: 13/01/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Ignorar IPI Tipo do Item="C" Servi‡os   
;Ultima Alteracao: 13/01/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Recolhimneto Substituicao nota devolucao   
;Ultima Alteracao: 19/10/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Round calculo impostos                     
;Ultima Alteracao: 03/08/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SIMPLES NACIONAL                           
;Ultima Alteracao: 20/08/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SIMPLES NACIONAL                           
;Ultima Alteracao: 27/08/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SIMPLES NACIONAL                           
;Ultima Alteracao: 10/09/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SIMPLES NAC. ESRB                          
;Ultima Alteracao: 25/10/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes %Reducao BC IPI                     
;Ultima Alteracao: 11/11/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes IPI debitado/Simples Nacional       
;Ultima Alteracao: 11/11/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Aliquota ICSM Simples Nacional       
;Ultima Alteracao: 24/11/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes OBS IPI                              
;Ultima Alteracao: 03/12/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes nÆo ratear desconto/despesa em servi‡os
;Ultima Alteracao: 21/12/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes BCST=0 e VrST>0                         
;Ultima Alteracao: 28/12/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes IPI outros comercio              
;Ultima Alteracao: 13/01/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes nome tabela r?_temp->r???_tmp          
;Ultima Alteracao: 28/02/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Novo Layout NotaEC/NotaEI           
;Ultima Alteracao: 14/03/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Novo Layout NotaC/NotaI           
;Ultima Alteracao: 04/04/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Outros= -0,00              
;Ultima Alteracao: 05/04/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Outros ICMS/IPI valor negativo
;Ultima Alteracao: 07/04/2011 por Bruno Carvalho
;Motivo Alteracao: Ajustes Layout 
;Ultima Alteracao: 03/05/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ICMS/IPI Complementar  
;Ultima Alteracao: 16/05/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Numero da nota apenas 7 digitos
;Ultima Alteracao: 30/05/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes IPI Isento Despesas acessorias 
;Ultima Alteracao: 29/09/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ASK sem servicos, Valor Mercadoria >0
;Ultima Alteracao: 10/10/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ICMS Outros                       
;Ultima Alteracao: 08/11/2011 por Karina Andrade
;Motivo Alteracao: Ajustes ASK sem servicos Codigo do Documento NFSE
;Ultima Alteracao: 08/11/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Data Emissao/Entrada pelo Faturamento
;Ultima Alteracao: 30/11/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ICMS Outros                       
;Ultima Alteracao: 01/12/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Data Emissao/Entrada pelo Faturamento
;Ultima Alteracao: 15/12/2011 por Karina Andrade
;Motivo Alteracao: Ajustes ASK sem servicos Codigo do Documento NFS
;Ultima Alteracao: 08/02/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Data Saida/Entrada pelo Faturamento MIG TEXTIL
;Ultima Alteracao: 09/02/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Round() valores de rateio       
;Ultima Alteracao: 22/02/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ICMS Outros sem IPI        
;Ultima Alteracao: 29/02/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ICMS Outros - Depesas      
;Ultima Alteracao: 08/03/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ICMS Outros - Diferen‡a ate 0.02 =zero
;Ultima Alteracao: 08/03/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Gerar dados para Docto Cancelado      
;Ultima Alteracao: 13/03/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ICMS Outros - Calculo anterior           
;Ultima Alteracao: 03/04/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes rateio desconto                          
;Ultima Alteracao: 07/05/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ICMS/IPI Outros  
;Ultima Alteracao: 09/05/2012 por Karina Andrade
;Motivo Alteracao: Ajustes TPEMPR="DEBITO/CREDITO" para SYS_CODIGO_CLIENTE="0300"
;Ultima Alteracao: 05/06/2012 por Karina Andrade
;Motivo Alteracao: Ajustes TPEMPR="DEBITO/CREDITO" para SYS_CODIGO_CLIENTE="0215"
;Ultima Alteracao: 05/06/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ICMS/IPI Outros  
;Ultima Alteracao: 25/07/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes VEGO - SIMPLES NACIONAL c/ registro DEBITO/CREDITO - ICMS item com ST
;Ultima Alteracao: 20/08/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes desprezar item notai cancalado
;Ultima Alteracao: 12/09/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes item com ST sem credito ICMS, Rateio valor contal [Preco Total]
;Ultima Alteracao: 18/09/2012 por Bruno Carvalho
;Motivo Alteracao: Variavel "Item_CST_ICMS" estava sem atribui‡Æo de valor
;Ultima Alteracao: 26/09/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes totalizar BCST e ST independete do CST informado
;Ultima Alteracao: 15/10/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes valor base para rateio valor contal [Preco Total]
;Ultima Alteracao: 24/10/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes valor base para rateio valor contal [Preco Total]
;Ultima Alteracao: 08/11/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes icms/ipi outros valor <=0,02                      
;Ultima Alteracao: 17/11/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes entrada c/st sem credito icms
;Ultima Alteracao: 18/01/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Aliquota de icms=BlankNum() => 0
;Ultima Alteracao: 23/01/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes IPI Industria Simples Nacional    
;Ultima Alteracao: 26/02/2013 por Karina Andrade
;Motivo Alteracao: Ajustes Item_CST_ICMS quando CFO=3102 or 3949
;Ultima Alteracao: 04/03/2013 por Karina Andrade/Anivel
;Motivo Alteracao: Ajustes SOMA_RATEIO e calculos para Servi‡os
;Ultima Alteracao: 06/03/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Item com ST nota de devolucao com credito de icms
;Ultima Alteracao: 18/03/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Item servico/Frete p/ simples nacional <> outros
;Ultima Alteracao: 23/03/2013 por Karina Andrade
;Motivo Alteracao: Ajustes Item_CST_ICMS="?60"
;Ultima Alteracao: 09/04/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Tributa‡Æo de IPI=Outros sem credito do ipi/Modamil   
;Ultima Alteracao: 24/04/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes rateios descontos/despesas ja vem pronto nos itens    
;Ultima Alteracao: 02/05/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes simples nacional/aplica‡Æo direta/servico icms outros e isento
;Ultima Alteracao: 06/05/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes simples nacional/servico icms 
;Ultima Alteracao: 21/05/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ipi outros e valor contabil      
;Ultima Alteracao: 29/07/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ipi outros = valor contabil -> Simples Nacional e Industria
;Ultima Alteracao: 07/08/2013 por Karina Andrade
;Motivo Alteracao: Ajustes TPEMPR="DEBITO/CREDITO" para SYS_CODIGO_CLIENTE="0199"
;Ultima Alteracao: 04/09/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ipi outros/isento                                           
;Ultima Alteracao: 05/09/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ipi/icms para valor da nota = 0,00
;Ultima Alteracao: 06/09/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ICMS Outros
;Ultima Alteracao: 11/09/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ICMS Outros
;Ultima Alteracao: 13/09/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes IPI - Aplica‡Æo direta sem credito
;Ultima Alteracao: 16/09/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes IPI observacao p/ industria
;Ultima Alteracao: 12/11/2013 por Andrey Fillipe
;Motivo Alteracao: Ajustes Nota Extemporanea (entrada)
;Ultima Alteracao: 03/12/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes itens de consumo valor icms isento
;Ultima Alteracao: 12/12/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes nota de complemento de imposto icms 
;Ultima Alteracao: 02/01/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes itens de consumo valor icms isento simulando bc icms
;Ultima Alteracao: 15/01/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes rotina desprezada
;Ultima Alteracao: 29/01/2014 por Karina Andrade
;Motivo Alteracao: Ajustes ICMS Isento para itens com redu‡Æo BC
;Ultima Alteracao: 10/02/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes bc_icms_simulado + vripi em cfop uso e consumo
;Ultima Alteracao: 26/02/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes calculo diferencial de aliquota icms
;Ultima Alteracao: 26/02/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Atividade Comercio itens Importados, debito/credito ipi
;Ultima Alteracao: 18/03/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SubSerie                               
;Ultima Alteracao: 23/04/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes criterio itens com diferencial de aliquota icms
;Ultima Alteracao: 05/05/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Item aplicacao direta pode ter credito icms - caso CEMIG
;Ultima Alteracao: 02/07/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Item CST ?60 na devolu‡Æo CFOP 2202 tem credito ICMS
;Ultima Alteracao: 03/07/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Calcular diferencial de Aliquoita ICMS s¢ compra fora do estado
;Ultima Alteracao: 03/07/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: TPEMPR="DEBITO/CREDITO" para SYS_CODIGO_CLIENTE="0353"
;Ultima Alteracao: 24/10/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes nÆo calcula Diferencial de aliquota icms p/ ATACADISTA
;Ultima Alteracao: 11/11/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes rotina pegar aliq_icms_empr                          
;Ultima Alteracao: 04/03/2015 por Luis Gustavo
;Motivo Alteracao: Implementado na Proc GERA_REGENTRA(), pra checar nos parametros ao calcular o diferen‡ial de aliquota
;Ultima Alteracao: 19/03/2015 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajuste diferencial de aliquota
;Ultima Alteracao: 02/07/2015 por Kamila Gomes
;Motivo Alteracao: Ajustes Ask nÆo pegar codigo de documento NSE..
;Ultima Alteracao: 22/10/2015 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes diferencial de aliquota de ou para Simples Nacional
;Ultima Alteracao: 27/10/2015 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes diferencial de aliquota par servi‡o de transporte  
;Ultima Alteracao: 16/12/2015 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes desprezar diferencial de aliquota para servi‡o de transporte p/ SIRI  
;Ultima Alteracao: 18/02/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes credito ipi conforme origem do produto
;Ultima Alteracao: 18/02/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes registrar notas de servico               
;Ultima Alteracao: 16/03/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes diferencial de aliquota para servi‡o de transporte s¢ Aplica‡Æo direta
;Ultima Alteracao: 18/03/2016 por Kamila Gomes   
;Motivo Alteracao: Ajustes Diferencial Aliquota ICMS e Notas de Servi‡o
;Ultima Alteracao: 02/04/2016 por Kamila Gomes   
;Motivo Alteracao: Ajustes Sys_Codigo_Cliente 0008 Wanda Brasil nao destacar Notas de Servi‡o
;Ultima Alteracao: 12/04/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes filtrar grupo de itens     
;Ultima Alteracao: 23/04/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes regra MODAMIL     
;Ultima Alteracao: 02/05/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes regra MODAMIL     
;Ultima Alteracao: 02/05/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Aplica‡Æo direta desprezar CFO 1923,2923 Vitoria Textil
;Ultima Alteracao: 15/07/2016 por Crystiane Andrade
;Motivo Alteracao: Ajustes Notas de Servi‡o Sys_codigo=0217 Auditoria
;Ultima Alteracao: 15/08/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ter credito icms uso/consumo Agro Op‡Æo                     
;Ultima Alteracao: 15/08/2016 por Crystiane Andrade
;Motivo Alteracao: Ajustes Notas de Servi‡o Sys_codigo=0144 Pintacor  
;Ultima Alteracao: 11/10/2016 por Bruno/Crys/Marcelo
;Motivo Alteracao: InclusÆo do SYS_CODIGO_CLIENTE na proc GRAVA() #0217# e #0144#  
;Ultima Alteracao: 23/03/2017 por Anivel Augusto Rodrigues   
;Motivo Alteracao: Ajustes pesquia se item st=60
;Ultima Alteracao: 03/07/2017 por Anivel Augusto Rodrigues   
;Motivo Alteracao: Ajustes Gravar no NotaEI diferencial de aliquota
;Ultima Alteracao: 08/08/2017 por Anivel Augusto Rodrigues   
;Motivo Alteracao: Ajustes regentra novo campo vr diferencial aliquota
;Ultima Alteracao: 04/12/2017 por Anivel Augusto Rodrigues   
;Motivo Alteracao: Ajustes notas extemporanea, denega, inutilizada, cancela
;Ultima Alteracao: 09/06/2018 por Anivel Augusto Rodrigues   
;Motivo Alteracao: Ajustes mensagens rodape
;Ultima Alteracao: 06/09/2018 por Anivel Augusto Rodrigues   
;Motivo Alteracao: Ajustes FCP_ST              
;Ultima Alteracao: 11/04/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes nota entrada FCP_ST e ICMS Desonerado

;*******************************************************************************
;* Rotina p/ Selecionar Registros                                              *
;*******************************************************************************
Proc GERA(Tabela)
Private Tabela
ClearAll

If Tabela="NotaC"
   Then ExibeRodape(1,"Entradas - Faturamento")
        Aguarde("Aguarde, processando dados Entradas")
       
        If Not IsBlank(VSDGGRP)
           Then {Ask} {\\Sistemas\\Estoque\\Itens}
                Moveto [Codigo do Item   ] Example "cite"
                Moveto [Codigo do Grupo  ] TypeIn "~VSDGGRP.."
        EndIf
        {Ask} TypeIn Dir_buscag + "NotaC"  Enter
        Moveto [Codigo da Empresa        ] Example "ce" TypeIn ", ~VSDGEMPRESA.."
        Moveto [Numero do Documento      ] Example "nd"
        Moveto [Serie do Documento       ] Example "sd"
        Moveto [Codigo do Documento      ] Check  
        Moveto [Tipo do Documento        ] Check
        Moveto [Data de Emissao          ] Check
        Moveto [Data de Saida            ] Check TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM" 
        Moveto [Tipo Movimento Estoque   ] TypeIn "E"
        Moveto [Tipo                     ] Check
        Moveto [Codigo                   ] Check
        Moveto [Razao Social             ] Check
        Moveto [CGC                      ] Check
        Moveto [IE                       ] Check
        Moveto [Uf                       ] Check
        Moveto [Consumidor Final         ] Check
        Moveto [Tipo Pessoa              ] Check
        Moveto [Valor Mercadoria         ] Check 
        Moveto [Valor Servico            ] Check 
        Moveto [Valor Desconto           ] Check
        Moveto [Valor Despesas Acessorias] Check
        Moveto [Valor do Seguro          ] Check
        Moveto [Valor BCICMS             ] Check
        Moveto [Valor IPI                ] Check
        Moveto [Valor BCSubstituicao ICMS] Check
        Moveto [Valor Substituicao ICMS  ] Check
        Moveto [Valor Nota Fiscal        ] Check
        Moveto [Frete Incluso Na Nota    ] Check
        Moveto [Valor do Frete           ] Check
        Moveto [Tipo de Pagamento        ] Check
        Moveto [Descricao da Destinacao  ] Check
        Moveto [Situacao                 ] Check
        Moveto [Frete por Conta          ] Check
        Moveto [Chave_Acesso_NFe         ] Check
        Moveto [Data de Acerto           ] Check 
        Moveto [Sistema Gerador          ] Check 
        {Ask} TypeIn Dir_buscag + "NotaI" Enter Check
        Moveto [Codigo da Empresa        ] Example "ce"
        Moveto [Numero do Documento      ] Example "nd"
        Moveto [Serie do Documento       ] Example "sd"
        Moveto [Situacao_Item            ] TypeIn "Not C"
        If Not IsBlank(VSDGGRP)
           Then Moveto [Codigo do Item   ] Example "cite"
        EndIf
        moveto [Valor TotTributos        ] typein "As \"FCP_ST_Valor\""
        Do_It!
        ClearAll

        If IsEmpty("Answer")
           Then Return
        EndIf

        ;-- ajuste FCP_ST ------------------------------------------------------ 
        {Ask} {Answer} typein "Fast"
        moveto [FCP_ST_Valor             ] typein "changeto blank"
        Do_It!
        ClearAll

        {Ask} TypeIn Dir_buscag + "NotaICM" Enter
        Moveto [Codigo da Empresa        ] Example "ce"
        Moveto [Numero do Documento      ] Example "nd"
        Moveto [Serie do Documento       ] Example "sd"
        Moveto [Item do Documento        ] Example "id"
        moveto [FCP_ST_Valor             ] typein "_vr"
        {Ask} {Answer} typein "Fast"
        Moveto [Codigo da Empresa        ] Example "ce"
        Moveto [Numero do Documento      ] Example "nd"
        Moveto [Serie do Documento       ] Example "sd"
        Moveto [Item do Documento        ] Example "id"
        moveto [FCP_ST_Valor             ] typein "changeto _vr"
        Do_It!
        ClearAll
        ;----------------------------------------------------------------------- 

        If Not IsTable("\\Sistemas\\Vendas\\Rfat_tmp")
           Then Rename "Answer" "\\Sistemas\\Vendas\\Rfat_tmp"
           Else Add "Answer" "\\Sistemas\\Vendas\\Rfat_tmp"
        EndIf
EndIf

If Tabela="NotaC" ; cancelada extemporanea
   Then ExibeRodape(1,"Entradas - Faturamento II")
        Aguarde("Aguarde, processando dados Entradas")
       
        If Not IsBlank(VSDGGRP)
           Then {Ask} {\\Sistemas\\Estoque\\Itens}
                Moveto [Codigo do Item   ] Example "cite"
                Moveto [Codigo do Grupo  ] TypeIn "~VSDGGRP.."
        EndIf
        {Ask} TypeIn Dir_buscag + "NotaC"  Enter
        Moveto [Codigo da Empresa        ] Example "ce" TypeIn ", ~VSDGEMPRESA.."
        Moveto [Numero do Documento      ] Example "nd"
        Moveto [Serie do Documento       ] Example "sd"
        Moveto [Codigo do Documento      ] Check  
        Moveto [Tipo do Documento        ] Check
        Moveto [Data de Emissao          ] Check
        Moveto [Data de Saida            ] Check TypeIn "<~VSDGDTINI" 
        Moveto [Tipo Movimento Estoque   ] TypeIn "E"
        Moveto [Tipo                     ] Check
        Moveto [Codigo                   ] Check
        Moveto [Razao Social             ] Check
        Moveto [CGC                      ] Check
        Moveto [IE                       ] Check
        Moveto [Uf                       ] Check
        Moveto [Consumidor Final         ] Check
        Moveto [Tipo Pessoa              ] Check
        Moveto [Valor Mercadoria         ] Check 
        Moveto [Valor Servico            ] Check 
        Moveto [Valor Desconto           ] Check
        Moveto [Valor Despesas Acessorias] Check
        Moveto [Valor do Seguro          ] Check
        Moveto [Valor BCICMS             ] Check
        Moveto [Valor IPI                ] Check
        Moveto [Valor BCSubstituicao ICMS] Check
        Moveto [Valor Substituicao ICMS  ] Check
        Moveto [Valor Nota Fiscal        ] Check
        Moveto [Frete Incluso Na Nota    ] Check
        Moveto [Valor do Frete           ] Check
        Moveto [Tipo de Pagamento        ] Check
        Moveto [Descricao da Destinacao  ] Check
        Moveto [Situacao                 ] Check TypeIn "C"
        Moveto [Frete por Conta          ] Check
        Moveto [Chave_Acesso_NFe         ] Check
        Moveto [Data de Acerto           ] Check TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
        Moveto [Sistema Gerador          ] Check TypeIn "EX"
        {Ask} TypeIn Dir_buscag + "NotaI" Enter Check
        Moveto [Codigo da Empresa        ] Example "ce"
        Moveto [Numero do Documento      ] Example "nd"
        Moveto [Serie do Documento       ] Example "sd"
        Moveto [Situacao_Item            ] TypeIn "Not C"
        If Not IsBlank(VSDGGRP)
           Then Moveto [Codigo do Item   ] Example "cite"
        EndIf
        moveto [Valor TotTributos        ] typein "As \"FCP_ST_Valor\""
        Do_It!
        ClearAll

        If IsEmpty("Answer")
           Then Return
        EndIf

        ;-- ajuste FCP_ST ------------------------------------------------------ 
        {Ask} {Answer} typein "Fast"
        moveto [FCP_ST_Valor             ] typein "changeto blank"
        Do_It!
        ClearAll

        {Ask} TypeIn Dir_buscag + "NotaICM" Enter
        Moveto [Codigo da Empresa        ] Example "ce"
        Moveto [Numero do Documento      ] Example "nd"
        Moveto [Serie do Documento       ] Example "sd"
        Moveto [Item do Documento        ] Example "id"
        moveto [FCP_ST_Valor             ] typein "_vr"
        {Ask} {Answer} typein "Fast"
        Moveto [Codigo da Empresa        ] Example "ce"
        Moveto [Numero do Documento      ] Example "nd"
        Moveto [Serie do Documento       ] Example "sd"
        Moveto [Item do Documento        ] Example "id"
        moveto [FCP_ST_Valor             ] typein "changeto _vr"
        Do_It!
        ClearAll
        ;----------------------------------------------------------------------- 
  
        If Not IsTable("\\Sistemas\\Vendas\\Rfat_tmp")
           Then Rename "Answer" "\\Sistemas\\Vendas\\Rfat_tmp"
           Else Add "Answer" "\\Sistemas\\Vendas\\Rfat_tmp"
        EndIf
EndIf

If Tabela="NotaC_Transf"
   Then ExibeRodape(1,"Entradas - Faturamento/Transferˆncia")
        Aguarde("Aguarde, processando dados Entradas")

        If Not IsBlank(VSDGGRP)
           Then {Ask} {\\Sistemas\\Estoque\\Itens}
                Moveto [Codigo do Item   ] Example "cite"
                Moveto [Codigo do Grupo  ] TypeIn "~VSDGGRP.."
        EndIf
        {Ask} TypeIn Dir_buscag + "NotaC"  Enter
        Moveto [Codigo da Empresa        ] Example "ce" TypeIn ", ~VSDGEMPRESA.."
        Moveto [Numero do Documento      ] Example "nd"
        Moveto [Serie do Documento       ] Example "sd"
        Moveto [Codigo do Documento      ] Check 
        Moveto [Tipo do Documento        ] Check
        Moveto [Data de Emissao          ] Check TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
        Moveto [Data de Saida            ] Check 
        Moveto [Tipo Movimento Estoque   ] TypeIn "S"
        Moveto [Tipo                     ] Check
        Moveto [Codigo                   ] Check
        Moveto [Razao Social             ] Check
        Moveto [CGC                      ] Check
        Moveto [IE                       ] Check
        Moveto [Uf                       ] Check
        Moveto [Consumidor Final         ] Check
        Moveto [Tipo Pessoa              ] Check
        Moveto [Valor Mercadoria         ] Check
        Moveto [Valor Servico            ] Check 
        Moveto [Valor Desconto           ] Check
        Moveto [Valor Despesas Acessorias] Check
        Moveto [Valor do Seguro          ] Check
        Moveto [Valor BCICMS             ] Check
        Moveto [Valor IPI                ] Check
        Moveto [Valor BCSubstituicao ICMS] Check
        Moveto [Valor Substituicao ICMS  ] Check
        Moveto [Valor Nota Fiscal        ] Check
        Moveto [Frete Incluso Na Nota    ] Check
        Moveto [Valor do Frete           ] Check
        Moveto [Tipo de Pagamento        ] Check
        Moveto [Descricao da Destinacao  ] Check TypeIn "TRANSF. VAREJO"
        Moveto [Situacao                 ] Check
        Moveto [Frete por Conta          ] Check
        Moveto [Chave_Acesso_NFe         ] Check
        Moveto [Data de Acerto           ] Check 
        Moveto [Sistema Gerador          ] Check 
        {Ask} TypeIn Dir_buscag + "NotaI" Enter Check
        Moveto [Codigo da Empresa        ] Example "ce"
        Moveto [Numero do Documento      ] Example "nd"
        Moveto [Serie do Documento       ] Example "sd"
        Moveto [Situacao_Item            ] TypeIn "Not C"
        If Not IsBlank(VSDGGRP)
           Then Moveto [Codigo do Item   ] Example "cite"
        EndIf
        moveto [Valor TotTributos        ] typein "As \"FCP_ST_Valor\""
        Do_It!
        ClearAll

        If IsEmpty("Answer")
           Then Return
        EndIf

        ;-- ajuste FCP_ST ------------------------------------------------------ 
        {Ask} {Answer} typein "Fast"
        moveto [FCP_ST_Valor             ] typein "changeto blank"
        Do_It!
        ClearAll

        {Ask} TypeIn Dir_buscag + "NotaICM" Enter
        Moveto [Codigo da Empresa        ] Example "ce"
        Moveto [Numero do Documento      ] Example "nd"
        Moveto [Serie do Documento       ] Example "sd"
        Moveto [Item do Documento        ] Example "id"
        moveto [FCP_ST_Valor             ] typein "_vr"
        {Ask} {Answer} typein "Fast"
        Moveto [Codigo da Empresa        ] Example "ce"
        Moveto [Numero do Documento      ] Example "nd"
        Moveto [Serie do Documento       ] Example "sd"
        Moveto [Item do Documento        ] Example "id"
        moveto [FCP_ST_Valor             ] typein "changeto _vr"
        Do_It!
        ClearAll
        ;----------------------------------------------------------------------- 

        If Not IsTable("\\Sistemas\\Vendas\\Rfat_tmp")
           Then Rename "Answer" "\\Sistemas\\Vendas\\Rfat_tmp"
           Else Add "Answer" "\\Sistemas\\Vendas\\Rfat_tmp"
        EndIf
EndIf

If Tabela="NotaEc"
   Then ExibeRodape(1,"Entradas - Estoque")
        Aguarde("Aguarde, processando dados Entradas")

        If Not IsBlank(VSDGGRP)
           Then {Ask} {\\Sistemas\\Estoque\\Itens}
                Moveto [Codigo do Item   ] Example "cite"
                Moveto [Codigo do Grupo  ] TypeIn "~VSDGGRP.."
        EndIf
        {Ask} TypeIn Dir_buscag + "NotaEc"  Enter
        Moveto [Numero do Lancamento     ] Check Example "nl"
        Moveto [Codigo da Empresa        ] Check TypeIn "~VSDGEMPRESA.."
        Moveto [Data de Emissao          ] Check
        Moveto [Data de Entrada          ] Check TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
       ;Moveto [Codigo do Documento      ] Check TypeIn "not NFSE, Not NFS, Not NSE.."
        Moveto [Codigo do Documento      ] Check 
        Moveto [Tipo do Documento        ] Check
        Moveto [Serie do Documento       ] Check
        Moveto [SubSerie do Documento    ] Check
        Moveto [Numero do Documento      ] Check
        Moveto [Tipo de Operacao         ] Check
        Moveto [Tipo de NF               ] Check
        Moveto [Valor Mercadoria         ] Check 
        Moveto [Valor Servico            ] Check 
        Moveto [Valor Desconto           ] Check
        Moveto [Valor Despesas Acessorias] Check
        Moveto [Valor do Seguro          ] Check
        Moveto [Valor BCICMS             ] Check
        Moveto [Valor IPI                ] Check
        Moveto [Valor BCSubstituicao ICMS] Check
        Moveto [Valor Substituicao ICMS  ] Check
        Moveto [Valor Nota Fiscal        ] Check
        Moveto [Valor do Frete           ] Check
        Moveto [Tipo                     ] Check
        Moveto [Codigo                   ] Check
        Moveto [Razao Social             ] Check
        Moveto [CGC                      ] Check
        Moveto [Uf                       ] Check
        Moveto [Tipo Pessoa              ] Check
        Moveto [Tipo de Pagamento        ] Check
        Moveto [Tipo CTR                 ] Check
        Moveto [Recolhimento Substituicao] Check
        Moveto [BC Substituicao Destinat ] Check
        Moveto [Vr Substituicao Destinat ] Check  
        Moveto [Chave_Acesso_NFe         ] Check
        {Ask} TypeIn Dir_buscag + "NotaEi" Enter Check
        Moveto [Numero do Lancamento     ] Example "nl"
        If Not IsBlank(VSDGGRP)
           Then Moveto [Codigo do Item   ] Example "cite"
        EndIf
        Do_It!
        ClearAll

        If IsEmpty("Answer")
           Then Return
        EndIf

        If Not IsTable("\\Sistemas\\Estoque\\Rest_tmp")
           Then Rename "Answer" "\\Sistemas\\Estoque\\Rest_tmp"
           Else Add "Answer" "\\Sistemas\\Estoque\\Rest_tmp"
        EndIf
EndIf
ClearAll
EndProc

;*******************************************************************************
;* Rotina p/ Selecionar Registros                                              *
;*******************************************************************************
Proc GERA_REGENTRA(Tabela)
Private vrbcipi,vripi

LimpaRodape(0)
ExibeRodape(1,"Entradas")
Aguarde("Aguarde, processando dados Entradas")
 
If IsAssigned(REGTB)
   Then Release vars REGTB
EndIf
DynArray REGTB[]

If Tabela="Rfat_tmp"
   Then Sort "\\Sistemas\\Vendas\\Rfat_tmp"  on "Codigo da Empresa","Numero do Documento","Serie do Documento"
   Else Sort "\\Sistemas\\Estoque\\Rest_tmp" on "Codigo da Empresa","Data de Entrada","Codigo","Numero do Documento","Serie do Documento","SubSerie do Documento"
EndIf
If Tabela = "Rfat_tmp"
   Then Rename "\\Sistemas\\Vendas\\Rfat_tmp" "Answer"
   Else Rename "\\Sistemas\\Estoque\\Rest_tmp" "Answer"
EndIf

View "\\Sistemas\\Estoque\\Itens"      WinMax SetHighLight Current Record 23 Field 31
View "\\Sistemas\\Estoque\\RegEntra"   WinMax SetHighLight Current Record 23 Field 31
View "\\Sistemas\\Exporta\\Tmp_rs"     WinMax SetHighLight Current Record 23 Field 31
View "\\Sistemas\\Exporta\\Tmp_rs2"    WinMax SetHighLight Current Record 23 Field 31
View "\\Sistemas\\Cadastro\\Empresas"  WinMax SetHighLight Current Record 23 Field 31
View "\\Sistemas\\Cadastro\\Destinat"  WinMax SetHighLight Current Record 23 Field 31
View "\\Sistemas\\Vendas\\Estados"     WinMax SetHighLight Current Record 23 Field 31

CoEdit "Answer"
NR=NRecords("Answer" )

CEMPR=""
Zera()
Localiza_Nota(Tabela)

Scan

   Barra(NR, RecNo())
   Aguarde("Aguarde, processando dados entradas "+BARRA_STRING)
   If IsBlank([Aliquota de ICMS]) Or [Aliquota de ICMS]<=0 Then [Aliquota de ICMS]=0 EndIf
   If IsBlank([Aliquota de IPI])  Or [Aliquota de IPI ]<=0 Then [Aliquota de IPI ]=0 EndIf
   If IsBlank([Aliquota Reduzida BCICMS]) Or [Aliquota Reduzida BCICMS]<=0 Then [Aliquota Reduzida BCICMS]=0 EndIf
   If IsBlank([Aliquota Reduzida BCIPI ]) Or [Aliquota Reduzida BCIPI ]<=0 Then [Aliquota Reduzida BCIPI ]=0 EndIf

   If (SYS_CODIGO_CLIENTE = "0325" Or          ;Roli
       SYS_CODIGO_CLIENTE = "0326" Or          ;HRoper
       SYS_CODIGO_CLIENTE = "0328" Or          ;Ecletica
       SYS_CODIGO_CLIENTE = "0329" Or          ;Madeirarts
       SYS_CODIGO_CLIENTE = "0331" Or          ;Estrela do Oeste
       SYS_CODIGO_CLIENTE = "0335" Or          ;FertiSolo
       SYS_CODIGO_CLIENTE = "0336" Or          ;Casa do Fazendeiro
       SYS_CODIGO_CLIENTE = "0338" Or          ;Gonfer
       SYS_CODIGO_CLIENTE = "0339" Or          ;Dep. Pioneiro
       SYS_CODIGO_CLIENTE = "0217" Or          ;Auditoria
       SYS_CODIGO_CLIENTE = "0144" Or          ;Pintacor
       SYS_CODIGO_CLIENTE = "0008")            ;Wanda Brasil
     And   
      ([Codigo do Documento] = "NFSE" Or
       [Codigo do Documento] = "NFS"  Or
       SubStr([Codigo do Documento],1,3) = "NSE")
      Then Loop
  EndIf

   regok=true
   If VSDGGRP<>"" 
      then 
          ;--- MODAMIL -------------------------------------------------------
          if sys_Codigo_Cliente ="0051"                  and 
             [Codigo da Empresa]="0001"                  and 
             [Aliquota de ICMS ]>0                       and
             [TIPO PESSOA      ]="JURIDICA"              and 
             [IE               ]<>"ISENTO"                   
             Then 
                  If Tabela="Rfat_tmp"                           and
                     Search("DEVOL",[Descricao da Destinacao])=0 
                     then regok=true
                  endif  

                  If Tabela="Rest_tmp"                           and
                     [Tipo de Operacao]="D"                      
                     then regok=true
                  endif   
             else regok=false               
           endif  
          ;-------------------------------------------------------------------
   endif   
   if not regok then loop endif

   ;--- verifica se mudou de empresa/documento ---------------------------------
   If Tabela="Rfat_tmp"
      Then If [Codigo da Empresa             ]<>EMPRESA Or
              AlinhM([Numero do Documento],10)<>NDOCTO  Or
              [Serie do Documento            ]<>SDOCTO
              Then Grava(Tabela)
                   Localiza_Nota(Tabela)
           EndIf
           
   EndIf

   If Tabela="Rest_tmp"
      Then If [Codigo da Empresa             ]<>EMPRESA Or
              [Codigo                        ]<>CODIGO  Or
              AlinhM([Numero do Documento],10)<>NDOCTO  Or
              [Serie do Documento            ]<>SDOCTO  Or
              [SubSerie do Documento         ]<>SSDOCTO
              Then Grava(Tabela)
                   Localiza_Nota(Tabela)
           EndIf
   EndIf

   Moveto "Answer"   

   ;--- verifica cst/icms do cadastro ------------------------------------------
   ;--- checar item sem icms st no estado de origem 
   ;---         mas com icms st no estado de destino 
   Item_CST_ICMS=""
   
   GetRecord "\\Sistemas\\Estoque\\Itens" [Answer->Codigo do Item] to REG_ITEM_TRIB
   If RetVal
      Then Item_CST_ICMS=REG_ITEM_TRIB["Tipo Tributacao"]
   EndIf

   ;--- define grupo de itens para agrupamento ---------------------------------
   Switch
     Case [Answer->Tipo do Item      ]="C" : ICMS_SUBSTITUTO="C"  ;Item de Servi‡o
     Case [Answer->Tributacao de ICMS]="S" : ICMS_SUBSTITUTO="S"  ;Substituicao Tributaria
     OtherWise                             : ICMS_SUBSTITUTO=""
   EndSwitch

   ;--- memoriza valores originais dos tributos --------------------------------
   vrbcipi =[Answer->IPI_BC          ]
   vripi   =[Answer->Valor do IPI    ]

   Aliqicms=[Answer->Aliquota de ICMS]
   vrbcicms=[Answer->ICMS_BC         ]
   vricms  =[Answer->Valor do ICMS   ]

   ;--- classifica as opera‡äes com ou sem credito do tributo -------------------
   Switch
     Case Search("SIMPLES",TPEMPR)>0 : ; ‚ simples nacional
          tem_credito_icms=false 
          tem_credito_ipi =false 

     OtherWise                       : ; ‚ debito/credito
          tem_credito_icms=true 
          tem_credito_ipi =true 

           ;--- Verificando se ‚ comercio --------------------------------------
           If Search("IND",ATIVIDADE)=0   and      ; nÆo ‚ Industria entÆo comercio/servi‡o
              [Answer->Tipo do Item ]<>"T"         ; Item Diferente Terceiros/Revenda
              Then Tem_Credito_ipi=False
           EndIf

           ;--- Verificando se ‚ comercio e item de revenda --------------------
           If Search("COM",ATIVIDADE)>0   and           ; ‚ comercio
              [Answer->Tipo do Item ]="T"               ; Item Terceiros/Revenda
              Then
                   If SubStr(Item_CST_ICMS,1,1)="0" Or  ; origem do produto              
                      SubStr(Item_CST_ICMS,1,1)="2" Or         
                      SubStr(Item_CST_ICMS,1,1)="3" Or         
                      SubStr(Item_CST_ICMS,1,1)="4" Or         
                      SubStr(Item_CST_ICMS,1,1)="5" Or         
                      SubStr(Item_CST_ICMS,1,1)="6"            
                      Then Tem_Credito_ipi=False
                   EndIf
          EndIf   

          ;--- Verificando se ‚ opera‡Æo com uso,consumo e imobilizado --------
          If SearchFrom("155",[Answer->CFO],1)>0 Or  ; 155.. 255.. uso, consumo e imobilizado
             SearchFrom("255",[Answer->CFO],1)>0 Or
              
             ( Tabela="Rest_tmp" And 
               [Answer->Tipo de Operacao]="A" and
               [Answer->CFO]<>"1923" and [Answer->CFO]<>"2923" )   Or  ; Nota de entrada/estoque de Aplica‡Æo Direta
                
             ;;;;[Answer->Tipo do Item    ]="D"      Or  ; Item Aplica‡Æo Direta    --nÆo se aplica para CEMIG  
             [Answer->Tipo do Item    ]="G"      Or  ; Item Moveis e Utensilios
             [Answer->Tipo do Item    ]="H"      Or  ; Item Maquinas e Equipamentos
             [Answer->Tipo do Item    ]="I"          ; Item Bens em Geral    
             Then 
                   tem_credito_icms=false 
                   tem_credito_ipi =false
                   
                   if sys_Codigo_Cliente="0290"
                      then tem_credito_icms=true
                   endif   
           EndIf
          
          ;--- Verificando se ‚ item com icms st no cadastro -------------------
           if Search(SubStr(Item_CST_ICMS,2,2),"60")>0  ; produto com ST nao aproveita ICMS
              Then Switch 
                    Case Tabela="Rfat_tmp" And [Answer->CFO]<>"3102" And [Answer->CFO]<>"3949" And
                                               [Answer->CFO]<>"2202"                          :
                         tem_credito_icms=false 
        
                    Case Tabela="Rest_tmp" And [Answer->Tipo de Operacao]<>"D":
                         tem_credito_icms=false 
                    
                   EndSwitch
           EndIf
   EndSwitch
   
   ;--- NÆo vai ter credito de icms na opera‡Æo --------------------------------
   If not tem_credito_icms
      Then 
           [Answer->Aliquota de ICMS]=0
           [Answer->ICMS_BC         ]=BlankNum()
           [Answer->Valor do ICMS   ]=BlankNum()
   EndIf   

   ;--- NÆo vai ter credito de ipi  na opera‡Æo --------------------------------
   If not tem_credito_ipi 
      Then 
           [Answer->Aliquota de IPI ]=0
           [Answer->IPI_BC          ]=BlankNum()
           [Answer->Valor do IPI    ]=BlankNum()
   EndIf   

   ;--- simulando a BC ICMS da opera‡Æo ----------------------------------------
   bc_icms_simulado=([Answer->Preco Total]-[Answer->Valor Desconto Total])+
                                           [Answer->Valor Frete Total   ] +
                                           [Answer->Valor Seguro Total  ] +
                                           [Answer->Valor OutDesp Total ] 

   If SearchFrom("155",[Answer->CFO],1)>0 Or  ; 155.. 255.. uso, consumo e imobilizado, ipi faz parte da bc icms
      SearchFrom("255",[Answer->CFO],1)>0 or
      SearchFrom("235",[Answer->CFO],1)>0     ; aquisi‡Æo de servi‡o de transporte
      Then bc_icms_simulado=bc_icms_simulado+vripi
   EndIf                              
    
   ;--- ICMS Calculo Diferencial de Aliquota -----------------------------------
   vr_dif_icms=0
   If Tabela="Rest_tmp"                        ; Nota de entrada/estoque 
      Then 
           if [Answer->INCIDENCIA DIF_ALIQ_ICMS]="1" ; tributo fiscal
              then vr_dif_icms=[Answer->VALOR DIF_ALIQ_ICMS     ]
           endif
           if SYS_CODIGO_CLIENTE="0227" And substr([Answer->Codigo do Documento],1,2)="CT" ; conhecimento transporte
              then vr_dif_icms=0
           endif    
   EndIf 

   ;--- Agrupa opera‡äes -------------------------------------------------------
   Moveto "\\Sistemas\\Exporta\\Tmp_rs"
   Moveto [CFO]
   Locate [Answer->CFO],[Answer->Aliquota de ICMS],0,ICMS_SUBSTITUTO,0,0
   If Not RetVal
      Then End Down
           [CFO            ]=[Answer->CFO               ]
           [ICMS Aliquota  ]=[Answer->Aliquota de ICMS  ]
           [ICMS Reducao BC]=0
           [ICMS Substituto]=ICMS_SUBSTITUTO
           [IPI Aliquota   ]=0
           [IPI Reducao BC ]=0
   EndIf


   ;--- Verificando bc icms reduzida -------------------------------------------
   If (SearchFrom("20",[Answer->Tipo Tributacao],1)>0 Or     ; bcicms com redu‡Æo 
       SearchFrom("70",[Answer->Tipo Tributacao],1)>0) And tem_credito_icms
      Then If vrbcicms>0 and (bc_icms_simulado>vrbcicms)
              Then [ICMS Isento         ]=[ICMS Isento         ]+(bc_icms_simulado-vrbcicms)
                   [Answer->Tributacao de ICMS]="O"
           EndIf
   EndIf  
   
     ;--- ICMS -------------------------------------------------------------------
   If [Answer->Tributacao de ICMS]="I" Or
      [Answer->Tributacao de ICMS]="N"
      Then [ICMS Isento         ]=[ICMS Isento         ]+bc_icms_simulado
   EndIf   
   If [Answer->Aliquota de ICMS]>0 Or [Answer->Valor do ICMS]>0
      Then [ICMS Base de Calculo]=[ICMS Base de Calculo]+[Answer->ICMS_BC      ]
           [ICMS Debitado       ]=[ICMS Debitado       ]+[Answer->Valor do ICMS]
   EndIf        
   If [Answer->Tributacao de ICMS]="S" Or
      [Answer->ICMS_ST_BC        ]>0   Or
      [Answer->ICMS_ST_Valor     ]>0
      Then [BCSubstituicao ICMS ]=[BCSubstituicao ICMS ]+[Answer->ICMS_ST_BC   ]
           [Substituicao ICMS   ]=[Substituicao ICMS   ]+[Answer->ICMS_ST_Valor]
           TOT_ITENS_SUBST       =TOT_ITENS_SUBST       +[Answer->Preco Total]
   EndIf

   If [Answer->Preco Total  ]<=0 and [ICMS Base de Calculo]<=0  ; nf complemento               
      Then [ICMS Outros        ]=[ICMS Outros        ]+vrbcicms
   EndIf    
   
   [ICMS_Vlr Dif.Aliquota]=[ICMS_Vlr Dif.Aliquota]+vr_dif_icms

   ;--- IPI --------------------------------------------------------------------
   If [Answer->Tipo do Item]<>"C" 
      Then 
           If [Answer->Tributacao de IPI]="I" Or
              [Answer->Tributacao de IPI]="N"
              Then [IPI Isento         ]=[IPI Isento         ]+[Answer->Preco Total ]
           Endif   

           If [Answer->Tributacao de IPI]<>"O" ; IPI Outros
              Then If [Answer->Aliquota de IPI]>0 Or [Answer->Valor do IPI]>0
                      Then [IPI Base de Calculo]=[IPI Base de Calculo]+[Answer->IPI_BC      ]
                           [IPI Debitado       ]=[IPI Debitado       ]+[Answer->Valor do IPI]                        
                   EndIf
           Endif   
   EndIf

   vr_contabil    =([Answer->Preco Total]-[Answer->Valor Desconto Total])+
                                          [Answer->Valor Frete Total   ] +
                                          [Answer->Valor Seguro Total  ] +
                                          [Answer->Valor OutDesp Total ] +
                                          vripi                          +
                                          [Answer->ICMS_ST_Valor       ] +
                                          [Answer->FCP_ST_Valor        ]

   [Preco Total  ]= [Preco Total  ]      +vr_contabil
   [Descontos    ]= [Descontos    ]      +[Answer->Valor Desconto Total ]+
                                          [Answer->ICMS_Valor_Desonerado]

   [Despesas     ]= [Despesas     ]      +[Answer->Valor Frete Total    ]+
                                          [Answer->Valor Seguro Total   ]+
                                          [Answer->Valor OutDesp Total  ]+
                                          [Answer->ICMS_ST_Valor        ]+
                                          [Answer->FCP_ST_Valor         ]

   [Valor IPI Obs]=[Valor IPI Obs]+vripi
   
   UnlockRecord

   Moveto "Answer"
EndScan
Grava(Tabela)
Do_It!
ClearAll

EndProc  ; (REG_ENTRA)

;*******************************************************************************
;* Localiza Nota                                                               *
;*******************************************************************************
Proc Localiza_Nota(Tabela)
Private Tabela
If Tabela="Rest_tmp"
   Then NDOCTO  = AlinhM([Answer->Numero do Documento ],10)
        SDOCTO  = [Answer->Serie do Documento   ]
        SSDOCTO = [Answer->SubSerie do Documento]
        CODIGO  = [Answer->Codigo               ]
        EMPRESA = [Answer->Codigo da Empresa    ]
        NLANCTO = [Answer->Numero do Lancamento ]

   Else NDOCTO  = AlinhM([Answer->Numero do Documento ],10)
        SDOCTO  = [Answer->Serie do Documento   ]
        EMPRESA = [Answer->Codigo da Empresa    ]
EndIf

If EMPRESA<>CEMPR
   Then Moveto "\\Sistemas\\Cadastro\\Empresas"
        Moveto [Codigo da Empresa]
        Locate EMPRESA
        If RetVal
           Then ATIVIDADE=[Atividade]
                TPEMPR   =[Tipo da Empresa]
                UFEMPR   =[UF Empresa ]
           Else ATIVIDADE=""
                TPEMPR   =""
                UFEMPR   =""
        EndIf
        CEMPR=EMPRESA
        
        ALIQ_ICMS_EMPR=BlankNum()
        Moveto "\\Sistemas\\Vendas\\Estados"
        Moveto [UF]
        Locate UFEMPR
        If RetVal
           Then ALIQ_ICMS_EMPR=[Aliquota de ICMS]
        EndIf
EndIf

If SYS_CODIGO_CLIENTE="0300" Or
   SYS_CODIGO_CLIENTE="0215" Or
   SYS_CODIGO_CLIENTE="0353" Or
   SYS_CODIGO_CLIENTE="0199" 
  Then TPEMPR="DEBITO/CREDITO"
EndIf  

Moveto "Answer"
CopyToArray REGTB

EndProc

;*******************************************************************************
;* Zera Variaveis                                                              *
;*******************************************************************************
Proc Zera()

Moveto "\\Sistemas\\Exporta\\Tmp_rs2"
Home
While Not RecordStatus("New")
  Del
EndWhile

Moveto "\\Sistemas\\Exporta\\Tmp_rs"
Home
While Not RecordStatus("New")
  Del
EndWhile
TOT_ITENS_SUBST=0
EndProc  ; (Zera)

;*******************************************************************************
;* Rateio de Valores                                                           *
;*******************************************************************************
Proc Rateio(Tabela)
Private Tabela, vrbase, nlanc

SOMA_RAT_DBCSUBST=0
SOMA_RAT_DSUBST  =0

nlanc=0

Moveto "\\Sistemas\\Exporta\\Tmp_rs"
Scan 

  If [ICMS Substituto]<>"C" Then ; diferente de servi‡o

      Switch
        Case Tabela="Rest_tmp":
          ;*** Rateio da Substituicao Tributaria/Destinatario ***
          If REGTB["BC Substituicao Destinat"]>0 And [ICMS Substituto]="S"
            Then TX_SUBST =([Preco Total]/TOT_ITENS_SUBST)*100

                 [BC Substituicao Destinat]=NDecimal((REGTB["BC Substituicao Destinat"]*TX_SUBST)/100,2)
                 [Vr Substituicao Destinat]=NDecimal((REGTB["Vr Substituicao Destinat"]*TX_SUBST)/100,2)

                 SOMA_RAT_DBCSUBST=SOMA_RAT_DBCSUBST+[BC Substituicao Destinat]
                 SOMA_RAT_DSUBST  =SOMA_RAT_DSUBST  +[Vr Substituicao Destinat]
          EndIf
      EndSwitch
      
;;;;;;If [ICMS Isento]>0   rateio ja efetuado com bc_icms_simulado anteriormente !!
;;;;;;   Then [ICMS Isento ]=[ICMS Isento         ]-[Descontos        ]
;;;;;;EndIf   
  EndIf

  If IsBlank([IPI Base de Calculo ]) Then [IPI Base de Calculo ]=0 EndIf
  If IsBlank([IPI Isento          ]) Then [IPI Isento          ]=0 EndIf
  If IsBlank([IPI Outros          ]) Then [IPI Outros          ]=0 EndIf

  If IsBlank([ICMS Base de Calculo]) Then [ICMS Base de Calculo]=0 EndIf
  If IsBlank([ICMS Isento         ]) Then [ICMS Isento         ]=0 EndIf
  If IsBlank([ICMS Outros         ]) Then [ICMS Outros         ]=0 EndIf

  nlanc=nlanc+1
EndScan

Switch
  Case Tabela="Rest_tmp":
    ;*** Diferenca Rateio da Substituicao Tributaria/Destinatario ***
    If SOMA_RAT_DBCSUBST>0 Or SOMA_RAT_DSUBST>0
      Then 
           DIFE_RAT_DBCSUBST=REGTB["BC Substituicao Destinat"]-SOMA_RAT_DBCSUBST
           DIFE_RAT_DSUBST  =REGTB["Vr Substituicao Destinat"]-SOMA_RAT_DSUBST
           Scan For [ICMS Substituto]<>"C"   ; diferente de servi‡o
             If [Vr Substituicao Destinat]>0
                Then [Bc Substituicao Destinat]=[BC Substituicao Destinat]+DIFE_RAT_DBCSUBST
                     [Vr Substituicao Destinat]=[Vr Substituicao Destinat]+DIFE_RAT_DSUBST
                     QuitLoop
             EndIf
           EndScan
    EndIf
EndSwitch

;--- Agrupar operacao sem tributacao -------------------------------------------
Moveto "\\Sistemas\\Exporta\\Tmp_rs"
Scan
  CopyToArray REGCFO

  Switch
    Case Tabela="Rest_tmp":
      If TPEMPR="SIMPLES NACIONAL"  Or
         TPEMPR="SIMPLES NAC. ESRB" Or 
         REGTB["Tipo de Operacao"]="A"  ; Aplica‡Æo Direta
         Then REGCFO["IPI Aliquota"   ]=0
              REGCFO["IPI Reducao BC" ]=0
              REGCFO["ICMS Aliquota"  ]=0
              REGCFO["ICMS Reducao BC"]=0
              REGCFO["ICMS Substituto"]=""
      EndIf   

    Case Tabela="Rfat_tmp":
      If TPEMPR="SIMPLES NACIONAL"  Or
         TPEMPR="SIMPLES NAC. ESRB" 
         Then REGCFO["IPI Aliquota"   ]=0
              REGCFO["IPI Reducao BC" ]=0
              REGCFO["ICMS Aliquota"  ]=0
              REGCFO["ICMS Reducao BC"]=0
              REGCFO["ICMS Substituto"]=""
      EndIf   
  EndSwitch

  If REGCFO["ICMS Substituto"]="S"
     Then REGCFO["ICMS Substituto"]=""
  EndIf

  Moveto "\\Sistemas\\Exporta\\Tmp_rs2"
  Moveto [CFO]
  Locate REGCFO["CFO"],REGCFO["ICMS Aliquota"],0,
         REGCFO["ICMS Substituto"],REGCFO["IPI Aliquota"],REGCFO["IPI Reducao BC"]
  If Not RetVal
     Then End Down
          CopyFromArray REGCFO
     Else [Preco Total             ]=[Preco Total             ]+REGCFO["Preco Total"]

          [ICMS Base de Calculo    ]=[ICMS Base de Calculo    ]+REGCFO["ICMS Base de Calculo"]
          [ICMS Debitado           ]=[ICMS Debitado           ]+REGCFO["ICMS Debitado"]
          [ICMS Isento             ]=[ICMS Isento             ]+REGCFO["ICMS Isento"]
          [ICMS Outros             ]=[ICMS Outros             ]+REGCFO["ICMS Outros"]

          [BCSubstituicao ICMS     ]=[BCSubstituicao ICMS     ]+REGCFO["BCSubstituicao ICMS"]
          [Substituicao ICMS       ]=[Substituicao ICMS       ]+REGCFO["Substituicao ICMS"]

          [IPI Base de Calculo     ]=[IPI Base de Calculo     ]+REGCFO["IPI Base de Calculo"]
          [IPI Debitado            ]=[IPI Debitado            ]+REGCFO["IPI Debitado"]
          [IPI Isento              ]=[IPI Isento              ]+REGCFO["IPI Isento"]
          [IPI Outros              ]=[IPI Outros              ]+REGCFO["IPI Outros"]

          [BC Substituicao Destinat]=[BC Substituicao Destinat]+REGCFO["BC Substituicao Destinat"]
          [VR Substituicao Destinat]=[VR Substituicao Destinat]+REGCFO["VR Substituicao Destinat"]

          [Despesas                ]=[Despesas                ]+REGCFO["Despesas"]
          [Descontos               ]=[Descontos               ]+REGCFO["Descontos"]

          [Valor IPI Obs           ]=[Valor IPI Obs           ]+REGCFO["Valor IPI Obs"]

          [ICMS_Vlr Dif.Aliquota   ]=[ICMS_Vlr Dif.Aliquota   ]+REGCFO["ICMS_Vlr Dif.Aliquota"]

  EndIf
  UnLockRecord

  Moveto "\\Sistemas\\Exporta\\Tmp_rs"
EndScan

;--- Calculos Outros ICMS/IPI --------------------------------------------------
Moveto "\\Sistemas\\Exporta\\Tmp_rs2"
Scan  

  If [Preco Total]>([ICMS Base de Calculo]+[ICMS Isento])
     Then [ICMS Outros]=[Preco Total]-([ICMS Base de Calculo]+[ICMS Isento])
          If [ICMS Outros]<=0.02 And [ICMS Outros]<>[Preco Total]
             Then [ICMS Outros]=0
          EndIf    
  EndIf

  If Search("IND",ATIVIDADE)>0
     Then 
          If [Preco Total]>=([IPI Base de Calculo]+[IPI Debitado]+[IPI Isento]+[Substituicao ICMS])
             Then
                  [IPI Outros]=              [Preco Total]-([IPI Base de Calculo]+[IPI Debitado]+[IPI Isento]+[Substituicao ICMS])
                   If [IPI Outros]<=0.02 And [IPI Outros]<>[Preco Total]
                      Then [IPI Outros]=0
                   EndIf    
          EndIf   
  EndIf
  
EndScan

EndProc

;*******************************************************************************
;* Rotina p/ Gravar Registro de Entrada                                        *
;*******************************************************************************
Proc GRAVA(Tabela)
Private Tabela, IE_Dest
 
Rateio(Tabela)
  
N_Notas=0
Moveto "\\Sistemas\\Exporta\\Tmp_rs2"
Scan
  
   If (SYS_CODIGO_CLIENTE = "0325" Or          ;Roli
       SYS_CODIGO_CLIENTE = "0326" Or          ;HRoper
       SYS_CODIGO_CLIENTE = "0328" Or          ;Ecletica
       SYS_CODIGO_CLIENTE = "0329" Or          ;Madeirarts
       SYS_CODIGO_CLIENTE = "0331" Or          ;Estrela do Oeste
       SYS_CODIGO_CLIENTE = "0335" Or          ;FertiSolo
       SYS_CODIGO_CLIENTE = "0336" Or          ;Casa do Fazendeiro
       SYS_CODIGO_CLIENTE = "0338" Or          ;Gonfer
       SYS_CODIGO_CLIENTE = "0339" Or          ;Dep. Pioneiro
       SYS_CODIGO_CLIENTE = "0217" Or          ;Auditoria
       SYS_CODIGO_CLIENTE = "0144" Or          ;Pintacor
       SYS_CODIGO_CLIENTE = "0008")            ;Wanda Brasil
     And   
      (REGTB["Codigo do Documento"] = "NFSE" Or
       REGTB["Codigo do Documento"] = "NFS"  Or
       SubStr(REGTB["Codigo do Documento"],1,3) = "NSE")
      Then Loop
  EndIf
  
  
  
  SEQDOC=SEQDOC+1

  SAPI_MEEPP="9"
  SAPI_BENFI="9"

  Moveto "\\Sistemas\\Cadastro\\Destinat"
  Moveto [Codigo]
  Locate REGTB["Codigo"]
  If RetVal
     Then SAPI_MEEPP=[SAPI_ME_EPP]
          SAPI_BENFI=[SAPI_Beneficio Fiscal]

          If [Tipo]="C"
             Then
                  SAPI_MEEPP="0"
                  SAPI_BENFI="0"

                  Switch
                    Case Tabela="Rfat_tmp":
                      If Search("DEVOL",REGTB["Descricao da Destinacao"])>0
                         Then If REGTB["UF"]="MG"
                                 Then SAPI_MEEPP="0"
                                      SAPI_BENFI="0"
                                 Else SAPI_MEEPP="1"
                                      SAPI_BENFI="2"
                              EndIf
                      EndIf
                    Case Tabela="Rest_tmp":
                      If REGTB["Tipo de Operacao"]="D"
                         Then If REGTB["UF"]="MG"
                                 Then SAPI_MEEPP="0"
                                      SAPI_BENFI="0"
                                 Else SAPI_MEEPP="1"
                                      SAPI_BENFI="2"
                              EndIf
                      EndIf
                  EndSwitch
          EndIf

          If [\Sistemas\Cadastro\Destinat->IE] = "NAOCONTRIBUINTE"
             Then  IE_Dest ="ISENTO"
             Else  IE_Dest =[\Sistemas\Cadastro\Destinat->IE]
          EndIf
  EndIf

  Switch
    Case Tabela="Rfat_tmp":
         Moveto "\\Sistemas\\Estoque\\RegEntra"
         End Down
         [Codigo da Empresa         ] =EMPRESA
         [Numero da Nota Fiscal     ] =SubStr(NDOCTO,4,7)
         [Serie da Nota Fiscal      ] =SDOCTO
         [Sequencia da Nota Fiscal  ] =StrVal(N_Notas)
         [Tipo                      ] =REGTB["Tipo"]
         [Codigo                    ] =REGTB["Codigo"]
         If IsBlank([Razao Social])
            Then [Razao Social      ] =REGTB["Razao Social"]
         EndIf
         [IE                        ] =IE_Dest
         [Data de Entrada           ] =REGTB["Data de Saida"]
         [Data de Emissao           ] =REGTB["Data de Emissao"]
         [Codigo do Documento       ] =REGTB["Codigo do Documento"]
         [Especie da Nota Fiscal    ] =REGTB["Tipo do Documento"]

         [Condicao de Pagamento     ]="0"         
         If REGTB["Tipo de Pagamento"]="V" Then [Condicao de Pagamento]="1" EndIf
         If REGTB["Tipo de Pagamento"]="P" Then [Condicao de Pagamento]="2" EndIf

         [Chave_Acesso_NFe          ] =REGTB["Chave_Acesso_NFe"]

         [Valor Contabil            ] =[\Sistemas\Exporta\Tmp_rs2->Preco Total]
         [CFO                       ] =[\Sistemas\Exporta\Tmp_rs2->CFO                 ]
         [Base Calculo ICMS         ] =[\Sistemas\Exporta\Tmp_rs2->ICMS Base de Calculo]
         [Aliquota de ICMS          ] =[\Sistemas\Exporta\Tmp_rs2->ICMS Aliquota       ]
         [ICMS Debitado             ] =[\Sistemas\Exporta\Tmp_rs2->ICMS Debitado       ]
         [ICMS Isento               ] =[\Sistemas\Exporta\Tmp_rs2->ICMS Isento         ]
         [ICMS Outros               ] =[\Sistemas\Exporta\Tmp_rs2->ICMS Outros         ]
         [BCSubstituicao ICMS       ] =[\Sistemas\Exporta\Tmp_rs2->BCSubstituicao ICMS ]
         [Substituicao ICMS         ] =[\Sistemas\Exporta\Tmp_rs2->Substituicao ICMS   ]

         [Despesas                  ] =[\Sistemas\Exporta\Tmp_rs2->Despesas            ]
         [Valor Descontos           ] =[\Sistemas\Exporta\Tmp_rs2->Descontos           ]

         If [ICMS Isento  ]>0 Then [Tipo de Tributacao ICMS]="2" endif
         If [ICMS Outros  ]>0 Then [Tipo de Tributacao ICMS]="3" endif
         If [ICMS Debitado]>0 Then [Tipo de Tributacao ICMS]="1" endif

         Switch
           Case TPEMPR="SIMPLES NACIONAL" Or
                TPEMPR="SIMPLES NAC. ESRB":

             [Tipo de Tributacao IPI ]="0"
             [Base Calculo IPI       ]=0
             [Aliquota de IPI        ]=0
             [IPI Outros             ]=0
             [IPI Debitado           ]=0
             [IPI Isento             ]=0
             
             If Search("IND",ATIVIDADE)>0
                Then [Tipo de Tributacao IPI]="3"
                     [IPI Outros            ]=[Valor Contabil]
             EndIf
             
           Case Search("IND",ATIVIDADE)>0:
             [Base Calculo IPI          ] =[\Sistemas\Exporta\Tmp_rs2->IPI Base de Calculo]
             [Aliquota de IPI           ] =[\Sistemas\Exporta\Tmp_rs2->IPI Aliquota       ]
             [IPI Debitado              ] =[\Sistemas\Exporta\Tmp_rs2->IPI Debitado       ]
             [IPI Isento                ] =[\Sistemas\Exporta\Tmp_rs2->IPI Isento         ]
             [IPI Outros                ] =[\Sistemas\Exporta\Tmp_rs2->IPI Outros         ]
             [Tipo de Tributacao IPI    ]="0"
             If [IPI Isento  ]>0 Then [Tipo de Tributacao IPI]="2" endif
             If [IPI Outros  ]>0 Then [Tipo de Tributacao IPI]="3" endif
             If [IPI Debitado]>0 Then [Tipo de Tributacao IPI]="1" endif

           OtherWise:
             [Tipo de Tributacao IPI    ]="0"
             [Base Calculo IPI          ] =0
             [Aliquota de IPI           ] =0
             [IPI Debitado              ] =0
             [IPI Isento                ] =0
             [IPI Outros                ] =0
         EndSwitch
          
         ;--- obs IPI ------------------------------------------------------
         If [\Sistemas\Exporta\Tmp_rs2->Valor IPI Obs]>[IPI Debitado] 
            Then [Observacao        ]="IPI "+LTrim(StrVal(Format("W14.2,EIC",[\Sistemas\Exporta\Tmp_rs2->Valor IPI Obs]-[IPI Debitado])))
         EndIf

         ;--- obs diferencial de aliquota icms -----------------------------
         [ICMS_Vlr Dif.Aliquota     ]=[\Sistemas\Exporta\Tmp_rs2->ICMS_Vlr Dif.Aliquota]
         If [\Sistemas\Exporta\Tmp_rs2->ICMS_Vlr Dif.Aliquota]>0 
            Then If not IsBlank([Observacao        ])
                    Then [Observacao]=[Observacao             ]+" * "
                 EndIf
                 [Observacao        ]=[Observacao             ]+
                                      "VR ICMS DIFERENCIAL ALIQUOTA "+LTrim(StrVal(Format("W14.2,EIC",[\Sistemas\Exporta\Tmp_rs2->ICMS_Vlr Dif.Aliquota])))
         EndIf

         [Cancelada                 ] ="N"
         [Observacao                ] =""
         [Sequencia do Documento    ] =ALINHM(StrVal(SEQDOC),6)
         [Tipo de Entrada           ] ="O"

         Switch
           Case Search("DEVOL",REGTB["Descricao da Destinacao" ])>0: [Tipo de Entrada]="F"
           Case Search("COMPRA",REGTB["Descricao da Destinacao"])>0: [Tipo de Entrada]="C"
           Case Search("TRANSF",REGTB["Descricao da Destinacao"])>0: [Tipo de Entrada]="T"
           Case Search("CONSIG",REGTB["Descricao da Destinacao"])>0: [Tipo de Entrada]="A"
         EndSwitch
         [Tipo de Mercadoria        ] ="00"
         [Estado Fornecedor         ] =REGTB["UF"]
         [Tipo de Despesa           ] =""

         [SAPI_ME_EPP               ]=SAPI_MEEPP
         [SAPI_Beneficio Fiscal     ]=SAPI_BENFI
         [Frete por Conta           ] =REGTB["Frete por Conta"]
         [Emitente da Nota Fiscal   ]="P"

         If [Substituicao ICMS      ]>0
            Then [Recolhimento Substituicao ]="1"
            Else [Recolhimento Substituicao ]="0"
         Endif
         [Valor Documento           ] =REGTB["Valor Nota Fiscal"]
         [Valor IPI Obs             ] =[\Sistemas\Exporta\Tmp_rs2->Valor IPI Obs]

         Switch
           Case REGTB["Situacao"]="C" And REGTB["Sistema Gerador"]="EX" :
                Switch
                    Case REGTB["Data de Saida"  ]< VSDGDTINI And 
                         (REGTB["Data de Acerto"]>=VSDGDTINI  And
                         REGTB["Data de Acerto" ]<=VSDGDTFIM): 
                         [Cancelada                 ] ="S"
                         [Observacao                ] ="* CANCELAMENTO EXTEMPOR¶NEO *"
                    Case (REGTB["Data de Saida"  ]>=VSDGDTINI  And
                          REGTB["Data de Saida"  ]<=VSDGDTFIM) And 
                         (REGTB["Data de Acerto"]>=VSDGDTINI   And
                          REGTB["Data de Acerto"]<=VSDGDTFIM): 
                          [Cancelada                 ] ="S"
                          [Observacao                ] ="* CANCELADA *"
                EndSwitch
           Case REGTB["Situacao"]="C" And REGTB["Sistema Gerador"]="DN" :
                [Cancelada                 ] ="2"
                [Observacao                ] ="* DENEGADA *" 
           Case REGTB["Situacao"]="C" And 
                REGTB["Descricao da Destinacao"]="INUTILIZADA" :
                [Cancelada                 ] ="4"
                [Observacao                ] ="* INUTILIZADA *"  
           Case REGTB["Situacao"]="C":
                [Cancelada ] ="S"
                [Observacao] ="* CANCELADA *" 
         EndSwitch

    Case Tabela="Rest_tmp":
         Moveto "\\Sistemas\\Estoque\\RegEntra"
         End Down
         [Numero do Lancamento      ] =NLANCTO
         [Codigo da Empresa         ] =EMPRESA
         [Numero da Nota Fiscal     ] =SubStr(AlinhM(REGTB["Numero do Documento"],10),4,7)
         [Serie da Nota Fiscal      ] =REGTB["Serie do Documento"]
         [SubSerie da Nota Fiscal   ] =REGTB["SubSerie do Documento"]
         [Sequencia da Nota Fiscal  ] =StrVal(N_Notas)
         [Tipo                      ] =REGTB["Tipo"]
         [Codigo                    ] =REGTB["Codigo"]
         [Razao Social              ] =REGTB["Razao Social"]
         [CGC                       ] =REGTB["CGC"]
         [IE                        ] =IE_Dest
         [Data de Entrada           ] =REGTB["Data de Entrada"]
         [Data de Emissao           ] =REGTB["Data de Emissao"]
         [Codigo do Documento       ] =REGTB["Codigo do Documento"]
         [Especie da Nota Fiscal    ] =REGTB["Tipo do Documento"]
         [Data de Emissao           ] =REGTB["Data de Emissao"]
         [Condicao de Pagamento]="0"
         If REGTB["Tipo de Pagamento"]="V" Then [Condicao de Pagamento]="1" EndIf
         If REGTB["Tipo de Pagamento"]="P" Then [Condicao de Pagamento]="2" EndIf
         [Valor Contabil            ] =[\Sistemas\Exporta\Tmp_rs2->Preco Total         ]
         [CFO                       ] =[\Sistemas\Exporta\Tmp_rs2->CFO                 ]
         [Base Calculo ICMS         ] =[\Sistemas\Exporta\Tmp_rs2->ICMS Base de Calculo]
         [Aliquota de ICMS          ] =[\Sistemas\Exporta\Tmp_rs2->ICMS Aliquota       ]
         [ICMS Debitado             ] =[\Sistemas\Exporta\Tmp_rs2->ICMS Debitado       ]
         [ICMS Isento               ] =[\Sistemas\Exporta\Tmp_rs2->ICMS Isento         ]
         [ICMS Outros               ] =[\Sistemas\Exporta\Tmp_rs2->ICMS Outros         ]
         [BCSubstituicao ICMS       ] =[\Sistemas\Exporta\Tmp_rs2->BCSubstituicao ICMS ]
         [Substituicao ICMS         ] =[\Sistemas\Exporta\Tmp_rs2->Substituicao ICMS   ]

         [Despesas                  ] =[\Sistemas\Exporta\Tmp_rs2->Despesas            ]
         [Valor Descontos           ] =[\Sistemas\Exporta\Tmp_rs2->Descontos           ]

         [Tipo de Tributacao ICMS]="3"
         If [ICMS Isento  ]>0 Then [Tipo de Tributacao ICMS]="2" endif
         If [ICMS Outros  ]>0 Then [Tipo de Tributacao ICMS]="3" endif
         If [ICMS Debitado]>0 Then [Tipo de Tributacao ICMS]="1" endif
         [Chave_Acesso_NFe          ] =REGTB["Chave_Acesso_NFe"]
         [Cancelada                 ] ="N"
         [Observacao                ] =""
         [Sequencia do Documento    ] =ALINHM(StrVal(SEQDOC),6)
         [Tipo de Entrada           ]="O"
         Switch
           Case REGTB["Tipo de Operacao"]="D": [Tipo de Entrada]="F"
           Case REGTB["Tipo de Operacao"]="C": [Tipo de Entrada]="C"
           Case REGTB["Tipo de Operacao"]="T": [Tipo de Entrada]="T"
         EndSwitch

         Switch
           Case TPEMPR="SIMPLES NACIONAL"  Or
                TPEMPR="SIMPLES NAC. ESRB" : 

             [Tipo de Tributacao IPI ]="0"
             [Base Calculo IPI       ]=0
             [Aliquota de IPI        ]=0
             [IPI Outros             ]=0
             [IPI Debitado           ]=0
             [IPI Isento             ]=0
             
             If Search("IND",ATIVIDADE)>0
                Then [Tipo de Tributacao IPI]="3"
                     [IPI Outros            ]=[Valor Contabil]
             EndIf

          Case Search("IND",ATIVIDADE)>0:
            [Base Calculo IPI          ] =[\Sistemas\Exporta\Tmp_rs2->IPI Base de Calculo]
            [Aliquota de IPI           ] =[\Sistemas\Exporta\Tmp_rs2->IPI Aliquota       ]
            [IPI Debitado              ] =[\Sistemas\Exporta\Tmp_rs2->IPI Debitado       ]
            [IPI Isento                ] =[\Sistemas\Exporta\Tmp_rs2->IPI Isento         ]
            [IPI Outros                ] =[\Sistemas\Exporta\Tmp_rs2->IPI Outros         ]
            [Tipo de Tributacao IPI    ]="0"
            If [IPI Isento  ]>0 Then [Tipo de Tributacao IPI]="2" endif
            If [IPI Outros  ]>0 Then [Tipo de Tributacao IPI]="3" endif
            If [IPI Debitado]>0 Then [Tipo de Tributacao IPI]="1" endif

          OtherWise:
            [Tipo de Tributacao IPI    ]="0"
            [Base Calculo IPI          ] =0
            [Aliquota de IPI           ] =0
            [IPI Debitado              ] =0
            [IPI Isento                ] =0
            [IPI Outros                ] =0

         EndSwitch

         ;--- obs IPI ------------------------------------------------------
         If [\Sistemas\Exporta\Tmp_rs2->Valor IPI Obs]>[IPI Debitado] 
            Then [Observacao        ]="IPI "+LTrim(StrVal(Format("W14.2,EIC",[\Sistemas\Exporta\Tmp_rs2->Valor IPI Obs]-[IPI Debitado])))
         EndIf

         ;--- obs diferencial de aliquota icms -----------------------------
         [ICMS_Vlr Dif.Aliquota     ]=[\Sistemas\Exporta\Tmp_rs2->ICMS_Vlr Dif.Aliquota]
         If [\Sistemas\Exporta\Tmp_rs2->ICMS_Vlr Dif.Aliquota]>0 
            Then If not IsBlank([Observacao        ])
                    Then [Observacao]=[Observacao             ]+" * "
                 EndIf
                 [Observacao        ]=[Observacao             ]+
                                      "VR ICMS DIFERENCIAL ALIQUOTA "+LTrim(StrVal(Format("W14.2,EIC",[\Sistemas\Exporta\Tmp_rs2->ICMS_Vlr Dif.Aliquota])))
         EndIf

         [Tipo de Mercadoria        ] ="00"
         [Estado Fornecedor         ] =REGTB["UF"]
         [Tipo de Despesa           ] =""

         [SAPI_ME_EPP               ]=SAPI_MEEPP
         [SAPI_Beneficio Fiscal     ]=SAPI_BENFI

         [Frete por Conta           ] =REGTB["Tipo CTR"]
         [Emitente da Nota Fiscal   ]="T"

         [Recolhimento Substituicao ] =REGTB["Recolhimento Substituicao"]
         [BC Substituicao Destinat  ] =[\Sistemas\Exporta\Tmp_rs2->BC Substituicao Destinat]
         [Vr Substituicao Destinat  ] =[\Sistemas\Exporta\Tmp_rs2->Vr Substituicao Destinat]

         [Valor Documento           ] =REGTB["Valor Nota Fiscal"]
         [Valor IPI Obs             ] =[\Sistemas\Exporta\Tmp_rs2->Valor IPI Obs]

  EndSwitch
  UnlockRecord

  N_Notas=N_Notas+1
  Moveto "\\Sistemas\\Exporta\\Tmp_rs2"

EndScan

Zera()
EndProc


;*****************************************************************************************
;* Rotina principal                                                                      *
;*****************************************************************************************
LimpAguarde()

If Not IsAssigned(SYS_CODIGO_CLIENTE) Then SYS_CODIGO_CLIENTE=""  EndIf
If Not IsAssigned(VSDGGRP)            Then VSDGGRP=""             EndIf
If Not IsAssigned(VSDGNOMGRP)         Then VSDGNOMGRP=""          EndIf

LimpaRodape(0)
ExibeRodape(1,"Entradas")
Aguarde("Aguarde, processando dados Entradas")

SEQDOC = 0
Empty("\\Sistemas\\Estoque\\RegEntra")

For wxa From 1 To 3
  Switch
    Case wxa=1 or wxa=2:
         SetDir "\\Sistemas\\Vendas"
         If IsTable("\\Sistemas\\Vendas\\Rfat_tmp")
            Then Delete("\\Sistemas\\Vendas\\Rfat_tmp")
         EndIf
    Case wxa=3:
         SetDir "\\Sistemas\\Estoque"
         If IsTable("\\Sistemas\\Estoque\\Rest_tmp")
            Then Delete("\\Sistemas\\Estoque\\Rest_tmp")
         EndIf
  EndSwitch

  Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
  While Novo_Dir_Trab()
    Switch
      Case wxa=1:
           Dir_Buscag  = "\\Sistemas\\Vendas\\"+Dir_Trab
           If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC")
              Then Gera("NotaC")
           EndIf
      Case wxa=2:
           Dir_Buscag  = "\\Sistemas\\Vendas\\"+Dir_Trab
           If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC")
              Then Gera("NotaC_Transf")
           EndIf
      Case wxa=3:
           Dir_Buscag  = "\\Sistemas\\Estoque\\"+Dir_Trab
           If IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEc")
              Then Gera("NotaEc")
           EndIf
    EndSwitch
  EndWhile
	SetDir "\\Sistemas\\Exporta"
  Switch
    Case wxa=1 or wxa=2:
         If IsTable("\\Sistemas\\Vendas\\Rfat_tmp")
            Then Gera_RegEntra("Rfat_tmp")
         EndIf
    Case wxa=3:
         If IsTable("\\Sistemas\\Estoque\\Rest_tmp")
            Then Gera_RegEntra("Rest_tmp")
         EndIf
  EndSwitch
EndFor

If IsTable("\\Sistemas\\Vendas\\Rfat_tmp")
   Then Delete("\\Sistemas\\Vendas\\Rfat_tmp")
EndIf
If IsTable("\\Sistemas\\Estoque\\Rest_tmp")
   Then Delete("\\Sistemas\\Estoque\\Rest_tmp")
EndIf

LimpaRodape(0)
Release Procs GERA,GRAVA,GRAVA2,ZERA,LOCALIZA_NOTA,RATEIO,GERA_REGENTRA
