;** Ledware *******************************************************************
;* Geracao do Disco p/ Ledware                                                *
;******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 05/01/2006 por Anivel augusto Rodrigues
;Ultima Alteracao: 17/10/2006 por Anivel augusto Rodrigues
;Motivo Alteracao: Ajustes Inclusao RMECF???.TXT
;Ultima Alteracao: 12/03/2007 por Nikolas
;Motivo Alteracao: Inclusao 5901 cod=6500 e 5949 cod=6000
;Ultima Alteracao: 22/06/2007 por Anivel augusto Rodrigues
;Motivo Alteracao: Ajustes XCLP 5901 5949
;Ultima Alteracao: 14/08/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Deleta_Arquivo
;Ultima Alteracao: 28/09/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Novo Layout
;Ultima Alteracao: 07/07/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Novo Layout
;Ultima Alteracao: 05/12/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes XID_FORNE
;Ultima Alteracao: 04/01/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Compactacao de arquivos
;Ultima Alteracao: 09/02/2011 por Bruno Carvalho
;Motivo Alteracao: Ajustes Especie do Documento
;Ultima Alteracao: 11/02/2011 por Bruno Carvalho
;Motivo Alteracao: Nova Rotina para Contas a Receber e Contas a Pagar
;Ultima Alteracao: 07/04/2011 por Bruno Carvalho
;Motivo Alteracao: Ajustes Layout 
;Ultima Alteracao: 08/06/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes No NF 7->6 digitos        
;Ultima Alteracao: 27/06/2011 por Bruno Carvalho
;Motivo Alteracao: Altera‡Æo Arj para c:\Arj
;Ultima Alteracao: 14/09/2011 por Bruno Carvalho
;Motivo Alteracao: Ajustado Layout Entrada
;Ultima Alteracao: 23/09/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Layout Filtro 
;Ultima Alteracao: 08/11/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes XCLP A Vista/Prazo nas Entradas
;Ultima Alteracao: 01/12/2011 por Bruno Carvalho
;Motivo Alteracao: Altera‡Æo de "ExecVise -> Vexe","Arj -> Varj"
;Ultima Alteracao: 07/05/2012 por Bruno Carvalho
;Motivo Alteracao: Add Sleep na rotina onde ‚ processado o ARJ
;Ultima Alteracao: 11/12/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes NOVOS CAMPOS NO LAYOUT Entradas

;****************************************************
;** ROTINA PARA ALINHAMENTO DE VARIAVEL DE MEMORIA **
;****************************************************
Proc Completa(VR,TAMAN,COMPLETA)
Private Vr,Taman,Completa

completa=" "
vr=RTrim(vr)

LETR=Len(VR)
FALT=TAMAN-LETR
If FALT > 0
   Then ZERO=Fill(COMPLETA,FALT)
        NVR=VR + ZERO
   Else NVR = SUBSTR(VR,1,TAMAN)
EndIf
Return NVR

EndProc

;*******************************************************************************
;* Rotina p/ Selecionar e Ordenar Registros de Saida                           *
;*******************************************************************************
Proc MONTA_SAIDA()
Aguarde("Aguarde, Processando")

Play "\\Sistemas\\Exporta\\RegSaida"

{Ask} {\\Sistemas\\Vendas\\RegSaida}
Moveto [Estado Cliente] TypeIn "Blank , Changeto MG"
Do_It!
ClearAll

Sort "\\Sistemas\\Vendas\\RegSaida"  On "Codigo da Empresa","Numero da Nota Fiscal","Serie da Nota Fiscal","Sequencia da Nota Fiscal" To "RegSTemp"

ClearAll
EndProc  ;(Gera_Saida)

;*******************************************************************************
;* Rotina p/ Selecionar e Ordenar Registros de Entrada                         *
;*******************************************************************************
Proc MONTA_ENTRADA()
Aguarde("Aguarde, Processando")

Play "\\Sistemas\\Exporta\\RegEntra"

{Ask} {\\Sistemas\\Estoque\\RegEntra}
Moveto [Estado Fornecedor] TypeIn "Blank , Changeto MG"
Do_It!
ClearAll

Sort "\\Sistemas\\Estoque\\RegEntra" On "Codigo da Empresa","Numero da Nota Fiscal","Sequencia da Nota Fiscal","Tipo","Codigo" To "RegETemp"

ClearAll
EndProc  ; (Gera_Entrada)

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros                                      *
;*******************************************************************************
Proc GERA_REG()
Aguarde("Aguarde, Processando")

GERA_ARQ_CTAREC = False
GERA_ARQ_CTAPAG = False

Empty("Ledwaree")
Empty("Ledwares")
Empty("Ledwarec")
Empty("Ledwrecb")

View "\\Sistemas\\Cadastro\\Empresas"
Moveto [Codigo da Empresa]
Locate VSDGEMPRESA
If RetVal
   Then ATIVIDADE  = [\Sistemas\Cadastro\Empresas->Atividade ]
        ESTEMPRESA = [\Sistemas\Cadastro\Empresas->Uf Empresa]
EndIf
ClearAll

View "\\Sistemas\\ICMS_IPI\\ReceitaE"
Moveto [Codigo da Empresa]
Locate VSDGEMPRESA
WEMITE_NF =[Emite NF pelo Sistema ]
WEMITE_ECF=[Emite ECF pelo Sistema]
WSERIE_ECF=[Numero Serie Fabricacao]

If VSDGOPCAO[1]=True or VSDGOPCAO[5]=True
   Then GERA_ENTRADA()
EndIf

If VSDGOPCAO[2]=True or VSDGOPCAO[5]=True
   Then GERA_SAIDA()
EndIf

If VSDGOPCAO[3]=True or VSDGOPCAO[5]=True
   Then GERA_ECF()
EndIf

If VSDGOPCAO[4]=True or VSDGOPCAO[5]=True
   Then GERA_CONTABIL()
EndIf

GERA_ARQUIVO_TEXTO()

EndProc   ; (Gera_Reg)

;*******************************************************************************
;* Rotina p/ gravar dados referente a entrada Itens                            *
;*******************************************************************************
Proc GERA_ENTRADA()
If IsEmpty("RegETemp")
   Then Return
EndIf

;View   "\\Sistemas\\Estoque\\NotaEC"
;View   "\\Sistemas\\Vendas\\NotaC"
View   "ledwaree"
CoEdit "RegETemp"
NR = NRecords("RegETemp")

Scan
  Barra(NR, RecNo())
  Aguarde("Aguarde, Gerando Dados Entradas "+BARRA_STRING)

;  If Not IsBlank([Numero do Lancamento])
;     Then
;          Moveto "\\Sistemas\\Estoque\\NotaEC"
;          Moveto [Numero do Lancamento]
;          Locate [RegETemp->Numero do Lancamento]
;          If RetVal
;             Then
;          EndIf   
;     Else
;          Moveto "\\Sistemas\\Vendas\\NotaC"
;          Moveto [Codigo da Empresa]
;         Locate [RegETemp->Codigo da Empresa],
;                 SubStr([RegETemp->Numero da Nota Fiscal],2,6),
;                 [RegETemp->Serie da Nota Fiscal]
;          If RetVal
;             Then
;          EndIf   
;          
;  EndIf   

  Moveto "LEDWAREE"
  End Down

  [DIAMES      ]=[RegETemp->Data de Entrada        ]
  [NOTA        ]=SubStr([RegETemp->Numero da Nota Fiscal  ],2,6)
  [EMISSAO     ]=[RegETemp->Data de Emissao        ]
  If SubStr([RegETemp->Codigo do Documento],1,3)="NF-E"
     Then [ESP  ]="NF-E" 
     Else [ESP  ]=[RegETemp->Especie da Nota Fiscal ]
  Endif  
; [SERIE       ]=[RegETemp->Serie da Nota Fiscal   ]
  [CGCCPF      ]=[RegETemp->CGC                    ]
  [UF          ]=[RegETemp->Estado Fornecedor      ]
  [CODFISCA    ]=[RegETemp->CFO                    ]
  [OBS         ]=[RegETemp->Observacao             ]
  [VALCONT     ]=[RegETemp->Valor Contabil         ]
  [BASCALICM   ]=[RegETemp->Base Calculo ICMS      ]
  [ALICM       ]=[RegETemp->Aliquota de ICMS       ]
  [ICM         ]=[RegETemp->ICMS Debitado          ]
  [ISENTOICM   ]=[RegETemp->ICMS Isento            ]
  [OUTRASICM   ]=[RegETemp->ICMS Outros            ]
  [BASCALIPI   ]=[RegETemp->Base Calculo IPI       ]
  [ALIPI       ]=[RegETemp->Aliquota de IPI        ]
  [IPI         ]=[RegETemp->IPI Debitado           ]
  [ISENTOIPI   ]=[RegETemp->IPI Isento             ]
  [OUTRASIPI   ]=[RegETemp->IPI Outros             ]
  [XST         ]=[RegETemp->Substituicao ICMS      ]
  [XLDIPI      ]="2"
  [XDG         ]=[RegETemp->Data de Entrada        ]
  [XENF_PT     ]="T"
  [XCHV_NFE    ]=[RegETemp->Chave_Acesso_NFe       ]     



  If [RegEtemp->Condicao de Pagamento]="1" Then [XCLP]="0001" EndIf ; A Vista
  If [RegEtemp->Condicao de Pagamento]="2" Then [XCLP]="0002" EndIf ; A Prazo

  Switch
    Case [CODFISCA]="1201" : [XCLP]="4000" ; Devolucoes de Venda
    Case [CODFISCA]="2201" : [XCLP]="4000" ; Devolucoes de Venda
  EndSwitch

  If [CODFISCA]="1901" Or [CODFISCA]="1916" Or [CODFISCA]="1915" Or [CODFISCA]="1902"
     Then [XSUSPENSAS]=[RegETemp->ICMS Outros            ]
          [XLDIPI    ]="0"
  EndIf
  If [CODFISCA]="1949"
     Then [XPARC_BC_R]=[RegETemp->ICMS Outros            ]
  EndIf
  [XMOD_FRETE  ]=[RegETemp->Frete por Conta              ]

  UnlockRecord
  Moveto "RegETemp"
EndScan
Do_It!
ClearAll

For Wi From 1 To 2
  {Ask} {\\Sistemas\\Ctarec\\Duplic}
  Moveto [Numero do Lancamento    ] Check Example "NLanc"
  Moveto [Codigo do Documento     ] Check 
  Moveto [Numero do Documento     ] Check 
  Moveto [Numero Docto Gerador    ] Check 
  If Wi = 1 
     Then TBTEMP = False  
          Moveto [Data de Emissao         ] Check TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
     Else Moveto [Data de Emissao         ] Check TypeIn "<~VSDGDTINI"
  EndIf  
  Moveto [Tipo                    ] Check    
  Moveto [Data de Vencimento      ] Check 
  Moveto [Valor do Documento      ] Check           
  Moveto [Saldo do Documento      ] Check
  Moveto [Multa                   ] Check
  Moveto [Observacoes             ] Check
  Moveto [Valor do Desconto       ] Check                                   ; DupBaixa
  Moveto [Data a Receber          ] Check TypeIn "as Data do Pagamento"     ; DupBaixa
  Moveto [Valor de Juros          ] Check TypeIn "as Valor do Juros"        ; DupBaixa
  Moveto [Saldo da Comissao       ] Check TypeIn "as Valor do Recebimento"  ; DupBaixa
  Moveto [Descricao do Cobrador   ] Check TypeIn "as Descricao da Conta"    ; DupBaixa
  Moveto [Sequencia Gerador       ] Check 
  Moveto [Codigo do Destinatario  ] Check Example "CodD"
  
  If Wi = 2
     Then {Ask} {\\Sistemas\\Ctarec\\DupBaixa} 
           Moveto [Numero do Lancamento    ] Example "NLanc"          
           Moveto [Data do Pagamento       ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
  EndIf

  {Ask} {\\Sistemas\\Cadastro\\Destinat}                      
  Moveto [Codigo                  ] Example "CodD"
  Moveto [CGC                     ] Check  
  
  Do_It!
  ClearALL 

  If Not IsEmpty("Answer") And Wi = 1
     Then Tabela=Cria_Temp(PrivDir())
          Copy "Answer" Tabela
          TBTEMP = True
  EndIF
  
  If TBTEMP And Wi = 2
     Then If Not IsEmpty("Answer") 
             Then Add Tabela "Answer"
             Else Rename Tabela "Answer"
          EndIf
  EndIf
          
EndFor

If Not IsEmpty("Answer")
   Then GERA_ARQ_CTAREC = True
        {Ask} {Answer}
        Moveto [Tipo                 ] TypeIn "Changeto Blank"
        Moveto [Valor do Desconto    ] TypeIn "Changeto Blank"
        Moveto [Data do Pagamento    ] TypeIn "Changeto Blank"
        Moveto [Valor do Juros       ] TypeIn "Changeto Blank"
        Moveto [Valor do Recebimento ] TypeIn "Changeto Blank"
        Moveto [Descricao da Conta   ] TypeIn "Changeto Blank"     
        Do_It!
        ClearALL 

        Coedit "\\Sistemas\\Ctarec\\DupBaixa","Answer"

        Scan
        DT_PAGTO   = BlankDate()
        VR_RECEB   = 0
        VR_JUROS   = 0
        VR_DESCO   = 0
        DESC_CONTA = ""

        NUMLANC   = [Numero do Lancamento]

        Moveto "\\Sistemas\\Ctarec\\DupBaixa"
        Moveto [Numero do Lancamento]
        Locate NUMLANC
        If Retval 
           Then DESC_CONTA = [Descricao da Conta]
                While NUMLANC  = [Numero do Lancamento]
                      If [Data do Pagamento]>DT_PAGTO
                         Then DT_PAGTO = [Data do Pagamento     ]
                      EndIf
                      VR_RECEB = VR_RECEB + [Valor do Recebimento] 
                      VR_JUROS = VR_JUROS + [Valor do Juros      ] 
                      VR_DESCO = VR_DESCO + [Valor do Desconto   ]
                      Skip
                      If Eot() Then QuitLoop EndIF
                EndWhile        
        EndIf
        
        Moveto "Answer"
        [Tipo                ]="E"
        [Valor do Desconto   ]=VR_DESCO
        [Data do Pagamento   ]=DT_PAGTO
        [Valor do Juros      ]=VR_JUROS
        [Valor do Recebimento]=VR_RECEB
        [Descricao da Conta  ]=DESC_CONTA

        EndScan
        Do_It!
        ClearAll
EndIf

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

Scan
  Barra(NR, RecNo())
  Aguarde("Aguarde, Gerando Dados Contas a Receber "+BARRA_STRING)

  Moveto "LEDWAREC"
  End Down

  [XCGC          ]=[Answer->CGC]
  [XNDOC         ]=[Answer->Numero Docto Gerador]
  [XDTVENDA      ]=[Answer->Data de Emissao]
  [XDTVENC       ]=[Answer->Data de Vencimento]
  [XVALOR        ]=[Answer->Valor do Documento]
  [XDTPAG        ]=[Answer->Data do Pagamento]
  Switch
    Case Search("ECON",[Answer->Descricao da Conta])>0 : [XCLP] = "9800" 
    Case Search("CEF",[Answer->Descricao da Conta])>0  : [XCLP] = "9800"
    Case Search("BRAS",[Answer->Descricao da Conta])>0 : [XCLP] = "9802"  
    Case Search("BRAD",[Answer->Descricao da Conta])>0 : [XCLP] = "9803"
    Case Search("REAL",[Answer->Descricao da Conta])>0 : [XCLP] = "9801" 
    Case Search("ARCO",[Answer->Descricao da Conta])>0 : [XCLP] = "9805" 
    OtherWise : [XCLP] = "9804"  
  EndSwitch
  
  [XDUPL         ]=[Answer->Numero do Documento]
  ;[XCHEQUE       ]=[Answer->NumeroCheque]                                      ; Contas a Pagar
  ;[XID_FORNE     ]=[Answer->]  ; Codigo do Fornercedor (Obrigat¢rio se Tiver)  ; Contas a Pagar
  
  If Not IsBlank([Answer->Codigo do Documento])
     Then Switch
            Case [Answer->Codigo do Documento]="DP" Or
                 [Answer->Codigo do Documento]="DUP"  : INDICADOR = "00" 
            Case [Answer->Codigo do Documento]="CH"   : INDICADOR = "01" 
            Case [Answer->Codigo do Documento]="PR"   : INDICADOR = "02" 
            Case [Answer->Codigo do Documento]="RE"   : INDICADOR = "03" 
            OtherWise : INDICADOR = "99"
          EndSwitch 
     Else INDICADOR = "99"       
   EndIf
   
  [XIND_TIT      ]=INDICADOR
  [XMULTA        ]=[Answer->Multa]
  [XJUROS        ]=[Answer->Valor do Juros]
  [XDESCONTOS    ]=[Answer->Valor do Desconto]
  ;[XACRESCIMOS   ]=[Answer->]  ; Valor de Acrescimos (???)
  [XVRPAGO       ]=[Answer->Valor do Recebimento]
  [XOBS          ]=[Answer->Observacoes]
  [XTIPO         ]=[Answer->Tipo]

  UnlockRecord
  Moveto "Answer"
EndScan
Do_It!
ClearAll

EndProc  ; (Gera_Entrada)

;*******************************************************************************
;* Rotina p/ gravar dados referente a saida Itens                              *
;*******************************************************************************
Proc GERA_SAIDA()
If IsEmpty("RegSTemp")
   Then Return
EndIf

View   "ledwares"
CoEdit "RegSTemp"
NR = NRecords("RegSTemp")

Scan
  Barra(NR, RecNo())
  Aguarde("Aguarde, Gerando Dados Saidas "+BARRA_STRING)

  If [Cancelada]="S" Then Loop EndIf

  moveto "LEDWARES"
  End Down

  [DIAMES      ]=[RegSTemp->Data de Emissao        ]
  [NOTA        ]=SubStr([RegSTemp->Numero da Nota Fiscal  ],2,6)
  [EMISSAO     ]=[RegSTemp->Data de Emissao        ]
  If SubStr([RegSTemp->Codigo do Documento],1,3)="NFE"
     Then [ESP  ]="NF-E" 
     Else [ESP  ]=[RegSTemp->Especie da Nota Fiscal ]
  Endif   
;;[SERIE       ]=[RegSTemp->Serie da Nota Fiscal   ]
  [NOTAA       ]=[RegSTemp->Numero Varias Notas    ]
  If IsBlank([NOTAA]) Or [NOTAA]="000000"
     Then [NOTAA]=[NOTA]
  EndIF
  [CGCCPF      ]=[RegSTemp->CGC                    ]
  [UF          ]=[RegSTemp->Estado Cliente         ]
  [CODFISCA    ]=[RegSTemp->CFO                    ]
  [OBS         ]=[RegSTemp->Observacao             ]
  [VALCONT     ]=[RegSTemp->Valor Contabil         ]
  [BASCALICM   ]=[RegSTemp->Base Calculo ICMS      ]
  [ALICM       ]=[RegSTemp->Aliquota de ICMS       ]
  [ICM         ]=[RegSTemp->ICMS Debitado          ]
  [ISENTOICM   ]=[RegSTemp->ICMS Isento            ]
  [OUTRASICM   ]=[RegSTemp->ICMS Outros            ]
  [BASCALIPI   ]=[RegSTemp->Base Calculo IPI       ]
  [ALIPI       ]=[RegSTemp->Aliquota de IPI        ]
  [IPI         ]=[RegSTemp->IPI Debitado           ]
;;[ISENTOIPI   ]=[RegSTemp->IPI Isento             ]
;;[OUTRASIPI   ]=[RegSTemp->IPI Outros             ]
  [XLDIPI      ]="2"
  [XDG         ]=[RegSTemp->Data de Emissao        ]
  [XMAQ        ]=StrVal([RegSTemp->Numero do ECF   ])
;;[            ]=[RegSTemp->Cancelada              ]
;;Substituicao ICMS          $
  [XENF_PT     ]="P"
  [XMOD_FRETE  ]=[RegSTemp->Frete por Conta        ]
  [XCHV_NFE    ]=[RegSTemp->Chave_Acesso_NFe       ]  
  If [RegStemp->Condicao de Pagamento]="1" ; A Vista
     Then Switch
            Case [CODFISCA]="5101" : [XCLP]="1001"
            Case [CODFISCA]="6101" : [XCLP]="1001"

            Case [CODFISCA]="5901" : [XCLP]="6500"
            Case [CODFISCA]="6901" : [XCLP]="6500"

            Case [CODFISCA]="5949" : [XCLP]="6000"
            Case [CODFISCA]="6949" : [XCLP]="6000"

          EndSwitch
  EndIf
  If [RegStemp->Condicao de Pagamento]="2" ; A Prazo
     Then Switch
            Case [CODFISCA]="5101" : [XCLP]="1001"
            Case [CODFISCA]="6101" : [XCLP]="1001"

            Case [CODFISCA]="5901" : [XCLP]="6500"
            Case [CODFISCA]="6901" : [XCLP]="6500"

            Case [CODFISCA]="5949" : [XCLP]="6000"
            Case [CODFISCA]="6949" : [XCLP]="6000"

          EndSwitch
  EndIf
  Switch
    Case [CODFISCA]="5201" : [XCLP]="5000"  ; Devolucoes de Compra
    Case [CODFISCA]="6201" : [XCLP]="5000"  ; Devolucoes de Compra
    Case [CODFISCA]="1201" : [XCLP]="4000"  ; Devolucoes de Venda
    Case [CODFISCA]="2201" : [XCLP]="4000"  ; Devolucoes de Venda
    Case [CODFISCA]="5901" : [XCLP]="6500"  ; Remessa Industrializacao
    Case [CODFISCA]="5949" : [XCLP]="6000"  ; Remessa Mostruario
    Case [CODFISCA]="6949" : [XCLP]="6000"  ; Remessa Mostruario
  EndSwitch

  If [CODFISCA]="5901" Or [CODFISCA]="5916" Or [CODFISCA]="5915"
     Then [XSUSPENSAS]=[RegSTemp->ICMS Outros]
          [XLDIPI    ]="0"
  EndIf
  If [CODFISCA]="5101" Or [CODFISCA]="5949"
     Then [XPARC_BC_R]=[RegSTemp->ICMS Outros]
  EndIf
  [XID_FORNE ]=AlinhM([RegSTemp->Codigo do Cliente],5)

  UnlockRecord
  Moveto "RegSTemp"
EndScan
Do_It!
ClearAll

For Wi From 1 To 2
  {Ask} {\\Sistemas\\Ctapag\\Titulos}
  Moveto [Numero do Lancamento    ] Check Example "NLanc"
  Moveto [Numero do Documento     ] Check 
  Moveto [Codigo do Documento     ] Check 
  Moveto [Lancamento Gerador      ] Check 
  If Wi = 1 
     Then TBTEMP = False  
          Moveto [Data de Emissao         ] Check TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
     Else Moveto [Data de Emissao         ] Check TypeIn "<~VSDGDTINI"
  EndIf  
  Moveto [Tipo                    ] Check    
  Moveto [Data de Vencimento      ] Check 
  Moveto [Valor do Documento      ] Check           
  Moveto [Saldo do Documento      ] Check TypeIn "as Valor do Pagamento"    ; TitBaixa
  Moveto [Multa                   ] Check
  Moveto [Observacoes             ] Check
  Moveto [Valor do Desconto       ] Check                                   ; TitBaixa
  Moveto [Data a Pagar            ] Check TypeIn "as Data do Pagamento"     ; TitBaixa
  Moveto [Valor de Juros          ] Check TypeIn "as Valor do Juros"        ; TitBaixa
  Moveto [Codigo Plano_Conta      ] Check TypeIn "as Numero do Cheque"      ; TitBaixa
  Moveto [Descricao Plano_Conta   ] Check TypeIn "as Descricao da Conta"    ; TitBaixa
  Moveto [Sequencia Gerador       ] Check 
  Moveto [Codigo do Emitente      ] Check Example "CodD"
  
  If Wi = 2
     Then {Ask} {\\Sistemas\\Ctapag\\TitBaixa} 
           Moveto [Numero do Lancamento    ] Example "NLanc"          
           Moveto [Data do Pagamento       ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
  EndIf
                                                  
  {Ask} {\\Sistemas\\Cadastro\\Destinat}                      
  Moveto [Codigo                  ] Example "CodD"
  Moveto [CGC                     ] Check  
  
  Do_It!
  ClearALL 

  If Not IsEmpty("Answer") And Wi = 1
     Then Tabela=Cria_Temp(PrivDir())
          Copy "Answer" Tabela
          TBTEMP = True
  EndIF
  
  If TBTEMP And Wi = 2
     Then If Not IsEmpty("Answer") 
             Then Add Tabela "Answer"
             Else Rename Tabela "Answer"
          EndIf
  EndIf
          
EndFor

If Not IsEmpty("Answer")
   Then GERA_ARQ_CTAPAG = True
        {Ask} {Answer}
        Moveto [Tipo                 ] TypeIn "Changeto Blank"
        Moveto [Valor do Desconto    ] TypeIn "Changeto Blank"
        Moveto [Data do Pagamento    ] TypeIn "Changeto Blank"
        Moveto [Valor do Juros       ] TypeIn "Changeto Blank"
        Moveto [Valor do Pagamento   ] TypeIn "Changeto Blank"
        Moveto [Numero do Cheque     ] TypeIn "Changeto Blank"
        Moveto [Descricao da Conta   ] TypeIn "Changeto Blank"
        Do_It!
        ClearALL 
        
        Coedit "\\Sistemas\\Ctapag\\TitBaixa","Answer"
         
        Scan
        DT_PAGTO   = BlankDate()
        VR_PAGTO   = 0
        VR_JUROS   = 0
        VR_DESCO   = 0
        DESC_CONTA = ""
        NUM_CHEQUE = ""
        
        NUMLANC   = [Numero do Lancamento]
        
        Moveto "\\Sistemas\\Ctapag\\TitBaixa"
        Moveto [Numero do Lancamento]
        Locate NUMLANC
        If Retval 
           Then DESC_CONTA = [Descricao da Conta]
                NUM_CHEQUE = [Numero do Cheque]
                While NUMLANC  = [Numero do Lancamento]
                      If [Data do Pagamento]>DT_PAGTO
                         Then DT_PAGTO = [Data do Pagamento     ]
                      EndIf
                      VR_PAGTO = VR_PAGTO + [Valor do Pagamento  ] 
                      VR_JUROS = VR_JUROS + [Valor do Juros      ] 
                      VR_DESCO = VR_DESCO + [Valor do Desconto   ]
                      Skip
                      If Eot() Then QuitLoop EndIF
                EndWhile        
        EndIf 
        
        Moveto "Answer"
        [Tipo              ]="S" 
        [Valor do Desconto ]=VR_DESCO              
        [Data do Pagamento ]=DT_PAGTO
        [Valor do Juros    ]=VR_JUROS 
        [Valor do Pagamento]=VR_PAGTO 
        [Descricao da Conta]=DESC_CONTA
        [Numero do Cheque  ]=NUM_CHEQUE
        
        EndScan
        Do_It!
        ClearAll
EndIf

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

Scan
  Barra(NR, RecNo())
  Aguarde("Aguarde, Gerando Dados Contas a Pagar "+BARRA_STRING)

  Moveto "LEDWAREC"
  End Down

  [XCGC          ]=[Answer->CGC               ]
  [XNDOC         ]=[Answer->Lancamento Gerador]  ; Verificar com a Contabilidade
  [XDTCOMPRA     ]=[Answer->Data de Emissao   ]
  [XDTVENC       ]=[Answer->Data de Vencimento]
  [XVALOR        ]=[Answer->Valor do Documento]
  [XDTPAG        ]=[Answer->Data do Pagamento ]
  
  Switch
    Case Search("ECON",[Answer->Descricao da Conta])>0 : [XCLP] = "9800" 
    Case Search("CEF",[Answer->Descricao da Conta])>0  : [XCLP] = "9800"
    Case Search("BRAS",[Answer->Descricao da Conta])>0 : [XCLP] = "9802"  
    Case Search("BRAD",[Answer->Descricao da Conta])>0 : [XCLP] = "9803"
    Case Search("REAL",[Answer->Descricao da Conta])>0 : [XCLP] = "9801" 
    Case Search("ARCO",[Answer->Descricao da Conta])>0 : [XCLP] = "9805" 
    OtherWise : [XCLP] = "9804"  
  EndSwitch
     
  [XDUPL         ]=[Answer->Numero do Documento]
  [XCHEQUE       ]=[Answer->Numero do Cheque]
  [XID_FORNE     ]=[Answer->Codigo do Emitente]  ;Apenas no Contas a Pagar 
  
  If Not IsBlank([Answer->Codigo do Documento])
     Then Switch
            Case [Answer->Codigo do Documento]="DP" Or
                 [Answer->Codigo do Documento]="DUP"  : INDICADOR = "00" 
            Case [Answer->Codigo do Documento]="CH"   : INDICADOR = "01" 
            Case [Answer->Codigo do Documento]="PR"   : INDICADOR = "02" 
            Case [Answer->Codigo do Documento]="RE"   : INDICADOR = "03" 
            OtherWise : INDICADOR = "99"
          EndSwitch 
     Else INDICADOR = "99"       
   EndIf
   
  [XIND_TIT      ]=INDICADOR
  [XMULTA        ]=[Answer->Multa]
  [XJUROS        ]=[Answer->Valor do Juros]
  [XDESCONTOS    ]=[Answer->Valor do Desconto]
  ;[XACRESCIMOS   ]=[Answer->]  ; Valor de Acrescimos (???)
  [XVRPAGO       ]=[Answer->Valor do Pagamento]
  [XOBS          ]=[Answer->Observacoes]
  [XTIPO         ]=[Answer->Tipo]

  UnlockRecord
  Moveto "Answer"
EndScan
Do_It!
ClearAll

EndProc  ; (Gera_Saida)

;*******************************************************************************
;* Rotina p/ gravar dados referente a saida por cupom fiscal                   *
;*******************************************************************************
Proc GERA_ECF()
Private wi

Empty("Ledwecf")

If IsEmpty("\\Sistemas\\Vendas\\ECF_C")
   Then Return
EndIf

View   "LEDWECF"
View   "\\Sistemas\\Vendas\\ECF_T"
CoEdit "\\Sistemas\\Vendas\\ECF_C"
NR = NRecords("\\Sistemas\\Vendas\\ECF_C")

Scan
   Barra(NR, RecNo())
   Aguarde("Aguarde, Gerando Dados ECF's "+BARRA_STRING)

   If [Codigo da Empresa]<>VSDGEMPRESA
      Then Loop
   EndIf
   If [Data]<VSDGDTINI or
      [Data]>VSDGDTFIM
      Then Loop
   EndIf

   Moveto "Ledwecf"
   End
   Down

   [XTIPO         ] = "M"
   [XDT_EMISSAO   ] = [\Sistemas\Vendas\ECF_C->Data   ]
   [XN_MAQ        ] = AlinhM(StrVal([\Sistemas\Vendas\ECF_C->Numero do ECF]),3)
   [XNCOOID       ] = [\Sistemas\Vendas\ECF_C->Numero Cupom Inicial   ]
   [XNCOOFD       ] = [\Sistemas\Vendas\ECF_C->Numero Cupom Final     ]
   [XMDF          ] = "CF"
   [XNCRZ         ] = [\Sistemas\Vendas\ECF_C->Contador Ordem Operacao]
   [XCRO          ] = "000"
   [XVVB          ] = [\Sistemas\Vendas\ECF_C->Totalizador Final      ]-[\Sistemas\Vendas\ECF_C->Totalizador Inicial    ]
   [XVTGE         ] = [\Sistemas\Vendas\ECF_C->Totalizador Final      ]
	 UnLockRecord

   For wi From 1 to 6
     Moveto "Ledwecf"
     End
     Down

     [XTIPO         ] = "F"
     [XDT_EMISSAO   ] = [\Sistemas\Vendas\ECF_C->Data   ]
     [XN_MAQ        ] = AlinhM(StrVal([\Sistemas\Vendas\ECF_C->Numero do ECF]),3)

     Switch
      Case wi=1: [XSIT_TRIB] = "1"
                 [XVR_AC_TP] = [\Sistemas\Vendas\ECF_C->Substituicao Tributaria]
      Case wi=2: [XSIT_TRIB] = "2"
                 [XVR_AC_TP] = [\Sistemas\Vendas\ECF_C->Isento                 ]
      Case wi=3: [XSIT_TRIB] = "3"
                 [XVR_AC_TP] = [\Sistemas\Vendas\ECF_C->Nao Incidencia         ]
      Case wi=4: [XSIT_TRIB] = "4"
                 [XVR_AC_TP] = [\Sistemas\Vendas\ECF_C->Cancelados             ]
      Case wi=5: [XSIT_TRIB] = "5"
                 [XVR_AC_TP] = [\Sistemas\Vendas\ECF_C->Descontos              ]
      Case wi=6: [XSIT_TRIB] = "6"
                 [XVR_AC_TP] = [\Sistemas\Vendas\ECF_C->ISSQN                  ]
     EndSwitch
     [XTRIB         ] = "2"
     [XCLP          ] = "0001"
     [XCGCCPF       ] = MONTA_STRING(EMP_CNPJ,"N")
     [XCFO          ] = "5102"
     [XNCOOID_2     ] = [\Sistemas\Vendas\ECF_C->Numero Cupom Inicial   ]
     [XNCOOFD_2     ] = [\Sistemas\Vendas\ECF_C->Numero Cupom Final     ]
     [XUF           ] = EMP_UF

   EndFor


   Moveto "\\Sistemas\\Vendas\\ECF_T"
   Moveto [Codigo da Empresa]
	 Locate [\Sistemas\Vendas\ECF_C->Codigo da Empresa ],
					[\Sistemas\Vendas\ECF_C->Serie do Documento],
          [\Sistemas\Vendas\ECF_C->Data]
	 While [Codigo da Empresa ]=[\Sistemas\Vendas\ECF_C->Codigo da Empresa ] And
				 [Serie do Documento]=[\Sistemas\Vendas\ECF_C->Serie do Documento] And
         [Data              ]=[\Sistemas\Vendas\ECF_C->Data]

     Moveto "Ledwecf"
     End
     Down

     [XTIPO         ] = "F"
     [XDT_EMISSAO   ] = [\Sistemas\Vendas\ECF_C->Data   ]
     [XN_MAQ        ] = AlinhM(StrVal([\Sistemas\Vendas\ECF_C->Numero do ECF]),3)

     [XSIT_TRIB     ] = "0"
     [XALIQ_ST      ] = [\Sistemas\Vendas\ECF_T->Aliquota de ICMS    ]
     [XVR_AC_TP     ] = [\Sistemas\Vendas\ECF_T->Base de Calculo ICMS]
     [XVR_ICMS      ] = NDecimal((([XVR_AC_TP]*[XALIQ_ST])/100),2)

     [XTRIB         ] = "2"
     [XCLP          ] = "0001"
     [XCGCCPF       ] = MONTA_STRING(EMP_CNPJ,"N")
     [XCFO          ] = "5102"
     [XNCOOID_2     ] = [\Sistemas\Vendas\ECF_C->Numero Cupom Inicial   ]
     [XNCOOFD_2     ] = [\Sistemas\Vendas\ECF_C->Numero Cupom Final     ]
     [XUF           ] = EMP_UF
     UnlockRecord

		 Moveto "\\Sistemas\\Vendas\\ECF_T"
     Skip
     If Eot() Then QuitLoop EndIf
   EndWhile

   Moveto "\\Sistemas\\Vendas\\ECF_C"
EndScan
Do_It!
ClearAll
EndProc  ;


;*******************************************************************************
;* Rotina p/ gravar dados referente a saida por cupom fiscal                   *
;*******************************************************************************
Proc GERA_CONTABIL()

Empty("Ledwrecb")

Play "LEDWRECB"

Do_It!
ClearAll

EndProc  ;GERA_CONTABIL()
;*******************************************************************************
;* Rotina que gera o arquivo padrao texto para receita
;*******************************************************************************
Proc GERA_ARQUIVO_TEXTO()
Aguarde("Aguarde, Exportando Dados")
gerou_arquivos=False
arquivos=""
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Grava registro FMVIM

ARQ = "\\Sistemas\\Exporta\\Dados\\ledware\\"+"ENTRA"+PREFIXO+".TXT"
Deleta_Arquivo(ARQ)
If Not IsEmpty("LEDWAREE")
   Then
        gerou_arquivos=True
        arquivos=arquivos+Completa(ARQ,50," ")+"//"

        View "LEDWAREE"
        Scan
          Print File ARQ DATA2STR_S([DIAMES     ])
          Print File ARQ AlinhM([NOTA],6)
          Print File ARQ Completa([XLC        ],01," ")
          Print File ARQ DATA2STR_S([EMISSAO    ])
          Print File ARQ Completa([ESP        ],04," ")
          Print File ARQ Completa([SERIE      ],05," ")
          Print File ARQ Completa(MONTA_STRING([CGCCPF],"N"),14," ")
          Print File ARQ Completa([UF         ],02," ")
          Print File ARQ Completa([CODFISCA   ],04," ")
          Print File ARQ Completa("",02," ")
          Print File ARQ Completa([OBS        ],15," ")
          Print File ARQ VALOR2STR_S([VALCONT    ],12)
          Print File ARQ VALOR2STR_S([BASCALICM  ],12)
          Print File ARQ VALOR2STR_S([ALICM      ],12)
          Print File ARQ VALOR2STR_S([ICM        ],12)
          Print File ARQ VALOR2STR_S([ISENTOICM  ],12)
          Print File ARQ VALOR2STR_S([OUTRASICM  ],12)
          Print File ARQ VALOR2STR_S([XDIFSUSP   ],12)
          Print File ARQ VALOR2STR_S([BASCALIPI  ],12)
          Print File ARQ VALOR2STR_S([ALIPI      ],12)
          Print File ARQ VALOR2STR_S([IPI        ],12)
          Print File ARQ VALOR2STR_S([ISENTOIPI  ],12)
          Print File ARQ VALOR2STR_S([OUTRASIPI  ],12)
          Print File ARQ VALOR2STR_S([IPINAPROV  ],12)
          Print File ARQ VALOR2STR_S([IMPFONTE   ],12)
          Print File ARQ Completa("",02," ")
          Print File ARQ Completa("",01," ") ;XLDIPI
          Print File ARQ Completa([XCLP       ],04," ")
          Print File ARQ DATA2STR_S([XDG        ])
          Print File ARQ VALOR2STR_S([XBCDFE     ],12)
          Print File ARQ Completa("",03," ")
          Print File ARQ VALOR2STR_S([XDAPIMG44  ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG45  ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG46  ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG47  ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG48  ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG49  ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG50  ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG51  ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG52  ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG53  ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG54  ],12)
          Print File ARQ VALOR2STR_S([XBCSAIDA30 ],12)
          Print File ARQ VALOR2STR_S([XBCSAIDA25 ],12)
          Print File ARQ VALOR2STR_S([XBCSAIDA18 ],12)
          Print File ARQ VALOR2STR_S([XBCSAIDA12 ],12)
          Print File ARQ VALOR2STR_S([XICMS_SAC  ],12)
          Print File ARQ VALOR2STR_S([XISENTAS   ],12)
          Print File ARQ VALOR2STR_S([XNTRIB     ],12)
          Print File ARQ VALOR2STR_S([XPARC_BC_R ],12)
          Print File ARQ VALOR2STR_S([XDIFERIDAS ],12)
          Print File ARQ VALOR2STR_S([XSUSPENSAS ],12)
          Print File ARQ VALOR2STR_S([XST        ],12)
          Print File ARQ VALOR2STR_S([XOUTRAS    ],12)
          Print File ARQ VALOR2STR_S([XBCSAIDA07 ],12)
          Print File ARQ VALOR2STR_S([XOUTRASIMP ],12)
          Print File ARQ VALOR2STR_S([XPETR_ENER ],12)
          Print File ARQ VALOR2STR_S([XOUTRAS_PR ],12)
          Print File ARQ VALOR2STR_S([SDAPIMG55  ],12)
          Print File ARQ VALOR2STR_S([SDAPIMG56  ],12)
          Print File ARQ VALOR2STR_S([SDAPIMG60  ],12)
          Print File ARQ VALOR2STR_S([XBC_ST     ],12)
          Print File ARQ VALOR2STR_S([XIR_ST     ],12)
          Print File ARQ Completa([XSUBITEM   ],05," ")
          Print File ARQ Completa([XP_ST      ],01," ")
          Print File ARQ Completa([XCAFE      ],03," ")
          Print File ARQ VALOR2STR_S([XIR_SD     ],12)
          Print File ARQ Completa([XENF_PT    ],01," ")
          Print File ARQ Completa([XMOD_FRETE ],01," ")
          Print File ARQ Completa("",01," ")   ;XBFISCAL 
          Print File ARQ Completa("",05," ")   ;XID_FORNE
          Print File ARQ AlinhM([NOTA         ],9)
          Print File ARQ Completa([XCOD_INF   ],05," ")
          Print File ARQ Completa([XCHV_NFE   ],44," ")
          Print File ARQ Completa([XCOD_SIT   ],02," ")
          Print File ARQ Completa([XCODIC     ],10," ")
          Print File ARQ Completa([XIND_FRT   ],01," ")
          Print File ARQ VALOR2STR_S([XVL_PIS    ],12)
          Print File ARQ VALOR2STR_S([XVL_COFINS ],12)
          Print File ARQ VALOR2STR_S([XVL_SEG    ],12)
          Print File ARQ VALOR2STR_S([XVL_SERV   ],12)

          Print File ARQ "\n"
        EndScan
Close Printer
EndIf

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Grava registro FMVI2
ARQ = "\\Sistemas\\Exporta\\Dados\\ledware\\"+"SAIDA"+PREFIXO+".TXT"
Deleta_Arquivo(ARQ)
If Not IsEmpty("LEDWARES")
   Then
        gerou_arquivos=True
        arquivos=arquivos+Completa(ARQ,50," ")+"//"

        View "LEDWARES"
        Scan
          Print File ARQ DATA2STR_S([DIAMES     ])
          Print File ARQ AlinhM([NOTA],6)
          Print File ARQ Completa([XLC        ],01," ")
          Print File ARQ DATA2STR_S([EMISSAO    ])
          Print File ARQ Completa([ESP        ],04," ")
          Print File ARQ Completa([SERIE      ],05," ")
          Print File ARQ AlinhM([NOTAA],6)
          Print File ARQ Completa(MONTA_STRING([CGCCPF],"N"),14," ")
          Print File ARQ Completa([UF         ],02," ")
          Print File ARQ Completa([CODFISCA   ],04," ")
          Print File ARQ Completa("",02," ")
          Print File ARQ Completa([OBS        ],15," ")
          Print File ARQ VALOR2STR_S([VALCONT    ],12)
          Print File ARQ VALOR2STR_S([BASCALICM  ],12)
          Print File ARQ VALOR2STR_S([ALICM      ],12)
          Print File ARQ VALOR2STR_S([ICM        ],12)
          Print File ARQ VALOR2STR_S([ISENTOICM  ],12)
          Print File ARQ VALOR2STR_S([OUTRASICM  ],12)
          Print File ARQ VALOR2STR_S([XDIFSUSP   ],12)
          Print File ARQ VALOR2STR_S([BASCALIPI  ],12)
          Print File ARQ VALOR2STR_S([ALIPI      ],12)
          Print File ARQ VALOR2STR_S([IPI        ],12)
          Print File ARQ VALOR2STR_S([ISENTOIPI  ],12)
          Print File ARQ VALOR2STR_S([OUTRASIPI  ],12)
          Print File ARQ VALOR2STR_S([IPINAPROV  ],12)
          Print File ARQ VALOR2STR_S([IMPFONTE   ],12)
          Print File ARQ Completa([XLDIPI     ],01," ")
          Print File ARQ Completa([XCLP       ],04," ")
          Print File ARQ DATA2STR_S([XDG        ])
          Print File ARQ VALOR2STR_S([XDAPIMG25  ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG29  ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG32  ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG33  ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG35  ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG36  ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG37  ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG39  ],12)
          Print File ARQ VALOR2STR_S([XBCSAIDA30 ],12)
          Print File ARQ VALOR2STR_S([XBCSAIDA25 ],12)
          Print File ARQ VALOR2STR_S([XBCSAIDA18 ],12)
          Print File ARQ VALOR2STR_S([XBCSAIDA12 ],12)
          Print File ARQ VALOR2STR_S([XISENTAS   ],12)
          Print File ARQ VALOR2STR_S([XNTRIB     ],12)
          Print File ARQ VALOR2STR_S([XPARC_BC_R ],12)
          Print File ARQ VALOR2STR_S([XDIFERIDAS ],12)
          Print File ARQ VALOR2STR_S([XSUSPENSAS ],12)
          Print File ARQ VALOR2STR_S([XST        ],12)
          Print File ARQ VALOR2STR_S([XOUTRAS    ],12)
          Print File ARQ VALOR2STR_S([XBCSAIDA07 ],12)
          Print File ARQ VALOR2STR_S([XOUTRASIMP ],12)
          Print File ARQ VALOR2STR_S([SDAPIMG27  ],12)
          Print File ARQ VALOR2STR_S([SDAPIMG40  ],12)
          Print File ARQ Completa([XMAQ       ],03," ")
          Print File ARQ Completa([XC_MUN     ],05," ")
          Print File ARQ VALOR2STR_S([XBC_ST     ],12)
          Print File ARQ VALOR2STR_S([XIR_ST     ],12)
          Print File ARQ Completa([XSUBITEM   ],05," ")
          Print File ARQ Completa([XP_ST      ],01," ")
          Print File ARQ Completa([XRE        ],15," ")
          Print File ARQ Completa([XCAFE      ],03," ")
          Print File ARQ VALOR2STR_S([XIR_SD     ],12)
          Print File ARQ Completa([XENF_PT    ],01," ")
          Print File ARQ Completa([XMOD_FRETE ],01," ")
          Print File ARQ Completa([XINSCR_RURAL],14," ")
          Print File ARQ Completa([XCTSN       ],04," ")
          Print File ARQ Completa([XID_FORNE   ],05,"0")
          Print File ARQ AlinhM([NOTA],9)
          Print File ARQ AlinhM([NOTAA],9)
          Print File ARQ Completa([XCOD_INF    ],05," ")
          Print File ARQ Completa([XCHV_NFE    ],44," ")                  
          Print File ARQ "\n"
        EndScan
        Close Printer
EndIf
    
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Grava registro RMECF
ARQ = "\\Sistemas\\Exporta\\Dados\\ledware\\"+"RMECF"+PREFIXO+".TXT"
Deleta_Arquivo(ARQ)
If Not IsEmpty("LEDWECF")
   Then
        gerou_arquivos=True
        arquivos=arquivos+Completa(ARQ,50," ")+"//"

        View "LEDWECF"
        Scan
          Print File ARQ Completa([XTIPO          ],1," ")
          Print File ARQ DATA2STR_S([XDT_EMISSAO])
          Print File ARQ Completa([XN_MAQ         ],3," ")
          If [XTIPO]="M"
             Then
                  Print File ARQ Completa([XNCOOID        ],6," ")
                  Print File ARQ Completa([XNCOOFD        ],6," ")
                  Print File ARQ Completa([XMDF           ],2," ")
                  Print File ARQ Completa([XNCRZ          ],6," ")
                  Print File ARQ Completa([XCRO           ],3," ")
                  Print File ARQ VALOR2STR_S([XVVB        ],12)
                  Print File ARQ VALOR2STR_S([XVTGE       ],12)
                  Print File ARQ Spaces(330)

                  Print File ARQ "\n"
                  Loop
          EndIf

          Print File ARQ Completa([XSIT_TRIB      ],1," ")
          Print File ARQ VALOR2STR_S([XALIQ_ST    ],12)
          Print File ARQ VALOR2STR_S([XVR_AC_TP   ],12)
          Print File ARQ VALOR2STR_S([XVR_ICMS    ],12)
          Print File ARQ Completa([XTRIB          ],1," ")
          Print File ARQ Completa([XCLP           ],4," ")
          Print File ARQ Completa([XCGCCPF        ],14," ")
          Print File ARQ Completa([XOBS           ],15," ")
          Print File ARQ VALOR2STR_S([XDAPIMG25   ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG27   ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG29   ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG32   ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG33   ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG35   ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG36   ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG37   ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG39   ],12)
          Print File ARQ VALOR2STR_S([XDAPIMG40   ],12)
          Print File ARQ VALOR2STR_S([XISENTAS    ],12)
          Print File ARQ VALOR2STR_S([XNTRIB      ],12)
          Print File ARQ VALOR2STR_S([XPARC_BC_R  ],12)
          Print File ARQ VALOR2STR_S([XDIFERIDAS  ],12)
          Print File ARQ VALOR2STR_S([XSUSPENSAS  ],12)
          Print File ARQ VALOR2STR_S([XST         ],12)
          Print File ARQ VALOR2STR_S([XOUTRAS     ],12)
          Print File ARQ VALOR2STR_S([XOUTRASIMP  ],12)
          Print File ARQ VALOR2STR_S([BASCALIPI   ],12)
          Print File ARQ VALOR2STR_S([ALIPI       ],12)
          Print File ARQ VALOR2STR_S([ISENTOIPI   ],12)
          Print File ARQ VALOR2STR_S([OUTRASIPI   ],12)
          Print File ARQ VALOR2STR_S([XALIQISS    ],12)
          Print File ARQ Completa([XCFO           ],4," ")
          Print File ARQ Completa([XNCOOID_2      ],6," ")
          Print File ARQ Completa([XNCOOFD_2      ],6," ")
          Print File ARQ Completa([XUF            ],2," ")

          Print File ARQ "\n"
        EndScan
        Close Printer
EndIf

ARQ = "\\Sistemas\\Exporta\\Dados\\ledware\\"+"RECPG"+PREFIXO+".TXT"
Deleta_Arquivo(ARQ)

If Not IsEmpty("LEDWAREC")
   Then gerou_arquivos=True
        arquivos=arquivos+Completa(ARQ,50," ")+"//"
        View "LEDWAREC"
        For Wp From 1 To 2
          Scan 
            If GERA_ARQ_CTAREC And Wp=1 And [XTIPO]="E" Or
               GERA_ARQ_CTAPAG And Wp=2 And [XTIPO]="S"
               Then If Wp=1 And GERA_ARQ_CTAREC  
                       Then VENDA_COMPRA = [XDTVENDA]
                       Else If Wp=2 And GERA_ARQ_CTAPAG 
                               Then VENDA_COMPRA = [XDTCOMPRA]
                               Else Loop
                            EndIf
                    EndIf
                    Print File ARQ Completa(MONTA_STRING([XCGC],"N"),14," ")
                    Print File ARQ Completa(AlinhM([XNDOC],6),09," ")
                    Print File ARQ DATA2STR_S(VENDA_COMPRA)
                    Print File ARQ DATA2STR_S([XDTVENC     ])  
                    Print File ARQ VALOR2STR_S([XVALOR     ],12)          
                    Print File ARQ DATA2STR_S([XDTPAG      ])
                    Print File ARQ Completa([XCLP          ],04," ")
                    Print File ARQ Completa([XDUPL         ],08," ")
                    Print File ARQ Completa([XCHEQUE       ],08," ")
                    Print File ARQ Completa([XID_FORNE     ],05,"0")
                    Print File ARQ Completa([XIND_TIT      ],02," ")   ; Verificar
                    Print File ARQ VALOR2STR_S([XMULTA     ],12)       
                    Print File ARQ VALOR2STR_S([XJUROS     ],12) 
                    Print File ARQ VALOR2STR_S([XDESCONTOS ],12) 
                    Print File ARQ VALOR2STR_S([XACRESCIMOS],12)
                    Print File ARQ VALOR2STR_S([XVRPAGO    ],12) 
                    Print File ARQ Completa([XOBS          ],15," ")
                    Print File ARQ Completa([XTIPO         ],1," ")
                    
                    Print File ARQ "\n"
            EndIf
          EndScan
        EndFor
        Close Printer
EndIf

ARQ = "\\Sistemas\\Exporta\\Dados\\ledware\\"+"LANCC"+PREFIXO+".TXT"
Deleta_Arquivo(ARQ)
If Not IsEmpty("LEDWRECB")
   Then      
        gerou_arquivos=True
        arquivos=arquivos+Completa(ARQ,50," ")+"//"

        View "LEDWRECB"
        Scan 
        
        ;;If AlinhM([CCDEBITO],10)="0000000000" Or AlinhM([CCCREDITO],10)="0000000000"
        ;;   Then Loop
        ;;EndIf   
                           
          Print File ARQ DATA2STR_S([DATA])
          Print File ARQ Completa([NDOC          ],4," ")
          Print File ARQ Completa([CLP           ],4," ")
          Print File ARQ AlinhM([CCDEBITO        ],10)
          Print File ARQ AlinhM([CCCREDITO       ],10)
          Print File ARQ VALOR3STR_S([VALOR      ],12)
          Print File ARQ Completa([HIST          ],3," ")
          Print File ARQ Completa([COMPHIST      ],120," ")
          Print File ARQ Completa([PARTIDA       ],1," ")
          Print File ARQ Completa([CUSTO         ],3," ")
          Print File ARQ Completa([CUSTOCR       ],3," ")
          Print File ARQ "\n"
        EndScan
        Close Printer
EndIf

Aguarde("Aguarde, Compactando pacote de transa‡„o")                                            
SetDir "\\Sistemas\\Exporta\\Dados\\Ledware\\"

If GERA_ARQ_CTAREC Or GERA_ARQ_CTAPAG
   Then Deleta_Arquivo("CONTAS*.TXT")
        Sleep 2000
        ExecVise("REN RECPG"+PREFIXO+".TXT \""+NewARQCONT)               
EndIf                     

cmd="REN \""+NewARQ+"\" LEDWARE.ARJ"
ExecVise(cmd)
Sleep 2000
Deleta_Arquivo("LEDWARE.ARJ")

Sleep 2000
cmd="c:\\vise\\Varj.exe a LEDWARE ENTRA*.TXT SAIDA*.TXT RMECF*.TXT CONTA*.TXT  RECPG*.TXT  LANCC*.TXT"
Executa_Programa(cmd)
Sleep 2000

cmd="REN LEDWARE.ARJ \""+NewARQ+"\""
ExecVise(cmd)
Sleep 1000

NewARQ=DRIVE+"\\Sistemas\\Exporta\\Dados\\Ledware\\"+NewARQ
arquivos=arquivos+"//"+Completa("Arquivo pacote a enviar p/ contabilidade: ",62," ")+"//"
arquivos=arquivos+Completa(NewARQ,62," ")+"//"

Deleta_Arquivo("LEDWARE.ARJ")
Deleta_Arquivo("CONTAS*.TXT")
Deleta_Arquivo("ENTRA*.TXT")
Deleta_Arquivo("SAIDA*.TXT")
Deleta_Arquivo("RMEC*.TXT")
Deleta_Arquivo("REC*.TXT")
Deleta_Arquivo("LANCC*.TXT")

SetDir "\\Sistemas\\Exporta\\"
LimpAguarde()
If gerou_arquivos
  Then Mensagem("Gerado os arquivos abaixo: // //"+arquivos)
  Else Mensagem("Arquivos nÆo gerados!")
EndIf

ClearAll

EndProc  ; (Gera_Arquivo_Texto)

;******************************************************************************
;*Procedimento responsavel pela montagem do cgc/cpf
;******************************************************************************
Proc MONTA_STRING(MSTRING,NUMALF)
M_NOVO = ""
Switch
   Case NUMALF = "N":
        For I From 1 to Len(MSTRING)
            If (Asc(SubStr(MSTRING,I,1)) >= 48) And
               (Asc(SubStr(MSTRING,I,1)) <= 57)
               Then M_NOVO = M_NOVO + SubStr(MSTRING,I,1)
            EndIf
        EndFor
   Case NUMALF = "A":
        For I From 1 to Len(MSTRING)
            If (Asc(SubStr(MSTRING,I,1)) >= 065) And
               (Asc(SubStr(MSTRING,I,1)) <= 122)
               Then M_NOVO = M_NOVO + SubStr(MSTRING,I,1)
            EndIf
        EndFor
   Case NUMALF = "AN":
        For I From 1 to Len(MSTRING)
            If (Asc(SubStr(MSTRING,I,1)) >= 065) And
               (Asc(SubStr(MSTRING,I,1)) <= 122) Or
               (Asc(SubStr(MSTRING,I,1)) >= 48) And
               (Asc(SubStr(MSTRING,I,1)) <= 57)
               Then M_NOVO = M_NOVO + SubStr(MSTRING,I,1)
            EndIf
        EndFor
EndSwitch
Return(M_NOVO)
EndProc ; (Monta_String)

;******************************************************************************
; CONVERTE DATA DE GRAVACAO PARA STRING                                       *
;******************************************************************************
PROC DATA2STR_S(DATA)
DTGRAV=AlinhM(LTrim(Format("D13",DATA)),10)
;;;DTGRAV=SUBSTR(DTGRAV,1,2)+SUBSTR(DTGRAV,4,2)+SUBSTR(DTGRAV,9,2)
RETURN DTGRAV
ENDPROC                                       

;********************************************************************************
;* CONVERTE VALOR PARA STRING                                                  *
;********************************************************************************
Proc VALOR2STR_S(Valor,Tam)
Private VrTit,Valor,Tam,Part1,Part2

VrTit=StrVal(Valor)
If SearchFrom(".",VrTit,1)>0
   Then Part1=SubStr(VrTit,1,SearchFrom(".",VrTit,1)-1)
        Part2=SubStr(VRTit,SearchFrom(".",VrTit,1)+1,2)
        Part2=PART2+Fill(0,2-Len(Part2))
   Else Part1=VrTit
        Part2=Fill(0,2)
EndIf
Vrtit=Part1+","+Part2
VrTit=Fill("0",Tam-Len(VrTit))+VrTit
Return VrTit
EndProc  ; (Valor_Str)

;********************************************************************************
;* CONVERTE VALOR PARA STRING                                                  *
;********************************************************************************
Proc VALOR3STR_S(Valor,Tam)
Private VrTit,Valor,Tam,Part1,Part2

VrTit=StrVal(Valor)
If SearchFrom(".",VrTit,1)>0
   Then Part1=SubStr(VrTit,1,SearchFrom(".",VrTit,1)-1)
        Part2=SubStr(VRTit,SearchFrom(".",VrTit,1)+1,2)
        Part2=PART2+Fill(0,2-Len(Part2))
   Else Part1=VrTit
        Part2=Fill(0,2)
EndIf
Vrtit=Part1+Part2
VrTit=Fill("0",Tam-Len(VrTit))+VrTit
Return VrTit
EndProc  ; (Valor_Str)

;************************************
;* ROTINA PARA LIMPAR AGUARDE       *
;************************************
Proc LimpAguarde2L()
@ 23,0 ?? Fill(" ",80)
PaintCanvas Attribute 31 23,0,23,79
@ 24,0 ?? Fill(" ",80)
PaintCanvas Attribute 31 24,0,24,79
EndProc ; (LimpAguarde2L)

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Temp=True
TECLA    =""
MSG_CAMPO=""
If Disparo="OPEN"  Then AoCriarShowDialog() EndIf
If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] = -59: Dialog_F1()
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            Case Campo="TG_EMPRESA"       : Campo="NO"
            Case Campo="TG_DTINI"         : Campo="TG_EMPRESA"
            Case Campo="TG_DTFIM"         : Campo="TG_DTINI"
            Case Campo="TG_OPCOES"        : Campo="TG_DTFIM"
            Case Campo="YES" Or Campo="NO": Campo="TG_EMPRESA"
          EndSwitch
     Case (Evento["KeyCode"] <= -104 And Evento["KeyCode"] >= -113) Or 
           Evento["KeyCode"]  = -139 Or  Evento["KeyCode"]  = -140:
           SYS_TECLA_ACIONADA=Evento["KeyCode"]
           Seta_Tecla_Acionada()
           CancelDialog
     Case Evento["KeyCode"] = 13:
          Temp=False
          If Checa_TAG()
             Then Switch
                    Case Campo="TG_EMPRESA"    :
                         If Not IsBlank(VSDGEMPRESA)
                            Then Campo="TG_DTINI"
                            Else VSDGNOMEMP=""
                         EndIf
                    Case Campo="TG_DTINI"      :
                         If Not IsBlank(VSDGDTINI)
                            Then Campo="TG_DTFIM"
                         EndIf
                    Case Campo="TG_DTFIM"      : Campo="TG_OPCOES"
                    Case Campo="TG_OPCOES"     : Campo="YES"
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_EMPRESA":
       MSG_CAMPO="Informe uma Empresa"
  Case Campo="TG_DTINI":
       MSG_CAMPO="Informe a Data Inicial"
  Case Campo="TG_OPCOES":
       MSG_CAMPO="Selecione uma ou mais op‡oes se desejar !"
       TECLA    ="=Mover  Barra de espa‡o=Marca/Desmarca  "
EndSwitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bibliot"

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

LimpAguarde()
VSDGEMPRESA  =""
VSDGDTINI    =BlankDate()
VSDGDTFIM    =BlankDate()
VSDGESTADO   = ""
VSDGEST_TODOS=True

Array VSDGOPCAO[5]

ATIVIDADE  = ""
ESTEMPRESA = ""

While True
  ShowDialog "Exporta‡„o de dados para LEDWARE" Proc "SD_Dialog"
    Trigger "OPEN","ARRIVE"
    Key "F1","ENTER","ESC",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140    
     @ 02,19   Height 17 Width 72

    Label  @ 00,00 "Empresa"  For "TG_EMPRESA"
    Accept @ 1,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_EMPRESA" To VSDGEMPRESA
    Accept @ 1,09 Width 23 "A20" Picture "!*!" Tag "TG_NOMEMP" To VSDGNOMEMP

    Label  @ 02,00 "Per¡odo Referente" For "TG_DTINI"
    Label  @ 03,00 "de" For "TG_DTINI"
    Accept @ 03,04 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 03,17 "at‚" For "TG_DTFIM"
    Accept @ 03,22 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM

    Frame Single From 06,01 to 12,27
    Label  @ 06,02 "Op‡”es de Movimentos " For "TG_OPCOES"
    CheckBoxes @7,02 Height 5 Width 24 Tag "TG_OPCOES"
    "Registro de Entrada " to VSDGOPCAO[1],
    "Registro de Saida   " to VSDGOPCAO[2],
    "Redu‡„o ECF         " to VSDGOPCAO[3],
    "Lan‡amento Contabil " to VSDGOPCAO[4],
    "Geral               " to VSDGOPCAO[5]

     Pushbutton @ 13,22 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
     Pushbutton @ 13,35 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog
  If Not RetVal Then QuitLoop EndIf

  If IsBlank(VSDGEMPRESA)
     Then Mensagem("Empresa Invalida !")
          Loop
  EndIf

  If VSDGDTFIM=BlankDate() or VSDGDTINI=BlankDate()
     Then Mensagem("Data Invalida !")
          Loop
  EndIf

  View "\\Sistemas\\Cadastro\\Empresas"
  Moveto [Codigo da Empresa]
  Locate VSDGEMPRESA
  If Not RetVal
     Then MENSAGEM("Empresa n„o Cadastrada")
          ClearAll
          Loop
     Else PREFIXO = Substr([Conta Contabil Empresa],1,3)
          EMP_CNPJ= [CGC Empresa]
          EMP_UF  = [UF Empresa ]
  EndIf

  View "\\Sistemas\\ICMS_IPI\\ReceitaE"
  Moveto [Codigo da Empresa]
  Locate VSDGEMPRESA
  If Not RetVal
     Then MENSAGEM("Dados p/ Receita Estadual desta Empresa nÆo foi informado")
          ClearAll
          Loop
  EndIf
  ClearAll

  If (VSDGOPCAO[1]=False) AND (VSDGOPCAO[2]=False) AND (VSDGOPCAO[3]= False) AND (VSDGOPCAO[4]= False AND VSDGOPCAO[5]= False)
     Then
          Mensagem("Escolha uma das Op‡äes de Movimentos!")
          Loop
  EndIF

  If VSDGOPCAO[1]=True or VSDGOPCAO[5]=True
     Then Monta_Entrada()
          If IsEmpty("\\Sistemas\\Estoque\\RegEntra")
             Then Mensagem("N„o existem entradas para este per¡odo !")
          EndIf

  EndIf

  If VSDGOPCAO[2]=True or VSDGOPCAO[5]=True
     Then Monta_Saida()
          If IsEmpty("\\Sistemas\\Vendas\\RegSaida")
             Then Mensagem("N„o existem saidas para este per¡odo !")
          EndIf
  EndIf

  If VSDGOPCAO[3]=True or VSDGOPCAO[5]=True
     Then Gera_ECF()
          If IsEmpty("\\Sistemas\\Exporta\\LedwECF")
             Then Mensagem("N„o existem ECF's para este per¡odo !")
                  ClearAll
          EndIf
  EndIf
  
  If VSDGOPCAO[4]=True or VSDGOPCAO[5]=True
     Then GERA_CONTABIL()
          If IsEmpty("\\Sistemas\\Exporta\\LEDWRECB")
             Then Mensagem("N„o existem registros contabil para este per¡odo !")
                  ClearAll
          EndIf
  EndIf  

  If DirExists("\\Sistemas\\Exporta\\Dados\\Ledware")=0
     Then Cria_Pasta("\\Sistemas\\Exporta\\Dados\\Ledware")
  EndIf
  
  DRIVE=SubStr(Directory(),1,2)
  PTREF="_"+AlinhM(StrVal(Month(VSDGDTFIM)),2)+AlinhM(StrVal(Year(VSDGDTFIM)),4)
  NewARQ="Ledware_"+PREFIXO+PTREF+".ARJ"
  NewARQCONT="CONTAS_PAG_REC"+PREFIXO+".TXT"
  
  Deleta_Arquivo("\\Sistemas\\Exporta\\Dados\\Ledware\\LEDWARE.ARJ")
  Deleta_Arquivo("\\Sistemas\\Exporta\\Dados\\Ledware\\DATA.TXT")

  Gera_Reg()

  If IsTable("RegSTemp") Then Delete("RegSTemp") EndIf
  If IsTable("RegETemp") Then Delete("RegETemp") EndIf
  If IsTable("Answer")   Then Delete("Answer")   EndIf

 ;Empty("ledwares")
 ;Empty("ledwaree")
 ;Empty("ledwecf")

  LimpaRodape(0)

EndWhile
ClearAll
Release Vars All
Release Procs All
