;*******************************************************************************
;* Desenvolvido: 02/04/2018 por Kamila Gomes                                   *
;*******************************************************************************
Autolib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show"

Mensagem("Pacote 2018.C ! (Mar‡o/2018)// //"+
         "Rotina Contas a Receber, Estoque, Faccao, Vendas//"+
         "//Tabelas do Sistema e Base ser„o atualizadas !!!//"+
         "// Este processo deve ser executado sem que outros Usuarios//"+
         "// estejam utilizando o Sistema, Ok !!!")

While True
  If Verifica_Usuario()
     Then QuitLoop
     Else ConfGeral("Comunicar os usuarios !// //Deseja Continuar com Atualizacao ?")
          If OK<>"S"
             Then Exit
          EndIf
  EndIf
EndWhile

;*******************************************************************************
;Rotina Corre‡Æo de Tabelas                                                    *
;*******************************************************************************
Proc Correcao_Tabelas_CtaRec()

;* Desenvolvido: 05/03/2018 por Anivel Augusto Rodrigues 

If IsTable("Dupbaixa") 
   Then {Modify} {Restructure} {Dupbaixa}
        Moveto [Field Name]
        Locate "DataEfetivadoBanco"
        If Not RetVal
           Then End Down
                "DataEfetivadoBanco"  Enter "D" Enter
        EndIf
        Do_it! 
        ClearAll 
        
        {Tools} {Copy} {JustFamily} TypeIn "\\Base\\Sistemas\\Ctarec\\Dupbaixa" Enter TypeIn "Dupbaixa" Enter {Replace}
EndIf      
      

EndProc ;Correcao_Tabelas_CtaRec()

;*******************************************************************************
;* Rotina para processar registros                                             *
;*******************************************************************************
Proc Correcao_Tabelas_Estoque()
Private DATA

;* Desenvolvido: 05/03/2018 por Bruno Carvalho  

If Not IsTable("\\Sistemas\\Estoque\\Iten_Eco") 
   Then Copy "\\Base\\Sistemas\\Estoque\\Iten_Eco" "\\Sistemas\\Estoque\\Iten_Eco"
   Else {Tools} {Copy} {JustFamily} TypeIn "\\Base\\Sistemas\\Estoque\\Iten_Eco" Enter TypeIn "Iten_Eco" Enter {Replace}
EndIf

{Tools} {Copy} {JustFamily} TypeIn "\\Base\\Sistemas\\Estoque\\Itens" Enter TypeIn "Itens" Enter {Replace}

;* Desenvolvido: 09/03/2018 por Bruno Carvalho
If IsTable("RE_0010E") 
   Then {Modify} {Restructure} {RE_0010E}
        Moveto [Field Name]
        Locate "Numero"
        If RetVal
           Then If [Field Type]<>"A3"
                   Then Enter CtrlBackSpace "A3"  Enter 
                EndIf   
        EndIf
        Do_it! 
        ClearAll 
        
        {Tools} {Copy} {JustFamily} TypeIn "\\Base\\Sistemas\\Estoque\\RE_0010E" Enter TypeIn "RE_0010E" Enter {Replace}
EndIf 

;* Desenvolvido: 09/03/2018 por Bruno Carvalho  
If IsTable("Rqtrf") 
   Then {Modify} {Restructure} {Rqtrf}
        Ok=False
        Moveto [Field Name]
        Locate "Tipo de Movimento"
        If RetVal
           Then If [Field Type]<>"A4"
                   Then Ok=True
                        Enter CtrlBackSpace "A4"  Enter 
                EndIf   
        EndIf
        ok2=False
        Moveto [Field Name]
        Locate "Descricao Tipo Movimento"
        If Not RetVal
           Then ok2=True
                Locate "Tipo de Movimento"
                If RetVal
                   Then Down Ins TypeIn "Descricao Tipo Movimento" Enter "A15"        
                EndIf   
        EndIf
        Do_it! 
        ClearAll 
        
        {Tools} {Copy} {JustFamily} TypeIn "\\Base\\Sistemas\\Estoque\\Rqtrf" Enter TypeIn "Rqtrf" Enter {Replace}
        
        If Ok Or Ok2 
           Then Coedit "Rqtrf"
                Scan
                  Barra(NRecords("Rqtrf"), RecNo())
                  Aguarde("Aguarde, ajustando tipo de movimento RQTRF "+BARRA_STRING)
                  If Ok
                     Then Switch
                            Case [Tipo de Movimento]="T" : [Tipo de Movimento]="TRA"
                            Case [Tipo de Movimento]="R" : [Tipo de Movimento]="REQ"
                            Case [Tipo de Movimento]="A" : [Tipo de Movimento]="AVA" 
                            Case [Tipo de Movimento]="D" : [Tipo de Movimento]="DEV" 
                            Case [Tipo de Movimento]="N" : [Tipo de Movimento]="NOT" 
                            Case [Tipo de Movimento]="X" : [Tipo de Movimento]="CX" 
                            Case [Tipo de Movimento]="P" : [Tipo de Movimento]="PROC"
                            Case [Tipo de Movimento]="E" : [Tipo de Movimento]="ETQ"
                          EndSwitch
                  EndIf                 
  
                  If Ok2
                     Then Switch
                            Case [Tipo de Movimento]="TRA"  : [Descricao Tipo Movimento]="TRANSFERENCIA"
                            Case [Tipo de Movimento]="REQ"  : [Descricao Tipo Movimento]="REQUISICAO"
                            Case [Tipo de Movimento]="AVA"  : [Descricao Tipo Movimento]="AVARIA" 
                            Case [Tipo de Movimento]="DEV"  : [Descricao Tipo Movimento]="DEVOLUCAO" 
                            Case [Tipo de Movimento]="NOT"  : [Descricao Tipo Movimento]="NOTIFICACAO" 
                            Case [Tipo de Movimento]="CX"   : [Descricao Tipo Movimento]="CAIXA" 
                            Case [Tipo de Movimento]="PROC" : [Descricao Tipo Movimento]="PROCURA"
                            Case [Tipo de Movimento]="ETQ"  : [Descricao Tipo Movimento]="ETIQUETA"
                          EndSwitch 
                  EndIf
                EndScan
                Do_it!
                ClearAll
                 
        EndIf   
EndIf   
        
EndProc ;Correcao_Tabelas_Estoque()

;*******************************************************************************
;Rotina Corre‡Æo de Tabelas                                                    *
;*******************************************************************************
Proc Correcao_Tabelas_Faccao()
private ui

;* Desenvolvido: 13/03/2018 por Bruno Carvalho 
Array TABELA[3]
TABELA[1] = "Rfacri"
TABELA[2] = "Rfacrig"
TABELA[3] = "Rfacrir"

For ui From 1 To ArraySize(TABELA)
  If IsTable(TABELA[ui]) 
     Then Ok = False
          {Modify} {Restructure} TypeIn TABELA[ui] Enter
          Moveto [Field Name]
          Locate "Custo Unitario"
          If Not RetVal
             Then End Down
                  "Custo Unitario" Enter "$" Enter
          EndIf
          Moveto [Field Name]
          Locate "Preco Unitario"
          If RetVal
             Then Ok = True
          EndIf   
          Do_It!
          ClearAll
          
          {Tools} {Copy} {JustFamily} TypeIn "\\Base\\Sistemas\\Faccao\\"+TABELA[ui] Enter TypeIn TABELA[ui] Enter {Replace}
          
          If Ok
             Then {Ask} TypeIn TABELA[ui] Enter
                  Moveto [Preco Unitario] TypeIn "_Pr"
                  Moveto [Custo Unitario] TypeIn "Changeto _Pr"
                  Do_It!
                  ClearAll 
          EndIf         
  EndIf
EndFor

EndProc ;Correcao_Tabelas_Faccao()

;*******************************************************************************
;Rotina Corre‡Æo de Tabelas                                                    *
;*******************************************************************************
Proc Correcao_Tabelas_Vendas()

;* Desenvolvido: 08/03/2018 por Bruno Carvalho 
If Not IsTable("\\Sistemas\\Vendas\\CONFCFC") 
   Then Copy "\\Base\\Sistemas\\Vendas\\CONFCFC" "\\Sistemas\\Vendas\\CONFCFC"
EndIf

If Not IsTable("\\Sistemas\\Vendas\\CONFCFI") 
   Then Copy "\\Base\\Sistemas\\Vendas\\CONFCFI" "\\Sistemas\\Vendas\\CONFCFI"
EndIf  

;* Desenvolvido: 14/03/2018 por Anivel Augusto Rodrigues 
If IsTable("P_fatura") 
   Then {Modify} {Restructure} {P_fatura}
        Moveto [Field Name]
        Locate "VersaoDaNFe"
        If Not RetVal
           Then End Down
                "VersaoDaNFe"  Enter "A4" Enter
        EndIf
        Do_it! 
        ClearAll 
        
        {Tools} {Copy} {JustFamily} TypeIn "\\Base\\Sistemas\\Vendas\\P_fatura" Enter TypeIn "P_fatura" Enter {Replace}
EndIf  

;* Desenvolvido: 23/03/2018 por Bruno Carvalho
If Not IsTable("\\Sistemas\\Vendas\\DP_EXEC") 
   Then Copy "\\Base\\Sistemas\\Vendas\\DP_EXEC" "\\Sistemas\\Vendas\\DP_EXEC"
   Else {Tools} {Copy} {JustFamily} TypeIn "\\Base\\Sistemas\\Vendas\\DP_EXEC" Enter TypeIn "DP_EXEC" Enter {Replace}
EndIf

If Not IsTable("\\Sistemas\\Vendas\\DP_REL") 
   Then Copy "\\Base\\Sistemas\\Vendas\\DP_REL" "\\Sistemas\\Vendas\\DP_REL"
   Else {Tools} {Copy} {JustFamily} TypeIn "\\Base\\Sistemas\\Vendas\\DP_REL" Enter TypeIn "DP_REL" Enter {Replace}
EndIf 

EndProc ;Correcao_Tabelas_Vendas()

;*******************************************************************************
;Rotina Principal                                                              *
;*******************************************************************************
Aguarde("Atualizando Sistema")
Password("t01avivcl")
Password("FechaSys")

View "SysTable"
SYS_CODIGO_CLIENTE = [Codigo do Cliente   ]
ClearAll

;-------------------------------------------------------------------------------

;****************** Estoque *******************
Diretorio="\\Sistemas\\Estoque\\"
Aguarde("Atualizando Pasta: "+Diretorio)
{Tools} {More} {Directory} TypeIn Diretorio Enter
Correcao_Tabelas_Estoque()

;-------------------------------------------------------------------------------

;****************** CTAREC/FECHAMES ******************
Diretorio="\\Sistemas\\Ctarec\\"
Diretorios_Fechames_C(Diretorio)
Array_Diretorios[1]=""
For i From 1 to DynArraySize(Array_Diretorios)
  If i=1  
     Then Diretorio="\\Sistemas\\Ctarec"
     Else Diretorio="\\Sistemas\\Ctarec\\Fechames\\"+Array_Diretorios[i]
  EndIf   
  Aguardes("Atualizando Pasta: "+Diretorio)
  {Tools} {More} {Directory} TypeIn Diretorio Enter
          
  Correcao_Tabelas_CtaRec() 
  LimpAguarde()
EndFor    
LimpAguardes()
          
;****************** CTAREC/FECHANO ********************
DiretorioFechAno  ="\\FechAno"
Modulo            ="\\Ctarec"
Diretorios_FechAno(DiretorioFechAno)
For i From 1 to DynArraySize(Array_Diretorios)
  LimpAguardes()
  DiretorioFA=DiretorioFechAno+"\\"+Array_Diretorios[i]+Modulo
  If DirExists(DiretorioFA)=0 Then Loop EndIf
          
  Lista_Diretorio(DiretorioFA)
  For j From 1 to DynArraySize(Array_Lista_Diretorios)
    Diretorio=DiretorioFA+"\\"+Array_Lista_Diretorios[j]+"\\"
    Aguardes("Atualizando Pasta: "+Diretorio)
    {Tools} {More} {Directory} TypeIn Diretorio Enter
          
   Correcao_Tabelas_CtaRec()
   LimpAguarde()
  EndFor  
EndFor    
LimpAguardes()

;-------------------------------------------------------------------------------

;****************** VENDAS *******************
Diretorio="\\Sistemas\\Vendas\\"
Aguarde("Atualizando Pasta: "+Diretorio)
{Tools} {More} {Directory} TypeIn Diretorio Enter
Correcao_Tabelas_Vendas()

;-------------------------------------------------------------------------------
;****************** FACCAO/FECHAMES ******************
APAGAR_FATICOM_BASE = True
Diretorio="\\Sistemas\\Faccao\\"
Diretorios_Fechames_C(Diretorio)
Array_Diretorios[1]=""
For i From 1 to DynArraySize(Array_Diretorios)
  If i=1  
     Then Diretorio="\\Sistemas\\Faccao"
     Else Diretorio="\\Sistemas\\Faccao\\Fechames\\"+Array_Diretorios[i]
  EndIf   
  Aguardes("Atualizando Pasta: "+Diretorio)
  {Tools} {More} {Directory} TypeIn Diretorio Enter
          
  Correcao_Tabelas_Faccao() 
  LimpAguarde()
EndFor    
LimpAguardes()
          
;****************** FACCAO/FECHANO ********************
DiretorioFechAno  ="\\FechAno"
Modulo            ="\\Faccao"
Diretorios_FechAno(DiretorioFechAno)
For i From 1 to DynArraySize(Array_Diretorios)
  LimpAguardes()
  DiretorioFA=DiretorioFechAno+"\\"+Array_Diretorios[i]+Modulo
  If DirExists(DiretorioFA)=0 Then Loop EndIf
          
  Lista_Diretorio(DiretorioFA)
  For j From 1 to DynArraySize(Array_Lista_Diretorios)
    Diretorio=DiretorioFA+"\\"+Array_Lista_Diretorios[j]+"\\"
    Aguardes("Atualizando Pasta: "+Diretorio)
    {Tools} {More} {Directory} TypeIn Diretorio Enter
          
   Correcao_Tabelas_Faccao()
   LimpAguarde()
  EndFor  
EndFor    
LimpAguardes()

;-------------------------------------------------------------------------------

{Tools} {More} {Directory} {\\Sistemas\\Cadastro\\}
UnPassword("t01avivcl")
UnPassword("FechaSys")
LimpAguarde()
FastMsg("Fim da atualiza‡Æo !")

Release Vars Diretorio
Release Procs Correcao_Tabelas_CtaRec, Correcao_Tabelas_Estoque, Correcao_Tabelas_Vendas, 
              Correcao_Tabelas_Faccao
