;*******************************************************************************
;* Desenvolvido: 02/05/2018 por Bruno Carvalho                                 *
;*******************************************************************************
Autolib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show"

Mensagem("Pacote 2018.D ! (Abril/2018)// //"+
         "Rotina Caixa/Banco, Contas a Receber, Estoque, Fac‡„o e 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_Cadastro()

;---- Em 26/04/2018 por Bruno Carvalho -----------------------------------------
If IsTable("Destinat") 
   Then Ok=False
        {Modify} {Restructure} {Destinat}
        Moveto [Field Name]
        Locate "Data de Nascimento"
        If Not RetVal
           Then Ok=True
                End Down
                "Data de Nascimento"  Enter "D" Enter
        EndIf
        Do_it! 
        ClearAll 
        
        {Tools} {Copy} {JustFamily} TypeIn "\\Base\\Sistemas\\Cadastro\\Destinat" Enter TypeIn "Destinat" Enter {Replace}
        
        If Ok
           Then {Ask} {DestInfo}
                Moveto [Codigo            ] TypeIn "_Cod"
                Moveto [Data de Nascimento] TypeIn "_DtN"
                {Ask} {Destinat}
                Moveto [Codigo            ] TypeIn "_Cod"
                Moveto [Data de Nascimento] TypeIn "Changeto _DtN"
                Do_it!
                ClearAll
        EndIf
EndIf

EndProc ;Correcao_Tabelas_Cadastro()

;*******************************************************************************
;Rotina Corre‡Ćo de Tabelas                                                    *
;*******************************************************************************
Proc Correcao_Tabelas_ctacor()

;---- Em 19/04/2018 por Anivel Augusto Rodrigues -------------------------------
If Not IsTable("\\Sistemas\\ctacor\\Drc") 
   Then Copy "\\Base\\Sistemas\\ctacor\\Drc" "\\Sistemas\\ctacor\\Drc"
   Else 
        if isempty("Drc")
           then Copy "\\Base\\Sistemas\\ctacor\\Drc" "\\Sistemas\\ctacor\\Drc"
           else {Tools} {Copy} {JustFamily} TypeIn "\\Base\\Sistemas\\ctacor\\Drc" Enter TypeIn "Drc" Enter {Replace}
        endif   
EndIf

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

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


EndProc ;Correcao_Tabelas_ctacor()

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

;---- Em 19/04/2018 por Anivel Augusto Rodrigues -------------------------------

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

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

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

EndProc ;Correcao_Tabelas_CtaRec()

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc AjustarNotas()
private NR

;---- Em 23/04/2018 por Anivel Augusto Rodrigues -------------------------------
NR=NRecords("Notaec")

PARAM_ACRES_DIF_ALIQ_CUST = ""
EMPRESA                   = "****"
ALIQ_ICMS_EMPR            = "" 
UFEMP                     = ""

View "\\sistemas\\cadastro\\empresas"
View "\\sistemas\\vendas\\estados"
View "\\sistemas\\estoque\\p_entra"
View "\\sistemas\\estoque\\itens"
View "NotaEI"
CoEdit "NotaEC"
Scan
  Barra(NR,RecNo())
  Aguarde("Aguarde, ajustando diferencial de aliquota "+BARRA_STRING)

  if [Codigo da Empresa]<>EMPRESA
     then EMPRESA=[Codigo da Empresa]
     
          GetRecord "\\Sistemas\\Estoque\\P_Entra" EMPRESA To REG_ENTRA
          If RetVal
             Then PARAM_ACRES_DIF_ALIQ_CUST = REG_ENTRA["Acresce_DifAliq_Custo"]
          EndIf

          GetRecord "\\Sistemas\\Cadastro\\Empresas" EMPRESA To REG_EMPRESA
          If RetVal
            Then UFEMP  = REG_EMPRESA["UF Empresa"]
          EndIf   

          GetRecord "\\Sistemas\\Vendas\\Estados" UFEMP To reg_estados
          If RetVal
            Then ALIQ_ICMS_EMPR = reg_estados["Aliquota de ICMS"]
          EndIf
  endif   

  GetRecord "\\Sistemas\\Vendas\\Estados" [UF] to reg_uf
  If RetVal
     Then ALIQ_ICMS_ORIGEMDOC=reg_uf["Aliquota de ICMS"]
     else ALIQ_ICMS_ORIGEMDOC=0
  EndIf

  If ALIQ_ICMS_ORIGEMDOC<=0
     then MSG=    "O Estado de ["+[NotaEc->UF]+"], sem % ICMS para//"
          MSG=MSG+"calculo do diferencial de alˇquota.                   // //"
          MSG=MSG+"Verificar no cadastro de Estados a sua alˇquota//"
          MSG=MSG+"interestadual !                                "
          Mensagem(MSG)
  EndIf

  Moveto "NotaEI"
  moveto [Numero do Lancamento]
  locate [NotaEC->NUmero do Lancamento]
  if retval
     then while [Numero do Lancamento]=[NotaEC->NUmero do Lancamento]
     
            Calc_dif_icms()

            skip
            if eot() then quitloop endif
     
          endwhile
  endif
  
  moveto "NotaEC"
  
endScan
Do_It!
ClearAll  
endproc

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc Calc_dif_icms()

;---- Em 23/04/2018 por Anivel Augusto Rodrigues -------------------------------
AUX_CODITEM   = [Codigo do Item      ]
AUX_TPITEM    = [Tipo do Item        ]
AUX_CFO       = [CFO                 ]
Item_CST_ICMS = ""

GetRecord "\\Sistemas\\Estoque\\Itens" AUX_CODITEM To REGItem
If RetVal
 Then Item_CST_ICMS  =REGItem["Tipo Tributacao"]
EndIf                               

VR_ALIQICMS = [Aliquota de ICMS    ]
VR_BCICMS   = [ICMS_BC             ]
vr_icms     = [Valor do ICMS       ]
VL_OPR      = ([Preco Total]-[Valor Desconto Total]) + [Valor do IPI]+[Valor Frete Total]+[Valor Seguro Total]+[Valor OutDesp Total]

;--- ICMS C lculo Diferencial de Aliquota -------------------------------------- 
[INCIDENCIA DIF_ALIQ_ICMS]=""
[VALOR DIF_ALIQ_ICMS     ]=blankNum()
calcdif                   =false

If ( substr(AUX_CFO,1,3)       ="255" And     ; 255.. uso, consumo e imobilizado
     Search(SubStr(Item_CST_ICMS,2,2),"40,41,50,60")=0 )
    or
   ( substr(AUX_CFO,1,3)      ="235"  And     ; aquisi‡Ćo de servi‡o de transporte
    [NotaEC->Tipo de Operacao]="A")           ; Aplica‡Ćo Direta
   Then 
        calcdif=true
        [INCIDENCIA DIF_ALIQ_ICMS]="1"
   Else 
        If AUX_TPITEM="T" And Search(SubStr(Item_CST_ICMS,2,2),"40,41,50,60")=0 and PARAM_ACRES_DIF_ALIQ_CUST = "S"   
          Then 
               calcdif=true          
               [INCIDENCIA DIF_ALIQ_ICMS]="2"
       endif    
endif    

If calcdif
   Then 
        if VR_ALIQICMS>0  ;aliquota do item
           Then 
                ALIQ_ICMS_ORIGEM=VR_ALIQICMS
                bc_icms_difaliq =VR_BCICMS
                vr_icms_origem  =vr_icms
           else
                GetRecord "\\Sistemas\\Vendas\\Estados" [NotaEC->UF] to reg_uf
                If RetVal
                   Then ALIQ_ICMS_ORIGEM=reg_uf["Aliquota de ICMS"]
                   else ALIQ_ICMS_ORIGEM=0
                EndIf
                If ALIQ_ICMS_ORIGEM<=0
                   then MSG=    "O Estado de ["+[NotaEC->UF]+"], sem % ICMS para//"
                        MSG=MSG+"calculo do diferencial de alˇquota.                   // //"
                        MSG=MSG+"Verificar no cadastro de Estados a sua alˇquota//"
                        MSG=MSG+"interestadual !                                "
                        Mensagem(MSG)
                EndIf
           
                bc_icms_difaliq=VL_OPR
                vr_icms_origem = Round((bc_icms_difaliq * ALIQ_ICMS_ORIGEM)/100,2) 
        endif          
        If ALIQ_ICMS_ORIGEM>0 And ALIQ_ICMS_ORIGEM<ALIQ_ICMS_EMPR
           then 
                switch
                  case [NotaEC->Data de Entrada]<DateVal("01.01.2016") Or substr([NotaEC->Tipo do Documento],1,2)="CT":
                    vr_dif_icms=Round((bc_icms_difaliq*(ALIQ_ICMS_EMPR-ALIQ_ICMS_ORIGEM))/100,2)  
                  
                  otherwise:
                    vr_bcicms2 = bc_icms_difaliq-vr_icms_origem
                    vr_bcicmsd = Round(vr_bcicms2 / (1-(ALIQ_ICMS_EMPR/100)),2)
                
                    vr_icms1   = Round((vr_bcicmsd * ALIQ_ICMS_EMPR) /100,2)
                    vr_icms2   = Round((bc_icms_difaliq * ALIQ_ICMS_ORIGEM) /100,2)
                    
                    vr_dif_icms=vr_icms1-vr_icms2
                
                endswitch
                [VALOR DIF_ALIQ_ICMS     ]=vr_dif_icms
                
        EndIf 
EndIf  
   
endproc

;*******************************************************************************
;Rotina Corre‡Ćo de Tabelas                                                    *
;*******************************************************************************
Proc Correcao_Tabelas_Estoque()

;---- Em 23/04/2018 por Anivel Augusto Rodrigues -------------------------------
If IsTable("Notaei") 
   Then 
        {Modify} {Restructure} {Notaei}
        Moveto [Field Name]
        Locate "Lookup_Iten_Cor"
        If Not RetVal
           Then End Down
                "Lookup_Iten_Cor"  Enter "A10" Enter
        EndIf         

        Ok=False
        Home
        Moveto [Field Name]
        Locate "INCIDENCIA DIF_ALIQ_ICMS"
        If Not RetVal
           Then Ok=true
                End Down
                "INCIDENCIA DIF_ALIQ_ICMS"  Enter "A1" Enter
                "VALOR DIF_ALIQ_ICMS"       Enter "$"  Enter
        EndIf
        
        Home
        Moveto [Field Name]
        Locate "ICMS_CredSN_Aliquota"
        If Not RetVal
           Then End Down
                "ICMS_CredSN_Aliquota"  Enter "N" Enter
                "ICMS_CredSN_Valor"     Enter "$" Enter
        EndIf
        Do_it! 
        ClearAll 

        MudaEstruturaDaTabelaPara("Notaei","\\Base\\Sistemas\\Estoque\\Notaei")
        
        {Tools} {Copy} {JustFamily} TypeIn "\\Base\\Sistemas\\Estoque\\Notaei" Enter TypeIn "Notaei" Enter {Replace}
        
        If Ok
           Then AjustarNotas()
        endif   
EndIf      
      
;---- Em 23/04/2018 por Anivel Augusto Rodrigues -------------------------------
If IsTable("Inei") 
   Then 
        {Modify} {Restructure} {Inei}
        Moveto [Field Name]
        Locate "Lookup_Iten_Cor"
        If Not RetVal
           Then End Down
                "Lookup_Iten_Cor"  Enter "A10" Enter
        EndIf         

        Ok=False
        Home
        Moveto [Field Name]
        Locate "INCIDENCIA DIF_ALIQ_ICMS"
        If Not RetVal
           Then Ok=true
                End Down
                "INCIDENCIA DIF_ALIQ_ICMS"  Enter "A1" Enter
                "VALOR DIF_ALIQ_ICMS"       Enter "$"  Enter
        EndIf
        
        Home
        Moveto [Field Name]
        Locate "ICMS_CredSN_Aliquota"
        If Not RetVal
           Then End Down
                "ICMS_CredSN_Aliquota"  Enter "N" Enter
                "ICMS_CredSN_Valor"     Enter "$" Enter
        EndIf
        Do_it! 
        ClearAll 

        MudaEstruturaDaTabelaPara("Inei","\\Base\\Sistemas\\Estoque\\Inei")
        
        {Tools} {Copy} {JustFamily} TypeIn "\\Base\\Sistemas\\Estoque\\Inei" Enter TypeIn "Inei" Enter {Replace}
EndIf 

;---- Em 10/04/2018 por Bruno Carvalho ----------------------------------------- 
If IsTable("Depart") 
   Then {Modify} {Restructure} {Depart}
        Moveto [Field Name]
        Locate "Tributacao de ICMS"
        If RetVal
           Then CtrlBackSpace TypeIn "Depart_TribICMS" Enter
        EndIf   
        
        Moveto [Field Name]
        Locate "Aliquota de ICMS"
        If RetVal
           Then CtrlBackSpace TypeIn "Depart_AliqICMS" Enter
        EndIf
        Do_it! 
        While True
           Switch
             Case MenuChoice()="Trimming" : {Trimming}
             Case MenuChoice()="Delete"   : {Delete}
             OtherWise                    : QuitLoop    
           EndSwitch  
        EndWhile
        ClearAll 
        
        {Tools} {Copy} {JustFamily} TypeIn "\\Base\\Sistemas\\Estoque\\Depart" Enter TypeIn "Depart" Enter {Replace}
EndIf      

EndProc ;Correcao_Tabelas_Estoque()

;*******************************************************************************
;Rotina Corre‡Ćo de Tabelas                                                    *
;*******************************************************************************
Proc Correcao_Tabelas_Faccao()
Private FAZ_PROCESSO,CONT,ARRAY_ORDEM,ARRAY_EMPRESA,uy,yy,DESTINO,EMPRESA

;---- Em 09/04/2018 por Bruno Carvalho -----------------------------------------
If IsTable("P_Desti")
   Then {Ask} {P_Desti}
        Moveto [Utiliza Relatorio] Check
        Do_it!
        ClearAll
        
        FAZ_PROCESSO = False
        View "Answer"
        Scan
          If Type(NumVal([Utiliza Relatorio]))<>"N" And [Utiliza Relatorio]<>"X" 
             Then FAZ_PROCESSO=True
                  QuitLoop
          EndIf
        EndScan
        ClearAll
        
        If FAZ_PROCESSO
           Then DynArray ARRAY_EMPRESA[]
        
                Array ARRAY_ORDEM[5]
                If SYS_CODIGO_CLIENTE="0222"
                   Then ARRAY_ORDEM[1] = "ESTAMPARIA"
                        ARRAY_ORDEM[2] = "BORDARIA"
                        ARRAY_ORDEM[3] = "FACCAO-SA"
                        ARRAY_ORDEM[4] = "LAVANDERIA"
                        ARRAY_ORDEM[5] = "ACABAMENTO"
                   Else ARRAY_ORDEM[1] = "BORDARIA"
                        ARRAY_ORDEM[2] = "ESTAMPARIA"
                        ARRAY_ORDEM[3] = "FACCAO-SA"
                        ARRAY_ORDEM[4] = "INTERNO"
                        ARRAY_ORDEM[5] = "LAVANDERIA"
                EndIf        
                
                If IsTable("P_Desti") And Not IsEmpty("P_DestI") 
                   Then {Ask} {P_Desti}
                        Moveto [Codigo da Empresa] Check 
                        Do_It!
                        ClearAll
                        
                        CONT = 0
                        View "Answer"
                        Scan For [Codigo da Empresa]<>""
                          CONT = CONT + 1
                          ARRAY_EMPRESA[CONT] = [Codigo da Empresa]
                        EndScan
                        ClearAll
                        
                        CoEdit "P_Desti"
                        For uy From 1 To DynArraySize(ARRAY_EMPRESA)
                          CONT    = 0
                          EMPRESA = ARRAY_EMPRESA[uy]   
                          For yy From 1 To ArraySize(ARRAY_ORDEM)
                            DESTINO = ARRAY_ORDEM[yy]
                            Moveto "P_Desti"
                            Moveto [Codigo da Empresa]
                            Locate EMPRESA,DESTINO
                            If RetVal
                               Then If [Utiliza Relatorio] = "S"
                                       Then CONT = CONT + 1
                                            [Utiliza Relatorio] = StrVal(CONT)
                                    EndIf
                            EndIf         
                          EndFor
                          Moveto [Codigo da Empresa]
                          Locate EMPRESA
                          If RetVal
                             Then While [Codigo da Empresa] = EMPRESA
                                    Switch
                                      Case [Utiliza Relatorio]="S" And [Destino]<>"OUTROS" :
                                           CONT = CONT + 1
                                           [Utiliza Relatorio] = StrVal(CONT) 
                                      Case [Utiliza Relatorio]="N" :
                                           [Utiliza Relatorio] = ""
                                    EndSwitch
                                    Skip
                                    If Eot() Then QuitLoop EndIf
                                  EndWhile
                          EndIf   
                          Moveto [Codigo da Empresa]
                          Locate EMPRESA,"OUTROS"
                          If RetVal
                             Then [Utiliza Relatorio] = "X"
                          EndIf        
                        EndFor
                        Do_it!
                        ClearAll
                        
                        {Tools} {Copy} {JustFamily} TypeIn "\\Base\\Sistemas\\Faccao\\P_Desti" Enter TypeIn "P_Desti" Enter {Replace}
                EndIf
        EndIf
EndIf

;---- Em 16/04/2018 por Bruno Carvalho -----------------------------------------
If IsTable("Rfacc") 
   Then {Modify} {Restructure} {Rfacc}
        Moveto [Field Name]
        Locate "Lancamento Requisicao_SA"
        If Not RetVal
           Then End Down
                "Lancamento Requisicao_SA"  Enter "A6" Enter                
        EndIf
        
        Locate "Acerto_Realizado"
        If Not RetVal
           Then Locate "Controle_Programacao"
                If RetVal
                   Then Down Ins
                        Moveto [Field Name]
                        "Acerto_Realizado"  Enter "A1" Enter 
                EndIf
        EndIf 
        Do_it!
        ClearAll
              
        {Tools} {Copy} {JustFamily} TypeIn "\\Base\\Sistemas\\Faccao\\Rfacc" Enter TypeIn "Rfacc" Enter {Replace}
EndIf

EndProc ;Correcao_Tabelas_Faccao()

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

;---- Em 06/04/2018 por Bruno Carvalho -----------------------------------------
Array ARRAY_TABELA[3]
ARRAY_TABELA[1] = "DP_CORC"
ARRAY_TABELA[2] = "DP_CORI"
ARRAY_TABELA[3] = "DP_REL"

For i From 1 To ArraySize(ARRAY_TABELA)
  If Not IsTable("\\Sistemas\\Vendas\\"+ARRAY_TABELA[i]) 
     Then Copy "\\Base\\Sistemas\\Vendas\\"+ARRAY_TABELA[i] "\\Sistemas\\Vendas\\"+ARRAY_TABELA[i]
     Else {Tools} {Copy} {JustFamily} TypeIn "\\Base\\Sistemas\\Vendas\\"+ARRAY_TABELA[i] Enter TypeIn ARRAY_TABELA[i] Enter {Replace}
  EndIf
EndFor
        
EndProc ;Correcao_Tabelas_Vendas()


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

Aguarde("Atualizando Sistema")
Password("t01avivcl")
Password("FechaSys")

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

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

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

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

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

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

;****************** ESTOQUE/FECHAMES ******************
Diretorio="\\Sistemas\\Estoque\\"
Diretorios_Fechames_C(Diretorio)
Array_Diretorios[1]=""
For i From 1 to DynArraySize(Array_Diretorios)
  If i=1  
     Then Diretorio="\\Sistemas\\Estoque"
     Else Diretorio="\\Sistemas\\Estoque\\Fechames\\"+Array_Diretorios[i]
  EndIf   
  Aguardes("Atualizando Pasta: "+Diretorio)
  {Tools} {More} {Directory} TypeIn Diretorio Enter
          
  Correcao_Tabelas_Estoque() 
  LimpAguarde()
EndFor    
LimpAguardes()
          
;****************** ESTOQUE/FECHANO ********************
DiretorioFechAno  ="\\FechAno"
Modulo            ="\\Estoque"
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_Estoque()
   LimpAguarde()
  EndFor  
EndFor    
LimpAguardes()

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

;****************** FACCAO/FECHAMES ******************
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()

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

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

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

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

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

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

Release Vars Diretorio,FAZ_PROCESSO
Release Procs Correcao_Tabelas_Cadastro,Correcao_Tabelas_ctacor,Correcao_Tabelas_CtaRec,
              Correcao_Tabelas_Estoque,Correcao_Tabelas_Faccao,Correcao_Tabelas_Vendas
