;** TransfDT *******************************************************************
;*  Transferencia/Exportacao de Transacoes                                     *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 09/05/2003 por Anivel Augusto Rodrigues
;Ultima Alteracao: 06/01/2006 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 15/08/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Run
;Ultima Alteracao: 27/02/2008 por Antonio Marcelo Alves
;Motivo Alteracao: Adição do nome do Arquivo no destino na funcao Copia_Arquivo
;Ultima Alteracao: 26/03/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Tabela Preco
;Ultima Alteracao: 18/04/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Selecao Tabela Preco
;Ultima Alteracao: 26/02/2009 por Humberto F.Santos.
;Motivo Alteracao: Acrescido os nomes Fornecedores e Outros.
;Ultima Alteracao: 27/09/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Cidades, Paises
;Ultima Alteracao: 03/11/2010 por Bruno Carvalho
;Motivo Alteracao: Add Requsi‡Æo Sys_Codigo_Cliente "0253"
;Ultima Alteracao: 08/11/2010 por Bruno Carvalho
;Motivo Alteracao: Inclusao Observa‡äes de Vendas para Clientes
;Ultima Alteracao: 16/12/2010 por Bruno Carvalho
;Motivo Alteracao: Ajustes Layout no SD_Dialog
;Ultima Alteracao: 27/06/2011 por Bruno Carvalho
;Motivo Alteracao: Altera‡Æo Arj para c:\Arj
;Ultima Alteracao: 10/08/2011 por Karina Andrade
;Motivo Alteracao: Add novas tabelas Vendas
;Ultima Alteracao: 11/08/2011 por Karina Andrade
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 25/10/2011 por Bruno Carvalho
;Motivo Alteracao: Add Tabela "NotaOCP"
;Ultima Alteracao: 01/12/2011 por Bruno Carvalho
;Motivo Alteracao: Altera‡Æo de "Arj -> Varj"
;Ultima Alteracao: 08/12/2011 por Karina Andrade
;Motivo Alteracao: Nova nomeclatura para pacote gerado
;Ultima Alteracao: 04/05/2012 por Bruno Carvalho
;Motivo Alteracao: Add Sleep na rotina onde ‚ processado a compacta‡Æo ARJ
;Ultima Alteracao: 16/08/2012 por Bruno Carvalho
;Motivo Alteracao: Adicionado rotina para a tabela "Empriest"
;Ultima Alteracao: 03/03/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Layout                   
;Ultima Alteracao: 27/03/2013 por Karina Andrade
;Motivo Alteracao: Adicionado tabela Grade em PRODUTOS()
;Ultima Alteracao: 03/04/2013 por Karina Andrade
;Motivo Alteracao: Ajustes tabela Grade
;Ultima Alteracao: 17/04/2013 por Bruno Carvalho
;Motivo Alteracao: Adicionado Transportador "PT"
;Ultima Alteracao: 24/06/2013 por Bruno Carvalho
;Motivo Alteracao: Add TRANSPORTADOR()
;Ultima Alteracao: 27/08/2014 por Bruno Carvalho
;Motivo Alteracao: Add PARAM_CONFECCAO, que ira controlar rotina de importa‡Æo/exporta‡Æo
;Ultima Alteracao: 19/09/2014 por Bruno/Kamila
;Motivo Alteracao: Adicionado "NotaIG" na rotina de Notas de Saida  
;Ultima Alteracao: 29/05/2015 por Bruno Carvalho
;Motivo Alteracao: Ajustes para a compacta‡Æo do arquivo de exporta‡Æo
;Ultima Alteracao: 30/06/2015 por Bruno Carvalho
;Motivo Alteracao: Aumentado o tempo p/ Sleep 2000 ao compactar arquivos .DB e .MB
;Ultima Alteracao: 19/05/2016 por Bruno Carvalho
;Motivo Alteracao: Adicionado a tabela "NCM" -> Sigla "NC"
;Ultima Alteracao: 23/05/2016 por Bruno Carvalho
;Motivo Alteracao: Adicionado a tabela "ITEN_COM" -> Sigla "IC"
;Ultima Alteracao: 16/06/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Documentos Referenciados Entradas     
;Ultima Alteracao: 23/06/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao novas tabelas regras para produtos
;Ultima Alteracao: 24/06/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustes NENTRADAS() p/ quando for tabela NOTAEIA, fazer o link no campo [Numero_do_Lancamento]
;Ultima Alteracao: 14/07/2016 por Bruno Carvalho
;Motivo Alteracao: Adiconado "DA" -> Destass **COMPL_CLIENTES()
;Ultima Alteracao: 26/07/2016 por Bruno Carvalho
;Motivo Alteracao: Removido "DA" -> Destass **COMPL_CLIENTES() **Rotina implementada em outro processo  
;Ultima Alteracao: 03/12/2016 por Bruno Carvalho
;Motivo Alteracao: Adicionado a tabela "ITEN_TEC" -> Sigla "IT"
;Ultima Alteracao: 05/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog             
;Ultima Alteracao: 29/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes MensagemCheckBoxes()
;Ultima Alteracao: 23/05/2017 por Rafael Matos
;Motivo Alteracao: Adicionado a tabela "ITEN_BAR" -> Sigla "IB"
;Ultima Alteracao: 04/07/2017 por Rafael Matos
;Motivo Alteracao: Removido Tabela Tempor ria Nota
;Ultima Alteracao: 14/07/2017 por Bruno Carvalho
;Motivo Alteracao: Removido "NotaCF" e inclu¡do "NotaCC"
;Ultima Alteracao: 14/07/2017 por Bruno Carvalho
;Motivo Alteracao: Removido "Notactr" ("ST") e  "Notaocp" ("OC")  
;Ultima Alteracao: 03/08/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes familia Nota??             
;Ultima Alteracao: 08/08/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado Gera_Log()
;Ultima Alteracao: 12/01/2018 por Nikolas
;Motivo Alteracao: A lupus 0222 liberado exportacao para o V
;Ultima Alteracao: 02/03/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SIRI itens com cor,tamanho 
;Ultima Alteracao: 14/03/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado a tabela "ITEN_ECO" -> Sigla "IE"
;Ultima Alteracao: 14/03/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SIRI tabela de preco om cor,tamanho
;Ultima Alteracao: 29/05/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado a tabela "ITEN_COR" -> Sigla "IR"
;Ultima Alteracao: 07/06/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado/ajustado Grava_LogEx()
;Ultima Alteracao: 16/07/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ignorar outros 
;Ultima Alteracao: 16/07/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes na DESTINAT p/ #0404# 

;*******************************************************************************
;* ROTINA CLIENTES                                                             *
;*******************************************************************************
Proc CLIENTES()
Aguarde("Aguarde, Exportando Dados Clientes")

switch
  case sys_codigo_cliente="0404":
    {Ask} {\\Sistemas\\Cadastro\\Destinat} Check
    moveto [Tipo] typein "Not O"
    Do_It!
    ClearAll
    
    {Ask} {Answer} TypeIn "Fast" Enter
    Moveto [Tipo                   ] TypeIn "C"
    Moveto [Codigo do Representante] TypeIn "Changeto \"0001\""
    Moveto [Nome Fantasia Represent] TypeIn "Changeto \"LOJA\""
    Do_It!
    ClearAll       
    
    {Ask} {Answer} Check
    Copiar("CL")
    
  otherwise                     :
    {Ask} {\\Sistemas\\Cadastro\\Destinat} Check
    Copiar("CL")
endswitch


{Ask} {\\Sistemas\\Cadastro\\Empriest} Check
Copiar("EM")

{Ask} {\\Sistemas\\Cadastro\\Represen} Check
Copiar("RE")

{Ask} {\\Sistemas\\Cadastro\\Ativid} Check
Copiar("AT")

{Ask} {\\Sistemas\\Cadastro\\Area} Check
Copiar ("AR")

{Ask} {\\Sistemas\\Cadastro\\Cidades} Check
Copiar ("CI")

{Ask} {\\Sistemas\\Cadastro\\Paises} Check
Copiar ("PA")

LimpAguarde()
EndProc

;*******************************************************************************
;* ROTINA COMPLEMENTO CLIENTES                                                 *
;*******************************************************************************
Proc COMPL_CLIENTES()
Aguarde("Aguarde, Exportando Dados Complementares de Clientes")

{Ask} {\\Sistemas\\Cadastro\\DestObs} Check
Copiar("DO")

{Ask} {\\Sistemas\\Cadastro\\DestMsg} Check
Copiar("DM")

{Ask} {\\Sistemas\\Cadastro\\DestInfo} Check
Copiar("DI")

{Ask} {\\Sistemas\\Cadastro\\FichaCli} Check
Copiar("FC")

{Ask} {\\Sistemas\\Cadastro\\End_Cob} Check
Copiar("EN")

LimpAguarde()
EndProc

;*******************************************************************************
;* ROTINA PRODUTOS                                                             *
;*******************************************************************************
Proc PRODUTOS()
Aguarde("Aguarde, Exportando Dados Produtos")

{Ask} {\\Sistemas\\Estoque\\Itens}    Check
Copiar("PR")

{Ask} {\\Sistemas\\Estoque\\Iten_Com} Check
Copiar("IC")
                                
{Ask} {\\Sistemas\\Estoque\\Iten_Tec} Check
Copiar("IT")

If SYS_CODIGO_CLIENTE="0415"
   Then ;Importa de TESTE p/ TESTE
        {Ask} {\\Sistemas\\Estoque\\Iten_Cor} Check
        Copiar("IR")
EndIf
    
{Ask} {\\Sistemas\\Estoque\\Iten_Eco} Check
Copiar("IE")

{Ask} {\\Sistemas\\Estoque\\Iten_Bar} Check
Copiar("IB")                                
                                
{Ask} {\\Sistemas\\Estoque\\Cest}     Check
Copiar("CE")

{Ask} {\\Sistemas\\Estoque\\Cores}    Check
Copiar("CO")

{Ask} {\\Sistemas\\Estoque\\Depart}   Check
Copiar("DE")

{Ask} {\\Sistemas\\Estoque\\Familia}  Check
Copiar("FA")

{Ask} {\\Sistemas\\Estoque\\Grupos}   Check
Copiar("GR")

{Ask} {\\Sistemas\\Estoque\\Localiza} Check
Copiar("LO")

{Ask} {\\Sistemas\\Estoque\\Marcas}   Check
Copiar("MA")

{Ask} {\\Sistemas\\Estoque\\NCM}      Check
Copiar("NC")

{Ask} {\\Sistemas\\Estoque\\Simbol}   Check
Copiar("SB")

{Ask} {\\Sistemas\\Estoque\\Tabmva}   Check
Copiar("TM")

{Ask} {\\Sistemas\\Estoque\\TpGrade}  Check
Copiar("GD")

{Ask} {\\Sistemas\\Estoque\\Unidades} Check
Copiar("UN")

LimpAguarde()
EndProc  ;;(Produtos)

;*******************************************************************************
;* ROTINA TABELA PRECO                                                         *
;*******************************************************************************
Proc TABPRECOS()
Aguarde("Aguarde, Exportando Dados Tabela Pre‡os")

{Ask} {\\Sistemas\\Vendas\\TbPrCab} Check
Moveto [Codigo da Tabela    ] TypeIn "~VSDGTABELA.."
Copiar("TC")

switch
  Case SYS_CODIGO_CLIENTE="0227": ; Siri
    {Ask} {\\Sistemas\\Vendas\\TbPrIte} Check
    Moveto [Codigo da Tabela    ] TypeIn "~VSDGTABELA.."
    Do_It!
    ClearAll
    TabelaPreco     =Adiciona_Indice_Temp("Codigo da Tabela,Codigo do Item")


    ;-- pegar todos nova estrutura com EAN13 -----------------------------------
    {Ask} {\\Sistemas\\Estoque\\Itens} 
    Moveto [Codigo do Item    ] TypeIn "02.."
    Moveto [Tipo do Item      ] TypeIn "P"
    Moveto [Codigo da Grade   ] TypeIn "Not Blank"
    Moveto [Referencia        ] Check
    moveto [Tipo Codigo_Barras] typein "\"A-EAN13\""
    Do_It!
    ClearAll
    TabelaRefTodos=Adiciona_Indice_Temp("Referencia")

    {Ask} TypeIn TabelaRefTodos Enter 
    Moveto [Referencia          ]       typein "_ref"
    {Ask} {\\Sistemas\\Estoque\\Itens} 
    Moveto [Codigo do Item      ]       TypeIn "_ci"
    Moveto [Referencia          ] check typein "_ref"
    {Ask} TypeIn TabelaPreco Enter Check
    Moveto [Codigo do Item      ]       TypeIn "_ci"
    Do_It!
    ClearAll
    TabelaPrecoPai=Adiciona_Indice_Temp("Codigo da Tabela,Referencia,Codigo do Item")

    {Ask} {\\Sistemas\\Estoque\\Itens} 
    Moveto [Codigo do Item      ] Check TypeIn "02.., as FilhoCodigo"
    Moveto [Descricao do Item   ] Check TypeIn " as FilhoDescricao"
    Moveto [Tipo do Item        ] Check TypeIn "P, as FilhoTipo"
    Moveto [Unidade Fiscal      ] Check TypeIn " as FilhoUnidade"
    Moveto [Codigo da Grade     ]       TypeIn "Not Blank"
    Moveto [Referencia          ]       typein "_ref"
    {Ask} TypeIn TabelaPrecoPai Enter check 
    Moveto [Referencia          ]       typein "_ref"
    Do_It!
    ClearAll

    {Ask} {Answer} typein "Fast"
    Moveto [Codigo do Item      ]       TypeIn "Changeto _ci"
    Moveto [Descricao do Item   ]       TypeIn "Changeto _di"
    Moveto [Tipo do Item        ]       TypeIn "Changeto _ti"
    Moveto [Unidade Fiscal      ]       TypeIn "Changeto _ui"
    Moveto [FilhoCodigo         ]       TypeIn "_ci"
    Moveto [FilhoDescricao      ]       TypeIn "_di"
    Moveto [FilhoTipo           ]       TypeIn "_ti"
    Moveto [FilhoUnidade        ]       TypeIn "_ui"
    Do_It!
    ClearAll
   
    Adiciona_Dados_Tabela(TabelaPreco)

    {Ask} TypeIn TabelaRefTodos Enter 
    Moveto [Referencia          ]       typein "_ref"
    {Ask} {\\Sistemas\\Estoque\\Itens} 
    Moveto [Codigo do Item      ]       TypeIn "_ci"
    Moveto [Tipo do Item        ]       TypeIn "D"
    Moveto [Referencia          ] check typein "_ref"
    {Ask} TypeIn TabelaPreco Enter typein "Fast Delete"
    Moveto [Codigo do Item      ]       TypeIn "_ci"
    Do_It!
    ClearAll

    {Ask} TypeIn TabelaPreco Enter Check
    Copiar("TI")
    
    Delete TabelaPreco
    Delete TabelaRefTodos
    Delete TabelaPrecoPai
    
  otherwise:
  
    {Ask} {\\Sistemas\\Vendas\\TbPrIte} Check
    Moveto [Codigo da Tabela    ] TypeIn "~VSDGTABELA.."
    Copiar("TI")
  
endswitch

{Ask} {\\Sistemas\\Vendas\\TbPrCpg} Check
Moveto [Codigo da Tabela    ] TypeIn "~VSDGTABELA.."
Copiar("TP")

{Ask} {\\Sistemas\\Vendas\\TbPrCli} Check
Moveto [Codigo da Tabela    ] TypeIn "~VSDGTABELA.."
Copiar("TY")

{Ask} {\\Sistemas\\Vendas\\TbPrCIt} Check
Moveto [Codigo da Tabela    ] TypeIn "~VSDGTABELA.."
Copiar("TX")

{Ask} {\\Sistemas\\Vendas\\TbPrRep} Check
Moveto [Codigo da Tabela    ] TypeIn "~VSDGTABELA.."
Copiar("TR")

{Ask} {\\Sistemas\\Vendas\\TbPrRIt} Check
Moveto [Codigo da Tabela    ] TypeIn "~VSDGTABELA.."
Copiar("TS")

LimpAguarde()
EndProc

;*******************************************************************************
;* ROTINA CLIENTES                                                             *
;*******************************************************************************
Proc TRANSPORTADOR()
Aguarde("Aguarde, Exportando Dados Clientes")

If SYS_CODIGO_CLIENTE="0222"
   Then Return 
EndIf

{Ask} {\\Sistemas\\Vendas\\Transpor} Check
Copiar ("PT")   

LimpAguarde()
EndProc ;TRANSPORTADOR

;*******************************************************************************
;* Notas de Saidas                                                             *
;*******************************************************************************
Proc NSAIDAS()
Aguarde("Aguarde, Exportando Notas de Saida")

Array Arquivo[11]
Arquivo[1]  = "NotaC"
Arquivo[2]  = "NotaCC"
Arquivo[3]  = "NotaI"
Arquivo[4]  = "NotaIAD"
Arquivo[5]  = "NotaIC"
Arquivo[6]  = "NotaICM"
Arquivo[7]  = "NotaIDD"
Arquivo[8]  = "NotaIDV"
Arquivo[9]  = "NotaIG" 
Arquivo[10] = "NotaR"
Arquivo[11] = "NotaV"

Cont = 1

SetDir "\\Sistemas\\Vendas"
For Cont From 1 To 11
    If IsTable(Arquivo[Cont])
       Then If Arquivo[Cont]<>"NotaC"
               Then {Ask} {NotaC}
                    Moveto [Codigo da Empresa  ] Example "cemp" TypeIn ", ~VSDGEMPRESA.."
                    Moveto [Numero do Documento] Example "ndoc"
                    Moveto [Serie do Documento ] Example "sdoc"
                    Moveto [Data de Emissao    ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
                    {Ask} TypeIn Arquivo[Cont] Enter Check
                    Moveto [Codigo da Empresa  ] Example "cemp"
                    Moveto [Numero do Documento] Example "ndoc"
                    Moveto [Serie do Documento ] Example "sdoc"
               Else {Ask} {NotaC} Check
                    Moveto [Codigo da Empresa  ] TypeIn "~VSDGEMPRESA.."
                    Moveto [Data de Emissao    ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
            Endif
            Switch
              Case Cont=1 : Copiar("SC")
              Case Cont=2 : Copiar("S2")
              Case Cont=3 : Copiar("SI")
              Case Cont=4 : Copiar("SP")
              Case Cont=5 : Copiar("SX")
              Case Cont=6 : Copiar("S3")
              Case Cont=7 : Copiar("SM")
              Case Cont=8 : Copiar("SD")
              Case Cont=9 : Copiar("S4")
              Case Cont=10: Copiar("SR")
              Case Cont=11: Copiar("SV")
            EndSwitch
    EndIf
EndFor

If VSDGOPCAO[1]=False
   Then Aguarde("Aguarde, Exportando Dados Clientes")
        If IsTable("\\Sistemas\\Cadastro\\Destinat")
          Then {Ask} {\\Sistemas\\Cadastro\\Destinat} Check
                 Moveto [Codigo] Example "cod"
               {Ask} {\\Sistemas\\Cadastro\\FichaCli}
                 Moveto [Codigo] Example "cod"
                 Moveto [Data da Primeira Compra] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
               Copiar("CL")

               If Not IsEmpty("Answer")
                  Then
                       {Ask} {\\Sistemas\\Cadastro\\Represen} Check
                       Copiar("RE")

                       {Ask} {\\Sistemas\\Cadastro\\Ativid} Check
                       Copiar("AT")

                       {Ask} {\\Sistemas\\Cadastro\\Area} Check
                       Copiar ("AR")
               EndIf
        EndIf
EndIf
SetDir "\\Sistemas\\Cadastro"

LimpAguarde()
EndProc

;*******************************************************************************
;* Notas de Entradas                                                           *
;*******************************************************************************
Proc NENTRADAS()
Aguarde("Aguarde, Exportando Notas de Entrada")

Array Arquivo[6]
Arquivo[1]="NotaEc"
Arquivo[2]="NotaEI"
Arquivo[3]="NotaeCP"
Arquivo[4]="NotaeCV"
Arquivo[5]="NotaeIA"
Arquivo[6]="NotaeR"

Cont     = 1
SetDir "\\Sistemas\\Estoque"
For Cont From 1 To 6
    If IsTable(Arquivo[Cont])
       Then If Arquivo[Cont]<>"NotaEc"
               Then {Ask} {NotaEc}
                    Moveto [Numero do Lancamento] Example "nlanc"
                    Moveto [Codigo da Empresa   ] TypeIn "~VSDGEMPRESA.."
                    Moveto [Data de Entrada     ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
                    {Ask} TypeIn Arquivo[Cont] Enter Check
                    If Arquivo[Cont] = "NotaeIA"
                       Then Moveto [Numero_do_Lancamento] Example "nlanc" 
                       Else Moveto [Numero do Lancamento] Example "nlanc"
                    EndIf
               Else {Ask} {NotaEc} Check
                    Moveto [Codigo da Empresa   ] TypeIn "~VSDGEMPRESA.."
                    Moveto [Data de Entrada     ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
            Endif

            Switch
              Case Cont=1: Copiar("EC")
              Case Cont=2: Copiar("EI")
              Case Cont=3: Copiar("EP")
              Case Cont=4: Copiar("EV")
              Case Cont=5: Copiar("EA")
              Case Cont=6: Copiar("ER")
            EndSwitch
    EndIf
EndFor

If SYS_CODIGO_CLIENTE = "0253" 
   Then {Ask} {\\Sistemas\\Estoque\\RqCabeca} Check
        Copiar("RC")
        {Ask} {\\Sistemas\\Estoque\\RqItem} Check
        Copiar("RI")
        {Ask} {\\Sistemas\\Estoque\\RqMatPri} Check
        Copiar("RM")
EndIf

SetDir "\\Sistemas\\Cadastro"

LimpAguarde()
EndProc

;*******************************************************************************
;* Rotina para gerar o log de registro por usu rio                             *
;*******************************************************************************
Proc Gera_Log()          
;---- Gravando LOG ---------------------------------------------------
If VSDGDTINI<>BlankDate()
   Then AUX_DATA = ", periodo de "+StrVal(VSDGDTINI)+" ate "+StrVal(VSDGDTFIM)
   Else AUX_DATA = ", periodo ate "+StrVal(VSDGDTFIM)
EndIf   
          
If VSDGTABELA<>"" 
   Then AUX_TAB  = ", Tabela "+VSDGTABELA 
   Else AUX_TAB = ""
EndIf    

If VSDGDTREF<>BlankDate()
   Then AUX_DTREF = ", referente a "+StrVal(VSDGDTREF)
   Else AUX_DTREF = ""
EndIf

AUX_OPCAO = "" 
If VSDGOPCAO[1] Then AUX_OPCAO = AUX_OPCAO + "Clientes, "         EndIf 
If VSDGOPCAO[2] Then AUX_OPCAO = AUX_OPCAO + "Ficha Financeira, " EndIf
If VSDGOPCAO[3] Then AUX_OPCAO = AUX_OPCAO + "Produtos, "         EndIf
If VSDGOPCAO[4] Then AUX_OPCAO = AUX_OPCAO + "Tabela de Preco, "  EndIf
If VSDGOPCAO[5] Then AUX_OPCAO = AUX_OPCAO + "Transportador, "    EndIf
If VSDGOPCAO[6] Then AUX_OPCAO = AUX_OPCAO + "Entradas, "         EndIf
If VSDGOPCAO[7] Then AUX_OPCAO = AUX_OPCAO + "Saidas, "           EndIf
AUX_OPCAO = Rtrim(AUX_OPCAO)
If SubStr(AUX_OPCAO,Len(AUX_OPCAO),1)="," Then AUX_OPCAO = Substr(AUX_OPCAO,1,Len(AUX_OPCAO)-1) EndIf
 
Grava_LogEx("TransfDT")

EndProc ;Gera_Log()                    

;*******************************************************************************
;* Copiar                                                                      *
;*******************************************************************************
Proc Copiar(INI)
Do_It!
If IsTable(PASTA+INI+DATAREF)
   Then Delete PASTA+INI+DATAREF
EndIf

If Not IsEmpty("Answer")
   Then {Tools} {Copy} {Table} {Answer} TypeIn PASTA+INI+DATAREF Enter
   Else If INI="EC" or INI="EI" Or INI="EV" or INI="EP" Or INI="ER" Or INI="EA"
           Then {Tools} {Copy} {Table} {Answer} TypeIn PASTA+INI+DATAREF Enter
        EndIf
EndIf
ClearAll
EndProc

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Temp=True
MSG_CAMPO=""
TECLA=""
If Disparo="OPEN"  Then AoCriarShowDialog() EndIf
If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] =   9: Temp=False
     Case Evento["KeyCode"] = -59: Dialog_F1()
     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"] =  27:
          Temp=False
          Switch
            Case Campo="TG_EMPRESA"       : Campo="NO"
            Case Campo="TG_TABELA"        : Campo="TG_EMPRESA"
            Case Campo="TG_DTINI"         : Campo="TG_TABELA"
            Case Campo="TG_DTFIM"         : Campo="TG_DTINI"
            Case Campo="TG_DTREF"         : Campo="TG_DTFIM"
            Case Campo="TG_DRIVES"        : Campo="TG_DTREF"
            Case Campo="TG_OPCOES"        : Campo="TG_DRIVES"
            Case Campo="YES" Or Campo="NO": Campo="TG_EMPRESA"
          EndSwitch
     Case Evento["KeyCode"] = 13:
          Temp=False
          If Checa_TAG()
             Then Switch
                    Case Campo="TG_EMPRESA" : Campo="TG_TABELA"
                    Case Campo="TG_TABELA"  : Campo="TG_DTINI"
                    Case Campo="TG_DTINI"   : Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"   : Campo="TG_DTREF"
                    Case Campo="TG_DTREF"   : Campo="TG_DRIVES"
                    Case Campo="TG_DRIVES"  : Campo="TG_OPCOES"
                      VSDGDRIVE=ControlValue("TG_DRIVES")
                    Case Campo="TG_OPCOES"  : Campo="YES"
                  EndSwitch
          EndIf
   EndSwitch
EndIf
Switch
  Case Campo="TG_DTREF" :
       MSG_CAMPO="Informe a Data de Referˆncia"
  Case Campo="TG_OPCOES":
       MensagemCheckBoxes()
  Case Campo="TG_DRIVES":
       MSG_CAMPO="Selecione o drive de destino desejado !"
       TECLA=""+"=Selecionar  "
EndSwitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp

EndProc ;SD_Dialog()

;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bibliot"
SYS_VALOR()
LimpAguarde()

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

;---- Rotina para barrar a permissÆo de confec‡äes se tentar exportar ---------- 
PARAM_CONFECCAO = True 

If PARAM_CONFECCAO And Search("V",Upper(SubStr(Directory(),1,2))) > 0
   Then SYS_VALOR()
        If SYS_CLIENTE_CONFEC<>"" And    
          (SYS_CODIGO_CLIENTE = "0227" Or 
           ;SYS_CODIGO_CLIENTE = "0222" Or
           SYS_CODIGO_CLIENTE = "0102" Or
           SYS_CODIGO_CLIENTE = "0266" Or 
           SYS_CODIGO_CLIENTE = "0342" Or
           SYS_CODIGO_CLIENTE = "0231" Or 
           SYS_CODIGO_CLIENTE = "0346" Or  
           SYS_CODIGO_CLIENTE = "0196")
           Then Mensagem("Rotina espec¡fica para a Unidade X:\\") 
                PARAM_CONFECCAO = True
           Else PARAM_CONFECCAO = False
        EndIf
   Else PARAM_CONFECCAO = False     
EndIf     
;-------------------------------------------------------------------------------

If Not PARAM_CONFECCAO
   Then Array VSDGOPCAO[7]
        VSDGOPCAO[1]=False
        VSDGOPCAO[2]=False
        VSDGOPCAO[3]=False
        VSDGOPCAO[4]=False
        VSDGOPCAO[5]=False
        VSDGOPCAO[6]=False
        VSDGOPCAO[7]=False
        
        DynArray Array_Drives[]
        SysInfo Drives To Array_Drives
        VSDGDRIVE=SubStr(Directory(),1,2)
        
        VSDGDTREF  =Today()
        VSDGDTINI  =Today()-1
        VSDGDTFIM  =Today()-1
        VSDGTABELA =""
        
        If Not IsFile("c:\\vise\\Varj.exe")
           Then MSG="Compactador/Descompactador ARJ n„o encontrado !// //"
                MSG=MSG+"Verificar com o Suporte!// //"
                MSG=MSG+"Esta rotina n„o podera ser executada !"
                Mensagem(MSG)
        EndIf
        
        While True
          ShowDialog "Exporta‡„o da transa‡„o" Proc "SD_Dialog"
          Trigger "OPEN","ARRIVE"
          Key "F1","ENTER","ESC",
              -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
        
           @ 05,22   Height 18 Width 72
        
            Label  @ 00,00 "Empresa"  For "TG_EMPRESA"
            Accept @ 01,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_EMPRESA"    To VSDGEMPRESA
            Accept @ 01,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMEMPRESA" To VSDGNOMEMP
        
            Label  @ 02,00 "Tabela"  For "TG_TABELA"
            Accept @ 03,01 Width 08 "A5"  Picture "#*#" Tag "TG_TABELA" To VSDGTABELA
            Accept @ 03,09 Width 25 "A40" Picture "!*!" Tag "TG_NOMTAB" To VSDGNOMTAB
        
            Label  @ 04,00 "Per¡odo Referente de" For "TG_DTINI"
            Accept @ 05,03 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
            Label  @ 05,16 "at‚" For "TG_DTFIM"
            Accept @ 05,21 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM
        
            Label  @ 06,00 "Data Referente" For "TG_DTREF"
            Accept @ 07,03 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTREF" To VSDGDTREF
        
            Label  @ 08,00 "Drives:" For "TG_DRIVES"
            PickDynArrayIndex @ 09,01 Height 4 width 33
             Columns 7
              Array_Drives
               Tag "TG_DRIVES"
                To VSDGDRIVE
        
            Label  @ 00,35 "Op‡äes de dados" For "TG_OPCOES"
            CheckBoxes @01,35 Height 7 Width 34 Tag "TG_OPCOES"
            "Clientes,Fornecedores,Outros  " to VSDGOPCAO[1],
            "Ficha Financeira+Obs Clientes" to VSDGOPCAO[2],
            "Produtos       " to VSDGOPCAO[3],
            "Tabela de Pre‡o" to VSDGOPCAO[4],
            "Transportador  " to VSDGOPCAO[5],
            "Entradas       " to VSDGOPCAO[6],
            "Saidas         " to VSDGOPCAO[7]
        
            Pushbutton @ 14,22 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
            Pushbutton @ 14,36 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

          EndDialog
          If Not RetVal Then QuitLoop EndIf

          Gera_Log()
          
          DATAREF=AlinhM(StrVal(Day(VSDGDTREF)),2)+AlinhM(StrVal(Month(VSDGDTREF)),2)+SubStr(AlinhM(StrVal(Year(VSDGDTREF)),4),3,2)
          
          Aguarde("Aguarde, verificando diret¢rio")
          PASTA = PrivDir()+"TMP"
          If DirExists(PASTA)=0
             Then Cria_pasta(PASTA)
          EndIf
          PASTA = PASTA + "\\"
          
          If VSDGEMPRESA="" 
             Then CODEMP="0000" 
             Else CODEMP=VSDGEMPRESA
          EndIf
          ARQ_ARJ="PT_TRD_"+CODEMP+"_"+ AlinhM(StrVal(Year(VSDGDTREF)),4) +
                                        AlinhM(StrVal(Month(VSDGDTREF)),2)+
                                        AlinhM(StrVal(Day(VSDGDTREF)),2)  + ".ARJ"
          
          Aguarde("Aguarde, excluindo arquivos temporarios")
          FileWrite        PrivDir()+"fundel.txt"  From  "DELT|"+PASTA+"??"+DATAREF+".DB"+"\n"
          FileWrite Append PrivDir()+"fundel.txt"  From  "DELT|"+PASTA+"??"+DATAREF+".MB"+"\n"
          FileWrite Append PrivDir()+"fundel.txt"  From  "DELT|"+VSDGDRIVE+"\\"+ARQ_ARJ+"\n"
          FileWrite Append PrivDir()+"fundel.txt"  From  "DELT|"+PASTA+ARQ_ARJ+"\n"
          ExecVisecf(PrivDir()+"fundel.txt","")
          Sleep 2000

          If VSDGOPCAO[1]=True Then CLIENTES()       EndIf
          If VSDGOPCAO[2]=True Then COMPL_CLIENTES() EndIf
          If VSDGOPCAO[3]=True Then PRODUTOS()       EndIf
          If VSDGOPCAO[4]=True Then TABPRECOS()      EndIf
          If VSDGOPCAO[5]=True Then TRANSPORTADOR()  EndIf
          If VSDGOPCAO[6]=True Then NENTRADAS()      EndIf
          If VSDGOPCAO[7]=True Then NSAIDAS()        EndIf

          Aguarde("Aguarde, compactando pacote de transa‡„o p/ "+ARQ_ARJ)
          FileWrite        PrivDir()+"funcmd.txt" From "CMD|"+"c:\\vise\\Varj.exe a "+PASTA+ARQ_ARJ+" "+PASTA+"??"+DATAREF+".MB "+PASTA+"??"+DATAREF+".DB"+"\n"        
          ExecVisecf(PrivDir()+"funcmd.txt","")
          Sleep 2000
          
          Aguarde("Aguarde, excluindo arquivos temporarios")
          FileWrite        PrivDir()+"fundel.txt"  From  "DELT|"+PASTA+"??"+DATAREF+".DB"+"\n"
          FileWrite Append PrivDir()+"fundel.txt"  From  "DELT|"+PASTA+"??"+DATAREF+".MB"+"\n"
          ExecVisecf(PrivDir()+"fundel.txt","")
          Sleep 1000
          
          Aguarde("Aguarde, copiando arquivo para a unidade "+VSDGDRIVE)
          FileWrite PrivDir()+"funcop.txt" From "COP|"+PASTA+ARQ_ARJ+"|"+VSDGDRIVE+"\\"+ARQ_ARJ+"\n" 
          ExecVisecf(PrivDir()+"funcop.txt","")
          Sleep 1000
          
          ;---- Excluindo Arquivo Temporario -----------------------------------
          Aguarde("Aguarde, excluindo arquivos temporarios")
          FileWrite PrivDir()+"fundel.txt" From "DELT|"+PASTA+ARQ_ARJ+"\n"
          ExecVisecf(PrivDir()+"fundel.txt","")
          Sleep 1000
          
          ;---- Excluindo Arquivo de Retorno -----------------------------------
          Aguarde("Aguarde, finalizando o processo")
          FileWrite        PrivDir()+"funcao.txt"  From  "DELT|"+PrivDir()+"fundel.ret"+"\n"
          FileWrite Append PrivDir()+"funcao.txt"  From  "DELT|"+PrivDir()+"funcmd.ret"+"\n"
          FileWrite Append PrivDir()+"funcao.txt"  From  "DELT|"+PrivDir()+"funcop.ret"+"\n"
          FileWrite Append PrivDir()+"funcao.txt"  From  "DELT|"+PrivDir()+"funren.ret"+"\n"
          ExecVisecf(PrivDir()+"funcao.txt","")
          
          msg="Fim da Opera‡„o !// //"
          msg=msg+"Gerado arquivo->  "+VSDGDRIVE+"\\"+ARQ_ARJ+"// //"
          msg=msg+"Verifique !"
          
          LimpAguarde()
          Mensagem(msg)
        EndWhile
EndIf
ClearAll
Release Vars All
Release Procs All
