;** RegSaida *******************************************************************
;*  Geracao do Registro de Saida                                               *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 17/09/1998 por Anivel Augusto Rodrigues
;Ultima Alteracao: 21/06/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes CFO Substituicao Fund.Sao Geraldo
;Ultima Alteracao: 12/07/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes CFO EFC Posto Central
;Ultima Alteracao: 13/07/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes CFO Substituicao Fund.Sao Geraldo
;Ultima Alteracao: 17/07/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Item Substituicao c/ CFO 6101 Fund.Sao Geraldo
;Ultima Alteracao: 18/07/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Rateio Valor Substituicao Fund.Sao Geraldo
;Ultima Alteracao: 06/08/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Layout Obs ECF
;Ultima Alteracao: 19/10/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Cupom Laudo   
;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: 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: 22/11/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Numero Nota Original CTR
;Ultima Alteracao: 13/11/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: ajustes mensagem mapa resumo com erro
;Ultima Alteracao: 02/12/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes CalcICMS Adicicionais            
;Ultima Alteracao: 23/12/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Calculo Substituicao e MVA Ajustado
;Ultima Alteracao: 09/04/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Campo Codigo do Documento RegSaida
;Ultima Alteracao: 26/04/2010 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes CFOP 5405 EletroG                           
;Ultima Alteracao: 28/04/2010 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes Campos ECF COO Reducao e Contador Reducao   
;Ultima Alteracao: 16/07/2010 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes Serie D1 Liderfer                           
;Ultima Alteracao: 19/07/2010 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes Serie D Siri                                
;Ultima Alteracao: 04/08/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SIMPLES NACIONAL IPI Fundicao SÆo Geraldo
;Ultima Alteracao: 10/08/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes opcoes reducao BCICMS               
;Ultima Alteracao: 10/09/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SIMPLES NAC. ESRB                          
;Ultima Alteracao: 15/09/2010 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: NF-e Inutilizada                                  
;Ultima Alteracao: 30/09/2010 por Karina Andrade
;Motivo Alteracao: Ajustes para codigo cliente confec‡Æo
;Ultima Alteracao: 17/11/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes IE COTTA Produtor Rural                    
;Ultima Alteracao: 16/02/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Calculo Reducao ICMS sem Desconto          
;Ultima Alteracao: 01/03/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ECF_REGSAIDA()                             
;Ultima Alteracao: 09/03/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes CFOP ST DJ Contro‡äes                     
;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: 18/04/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Novos Campos p/ MATERMAQ Endereco,Bairro..
;Ultima Alteracao: 16/05/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Numero da nota apenas 6 digitos
;Ultima Alteracao: 15/07/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Serie Nota Original              
;Ultima Alteracao: 09/08/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Serie D Nota Canceladao no agrupamento              
;Ultima Alteracao: 06/09/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Rateio dos itens sem calculo direto da tabela       
;Ultima Alteracao: 09/09/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes descri‡Æo para COMPLEMENTOS       
;Ultima Alteracao: 04/10/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Frete Destacado                   
;Ultima Alteracao: 10/10/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ICMS Outros                       
;Ultima Alteracao: 14/10/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes CFOP Substituicao COTTA           
;Ultima Alteracao: 08/11/2011 por Karina Andrade
;Motivo Alteracao: Ajustes ASK sem servicos Codigo do Documento NFSE
;Ultima Alteracao: 18/11/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ICMS Outros  
;Ultima Alteracao: 15/12/2011 por Karina Andrade
;Motivo Alteracao: Ajustes ASK sem servicos Codigo do Documento NFS                     
;Ultima Alteracao: 27/12/2011 por Karina Andrade
;Motivo Alteracao: Ajustes Localiza_Nota()
;Ultima Alteracao: 08/03/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Gerar dados para Docto Cancelado      
;Ultima Alteracao: 20/04/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Serie D, D1 cancelada                
;Ultima Alteracao: 07/05/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ICMS/IPI Outros  
;Ultima Alteracao: 05/06/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ICMS/IPI Outros  
;Ultima Alteracao: 21/06/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes CFOP Substituicao Redu‡Æo Z - DïAlmeida
;Ultima Alteracao: 14/08/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ST pelo tipo/Bc/Vr                      
;Ultima Alteracao: 20/08/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes desprezar item notai cancalado
;Ultima Alteracao: 07/01/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SYS_CLIENTE_CONFEC<>"" And INDUSTRIA             
;Ultima Alteracao: 23/01/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes IPI Industria Simples Nacional    
;Ultima Alteracao: 12/03/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes GERA_REGSAIDA em duas fases       
;Ultima Alteracao: 24/04/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes rateios descontos/despesas ja vem pronto nos itens    
;Ultima Alteracao: 12/06/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes gravaCupom()                                           
;Ultima Alteracao: 29/11/2013 por Kamila Gomes
;Motivo Alteracao: Ajustes Notas Denegadas e Cancelamento Extemporaneo
;Ultima Alteracao: 20/12/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Devolucao sem debito do IPI  
;Ultima Alteracao: 16/01/2014 por Kamila Gomes
;Motivo Alteracao: Ajustes Nota cancelada Extemporƒneo                         
;Ultima Alteracao: 05/02/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Item de importa‡Æo saida por devolucao com debito do ipi
;Ultima Alteracao: 05/02/2014 por Nikolas
;Motivo Alteracao: Ajustes linhas 364 e 435 faltando ponto e virgula e colchete
;Ultima Alteracao: 18/03/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SubSerie     
;Ultima Alteracao: 15/05/2014 por Kamila Gomes
;Motivo Alteracao: Situa‡Æo nota Cancelada Extemporƒnea, campo [Cancelada] recebe "S"
;                  Ter  mesmo tratamento da nota com Cancelamento normal.                            
;Ultima Alteracao: 04/08/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes IPI Isento e calculo IPI Outros
;Ultima Alteracao: 11/08/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Descontos no ICMS Isento/NÆo Tributado
;Ultima Alteracao: 20/08/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes GERA2() e habilitar rotina tratar nota Cancelada Extemporƒnea
;Ultima Alteracao: 15/09/2014 por Kamila Gomes
;Motivo Alteracao: Ajustes registros com Frete na saida
;Ultima Alteracao: 24/09/2014 por Kamila Gomes
;Motivo Alteracao: Ajustes registros it cupom com ST SYS_CODIGO_CLIENTE="0321" : [CFO] ="5405"
;Ultima Alteracao: 15/10/2014 por Kamila Gomes
;Motivo Alteracao: Ajustes campo frete destacado na nota
;Ultima Alteracao: 17/10/2014 por Kamila Gomes
;Motivo Alteracao: Ajustes sele‡Æo e tratamento de cancelamento extemporaneo
;Ultima Alteracao: 20/11/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ipi OUTROS SIMPLES NACIONAL                                      
;Ultima Alteracao: 08/12/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Item com ST na devolu‡Æo nÆo gera debito ICMS     
;Ultima Alteracao: 02/07/2015 por Kamila Gomes
;Motivo Alteracao: Ajustes Ask nÆo pegar codigo de documento NSE..  
;Ultima Alteracao: 07/07/2015 por Andrey Fillipe
;Motivo Alteracao: Ajustes Proc Localiza_ECF() verificacao de COO_Inicial e COO_Final = "000000"              
;Ultima Alteracao: 28/01/2016 por Andrey Fillipe
;Motivo Alteracao: Ajustes IE = NAOCONTRIBUINTE  
;Ultima Alteracao: 07/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: 28/06/2016 por Kamila Gomes
;Motivo Alteracao: Ajustes Serie CF-.. (Cupom Eletronico)
;Ultima Alteracao: 12/08/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ICMS ISENTo Redu‡Æo base de calculo
;Ultima Alteracao: 13/10/2016 por Bruno Carvalho
;Motivo Alteracao: Permitir apenas para #0066# -> Notas de Servi‡o: "NFSE", "NFS" e "NSE.." 
;Ultima Alteracao: 21/10/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes vrcontabil dedu‡Æo do icms desonerado
;Ultima Alteracao: 07/11/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes searchfrom cst
;Ultima Alteracao: 09/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes parametros modamil=spedefd
;Ultima Alteracao: 24/05/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes UF da Empresa dos cupons  
;Ultima Alteracao: 15/08/2017 por Bruno Carvalho
;Motivo Alteracao: Removido [Numero Nota Original] e [Serie Nota Original] 
;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: 30/04/2019 por Anivel Augusto Rodrigues   
;Motivo Alteracao: Ajustes NFCe                
;Ultima Alteracao: 03/05/2019 por Anivel Augusto Rodrigues   
;Motivo Alteracao: Ajustes NFCe                
;Ultima Alteracao: 11/11/2019 por Anivel Augusto Rodrigues   
;Motivo Alteracao: Ajustes serie NFCe                
;Ultima Alteracao: 12/11/2019 por Anivel Augusto Rodrigues   
;Motivo Alteracao: Ajustes especie do documento na chave principal                
;Ultima Alteracao: 18/11/2019 por Anivel Augusto Rodrigues   
;Motivo Alteracao: Ajustes serie NFCe e situacao     
;Ultima Alteracao: 05/03/2020 por Anivel Augusto Rodrigues   
;Motivo Alteracao: Ajustes serie NFCe DTEMI           
;Ultima Alteracao: 13/04/2020 por Anivel Augusto Rodrigues   
;Motivo Alteracao: Ajustes nota cancelada extemporanea=X
;Ultima Alteracao: 06/08/2020 por Anivel Augusto Rodrigues   
;Motivo Alteracao: Ajustes cfo #0335 cupom
;Ultima Alteracao: 13/08/2020 por Anivel Augusto Rodrigues   
;Motivo Alteracao: Ajustes checagem item FCPST, IPIDEVOL, ICMSDESON 
;Ultima Alteracao: 10/11/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes IsRegimeSimplesNacional, IsRegimeSimplesNacionalESRB
;Ultima Alteracao: 18/03/2021 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Frete nÆo inclusao s¢ destacar se com %ICMS e CFOP proprio

;*******************************************************************************
;* Rotina p/ Selecionar Registros                                              *
;*******************************************************************************
Proc GERA()

LimpaRodape(0)
ExibeRodape(1,"Saidas - Faturamento")
Aguarde("Aguarde, processando dados saidas")

ClearAll

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        ] Check Example "ce" TypeIn ", ~VSDGEMPRESA.."
Moveto [Numero do Documento      ] Check Example "nd"
Moveto [Serie do Documento       ] Check Example "sd"
If SYS_CODIGO_CLIENTE<>"0066"
   Then Moveto [Codigo do Documento] Check TypeIn "not NFSE,Not NFS, Not NSE.."
   Else Moveto [Codigo do Documento] Check 
EndIf   
Moveto [Tipo do Documento        ] Check TypeIn "Not CUP.."
Moveto [Data de Emissao          ] Check TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
Moveto [Data de Saida            ] Check
Moveto [Tipo Movimento Estoque   ] TypeIn "S"
Moveto [Valor Mercadoria         ] Check 
Moveto [Valor Desconto           ] Check
Moveto [Valor Despesas Acessorias] Check
Moveto [Valor do Seguro          ] Check
Moveto [Valor BCICMS             ] 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 [Aliquota de ICMS Frete   ] Check
Moveto [Aliquota BCICMS Frete    ] Check
Moveto [Cfo Frete                ] Check
Moveto [Codigo                   ] Check
Moveto [Nome Fantasia EmitDest   ] Check
Moveto [Razao Social             ] Check
Moveto [Endereco                 ] Check
Moveto [Cidade                   ] Check
Moveto [CEP                      ] Check
Moveto [Bairro                   ] Check
Moveto [UF                       ] Check
Moveto [CGC                      ] Check
Moveto [IE                       ] Check
Moveto [Telefone                 ] Check
Moveto [Consumidor Final         ] Check
Moveto [Tipo Pessoa              ] Check
Moveto [Tipo de Pagamento        ] Check
Moveto [Codigo da Destinacao     ] Check
Moveto [Descricao da Destinacao  ] Check
Moveto [Frete por Conta          ] Check
Moveto [Situacao                 ] 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\\Rc_Temp")
   Then Rename "Answer" "\\Sistemas\\Vendas\\Rc_Temp"
   Else Add "Answer" "\\Sistemas\\Vendas\\Rc_Temp"
EndIf

EndProc

;*******************************************************************************
;* Rotina p/ Selecionar Registros                                              *
;*******************************************************************************
Proc GERA2()

LimpaRodape(0)
ExibeRodape(1,"Saidas - Faturamento II")
Aguarde("Aguarde, processando dados saidas")

ClearAll

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        ] Check Example "ce" TypeIn ", ~VSDGEMPRESA.."
Moveto [Numero do Documento      ] Check Example "nd"
Moveto [Serie do Documento       ] Check Example "sd"
If SYS_CODIGO_CLIENTE<>"0066"
   Then Moveto [Codigo do Documento] Check TypeIn "not NFSE,Not NFS, Not NSE.."
   Else Moveto [Codigo do Documento] Check 
EndIf   
Moveto [Tipo do Documento        ] Check TypeIn "Not CUP.."
Moveto [Data de Emissao          ] Check TypeIn "<~VSDGDTINI"
Moveto [Data de Saida            ] Check
Moveto [Tipo Movimento Estoque   ] TypeIn "S"
Moveto [Valor Mercadoria         ] Check 
Moveto [Valor Desconto           ] Check
Moveto [Valor Despesas Acessorias] Check
Moveto [Valor do Seguro          ] Check
Moveto [Valor BCICMS             ] 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 [Aliquota de ICMS Frete   ] Check
Moveto [Aliquota BCICMS Frete    ] Check
Moveto [Cfo Frete                ] Check
Moveto [Codigo                   ] Check
Moveto [Nome Fantasia EmitDest   ] Check
Moveto [Razao Social             ] Check
Moveto [Endereco                 ] Check
Moveto [Cidade                   ] Check
Moveto [CEP                      ] Check
Moveto [Bairro                   ] Check
Moveto [UF                       ] Check
Moveto [CGC                      ] Check
Moveto [IE                       ] Check
Moveto [Telefone                 ] Check
Moveto [Consumidor Final         ] Check
Moveto [Tipo Pessoa              ] Check
Moveto [Tipo de Pagamento        ] Check
Moveto [Codigo da Destinacao     ] Check
Moveto [Descricao da Destinacao  ] Check
Moveto [Frete por Conta          ] Check
Moveto [Situacao                 ] Check TypeIn "C"
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\\Rc_Temp")
   Then Rename "Answer" "\\Sistemas\\Vendas\\Rc_Temp"
   Else Add "Answer" "\\Sistemas\\Vendas\\Rc_Temp"
EndIf

EndProc

;*******************************************************************************
;* Rotina p/ Selecionar Registros                                              *
;*******************************************************************************
Proc GERA_REGSAIDA()
Private opdocto, opini, regok,
        vrbcipi, vripi,
        Aliqicms, vrbcicms, vricms,
        bc_icms_simulado

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

Sort "\\Sistemas\\Vendas\\Rc_Temp" on "Codigo da Empresa","Serie do Documento","Data de Emissao","Numero do Documento","Item do Documento"
ClearAll

tpdoctoant="????"

NR=NRecords("\\Sistemas\\Vendas\\Rc_Temp")

View "\\Sistemas\\Estoque\\Itens"      WinMax SetHighLight Current Record 23 Field 31

View "\\Sistemas\\Cadastro\\TpDoctos"  WinMax SetHighLight Current Record 23 Field 31
View "\\Sistemas\\Cadastro\\Destinat"  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\\Vendas\\RegSaida"    WinMax SetHighLight Current Record 23 Field 31
CoEdit "\\Sistemas\\Vendas\\Rc_Temp"   WinMax SetHighLight Current Record 23 Field 31
For opdocto From 1 To 2
  opini  =true
  
  CEMPR         =""
  COD_DESTIN_ANT="****"
  
  Scan
     If Search("CFE",[Codigo do Documento])>0 And
        Search("CF-",[Serie do Documento ])>0
        Then [Serie do Documento]=SubStr([Serie do Documento],4,1)
     EndIf
  
     Barra(NR, RecNo())
     Switch
       Case opdocto=1 : 
         Aguarde("Aguarde, processando dados saidas  "+BARRA_STRING)
         If Search("D",[Serie do Documento])>0 ; sem serie D
            Then Loop 
         EndIf
         If Search("NCE",[Codigo do Documento])>0 And
            Search("NCE",[Serie do Documento ])>0
            Then Loop 
         EndIf
            
       Case opdocto=2 :
         regok=false
         Aguarde("Aguarde, processando vendas serie D e NFCe"+BARRA_STRING)
         switch
           case search("NCE",[Codigo do Documento])>0: regok=true  ; so serie NFCe
           case Search("D"  ,[Serie do Documento ])>0: regok=true  ; so serie D
         endswitch
         if not regok then loop endif

     EndSwitch

     regok=true
     If VSDGGRP<>"" 
        then 
            ;--- MODAMIL -------------------------------------------------------
            if sys_Codigo_Cliente ="0051"                  and 
               [Codigo da Empresa]="0001"                  and 
               [Valor do ICMS    ]>0                       and
               [TIPO PESSOA      ]="JURIDICA"              and 
               [IE               ]<>"ISENTO"               and 
               Search("DEVOL",[Descricao da Destinacao])=0 and
               substr([Tipo Tributacao],1,1)="1" 
               then regok=true
               else regok=false               
             endif
            ;-------------------------------------------------------------------
     endif   
     if not regok then loop endif

     if opini
        then opini=false
             Localiza_Nota()
             Zera()
             Zera2()
     Endif   
     
     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
  
     Switch
       Case opdocto=1:
         If [Codigo da Empresa  ] <> EMPRESA Or
            [Serie do Documento ] <> SDOCTO  Or
            [Numero do Documento] <> NDOCTO
            Then Rateio()
                 Grava()
                 Zera()
                 Zera2()
                 Localiza_Nota()
         EndIf

       Case opdocto=2:
         If [Codigo da Empresa  ] <> EMPRESA Or
            [Serie do Documento ] <> SDOCTO  Or
            [Numero do Documento] <> NDOCTO    
            Then Rateio()
                 Zera()
                 
                 If [Codigo da Empresa  ] <> EMPRESA Or
                    [Serie do Documento ] <> SDOCTO  Or
                    [Data de Emissao    ] <> DTEMI   Or
                    [Situacao           ] <> SITDOC
                    Then Grava()
                         Zera2()
                 EndIf   
                 Localiza_Nota()
         EndIf
     EndSwitch
  
  
     ;--- memoriza valores originais dos tributos --------------------------------
     vrbcipi =[\Sistemas\Vendas\Rc_Temp->IPI_BC          ]
     vripi   =[\Sistemas\Vendas\Rc_Temp->Valor do IPI    ]
  
     Aliqicms=[\Sistemas\Vendas\Rc_Temp->Aliquota de ICMS]
     vrbcicms=[\Sistemas\Vendas\Rc_Temp->ICMS_BC         ]
     vricms  =[\Sistemas\Vendas\Rc_Temp->Valor do ICMS   ]

     ;--- classifica as opera‡äes com ou sem debito do tributo -------------------
     Switch
       Case IsRegimeSimplesNacional(TPEMPR): ; ‚ simples nacional
            tem_debito_icms=false 
            tem_debito_ipi =false 

       OtherWise                       : ; ‚ debito/credito
            tem_debito_icms=true 
            tem_debito_ipi =true 

            If Search("DEVOL",[\Sistemas\Vendas\Rc_Temp->Descricao da Destinacao])>0
               Then
                    tem_debito_ipi=false        
                    Switch
                      Case [\Sistemas\Vendas\Rc_Temp->Tipo do Item]="T" And             ; Item de terceiros/Revenda
                           (SubStr([\Sistemas\Vendas\Rc_Temp->Tipo Tributacao],1,1)=1 or ;Item importa‡Æo direta 
                            SubStr([\Sistemas\Vendas\Rc_Temp->Tipo Tributacao],1,1)=6):      
                           tem_debito_ipi=true         
                    EndSwitch

                    ;--- 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=""
                    Moveto "\\Sistemas\\Estoque\\Itens"
                    Moveto [Codigo do Item]
                    Locate [\Sistemas\Vendas\Rc_Temp->Codigo do Item]
                    If RetVal
                       Then Item_CST_ICMS=[Tipo Tributacao]
                    EndIf
                    Moveto "\\Sistemas\\Vendas\\Rc_Temp"
                    
                    ;--- Verificando se ‚ item com icms st no cadastro -------------------
                    If SearchFrom("60",Item_CST_ICMS,2)>0 or ; produto com ST nao aproveita ICMS
                       SearchFrom("10",Item_CST_ICMS,2)>0 
                       Then tem_debito_icms=false 
                    EndIf
            EndIf
     EndSwitch

     ;--- NÆo vai ter debito de icms na opera‡Æo --------------------------------
     If not tem_debito_icms
        Then 
             [Aliquota de ICMS]=0
             [ICMS_BC         ]=BlankNum()
             [Valor do ICMS   ]=BlankNum()
     EndIf   
  
     ;--- NÆo vai ter debito de ipi  na opera‡Æo --------------------------------
     If not tem_debito_ipi 
        Then 
             [Aliquota de IPI ]=0
             [IPI_BC          ]=BlankNum()
             [Valor do IPI    ]=BlankNum()
     EndIf   

     ;--- simulando a BC ICMS da opera‡Æo ----------------------------------------
     bc_icms_simulado=([\Sistemas\Vendas\Rc_Temp->Preco Total] - ( [\Sistemas\Vendas\Rc_Temp->Valor Desconto Total ]+
                                                                   [\Sistemas\Vendas\Rc_Temp->ICMS_Valor_Desonerado] ) )+
                                             [\Sistemas\Vendas\Rc_Temp->Valor Frete Total   ] +
                                             [\Sistemas\Vendas\Rc_Temp->Valor Seguro Total  ] +
                                             [\Sistemas\Vendas\Rc_Temp->Valor OutDesp Total ]
                                             
     if [\Sistemas\Vendas\Rc_Temp->Consumidor Final]="S"
        Then bc_icms_simulado=bc_icms_simulado+vripi
     EndIf                              
    
     ;--- complementos -----------------------------------------------------------
     If Search("COMPLEMENTO ICMS",[\Sistemas\Vendas\Rc_Temp->Descricao da Destinacao])>0 Or 
        Search("COMPLEMENTO IPI" ,[\Sistemas\Vendas\Rc_Temp->Descricao da Destinacao])>0 Or 
        Search("COMPLEMENTO ST"  ,[\Sistemas\Vendas\Rc_Temp->Descricao da Destinacao])>0 
        Then [Preco Total   ]=BlankNum()
             bc_icms_simulado=BlankNum()
     EndIf
  
   ;--- define grupo de itens para agrupamento ---------------------------------
     If [\Sistemas\Vendas\Rc_Temp->Tributacao de ICMS]="S" Or      ;** Item ICMS Substituicao **
        [\Sistemas\Vendas\Rc_Temp->ICMS_ST_BC        ]>0   Or
        [\Sistemas\Vendas\Rc_Temp->ICMS_ST_Valor     ]>0
        Then ICMS_SUBSTITUTO = "S"
        Else ICMS_SUBSTITUTO = ""
     EndIf
     
   ;--- Agrupa opera‡äes -------------------------------------------------------
     Moveto "\\Sistemas\\Exporta\\Tmp_rs"
     Moveto [CFO]
     Locate [\Sistemas\Vendas\Rc_Temp->CFO],[\Sistemas\Vendas\Rc_Temp->Aliquota de ICMS],[\Sistemas\Vendas\Rc_Temp->Aliquota Reduzida BCICMS],
                  ICMS_SUBSTITUTO,[\Sistemas\Vendas\Rc_Temp->Aliquota de IPI],[\Sistemas\Vendas\Rc_Temp->Aliquota Reduzida BCIPI]
     If Not RetVal
        Then End Down
             [CFO            ]=[\Sistemas\Vendas\Rc_Temp->CFO             ]
             [ICMS Aliquota  ]=[\Sistemas\Vendas\Rc_Temp->Aliquota de ICMS]
             [ICMS Reducao BC]=[\Sistemas\Vendas\Rc_Temp->Aliquota Reduzida BCICMS]
             [ICMS Substituto]=ICMS_SUBSTITUTO
             [IPI Aliquota   ]=[\Sistemas\Vendas\Rc_Temp->Aliquota de IPI]
             [IPI Reducao BC ]=[\Sistemas\Vendas\Rc_Temp->Aliquota Reduzida BCIPI]
     EndIf

     ;--- Verificando bc icms reduzida -------------------------------------------
     If (SearchFrom("20",[\Sistemas\Vendas\Rc_Temp->Tipo Tributacao],2)>0 Or     ; bcicms com redu‡Æo 
         SearchFrom("70",[\Sistemas\Vendas\Rc_Temp->Tipo Tributacao],2)>0) And tem_debito_icms
;;;;;;;;and Search("DEVOL",[\Sistemas\Vendas\Rc_Temp->Descricao da Destinacao])=0  
        Then If vrbcicms>0 and (bc_icms_simulado>vrbcicms)
                Then [ICMS Isento         ]=[ICMS Isento         ]+(bc_icms_simulado-vrbcicms)
                     [\Sistemas\Vendas\Rc_Temp->Tributacao de ICMS]="O"
             EndIf
     EndIf  
  
     ;--- ICMS -------------------------------------------------------------------
     If [\Sistemas\Vendas\Rc_Temp->Tributacao de ICMS]="I" Or
        [\Sistemas\Vendas\Rc_Temp->Tributacao de ICMS]="N"
        Then [ICMS Isento         ]=([ICMS Isento         ]+bc_icms_simulado)
     EndIf   
     If [\Sistemas\Vendas\Rc_Temp->Aliquota de ICMS]>0 Or [\Sistemas\Vendas\Rc_Temp->Valor do ICMS]>0
        Then [ICMS Base de Calculo]=[ICMS Base de Calculo]+[\Sistemas\Vendas\Rc_Temp->ICMS_BC      ]
             [ICMS Debitado       ]=[ICMS Debitado       ]+[\Sistemas\Vendas\Rc_Temp->Valor do ICMS]
     EndIf        
     If [\Sistemas\Vendas\Rc_Temp->Tributacao de ICMS]="S" Or
        [\Sistemas\Vendas\Rc_Temp->ICMS_ST_BC        ]>0   Or
        [\Sistemas\Vendas\Rc_Temp->ICMS_ST_Valor     ]>0
        Then [BCSubstituicao ICMS ]=[BCSubstituicao ICMS ]+[\Sistemas\Vendas\Rc_Temp->ICMS_ST_BC   ]
             [Substituicao ICMS   ]=[Substituicao ICMS   ]+[\Sistemas\Vendas\Rc_Temp->ICMS_ST_Valor]
     EndIf
     
     ;--- IPI --------------------------------------------------------------------
     If [\Sistemas\Vendas\Rc_Temp->Tipo do Item]<>"C" 
        Then 
             If [\Sistemas\Vendas\Rc_Temp->Tributacao de IPI]="I" Or
                [\Sistemas\Vendas\Rc_Temp->Tributacao de IPI]="N"
                Then [IPI Isento         ]=[IPI Isento         ]+[\Sistemas\Vendas\Rc_Temp->Preco Total ]
             Endif   
             If [\Sistemas\Vendas\Rc_Temp->Aliquota de IPI]>0 Or [\Sistemas\Vendas\Rc_Temp->Valor do IPI]>0
                Then [IPI Base de Calculo]=[IPI Base de Calculo]+[\Sistemas\Vendas\Rc_Temp->IPI_BC      ]
                     [IPI Debitado       ]=[IPI Debitado       ]+[\Sistemas\Vendas\Rc_Temp->Valor do IPI]
             EndIf
     EndIf
  
     vr_contabil=([\Sistemas\Vendas\Rc_Temp->Preco Total] -( [\Sistemas\Vendas\Rc_Temp->Valor Desconto Total ]+
                                                             [\Sistemas\Vendas\Rc_Temp->ICMS_Valor_Desonerado] ) )+
                                                             [\Sistemas\Vendas\Rc_Temp->Valor Frete Total    ] +
                                                             [\Sistemas\Vendas\Rc_Temp->Valor Seguro Total   ] +
                                                             [\Sistemas\Vendas\Rc_Temp->Valor OutDesp Total  ] +
                                                             vripi                                             +
                                                             [\Sistemas\Vendas\Rc_Temp->ICMS_ST_Valor        ] +
                                                             [\Sistemas\Vendas\Rc_Temp->FCP_ST_Valor         ] +
                                                             [\Sistemas\Vendas\Rc_Temp->IPI Devolvido_Valor  ]

     [Preco Total  ]=[Preco Total  ]+vr_contabil
     [Descontos    ]=[Descontos    ]+[\Sistemas\Vendas\Rc_Temp->Valor Desconto Total]  
     [Despesas     ]=[Despesas     ]+[\Sistemas\Vendas\Rc_Temp->Valor Frete Total   ]+   
                                     [\Sistemas\Vendas\Rc_Temp->Valor Seguro Total  ]+
                                     [\Sistemas\Vendas\Rc_Temp->Valor OutDesp Total ]

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

     UnlockRecord
  
     Moveto "\\Sistemas\\Vendas\\Rc_Temp"
  EndScan
  If not opini
     Then Rateio()
          Grava()
          Zera()
          Zera2()
  EndIf
EndFor
Do_It!
ClearAll
EndProc

;*******************************************************************************
;* Localiza Nota                                                               *
;*******************************************************************************
Proc Localiza_Nota()

EMPRESA = [\Sistemas\Vendas\Rc_Temp->Codigo da Empresa  ]
NDOCTO  = [\Sistemas\Vendas\Rc_Temp->Numero do Documento]
NDOCTOF = [\Sistemas\Vendas\Rc_Temp->Numero do Documento]
SDOCTO  = [\Sistemas\Vendas\Rc_Temp->Serie do Documento ]
SITDOC  = [\Sistemas\Vendas\Rc_Temp->Situacao           ]
DTEMI   = [\Sistemas\Vendas\Rc_Temp->Data de Emissao    ]

CopyToArray REGTB

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
EndIf
Moveto "\\Sistemas\\Vendas\\Rc_Temp"

EndProc

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

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

Moveto "\\Sistemas\\Vendas\\Rc_Temp"
EndProc

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

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

Moveto "\\Sistemas\\Vendas\\Rc_Temp"
NDOCTOI = [\Sistemas\Vendas\Rc_Temp->Numero do Documento]
EndProc


;*******************************************************************************
;* Rateio de Valores                                                           *
;*******************************************************************************
Proc Rateio()
Moveto "\\Sistemas\\Exporta\\Tmp_rs"
If IsEmpty("\\Sistemas\\Exporta\\Tmp_rs") 
   Then Return
EndIf   

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

;;;;;;;[Preco Total         ]=([Preco Total]-[Descontos])+
;;;;;;;                       ([Substituicao ICMS]+[IPI Debitado]+[Despesas])

  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

EndScan

;--- Calculos Outros ICMS/IPI --------------------------------------------------
Scan

  If [Preco Total]>([ICMS Base de Calculo]+[ICMS Isento])
     Then [ICMS Outros]=[Preco Total]-([ICMS Base de Calculo]+[ICMS Isento])
  EndIf
  If LTrim(Format("W10.2,EIC",[ICMS Outros]))="-0,00"
     Then [ICMS Outros]=0
  EndIf  
  If Search("IND",ATIVIDADE)>0
     Then 
          if IsRegimeSimplesNacional(TPEMPR) or
             IsRegimeSimplesNacionalESRB(TPEMPR)
             Then If [Preco Total]>=([IPI Base de Calculo]+[IPI Debitado]+[IPI Isento])
                     Then [IPI Outros]=[Preco Total]-([IPI Base de Calculo]+[IPI Debitado]+[IPI Isento])
                  EndIf  
             Else 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])
                  EndIf   
          EndIf   

       ;; 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 Debitado]>0
       ;;      ;;;   Then [IPI Outros]=              [Preco Total]-([IPI Base de Calculo]+[IPI Debitado]+[IPI Isento]+[Substituicao ICMS])
       ;;      ;;;   Else [IPI Isento]=[IPI Isento]+([Preco Total]-([IPI Base de Calculo]+[IPI Debitado]+[IPI Isento]+[Substituicao ICMS]))
       ;;      ;;;EndIf
       ;; EndIf   
          If LTrim(Format("W10.2,EIC",[IPI Outros]))="-0,00"
             Then [IPI Outros]=0
          EndIf    
  EndIf
  
EndScan

;*** Somatoria por CFO/Aliq ICMS/IPI ***
Moveto "\\Sistemas\\Exporta\\Tmp_rs"
Scan
  CopyToArray REGCFO

  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"]

          [Despesas            ]=[Despesas            ]+REGCFO["Despesas"]
          [Descontos           ]=[Descontos           ]+REGCFO["Descontos"]
          
          [Valor IPI Obs       ]=[Valor IPI Obs       ]+REGCFO["Valor IPI Obs"]
          
  EndIf
  UnLockRecord

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

EndProc

;*******************************************************************************
;* Rotina p/ Gravar Registro de Saida                                          *
;*******************************************************************************
Proc GRAVA()
private regdestinat

N_Notas=0
Moveto "\\Sistemas\\Exporta\\Tmp_RS2"
Scan

  If REGTB["Codigo do Documento"]<>tpdoctoant
     Then
          Moveto "\\Sistemas\\Cadastro\\Tpdoctos"
          Moveto [Codigo do Documento]
          Locate REGTB["Codigo do Documento"]
          If RetVal
             Then SUBSERIE=[SubSerie do Documento]
             Else SUBSERIE=""
          EndIf   
     
          tpdoctoant=REGTB["Codigo do Documento"]
  EndIf   

  Moveto "\\Sistemas\\Vendas\\RegSaida"
  End Down
  [Codigo da Empresa         ] =EMPRESA
  [Especie da Nota Fiscal    ] =REGTB["Tipo do Documento"]
  [Sequencia da Nota Fiscal  ] =StrVal(N_Notas)
  [Numero da Nota Fiscal     ] =AlinhM(NDOCTO,7)
  [Numero Varias Notas       ] ="0000000"
  [Serie da Nota Fiscal      ] =SDOCTO
  
  If Search("NCE",SDOCTO)>0
     Then [Serie da Nota Fiscal  ]=SubStr(SDOCTO,4,1)
          [Especie da Nota Fiscal]="NFCE"
  EndIf
  
  [SubSerie da Nota Fiscal   ] =SUBSERIE

  [Codigo do Documento       ] =REGTB["Codigo do Documento"]
  [Estado Cliente            ] =REGTB["UF"]
  [Cgc                       ] =REGTB["Cgc"]
  [Nome Fantasia EmitDest    ] =REGTB["Nome Fantasia EmitDest"]
  [Razao Social              ] =REGTB["Razao Social"]
  If REGTB["IE"] = "NAOCONTRIBUINTE"
     Then  [IE               ] ="ISENTO"
     Else  [IE               ] =REGTB["IE"]
  EndIf
  
  getrecord "\\Sistemas\\Cadastro\\Destinat" REGTB["Codigo"] to regdestinat
  If RetVal
     Then If regdestinat["Nome Fantasia EmitDest"]<>"DIVERSOS"
             Then If regdestinat["IE"] = "NAOCONTRIBUINTE"
                     Then  [IE] ="ISENTO"
                     Else  [IE] =regdestinat["IE"]
                  EndIf
          EndIf
  EndIf

  [Endereco                  ] =REGTB["Endereco"]
  [Cidade                    ] =REGTB["Cidade"]
  [CEP                       ] =REGTB["CEP"]
  [Bairro                    ] =REGTB["Bairro"]
  [Telefone                  ] =REGTB["Telefone"]

  [Data de Emissao           ] =REGTB["Data de Emissao"]
  [Data de Saida             ] =REGTB["Data de Saida"]

  [CFO                       ] =[\Sistemas\Exporta\Tmp_RS2->CFO                 ]
  [Valor Contabil            ] =[\Sistemas\Exporta\Tmp_RS2->Preco Total         ]
  [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            ]
  [Descontos_Docto           ] =[\Sistemas\Exporta\Tmp_RS2->Descontos           ]


  Switch
    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         ]

    OtherWise:
          [Base Calculo IPI          ] =0
          [Aliquota de IPI           ] =0
          [IPI Debitado              ] =0
          [IPI Isento                ] =0
          [IPI Outros                ] =0
  EndSwitch
  
  [Codigo do Cliente         ] =REGTB["Codigo"]
  [Cancelada                 ] =""
  If Search("VEND",REGTB["Descricao da Destinacao"])>0
    Then [Observacao        ] =""
    Else [Observacao        ] =REGTB["Descricao da Destinacao"]
  EndIf
  [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
  [Tipo de Emissao           ] =""
  [Uso Futuro                ] =""
  [Lancto Nota com Frete     ] = [\Sistemas\Exporta\Tmp_RS2->Lancto Nota com Frete     ]
  [Frete por Conta           ] = REGTB["Frete por Conta"]
  [Chave_Acesso_NFe          ] = REGTB["Chave_Acesso_NFe"]
  
  

  If SDOCTO="D" Or SDOCTO="D1" or search("NCE",SDOCTO)>0
     Then [Numero da Nota Fiscal     ] =AlinhM(NDOCTOI,7)
          [Numero Varias Notas       ] =AlinhM(NDOCTOF,7)
          [Cgc                       ] =""
          [Nome Fantasia EmitDest    ] =""
          [Razao Social              ] =""
          [IE                        ] =""
          [Codigo do Cliente         ] =""
          [Condicao de Pagamento     ] =""
          [Tipo de Emissao           ] =""
          [Uso Futuro                ] =""
          [Lancto Nota com Frete     ] =""
          [Frete por Conta           ] =""
          [Observacao                ] =""    
  EndIf 

  Switch
    Case REGTB["Situacao"]="C" And REGTB["Sistema Gerador"]="EX" :
         Switch
             Case REGTB["Data de Emissao"]< VSDGDTINI And 
                  (REGTB["Data de Acerto"]>=VSDGDTINI  And
                  REGTB["Data de Acerto" ]<=VSDGDTFIM): 
                  [Cancelada                 ] ="X"
                  [Observacao                ] ="* CANCELAMENTO EXTEMPOR¶NEO *"
             Case (REGTB["Data de Emissao"]>=VSDGDTINI  And
                   REGTB["Data de Emissao"]<=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
  UnlockRecord

  N_Notas=N_Notas+1
  Moveto "\\Sistemas\\Exporta\\Tmp_RS2"
EndScan

If SDOCTO="D" Or SDOCTO="D1" or search("NCE",SDOCTO)>0
   Then Return
EndIf   

;*** Lancamento p/ Frete Destacado ***
If  REGTB["Situacao"]<>"C" And 
    REGTB["Valor do Frete"]>0  And
   (REGTB["Frete Incluso na Nota"]<>"+" And
    REGTB["Frete Incluso na Nota"]<>"S") And
    REGTB["Valor Substituicao ICMS"] <= 0
   Then
        If REGTB["Aliquota de ICMS Frete"]>0 AND
           REGTB["CFO Frete"             ]<>""
           Then
                Moveto "\\Sistemas\\Vendas\\RegSaida"
                End Down
                [Codigo da Empresa         ] =EMPRESA
                [Especie da Nota Fiscal    ] =REGTB["Tipo do Documento"]
                [Numero da Nota Fiscal     ] =AlinhM(NDOCTO,7)
                [Serie da Nota Fiscal      ] =SDOCTO
                [SubSerie da Nota Fiscal   ] =SUBSERIE
                [Sequencia da Nota Fiscal  ] =StrVal(N_Notas)
                [Numero Varias Notas       ] ="0000000"
                [Data de Emissao           ] =REGTB["Data de Emissao"]
                [Data de Saida             ] =REGTB["Data de Saida"]
                [Codigo do Documento       ] =REGTB["Codigo do Documento"]
                [Valor Contabil            ] =REGTB["Valor do Frete"]
                [CFO                       ] =REGTB["CFO Frete"]
                [Estado Cliente            ] =REGTB["UF"]
                [Cgc                       ] =REGTB["Cgc"]
                [Nome Fantasia EmitDest    ] =REGTB["Nome Fantasia EmitDest"]
                [Razao Social              ] =REGTB["Razao Social"]
                If REGTB["IE"] = "NAOCONTRIBUINTE"
                   Then  [IE               ] ="ISENTO"
                   Else  [IE               ] =REGTB["IE"]
                EndIf
        
                getrecord "\\Sistemas\\Cadastro\\Destinat" REGTB["Codigo"] to regdestinat
                If RetVal
                   Then If regdestinat["Nome Fantasia EmitDest"]<>"DIVERSOS"
                           Then If regdestinat["IE"] = "NAOCONTRIBUINTE"
                                   Then  [IE] ="ISENTO"
                                   Else  [IE] =regdestinat["IE"]
                                EndIf
                        EndIf
                EndIf
        
                [Base Calculo ICMS         ] =0
                [Aliquota de ICMS          ] =0
                [ICMS Debitado             ] =0
                [ICMS Isento               ] =0
                [ICMS Outros               ]=REGTB["Valor do Frete"]
                [Substituicao ICMS         ] =BlankNum()
                [Base Calculo IPI          ] =0
                [Aliquota de IPI           ] =0
                [IPI Debitado              ] =0
                [IPI Isento                ] =0
                [IPI Outros                ] =0
                if not IsRegimeSimplesNacional(TPEMPR) and
                   not IsRegimeSimplesNacionalESRB(TPEMPR) and
                   Search("IND",ATIVIDADE)>0
                   Then [IPI Outros        ]=REGTB["Valor do Frete"]
                EndIf   
                [Codigo do Cliente         ] =REGTB["Codigo"]
                [Cancelada                 ] =""
                [Observacao                ] ="FRETE ALIQ. "+Format("W6.2,EIC",REGTB["Aliquota de ICMS Frete"])
                [Condicao de Pagamento     ]="0"
                [Tipo de Emissao           ] =""
                [Uso Futuro                ] =""
                [Frete por Conta           ] = REGTB["Frete por Conta"]
                [Frete Destacado na Nota   ] = "S"
        endif
   
EndIf
EndProc

;*******************************************************************************
;* Rotina p/ Gerar	Registro de Saida * Cupom Fiscal													 *
;*******************************************************************************
Proc GeraCupom()
ClearAll

LimpaRodape(0)
ExibeRodape(1,"Saidas - ECF")
Aguarde("Aguarde, processando dados saidas ECF")

{Ask} TypeIn Dir_Buscag + "ECF_C" Enter Check
Moveto [Codigo da Empresa     ] Example "emp" TypeIn ", ~VSDGEMPRESA.."
Moveto [Serie do Documento    ] Example "ser"
Moveto [Data                  ] Example "dat" TypeIn ", >=~VSDGDTINI, <=~VSDGDTFIM"
{Ask} TypeIn Dir_Buscag + "ECF_T" Enter
Moveto [Codigo da Empresa     ] Example "emp"
Moveto [Serie do Documento    ] Example "ser"
Moveto [Data                  ] Example "dat"
Moveto [Aliquota de ICMS      ] Check
Moveto [Base de Calculo ICMS  ] Check
Moveto [Valor do ICMS         ] Check
Do_It!
ClearAll

If IsEmpty("Answer")
   Then Return
EndIf
If Not IsTable("\\Sistemas\\Vendas\\Rc_Temp")
   Then Rename "Answer" "\\Sistemas\\Vendas\\Rc_Temp"
   Else Add "Answer" "\\Sistemas\\Vendas\\Rc_Temp"
EndIf

EndProc

;*******************************************************************************
;* Rotina p/ Gerar	Registro de Saida * Cupom Fiscal													 *
;*******************************************************************************
Proc ECF_REGSAIDA()
private ecferro

LimpaRodape(0)
ExibeRodape(1,"Saidas - ECF")
Aguarde("Aguarde, processando dados saidas ECF")

If IsAssigned(REGTB)
   Then Release vars REGTB
EndIf
DynArray REGTB[]

Sort "\\Sistemas\\Vendas\\Rc_Temp" on "Codigo da Empresa","Serie do Documento","Data","Aliquota de ICMS"
ClearAll

View "\\Sistemas\\Cadastro\\Tpdoctos"  WinMax SetHighLight Current Record 23 Field 31
View "\\Sistemas\\Cadastro\\Empresas"  WinMax SetHighLight Current Record 23 Field 31
View "\\Sistemas\\Vendas\\RegSaida"    WinMax SetHighLight Current Record 23 Field 31
CoEdit "\\Sistemas\\Vendas\\Rc_Temp"   WinMax SetHighLight Current Record 23 Field 31
NR=NRecords("\\Sistemas\\Vendas\\Rc_Temp")
EMPRESA="****"
ecferro=false
Scan
   If EMPRESA="****" 
      Then If Not Localiza_ECF()
              Then ecferro=true
                   QuitLoop
           EndIf
   EndIf
              
   Barra(NR, RecNo())
   Aguarde("Aguarde, processando dados saidas ECF"+BARRA_STRING)

   If [Codigo da Empresa  ] <> EMPRESA Or
      [Serie do Documento ] <> SDOCTO  Or
      [Data               ] <> DTEMI
      Then 
           if IsRegimeSimplesNacional(TPEMPR) And TOTMERC>0 Then GravaCupom(4) EndIf
           If (REGTB["Isento"]+REGTB["Nao incidencia"])>0   Then GravaCupom(2) EndIf
           If  REGTB["Substituicao Tributaria"]>0           Then GravaCupom(3) EndIf
           If Not Localiza_ECF()
              Then ecferro=true
                   QuitLoop
           EndIf   
   EndIf

   If not IsRegimeSimplesNacional(TPEMPR)
      Then If [Base de Calculo ICMS]>0 Then GravaCupom(1) EndIf
      Else TOTMERC=TOTMERC+[Base de Calculo ICMS]
   EndIf
   Moveto "\\Sistemas\\Vendas\\Rc_Temp"
EndScan
If not ecferro
   Then If IsRegimeSimplesNacional(TPEMPR) And TOTMERC>0  Then GravaCupom(4) EndIf
        If (REGTB["Isento"]+REGTB["Nao incidencia"])>0    Then GravaCupom(2) EndIf
        If  REGTB["Substituicao Tributaria"]>0            Then GravaCupom(3) EndIf
        Do_It!
        ClearAll
   Else Do_It!
        ClearAll
   
        {Ask} {\\sistemas\\vendas\\regsaida} TypeIn "Delete"
        Moveto [Especie da Nota Fiscal    ] TypeIn "C/F"
        Do_It!
        ClearAll
Endif   
EndProc

;*******************************************************************************
;* Localiza ECF                                                                *
;*******************************************************************************
Proc Localiza_ECF()

If [\Sistemas\Vendas\Rc_Temp->Codigo da Empresa]<>EMPRESA
   Then
        Moveto "\\Sistemas\\Cadastro\\Empresas"
        Moveto [Codigo da Empresa]
        Locate [\Sistemas\Vendas\Rc_Temp->Codigo da Empresa]
        If RetVal
           Then ATIVIDADE=[Atividade]
                TPEMPR   =[Tipo da Empresa]
                UFEMPR   =[UF Empresa]
           Else ATIVIDADE=""
                TPEMPR   =""
                UFEMPR   =""
        EndIf

EndIf
Moveto "\\Sistemas\\Vendas\\Rc_Temp"
CopyToArray REGTB
N_Notas=0
TOTMERC=0

If (IsBlank(REGTB["COO_Inicial"         ]) Or REGTB["COO_Inicial"         ]="000000" ) Or
   (IsBlank(REGTB["COO_Final"           ]) Or REGTB["COO_Final"           ]="000000" ) Or
   (IsBlank(REGTB["Numero Cupom Reducao"]) Or REGTB["Numero Cupom Reducao"]="000000" ) Or
   (IsBlank(REGTB["Contador Reducao"    ]) Or REGTB["Contador Reducao"    ]="000000" ) 
   Then If REGTB["Totalizador Final"]>REGTB["Totalizador Inicial"]
           Then 
                MSG="Mapa resumo com informa‡”es inv lidas !// //"
                MSG=MSG+"Empresa "+REGTB["Codigo da Empresa"]+", data "+Format("D13",REGTB["Data"])+", serie "+REGTB["Serie do Documento"]+"// //"
                MSG=MSG+"Verificar contadores: Inicial, Final, Reduc„o [Z] e outros dados,// referente ao per¡odo informado.//"
                MSG=MSG+"Dados referente a ECF n„o ser„o gerados !"
                Mensagem(MSG)
        
                Return False
        EndIf
EndIf    

EMPRESA = [\Sistemas\Vendas\Rc_Temp->Codigo da Empresa  ]
SDOCTO  = [\Sistemas\Vendas\Rc_Temp->Serie do Documento ]
DTEMI   = [\Sistemas\Vendas\Rc_Temp->Data               ]

Return True
EndProc

;*******************************************************************************
;* Rotina p/ Gravar Registro de Saida * Cupom Fiscal													 *
;*******************************************************************************
Proc GravaCupom(Tp)
Private Tp, CFOCUP

Moveto "\\Sistemas\\Vendas\\RegSaida"
End Down
[Codigo da Empresa         ] =REGTB["Codigo da Empresa"]
[Especie da Nota Fiscal    ] ="C/F"
[Sequencia da Nota Fiscal  ] =StrVal(N_Notas)
[Numero da Nota Fiscal     ] =AlinhM(REGTB["Numero Cupom Inicial"],7)
[Numero Varias Notas       ] =AlinhM(REGTB["Numero Cupom Final"  ],7)
If SubStr(REGTB["Serie do Documento"],1,1)="X"
   Then [Serie da Nota Fiscal      ] =SubStr(REGTB["Serie do Documento"],2,3)
   Else [Serie da Nota Fiscal      ] =REGTB["Serie do Documento"]
EndIf
[SubSerie da Nota Fiscal   ] =""

[Estado Cliente            ] =UFEMPR
[Cgc                       ] ="00.000.000/0002-72"
[Nome Fantasia EmitDest    ] ="CLIENTES DIVERSOS"
[Razao Social              ] ="CLIENTES DIVERSOS"
[IE                        ] ="ISENTO"
[Data de Emissao           ] =REGTB["Data"]
[Data de Saida             ] =REGTB["Data"]
[Base Calculo IPI          ] =0
[Aliquota de IPI           ] =0
[IPI Debitado              ] =0
[IPI Isento                ] =0
[IPI Outros                ] =0
[Codigo do Cliente         ] ="0000"
[Cancelada                 ] =""
[Condicao de Pagamento     ]="1"
[Tipo de Emissao           ] =""
[Uso Futuro                ] =""
[Numero Cupom Reducao      ] =REGTB["Numero Cupom Reducao"]
[Contador Reducao          ] =REGTB["Contador Reducao"]
[Totalizador Inicial       ] =REGTB["Totalizador Inicial"]
[Totalizador Final         ] =REGTB["Totalizador Final"]
[Cancelados                ] =REGTB["Cancelados"]
[Descontos                 ] =REGTB["Descontos"]
[Numero do ECF             ] =REGTB["Numero do ECF"]
[Numero Serie Fabricacao   ] =REGTB["Numero Serie Fabricacao"]

Switch
  Case [Data de Emissao]>=DateVal("01.01.2003"):
    If Search("IND",ATIVIDADE)>0
       Then If Search("COM",ATIVIDADE)>0
               Then CFOCUP="5102"
               Else CFOCUP="5101"
            Endif
       Else CFOCUP="5102"
    EndIf
EndSwitch

Switch
  Case Tp=1:
       [CFO                ] =CFOCUP
       [Valor Contabil     ] =[\Sistemas\Vendas\Rc_Temp->Base de Calculo ICMS]
       [Base Calculo ICMS  ] =[\Sistemas\Vendas\Rc_Temp->Base de Calculo ICMS]
       [Aliquota de ICMS   ] =[\Sistemas\Vendas\Rc_Temp->Aliquota de ICMS    ]
       [ICMS Debitado      ] =[\Sistemas\Vendas\Rc_Temp->Valor do ICMS       ]
       [ICMS Isento        ] =0
       [ICMS Outros        ] =0
       [Substituicao ICMS  ] =0
       If Search("IND",ATIVIDADE)>0
          Then If TPEMPR="MICRO EMPRESA" Or
                  TPEMPR="PEQUENO PORTE"
                  Then [IPI Outros ] =[\Sistemas\Vendas\Rc_Temp->Base de Calculo ICMS]
               EndIf
       EndIf
       
  Case Tp=2:
       [CFO                ] =CFOCUP
       [Valor Contabil     ] =REGTB["Isento"]+REGTB["Nao Incidencia"]
       [Base Calculo ICMS  ] =0
       [Aliquota de ICMS   ] =0
       [ICMS Debitado      ] =0
       [ICMS Isento        ] =REGTB["Isento"]+REGTB["Nao Incidencia"]
       [ICMS Outros        ] =0
       [Substituicao ICMS  ] =0
  Case Tp=3:
       Switch
         Case 
              SYS_CODIGO_CLIENTE="0175" Or								
              SYS_CODIGO_CLIENTE="0229" Or								
              SYS_CODIGO_CLIENTE="0258" Or
              SYS_CODIGO_CLIENTE="0286" Or
              SYS_CODIGO_CLIENTE="0294" Or
              SYS_CODIGO_CLIENTE="0296" Or
              SYS_CODIGO_CLIENTE="0313" Or
              SYS_CODIGO_CLIENTE="0321" Or 
              SYS_CODIGO_CLIENTE="0335" Or
              SYS_CODIGO_CLIENTE="0346" Or
              SYS_CODIGO_CLIENTE="0438" Or
              SYS_CODIGO_CLIENTE="0441" Or
              SYS_CODIGO_CLIENTE="0445" Or
              SYS_CODIGO_CLIENTE="0000"  : [CFO] ="5405"								

         Case SYS_CODIGO_CLIENTE="0070"  : [CFO] ="5656"

         OtherWise                       : [CFO] ="5403"
       EndSwitch
       [Valor Contabil     ] =REGTB["Substituicao Tributaria"]
       [Base Calculo ICMS  ] =0
       [Aliquota de ICMS   ] =0
       [ICMS Debitado      ] =0
       [ICMS Isento        ] =0
       [ICMS Outros        ] =0
       [Substituicao ICMS  ] =REGTB["Substituicao Tributaria"]
  Case Tp=4:
       [CFO                ] =CFOCUP
       [Valor Contabil     ] =TOTMERC
       [Base Calculo ICMS  ] =0
       [Aliquota de ICMS   ] =0
       [ICMS Debitado      ] =0
       [ICMS Isento        ] =0
       [ICMS Outros        ] =TOTMERC
       [Substituicao ICMS  ] =0
       If Search("IND",ATIVIDADE)>0
          Then If TPEMPR="MICRO EMPRESA" Or
                  TPEMPR="PEQUENO PORTE"
                  Then [IPI Outros ] =TOTMERC
               EndIf
       EndIf
EndSwitch
[Frete por Conta           ] = "1"
UnlockRecord

N_Notas=N_Notas+1
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,"Saidas")
Aguarde("Aguarde, processando dados saidas")
Empty "\\Sistemas\\Vendas\\RegSaida"

If IsTable("\\Sistemas\\Vendas\\Rc_Temp")
   Then Delete("\\Sistemas\\Vendas\\Rc_Temp")
EndIf

SetDir "\\Sistemas\\Vendas\\"
Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
While Novo_Dir_Trab()

  If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC")
     Then Dir_Buscag  = "\\Sistemas\\Vendas\\"+Dir_Trab
          Gera()
          Gera2()
  EndIf

EndWhile
SetDir "\\Sistemas\\Exporta\\"

If IsTable("\\Sistemas\\Vendas\\Rc_Temp")
   Then Gera_RegSaida()
EndIf

If IsTable("\\Sistemas\\Vendas\\Rc_Temp")
   Then Delete("\\Sistemas\\Vendas\\Rc_Temp")
EndIf

SetDir "\\Sistemas\\Vendas\\"
Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
While Novo_Dir_Trab()

  If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"ECF_C")
     Then Dir_Buscag  = "\\Sistemas\\Vendas\\"+Dir_Trab
          GeraCupom()
  EndIf

EndWhile
SetDir "\\Sistemas\\Exporta\\"

If IsTable("\\Sistemas\\Vendas\\Rc_Temp")
   Then ECF_REGSAIDA()
EndIf

If IsTable("\\Sistemas\\Vendas\\Rc_Temp")
   Then Delete("\\Sistemas\\Vendas\\Rc_Temp")
EndIf

LimpaRodape(0)
Release Procs GERA,GRAVA,ZERA,ZERA2,LOCALIZA_NOTA,RATEIO,GERA_REGSAIDA,GERACUPOM,ECF_REGSAIDA,GRAVACUPOM
