;** TransfOF *******************************************************************
;*  Transferencia P/ Drive                                                     *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 03/02/2011 por Bruno Carvalho
;Ultima Alteracao: 12/05/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes novas fun‡äes para confec‡äes  
;Ultima Alteracao: 27/06/2011 por Bruno Carvalho
;Motivo Alteracao: Altera‡Æo Arj para c:\Arj
;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: 07/05/2012 por Bruno Carvalho
;Motivo Alteracao: Add Sleep na rotina onde ‚ processado o ARJ
;Ultima Alteracao: 14/08/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes + exportar apenas of's j'a faturadas
;Ultima Alteracao: 19/03/2013 por Bruno Carvalho
;Motivo Alteracao: Comentado a linha "Fator Conversao" quando utilizado nos Itens 
;Ultima Alteracao: 19/03/2013 por Bruno Carvalho
;Motivo Alteracao: Comentado a linha "Fator Conversao" quando utilizado nos Itens 
;Ultima Alteracao: 07/12/2015 por Anivel Augusto Rodrigues
;Motivo Alteracao: exclusao referencia ao campo INSS
;Ultima Alteracao: 07/04/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes campos com Lookup TabPreco_Cliente, TabPreco_Repres, TabPreco_Item desnecessarios
;Ultima Alteracao: 15/06/2016 por Bruno Carvalho 
;Motivo Alteracao: Removido os campos de Entrega e Cobran‡a
;Ultima Alteracao: 23/06/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao novas tabelas regras para produtos
;Ultima Alteracao: 06/09/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes campos no pedidoi
;Ultima Alteracao: 19/10/2016 por Bruno Carvalho
;Motivo Alteracao: Adicionado "Iten_Tec"                   
;Ultima Alteracao: 06/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog   
;Ultima Alteracao: 29/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes MensagemCheckBoxes()                
;Ultima Alteracao: 16/01/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Itens para 0388, 0390
;Ultima Alteracao: 07/04/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado processos de #0388# para #0396#
;Ultima Alteracao: 23/05/2017 por Rafael Matos
;Motivo Alteracao: Adicionado "Iten_Bar"
;Ultima Alteracao: 27/07/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes 0388
;Ultima Alteracao: 09/08/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado Gera_Log()
;Ultima Alteracao: 15/08/2017 por Bruno Carvalho
;Motivo Alteracao: Removido [Composicao de Dias] e [Condicao de Pagamento] -> FaturaI
;Ultima Alteracao: 31/08/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes desconto item
;Ultima Alteracao: 21/09/2017 por Bruno Carvalho
;Motivo Alteracao: Removido de PROCESSA() -> Edita Descricao do Item, Descricao da Unidade, Codigo da Marca e Descricao da Marca
;Ultima Alteracao: 21/10/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado novos campos ao fazer a importa‡Æo do PEDIDOI para o FATURAI
;Ultima Alteracao: 26/01/2018 por Bruno Carvalho
;Motivo Alteracao: Alterado [Observacao_Item] p/ [Informacoes_Adicionais]
;Ultima Alteracao: 02/03/2018 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes SIRI nÆo agrupar Itens         
;Ultima Alteracao: 14/03/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado "Iten_eco"
;Ultima Alteracao: 07/06/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado/ajustado Grava_LogEx()
;Ultima Alteracao: 18/07/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado processos de #0388# para #0419#
;Ultima Alteracao: 10/10/2018 por Kamila Gomes
;Motivo Alteracao: Comentados campos que nÆo existem no PedidoI
;Ultima Alteracao: 28/12/2018 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Adicionado processos de #0427#
;Ultima Alteracao: 04/02/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes pedido de compra              
;Ultima Alteracao: 19/03/2019 por Bruno Carvalho 
;Motivo Alteracao: Adicionado "bar_inat"
;Ultima Alteracao: 23/04/2019 por Bruno Carvalho
;Motivo Alteracao: Adicionado processos de #0388# para #0429#

;*******************************************************************************
;* ROTINA PROCESSA  -> realiza o processamento da Transferencia                *
;*******************************************************************************
Proc PROCESSA()

AGUARDE("Aguarde, Transferindo Pedidos")
ClearAll
Array Arquivo[3]
Arquivo[1]="FaturaC"
Arquivo[2]="FaturaI"
Arquivo[3]="FaturaV"

Cont     = 1

SetDir "\\Sistemas\\Vendas"

For Cont From 1 To 3
    AGUARDE("Aguarde, Transferindo "+Arquivo[Cont])
    If IsTable(Arquivo[Cont])
       Then 
            {Ask} {FaturaC} 
            If Arquivo[Cont]="FaturaC" Then Check EndIf
            Moveto [Numero da OF             ] Example "ndoc" TypeIn ", ~VSDGOF.."
            Moveto [Codigo da Empresa        ] Example "cemp" TypeIn ", ~VSDGEMPRESA.."
            Moveto [Data de Emissao          ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
            Moveto [Numero_Carregamento      ] TypeIn "~VSDGNCARREG.."
            If CheckTG_OPCAO[1]
               Then Moveto [Numero Nota Gerada] TypeIn "Not Blank"
            EndIf
            If Arquivo[Cont]="FaturaI" Or
               Arquivo[Cont]="FaturaV"    
               Then {Ask} TypeIn Arquivo[Cont] Enter Check
                    Moveto [Numero da OF             ] Example "ndoc"
            Endif        
            Do_It!
            ClearAll
            
            If IsTable(VSDGDRIVE+"\\"+Arquivo[Cont])
               Then Delete VSDGDRIVE+"\\"+Arquivo[Cont]
            Endif
            
            Create VSDGDRIVE+"\\"+Arquivo[Cont] Like "Pedido"+SubStr(Arquivo[Cont],7,1)
            Tabela = VSDGDRIVE+"\\"+Arquivo[Cont] 

            Coedit Tabela, "Answer" 
            
            Switch 
             Case Arquivo[Cont]="FaturaC" :      ; grava na estrutura PEDIDOC
                  Scan  
                    Moveto Tabela
                    End
                    Down
                    [Numero do Pedido         ] = [Answer->Numero da OF             ]  
                    [Codigo da Empresa        ] = [Answer->Codigo da Empresa        ] 
                    [Nome Fantasia Empresa    ] = [Answer->Nome Fantasia Empresa    ] 
                    [Data de Emissao          ] = [Answer->Data de Emissao          ] 
                    [Tipo                     ] = [Answer->Tipo                     ]
                    [Codigo                   ] = [Answer->Codigo                   ]  
                    [Nome Fantasia EmitDest   ] = [Answer->Nome Fantasia EmitDest   ]
                    [Tipo Pessoa              ] = [Answer->Tipo Pessoa              ] 
                    [Consumidor Final         ] = [Answer->Consumidor Final         ] 
                    [Razao Social             ] = [Answer->Razao Social             ]  
                    [Endereco                 ] = [Answer->Endereco                 ]  
                    [Bairro                   ] = [Answer->Bairro                   ]  
                    [CEP                      ] = [Answer->CEP                      ]  
                    [Cidade                   ] = [Answer->Cidade                   ]  
                    [UF                       ] = [Answer->UF                       ]  
                    [CGC                      ] = [Answer->CGC                      ]  
                    [IE                       ] = [Answer->IE                       ]  
                    [Telefone                 ] = [Answer->Telefone                 ]  
                    [Codigo do Representante  ] = [Answer->Codigo do Representante  ]  
                    [Nome Fantasia Represent  ] = [Answer->Nome Fantasia Represent  ]  
                    [Comissao do Representante] = [Answer->Comissao do Representante]   
                    [Condicao de Pagamento    ] = [Answer->Condicao de Pagamento    ] 
                    [Descricao CondPagto      ] = [Answer->Descricao CondPagto      ] 
                    [Numero de Parcelas       ] = [Answer->Numero de Parcelas       ]   
                    [Tipo de Pagamento        ] = [Answer->Tipo de Pagamento        ]  
                    [Composicao de Dias       ] = [Answer->Composicao de Dias       ]  
                    [Forma de Pagamento       ] = [Answer->Forma de Pagamento       ]  
                    [Codigo da Destinacao     ] = [Answer->Codigo da Destinacao     ]   
                    [Descricao da Destinacao  ] = [Answer->Descricao da Destinacao  ]   
                    [CFO                      ] = [Answer->CFO                      ]  
                    [Codigo da Transportadora ] = [Answer->Codigo da Transportadora ]  
                    [Nome Fantasia Transport  ] = [Answer->Nome Fantasia Transport  ]  
                    [Razao Social Transport   ] = [Answer->Razao Social Transport   ]  
                    [Endereco Transport       ] = [Answer->Endereco Transport       ]   
                    [Bairro Transport         ] = [Answer->Bairro Transport         ]    
                    [CEP Transport            ] = [Answer->CEP Transport            ]  
                    [Cidade Transport         ] = [Answer->Cidade Transport         ]  
                    [UF Transport             ] = [Answer->UF Transport             ]   
                    [CGC Transport            ] = [Answer->CGC Transport            ]  
                    [IE Transport             ] = [Answer->IE Transport             ] 
                    [Codigo do Veiculo        ] = [Answer->Codigo do Veiculo        ]  
                    [Placa do Veiculo         ] = [Answer->Placa do Veiculo         ]  
                    [UF Veiculo               ] = [Answer->UF Veiculo               ]  
                    [Frete por Conta          ] = [Answer->Frete por Conta          ]  
                    [Taxa de Desconto         ] = [Answer->Taxa de Desconto         ]  
                    [Valor do Desconto        ] = [Answer->Valor do Desconto        ] 
                    [Valor Mercadoria         ] = [Answer->Valor Mercadoria         ]  
                    [Valor Desconto           ] = [Answer->Valor Desconto           ]    
                    [Valor Mercadoria Liquido ] = [Answer->Valor Mercadoria Liquido ]  
                    [Valor BCICMS             ] = [Answer->Valor BCICMS             ]  
                    [Valor ICMS               ] = [Answer->Valor ICMS               ] 
                    [Valor IPI                ] = [Answer->Valor IPI                ]   
                    [Valor Nota Fiscal        ] = [Answer->Valor Nota Fiscal        ]   
                    [Valor Despesas Acessorias] = [Answer->Valor Despesas Acessorias]  
                    [Valor BCSubstituicao ICMS] = [Answer->Valor BCSubstituicao ICMS]   
                    [Valor Substituicao ICMS  ] = [Answer->Valor Substituicao ICMS  ]    
                    [Frete Incluso na Nota    ] = [Answer->Frete Incluso na Nota    ]  
                    [Aliquota BCFrete Nota    ] = [Answer->Aliquota BCFrete Nota    ]    
                    [Valor do Frete           ] = [Answer->Valor do Frete           ]  
                    [Aliquota BCICMS Frete    ] = [Answer->Aliquota BCICMS Frete    ]    
                    [Aliquota de ICMS Frete   ] = [Answer->Aliquota de ICMS Frete   ]  
                    [Cfo Frete                ] = [Answer->Cfo Frete                ]  
                    [Valor do Seguro          ] = [Answer->Valor do Seguro          ]   
                    [Marca dos Volumes        ] = [Answer->Marca dos Volumes        ]   
                    [Numero de Volumes        ] = [Answer->Numero de Volumes        ] 
                    [Especie de Volumes       ] = [Answer->Especie de Volumes       ]  
                    [Peso Bruto               ] = [Answer->Peso Bruto               ]  
                    [Peso Liquido             ] = [Answer->Peso Liquido             ]   
                    [Observacao na Nota Fiscal] = [Answer->Observacao na Nota Fiscal]  
                    [Codigo da Tabela         ] = [Answer->Codigo da Tabela         ]  
                    [Lookup_Tabela_Frete      ] = [Answer->Lookup_Tabela_Frete      ]  
                    [Numero_Carregamento      ] = [Answer->Numero_Carregamento      ]  
                    [Data_Inclusao            ] = [Answer->Data_Inclusao            ]   
                    [Hora_Inclusao            ] = [Answer->Hora_Inclusao            ]   
                    
                    UnLockRecord
                    Moveto "Answer"
                    
                 EndScan
                 Do_It!
                 ClearAll
                 
             Case Arquivo[Cont]="FaturaI" :    ; grava na estrutura PEDIDOI
                  Scan  
                    Moveto Tabela
                    End
                    Down

                    [Numero do Pedido         ] = [Answer->Numero da OF             ]  
                    [Item do Pedido           ] = [Answer->Item da OF               ]
                      
                    [Codigo do Item           ] = [Answer->Codigo do Item           ] 
                    [Tipo do Item             ] = [Answer->Tipo do Item             ] 
                    [Descricao do Item        ] = [Answer->Descricao do Item        ] 
                    [Codigo da Cor_Tecido     ] = [Answer->Codigo da Cor_Tecido     ] 
                    [Descricao da Cor_Tecido  ] = [Answer->Descricao da Cor_Tecido  ]
                    
                    [Tamanho                  ] = [Answer->Tamanho                  ] 
                    [Quantidade               ] = [Answer->Quantidade               ] 
                    [Unidade Fiscal           ] = [Answer->Unidade Fiscal           ] 
                    [Preco Unitario           ] = [Answer->Preco Unitario           ] 

                    if [Answer->Tipo Desconto Item]="U"
                       then [Taxa Desconto Unitario   ] = [Answer->Taxa Desconto Unitario   ] 
                            [Valor Desconto Unitario  ] = [Answer->Valor Desconto Unitario  ]
                    endif   
                    if [Answer->Tipo Desconto Item]="T"
                       then  
                            [Valor Desconto Unitario  ] = [Answer->Valor Desconto Item  ]/[Answer->Quantidade]
                    endif
                    
                    ;Novos campos adicionados em 21/10/2017
                    [Referencia               ] = [Answer->Referencia               ]
                    [Tipo Desconto Item       ] = [Answer->Tipo Desconto Item       ]
                    [Valor Desconto Item      ] = [Answer->Valor Desconto Item      ]
                    [Valor Frete Total        ] = [Answer->Valor Frete Total        ]
                    [Valor Seguro Total       ] = [Answer->Valor Seguro Total       ]
                    [Valor OutDesp Total      ] = [Answer->Valor OutDesp Total      ]     
                    ;----------------------------------------------------------------
                                             
                    [Preco Total              ] = [Answer->Preco Total              ]
                    [Preco Unitario Tabela    ] = [Answer->Preco Unitario Tabela    ] 
                    [CFO                      ] = [Answer->CFO                      ] 
                    [IPI_CST                  ] = [Answer->IPI_CST                  ]  
                    [Tributacao de IPI        ] = [Answer->Tributacao de IPI        ] 
                    [Aliquota de IPI          ] = [Answer->Aliquota de IPI          ] 
                    [IPI_BC                   ] = [Answer->IPI_BC                   ] 
                    [Valor do IPI             ] = [Answer->Valor do IPI             ] 
                    
                    [Tipo Tributacao          ] = [Answer->Tipo Tributacao          ] 
                    [Tributacao de ICMS       ] = [Answer->Tributacao de ICMS       ] 
                    [CSOSN                    ] = [Answer->CSOSN                    ]                   
                    [Aliquota Reduzida BCICMS ] = [Answer->Aliquota Reduzida BCICMS ] 
                    [Aliquota de ICMS         ] = [Answer->Aliquota de ICMS         ]  
                    [ICMS_BC                  ] = [Answer->ICMS_BC                  ]  
                    [Valor do ICMS            ] = [Answer->Valor do ICMS            ]  

                    ;[ICMS_CredSN_Aliquota     ] = [Answer->ICMS_CredSN_Aliquota     ]  
                    ;[ICMS_CredSN_Valor        ] = [Answer->ICMS_CredSN_Valor        ]  

                    [ICMS_ST_Aliquota Reduzida] = [Answer->ICMS_ST_Aliquota Reduzida]  
                    [ICMS_ST_Aliquota         ] = [Answer->ICMS_ST_Aliquota         ]  
                    [ICMS_ST_BC               ] = [Answer->ICMS_ST_BC               ]  
                    [ICMS_ST_Valor            ] = [Answer->ICMS_ST_Valor            ]  

                    [Tributacao de ISSQN      ] = [Answer->Tributacao de ISSQN      ] 
                    [Aliquota de ISSQN        ] = [Answer->Aliquota de ISSQN        ] 
                    ;[Valor do ISSQN           ] = [Answer->Valor do ISSQN           ] 

                    ;[ISSQN_BC                 ] = [Answer->ISSQN_BC                 ] 
                    ;[ISSQN_UF                 ] = [Answer->ISSQN_UF                 ] 
                    ;[ISSQN_Municipio          ] = [Answer->ISSQN_Municipio          ] 
                    ;[Codigo_Servico           ] = [Answer->Codigo_Servico           ] 

                    [PIS_CST                  ] = [Answer->PIS_CST                  ]
                    ;[PIS_BC                   ] = [Answer->PIS_BC                   ]
                    [PIS_Aliquota             ] = [Answer->PIS_Aliquota             ]
                    ;[PIS_Valor                ] = [Answer->PIS_Valor                ]

                    [COFINS_CST               ] = [Answer->COFINS_CST               ]
                    ;[COFINS_BC                ] = [Answer->COFINS_BC                ]
                    [COFINS_Aliquota          ] = [Answer->COFINS_Aliquota          ]
                    ;[COFINS_Valor             ] = [Answer->COFINS_Valor             ]

                    [Taxa Desconto Total      ] = [Answer->Taxa Desconto Total      ]  
                    [Valor Desconto Total     ] = [Answer->Valor Desconto Total     ] 
                    [Peso Liquido             ] = [Answer->Peso Liquido             ] 
                    [Peso Embalagem           ] = [Answer->Peso Embalagem           ]  
                    [Volumes                  ] = [Answer->Volumes                  ] 
 
                    [Comissao do Item         ] = [Answer->Comissao do Item         ] 
                    [Lookup_TabPreco_CondPagto] = [Answer->Lookup_TabPreco_CondPagto] 
                    [Lookup_DesctoComis_Marca ] = [Answer->Lookup_DesctoComis_Marca ] 
                    [Codigo da Tabela         ] = [Answer->Codigo da Tabela         ] 
                    [MVA                      ] = [Answer->MVA                      ]  
                    [Codigo MVA               ] = [Answer->Codigo MVA               ]            
                    [NCM                      ] = [Answer->NCM                      ]  
                    [Informacoes_Adicionais   ] = [Answer->Informacoes_Adicionais   ]

                    [Numero_Pedido_Compra     ] = [Answer->Numero_Pedido_Compra     ]
                    [Item_Pedido_Compra       ] = [Answer->Item_Pedido_Compra       ]
                                 
                    UnLockRecord
                    Moveto "Answer"
                    
                 EndScan
                 Do_It!
                 ClearAll
             
             Case Arquivo[Cont]="FaturaV" :   ; grava na estrutura PEDIDOV
                  Scan  
                    Moveto Tabela
                    End
                    Down
                    
                    [Numero do Pedido         ] = [Answer->Numero da OF             ]  
                    [Sequencia                ] = [Answer->Sequencia                ]
                    [Numero de Dias           ] = [Answer->Numero de Dias           ]
                    [Data                     ] = [Answer->Data                     ] 
                    [Valor                    ] = [Answer->Valor                    ]
                    [Forma de Pagamento       ] = [Answer->Forma de Pagamento       ] 
                    [Codigo_Banco             ] = [Answer->Codigo_Banco             ]
                    [Nome_Banco               ] = [Answer->Nome_Banco               ]
                    [Agencia                  ] = [Answer->Agencia                  ]
                    [Numero_Conta             ] = [Answer->Numero_Conta             ]
                    [Numero_Cheque            ] = [Answer->Numero_Cheque            ]
                    [CPF                      ] = [Answer->CPF                      ]
                    [Tipo_Emitente            ] = [Answer->Tipo_Emitente            ]  
                    [Titular_Cheque           ] = [Answer->Titular_Cheque           ]
                    [Cidade                   ] = [Answer->Cidade                   ]
                    [UF                       ] = [Answer->UF                       ]
                    [Observacao               ] = [Answer->Observacao               ]
                    [Numero do Cartao         ] = [Answer->Numero do Cartao         ]
                    [Nome do Cartao           ] = [Answer->Nome do Cartao           ] 
                    [Valor da Comissao        ] = [Answer->Valor da Comissao        ]    
                    
                    UnLockRecord
                    Moveto "Answer"
                    
                 EndScan
                 Do_It!
                 ClearAll
                 
            EndSwitch 
            
            If Arquivo[Cont]="FaturaC" And Not IsEmpty("Answer")
               Then Gerou_Dados=True
            EndIf   
    EndIf
EndFor

AGUARDE("Aguarde, Transferindo Carregamentos")
ClearAll
Arquivo[1]="AccarrgC"
Arquivo[2]="AccarrgI"
Arquivo[3]="AccarrgV"

Cont     = 1

SetDir "\\Sistemas\\Vendas"
For Cont From 1 To 3
    AGUARDE("Aguarde, Transferindo "+Arquivo[Cont])
    If IsTable(Arquivo[Cont])
       Then If Arquivo[Cont]<>"AccarrgC"
               Then {Ask} {Accarrgc}
                    Moveto [Numero_Carregamento] Example "ndoc"
                    Moveto [Data de Emissao    ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
                    {Ask} TypeIn Arquivo[Cont] Enter Check
                    Moveto [Numero_Carregamento] Example "ndoc"
               Else {Ask} {Accarrgc} Check
                    Moveto [Data de Emissao    ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
            Endif
            Do_It!
            ClearAll
            If IsTable(VSDGDRIVE+"\\"+Arquivo[Cont])
               Then Delete VSDGDRIVE+"\\"+Arquivo[Cont]
            Endif
            Create VSDGDRIVE+"\\"+Arquivo[Cont] Like Arquivo[Cont]
            Add "Answer" VSDGDRIVE+"\\"+Arquivo[Cont]
    EndIf
EndFor

AGUARDE("Aguarde, Transferindo Destinat")
ClearAll
If IsTable("\\Sistemas\\Cadastro\\Destinat")
   Then {Ask} {FaturaC}
        Moveto [Numero da OF       ] TypeIn "~VSDGOF.."
        Moveto [Codigo da Empresa  ] TypeIn "~VSDGEMPRESA.."
        Moveto [Data de Emissao    ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
        Moveto [Numero_Carregamento] TypeIn "~VSDGNCARREG.."
        Moveto [Codigo             ] Check
        Do_It!
        ClearAll

        {Ask} {Answer}
        Moveto [Codigo       ] Example "clie"
        {Ask} {\\Sistemas\\Cadastro\\Destinat} Check
        Moveto [Codigo       ] Example "clie"
        Do_It!
        ClearAll
        If IsTable(VSDGDRIVE+"\\Destinat")
           Then Delete VSDGDRIVE+"\\Destinat"
        Endif
        Create VSDGDRIVE+"\\Destinat" Like "\\sistemas\\cadastro\\Destinat"
        Add "Answer" VSDGDRIVE+"\\Destinat"
EndIf

TRANSF_ITENS=True


If SYS_CODIGO_CLIENTE="0388" Or
   SYS_CODIGO_CLIENTE="0427" Or
   SYS_CODIGO_CLIENTE="0390" Or
   SYS_CODIGO_CLIENTE="0396" Or
   SYS_CODIGO_CLIENTE="0419" Or
   SYS_CODIGO_CLIENTE="0429"   
   Then 
         {Ask} {FaturaC} 
         Moveto [Numero da OF             ] Example "ndoc" TypeIn ", ~VSDGOF.."
         Moveto [Codigo da Empresa        ]                TypeIn "~VSDGEMPRESA.."
         Moveto [Data de Emissao          ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
         Moveto [Numero_Carregamento      ] TypeIn "~VSDGNCARREG.."
         If CheckTG_OPCAO[1]
            Then Moveto [Numero Nota Gerada] TypeIn "Not Blank"
         EndIf
         {Ask} {FaturaI}
         Moveto [Numero da OF       ] Example "ndoc"
         Moveto [Codigo do Item     ] Check
         Moveto [Tipo do Item       ] Check
         Do_It!
         ClearAll

         Edit "Answer"
         Scan
           if [Tipo do Item]="T"
              then [Codigo do Item]=PegaCodigoRaiz([Codigo do Item])
           endif
           
           if SYS_CODIGO_CLIENTE="0388" Or SYS_CODIGO_CLIENTE="0427" Or SYS_CODIGO_CLIENTE="0419"  Or SYS_CODIGO_CLIENTE="0429"
              then if [Tipo do Item]="P"
                      then [Codigo do Item]=PegaCodigoRaiz([Codigo do Item])
                   endif
           endif   
              
         endscan
         do_it!
         clearall

         {Ask} {Answer}
         Moveto [Codigo do Item     ] Check
         Do_It!
         ClearAll
         
         Tabela=Adiciona_Indice_Temp("Codigo do Item")
 
         {Ask} typeIn Tabela Enter
         Moveto [Codigo do Item] Example "ite"
         {Ask} {\\Sistemas\\Estoque\\Itens} Check
         Moveto [Codigo do Item] Example "ite"
         Do_It!
         ClearAll

         If IsTable(VSDGDRIVE+"\\Itens")
            Then Delete VSDGDRIVE+"\\Itens"
         Endif
         Create VSDGDRIVE+"\\Itens" Like "\\sistemas\\estoque\\itens"
         Add "Answer" VSDGDRIVE+"\\itens"
         ClearAll
 
         ;---- Complementos dos Itens ----------------------------------
         {Ask} typeIn Tabela Enter
         Moveto [Codigo do Item] Example "ite"
         {Ask} {\\Sistemas\\Estoque\\Iten_com} Check
         Moveto [Codigo do Item] Example "ite"
         Do_It!
         ClearAll
         
         If IsTable(VSDGDRIVE+"\\Iten_com")
            Then Delete VSDGDRIVE+"\\Iten_com"
         Endif
         Create VSDGDRIVE+"\\Iten_com" Like "\\sistemas\\estoque\\Iten_com"
         Add "Answer" VSDGDRIVE+"\\Iten_com"
         ClearAll
         
         ;---- Informa‡äes de Tecidos ----------------------------------
         {Ask} typeIn Tabela Enter
         Moveto [Codigo do Item] Example "ite"
         {Ask} {\\Sistemas\\Estoque\\Iten_tec} Check
         Moveto [Codigo do Item] Example "ite"
         Do_It!
         ClearAll
         
         If IsTable(VSDGDRIVE+"\\Iten_tec")
            Then Delete VSDGDRIVE+"\\Iten_tec"
         Endif
         Create VSDGDRIVE+"\\Iten_tec" Like "\\sistemas\\estoque\\Iten_tec"
         Add "Answer" VSDGDRIVE+"\\Iten_tec"
         ClearAll
         
         ;---- Informa‡äes de e-Commerce ---------------------------------------
         {Ask} typeIn Tabela Enter
         Moveto [Codigo do Item] Example "ite"
         {Ask} {\\Sistemas\\Estoque\\Iten_eco} Check
         Moveto [Codigo do Item] Example "ite"
         Do_It!
         ClearAll
         
         If IsTable(VSDGDRIVE+"\\Iten_eco")
            Then Delete VSDGDRIVE+"\\Iten_eco"
         Endif
         Create VSDGDRIVE+"\\Iten_eco" Like "\\sistemas\\estoque\\Iten_eco"
         Add "Answer" VSDGDRIVE+"\\Iten_eco"
         ClearAll         
         
         ;---- Informa‡äes de C¢digos de Barras--------------------------
         {Ask} typeIn Tabela Enter
         Moveto [Codigo do Item] Example "ite"
         {Ask} {\\Sistemas\\Estoque\\Iten_bar} Check
         Moveto [Codigo do Item] Example "ite"
         Do_It!
         ClearAll
         
         If IsTable(VSDGDRIVE+"\\Iten_bar")
            Then Delete VSDGDRIVE+"\\Iten_bar"
         Endif
         Create VSDGDRIVE+"\\Iten_bar" Like "\\sistemas\\estoque\\Iten_bar"
         Add "Answer" VSDGDRIVE+"\\Iten_bar"
         ClearAll         
         
         ;---- Informa‡äes de C¢digos de Barras Inativos -----------------
         {Ask} typeIn Tabela Enter
         Moveto [Codigo do Item] Example "ite"
         {Ask} {\\Sistemas\\Estoque\\bar_inat} Check
         Moveto [Codigo do Item] Example "ite"
         Do_It!
         ClearAll
         
         If IsTable(VSDGDRIVE+"\\bar_inat")
            Then Delete VSDGDRIVE+"\\bar_inat"
         Endif
         Create VSDGDRIVE+"\\bar_inat" Like "\\sistemas\\estoque\\bar_inat"
         Add "Answer" VSDGDRIVE+"\\bar_inat"
         ClearAll     
                
         Delete Tabela

        TRANSF_ITENS=False
endif

Transf_Itens=True
switch
  case sys_Codigo_Cliente="0227" : Transf_Itens=True
  case SYS_CLIENTE_CONFEC<>""    : Transf_Itens=False
endswitch

If TRANSF_ITENS
   Then AGUARDE("Aguarde, Transferindo Itens")
        ClearAll
        If IsTable("\\Sistemas\\Estoque\\Itens")
           Then {Ask} {FaturaC}
                 Moveto [Numero da OF       ] Example "ndoc" TypeIn ", ~VSDGOF.."
                 Moveto [Codigo da Empresa  ] TypeIn "~VSDGEMPRESA.."
                 Moveto [Data de Emissao    ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
                 Moveto [Numero_Carregamento] TypeIn "~VSDGNCARREG.."
                 {Ask} {FaturaI}
                 Moveto [Numero da OF       ] Example "ndoc"
                 Moveto [Codigo do Item     ] Check
                 Do_It!
                 ClearAll
         
                 Tabela=Cria_Temp(PrivDir())
                 Rename "Answer" Tabela
         
                 {Ask} typeIn Tabela Enter
                 Moveto [Codigo do Item] Example "ite"
                 {Ask} {\\Sistemas\\Estoque\\Itens} Check
                 Moveto [Codigo do Item] Example "ite"
                 Do_It!
                 ClearAll
                 
                 If IsTable(VSDGDRIVE+"\\Itens")
                    Then Delete VSDGDRIVE+"\\Itens"
                 Endif
                 Create VSDGDRIVE+"\\Itens" Like "\\sistemas\\estoque\\itens"
                 Add "Answer" VSDGDRIVE+"\\itens"
                 ClearAll
         
                 ;---- Complementos dos Itens ----------------------------------
                 {Ask} typeIn Tabela Enter
                 Moveto [Codigo do Item] Example "ite"
                 {Ask} {\\Sistemas\\Estoque\\Iten_com} Check
                 Moveto [Codigo do Item] Example "ite"
                 Do_It!
                 ClearAll
                 
                 If IsTable(VSDGDRIVE+"\\Iten_com")
                    Then Delete VSDGDRIVE+"\\Iten_com"
                 Endif
                 Create VSDGDRIVE+"\\Iten_com" Like "\\sistemas\\estoque\\Iten_com"
                 Add "Answer" VSDGDRIVE+"\\Iten_com"
                 ClearAll
                 
                 ;---- Informa‡äes de Tecidos ----------------------------------
                 {Ask} typeIn Tabela Enter
                 Moveto [Codigo do Item] Example "ite"
                 {Ask} {\\Sistemas\\Estoque\\Iten_tec} Check
                 Moveto [Codigo do Item] Example "ite"
                 Do_It!
                 ClearAll
                 
                 If IsTable(VSDGDRIVE+"\\Iten_tec")
                    Then Delete VSDGDRIVE+"\\Iten_tec"
                 Endif
                 Create VSDGDRIVE+"\\Iten_tec" Like "\\sistemas\\estoque\\Iten_tec"
                 Add "Answer" VSDGDRIVE+"\\Iten_tec"
                 ClearAll
                 
                 ;---- Informa‡äes de e-Commerce -------------------------------
                 If IsTable(VSDGDRIVE+"\\Iten_eco")
                     Then {Ask} typeIn Tabela Enter
                          Moveto [Codigo do Item] Example "ite"
                          {Ask} {\\Sistemas\\Estoque\\Iten_eco} Check
                          Moveto [Codigo do Item] Example "ite"
                          Do_It!
                          ClearAll
                           
                          If IsTable(VSDGDRIVE+"\\Iten_eco")
                             Then Delete VSDGDRIVE+"\\Iten_eco"
                          Endif
                          Create VSDGDRIVE+"\\Iten_eco" Like "\\sistemas\\estoque\\Iten_eco"
                          Add "Answer" VSDGDRIVE+"\\Iten_eco"
                          ClearAll                 
                 EndIf
                 
                 ;---- Informa‡äes de C¢digos de Barras ------------------------
                 {Ask} typeIn Tabela Enter
                 Moveto [Codigo do Item] Example "ite"
                 {Ask} {\\Sistemas\\Estoque\\Iten_bar} Check
                 Moveto [Codigo do Item] Example "ite"
                 Do_It!
                 ClearAll
                 
                 If IsTable(VSDGDRIVE+"\\Iten_bar")
                    Then Delete VSDGDRIVE+"\\Iten_bar"
                 Endif
                 Create VSDGDRIVE+"\\Iten_bar" Like "\\sistemas\\estoque\\Iten_bar"
                 Add "Answer" VSDGDRIVE+"\\Iten_bar"
                 ClearAll
                 
                 ;---- Informa‡äes de C¢digos de Barras ------------------------
                 If IsTable(VSDGDRIVE+"\\bar_inat")
                    Then {Ask} typeIn Tabela Enter
                         Moveto [Codigo do Item] Example "ite"
                         {Ask} {\\Sistemas\\Estoque\\bar_inat} Check
                         Moveto [Codigo do Item] Example "ite"
                         Do_It!
                         ClearAll
                         
                         If IsTable(VSDGDRIVE+"\\bar_inat")
                            Then Delete VSDGDRIVE+"\\bar_inat"
                         Endif
                         Create VSDGDRIVE+"\\bar_inat" Like "\\sistemas\\estoque\\bar_inat"
                         Add "Answer" VSDGDRIVE+"\\bar_inat"
                         ClearAll
                 EndIf
                 
                 Delete Tabela
        EndIf
EndIF
ClearAll

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   

AUX_OPCAO=""
If VSDGOF<>""        Then AUX_OPCAO = AUX_OPCAO + "OF "+VSDGOF+", "  EndIf
If VSDGNCARREG<>""   Then AUX_OPCAO = AUX_OPCAO + "Carregamento "+VSDGNCARREG+", " EndIf
If CheckTG_OPCAO[1]
   Then AUX_OPCAO = AUX_OPCAO + "marcado a opcao de exportar OFs faturadas"+", "
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
If AUX_OPCAO<>"" Then AUX_OPCAO = ", "+AUX_OPCAO EndIf   

Grava_LogEx("TRANSFOF")  

EndProc ;Gera_Log()  

;*******************************************************************************
;* 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_OF"            : Campo="TG_EMPRESA"
            Case Campo="TG_NCARREG"       : Campo="TG_OF"
            Case Campo="TG_DTINI"         : Campo="TG_NCARREG"
            Case Campo="TG_DTFIM"         : Campo="TG_DTINI"
            Case Campo="TG_DRIVES"        : Campo="TG_DTFIM"
            Case Campo="TG_OPCAO"         : 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_OF"
                    Case Campo="TG_OF"      : Campo="TG_NCARREG"
                    Case Campo="TG_NCARREG" : Campo="TG_DTINI"
                    Case Campo="TG_DTINI"   : Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"   : Campo="TG_DRIVES"
                    Case Campo="TG_DRIVES"  : Campo="TG_OPCAO"
                      VSDGDRIVE=ControlValue("TG_DRIVES")
                    Case Campo="TG_OPCAO"    : Campo="YES"
                  EndSwitch
          EndIf
   EndSwitch
EndIf

If Campo="TG_OPCAO"
  Then MensagemCheckBoxes()
EndIf        

Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc


Proc Deleta_Arquivos()

  Deleta_Arquivo(VSDGDRIVE+"\\Fatura*.DB")
  Deleta_Arquivo(VSDGDRIVE+"\\Fatura*.MB")
  Deleta_Arquivo(VSDGDRIVE+"\\Fatura*.PX")

  Deleta_Arquivo(VSDGDRIVE+"\\Accarrg*.DB")
  Deleta_Arquivo(VSDGDRIVE+"\\Accarrg*.MB")
  Deleta_Arquivo(VSDGDRIVE+"\\Accarrg*.PX")

  Deleta_Arquivo(VSDGDRIVE+"\\Destinat*.DB")
  Deleta_Arquivo(VSDGDRIVE+"\\Destinat*.MB")
  Deleta_Arquivo(VSDGDRIVE+"\\Destinat*.PX")

  Deleta_Arquivo(VSDGDRIVE+"\\Itens*.DB")
  Deleta_Arquivo(VSDGDRIVE+"\\Itens*.MB")
  Deleta_Arquivo(VSDGDRIVE+"\\Itens*.PX")
  
  Deleta_Arquivo(VSDGDRIVE+"\\Iten_*.DB")
  Deleta_Arquivo(VSDGDRIVE+"\\Iten_*.MB")
  Deleta_Arquivo(VSDGDRIVE+"\\Iten_*.PX")

EndProc

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

sys_Valor()

If Not IsAssigned(SYS_CHAPA_USUARIO)   Then SYS_CHAPA_USUARIO="9999" EndIf
If Not IsAssigned(SYS_NIVEL_USUARIO)   Then SYS_NIVEL_USUARIO="S"    EndIf
If Not IsAssigned(SYS_NOME_USUARIO)    Then SYS_NOME_USUARIO=""      EndIf
If Not IsAssigned(SYS_CODIGO_CLIENTE)  Then SYS_CODIGO_CLIENTE=""    EndIf
If Not IsAssigned(SYS_CLIENTE_CONFEC)  Then SYS_CLIENTE_CONFEC=""    EndIf

VSDGEMPRESA = ""
VSDGNCARREG = ""
VSDGOF      = ""
VSDGDTINI   = BlankDate()
VSDGDTFIM   = Today()-1

DynArray Array_Drives[]
SysInfo Drives To Array_Drives
VSDGDRIVE="C:"

Array TG_OPCAO[1]
TG_OPCAO[1]="Exportar apenas OF's ja faturadas."

Array CheckTG_OPCAO[ArraySize(TG_OPCAO)]
CheckTG_OPCAO[1]=False

While True
  ShowDialog "Exporta‡Æo de OF/Pedidos" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
   @ 05,12   Height 15 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_NOMEMP"  To VSDGNOMEMP

    Label  @ 02,00 "OF" For "TG_OF"
    Accept @ 03,01 Width 9  "A6"  Picture "[&,#][#*#]" Tag "TG_OF" To VSDGOF
    Accept @ 03,09 Width 25 "A20" Picture "!*!" Tag "TG_OF" To VSDGNOMOF

    Label  @ 04,00 "Carregamento" For "TG_NCARREG"
    Accept @ 05,01 Width 9  "A6"  Picture "[&,#][#*#]" Tag "TG_NCARREG"    To VSDGNCARREG
    Accept @ 05,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMNCARREG" To VSDGNOMNCARREG

    Label  @ 06,00 "Per¡odo EmissÆo de" For "TG_DTINI"
    Accept @ 07,03 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 07,16 "at‚" For "TG_DTFIM"
    Accept @ 07,21 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM

    CheckBoxes @ 09,00 Height 1 Width 45 Tag "TG_OPCAO"
    TG_OPCAO[1] to CheckTG_OPCAO[1]

    Label  @ 00,35 "Drives:" For "TG_DRIVES"
    PickDynArrayIndex @ 01,36 Height 4 width 33
     Columns 7
      Array_Drives
       Tag "TG_DRIVES"
        To VSDGDRIVE


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

  EndDialog
  If Not RetVal Then QuitLoop EndIf
  
	Deleta_Arquivos()

  Gerou_Dados=False
  Processa()
  
  If Not Gerou_Dados
     Then Mensagem("NÆo existe(m) ordem de faturamento conforme sele‡Æo !// //Verificar Empresa, No da OF, Data de EmissÆo e No Carregamento !"+
                   "//Pacote nÆo foi gerado !")
     Else Gera_Log()
         If VSDGEMPRESA="" 
            Then CODEMP="0000" 
            Else CODEMP=VSDGEMPRESA
          EndIf
          ARQ_ARJ=VSDGDRIVE+"\\PT_OFS_"+CODEMP+"_"+
                  AlinhM(StrVal(Year(Today())),4) +
                  AlinhM(StrVal(Month(Today())),2)+
                  AlinhM(StrVal(Day(Today())),2)  +
                  ".ARJ"
                  
          Aguarde("Aguarde, Compactando pacote de transa‡„o p/ "+ARQ_ARJ)
          Deleta_Arquivo(ARQ_ARJ)
          Sleep 2000
          
          ARQ_TAB=VSDGDRIVE+"\\Fatura*.* "+VSDGDRIVE+"\\Accarrg*.* "+VSDGDRIVE+"\\Destinat*.* "+VSDGDRIVE+"\\Ite*.* "
          Executa_Programa("c:\\vise\\Varj.exe a "+ARQ_ARJ+" "+ARQ_TAB)
          Sleep 2000
          
          Limpaguarde()
        
          MSG="Pacote de transa‡„o gerado !// //"
          MSG=MSG+"Arquivo em "+ARQ_ARJ+"// //"
          MSG=MSG+"Verifique !"
          Mensagem(MSG)
  EndIf
  
	Deleta_Arquivos()

EndWhile
ClearAll
Release Vars All
Release Procs All
