;** RM_3118B ********************************************************************
;** Relat¢rio de desempenho agendamentos                                       *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 21/12/2018 por Bruno Carvalho
;Ultima Alteracao: 12/12/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes desfazer ask com representante nÆo cadastrado

;C Numero de Clientes
;P Positivados
;R Recontatos
;A Ativados

;*******************************************************************************
;* Rotina p/ Selecionar Registros                                              *
;*******************************************************************************
Proc SelecionaRM_3118B()
ClearAll

TIT1_COLUNA1 = "" 
TIT2_COLUNA1 = "" 
TIT1_COLUNA2 = ""   
TIT2_COLUNA2 = "" 
TIT1_COLUNA3 = "" 
TIT2_COLUNA3 = "" 
TIT1_COLUNA4 = "" 
TIT2_COLUNA4 = "" 
TIT1_COLUNA5 = "" 
TIT2_COLUNA5 = "" 
                 
Release Vars DATA_SEMANA
If FAZ_SEMANA
   Then Array DATA_SEMANA[5]
        For i From 1 To 5 
          DATA_SEMANA[i] = VSDGDTINI+i-1
          Switch
            Case i = 1 : TIT1_COLUNA1 = Format("D13",DATA_SEMANA[i]) 
                         TIT2_COLUNA1 = DiaExt(DATA_SEMANA[i])
            Case i = 2 : TIT1_COLUNA2 = Format("D13",DATA_SEMANA[i])
                         TIT2_COLUNA2 = DiaExt(DATA_SEMANA[i])         
            Case i = 3 : TIT1_COLUNA3 = Format("D13",DATA_SEMANA[i])
                         TIT2_COLUNA3 = DiaExt(DATA_SEMANA[i])            
            Case i = 4 : TIT1_COLUNA4 = Format("D13",DATA_SEMANA[i])
                         TIT2_COLUNA4 = DiaExt(DATA_SEMANA[i])            
            Case i = 5 : TIT1_COLUNA5 = Format("D13",DATA_SEMANA[i])
                         TIT2_COLUNA5 = DiaExt(DATA_SEMANA[i])            
          EndSwitch  
        EndFor
EndIf     

If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"AgencC") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"AgencI") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"AgencL")
   Then ;----  Agendamentos ----------------------------------------------------
        {Ask} TypeIn "\\Sistemas\\Cadastro\\Gerencia" Enter
        Moveto [Codigo da Gerencia     ] Check Example "cger"
        Moveto [Descricao Gerencia     ] Check

       {Ask} TypeIn "\\Sistemas\\Cadastro\\Represen" Enter
        Moveto [Codigo do Representante] Check Example "crep"
        Moveto [Nome Fantasia Represent] Check
        Moveto [Codigo da Gerencia     ]       Example "cger" TypeIn ", ~VSDGGERENCIA.."

       {Ask} TypeIn "\\Sistemas\\Cadastro\\Usuarios" Enter
        Moveto [Chapa                  ]       Example "cuser"
        Moveto [Codigo_Representante   ]       Example "crep" TypeIn ", ~VSDGREPRESEN.."

        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"AgencC" Enter
        Moveto [Ordem_Agendamento      ] Example "nage" 
        Moveto [Codigo_Usuario         ] Example "cuser"
        Moveto [Data_Inicio            ] TypeIn ">=~VSDGDTINI"
        Moveto [Data_Fim               ] TypeIn "<=~VSDGDTFIM"
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"AgencI" Enter Check
        Moveto [Ordem_Agendamento      ] Example "nage"
        Do_It!
        ClearAll
        
        Adiciona_DadosRM_3118B("Agendamentos")
        Tabela2=Cria_Temp(PrivDir())
        Rename "Answer" Tabela2

        ;----  Total de Clientes -----------------------------------------------
        {Ask} typeIn Tabela2 Enter
        Moveto [Ordem_Agendamento      ]       Example "nage"
        Moveto [Codigo                 ] Check Example "Cod"
        Moveto [Codigo do Representante] Check
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"AgencI" Enter 
        Moveto [Ordem_Agendamento      ]       Example "nage"
        Moveto [Codigo                 ]       Example "Cod" 
        Moveto [Status_Da_Semana       ] TypeIn "Not INATIVO"
        Do_It!
        ClearAll
        Adiciona_DadosRM_3118B("Clientes")

        ;----  Total -----------------------------------------------------------
        {Ask} typeIn Tabela2 Enter
        Moveto [Ordem_Agendamento       ] Example "nage"  
        Moveto [Codigo                  ] Example "cod"
        Moveto [Codigo do Representante ] Check
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"AgencL" Enter 
        Moveto [Ordem_Agendamento       ] Check Example "nage"
        Moveto [Codigo                  ] Check Example "cod"
        Moveto [Data                    ] CheckPlus
        Moveto [Status                  ] Check TypeIn "VENDA Or RECONTATO"  
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"AgencI" Enter
        Moveto [Ordem_Agendamento       ] Example "nage"  
        Moveto [Codigo                  ] Example "cod"
        Moveto [Status_Da_Semana        ] TypeIn "Not INATIVO"
        Moveto [Data_Ultima_CompraSemana] Check
        Do_It!
        ClearAll
        Adiciona_DadosRM_3118B("Status")
EndIf

Totaliza()

EndProc

;*******************************************************************************
;* Rotina adicionar dados na Db temporaria                                     *
;*******************************************************************************
Proc Totaliza()

If Not IsEmpty(Tabela)
   Then NR = NRecords("Answer")
        Coedit Tabela
        Scan
          Barra(NR, RecNo())
          Aguarde("Aguarde, totalizando registros "+BARRA_STRING)
          
          If FAZ_SEMANA
             Then Total_Clientes = [Coluna1_C]
                  For ii From 1 To 5  
                    VALOR = 0
                    Moveto Field "Coluna"+Strval(ii)+"_P"
                    VALOR = VALOR + []
                    Moveto Field "Coluna"+Strval(ii)+"_R"
                    VALOR = VALOR + []
                    
                    Total_Clientes = Total_Clientes - VALOR
                    ;If Total_Clientes=0 Then Total_Clientes = BlankNum() EndIf
                    Switch
                      Case ii = 1 : [Coluna2_C]=Total_Clientes
                      Case ii = 2 : [Coluna3_C]=Total_Clientes
                      Case ii = 3 : [Coluna4_C]=Total_Clientes
                      Case ii = 4 : [Coluna5_C]=Total_Clientes
                      Case ii = 5 : [Coluna6_C]=Total_Clientes
                    EndSwitch  
                  EndFor
          EndIf
        EndScan
        Do_It!
        ClearAll   
   Else NR = NRecords("Answer")
        Coedit Tabela
        Scan
          Barra(NR, RecNo())
          Aguarde("Aguarde, totalizando registros "+BARRA_STRING)
          
          For ii From 1 To 5  
            Moveto Field "Coluna"+Strval(ii)+"_C" CtrlBackspace
            Moveto Field "Coluna"+Strval(ii)+"_P" CtrlBackspace
            Moveto Field "Coluna"+Strval(ii)+"_R" CtrlBackspace
            Moveto Field "Coluna"+Strval(ii)+"_A" CtrlBackspace
          EndFor
                
        EndScan
        Do_It!
        ClearAll      
EndIf

EndProc ;Totaliza()

;*******************************************************************************
;* Rotina adicionar dados na Db temporaria                                     *
;*******************************************************************************
Proc Adiciona_DadosRM_3118B(Tipo)

If IsEmpty("Answer")
   Then Return
EndIf   

VSDGEMPRESA = ""
     
View Tabela
Coedit "Answer"
NR = NRecords("Answer")
Scan
  Barra(NR, RecNo())
  Aguarde("Aguarde, Processando "+BARRA_STRING)
  
  Moveto Tabela
  Moveto [Codigo da Empresa]
  Locate VSDGEMPRESA,[Answer->Codigo do Representante]
  If Not Retval
     Then End Down
          [Codigo do Representante] = [Answer->Codigo do Representante]
          [Nome Fantasia Represent] = [Answer->Nome Fantasia Represent]
          [Codigo da Gerencia     ] = [Answer->Codigo da Gerencia     ]
          [Descricao Gerencia     ] = [Answer->Descricao Gerencia     ]
  EndIf
  
  Switch
    Case Tipo="Status" : 
         If FAZ_SEMANA
            Then TOTALIZA   = 0
                 ACHOU_DATA = False
                 For i From 1 To 5
                   Switch 
                     Case i = 1 And [Answer->Data] = DATA_SEMANA[i] : ACHOU_DATA = True
                                                                      Switch
                                                                        Case [Answer->Status]="RECONTATO" : [Coluna1_R] = [Coluna1_R] + 1 
                                                                        Case [Answer->Status]="VENDA"     : [Coluna1_P] = [Coluna1_P] + 1
                                                                             If Not IsBlank([Answer->Data_Ultima_CompraSemana]) And 
                                                                                VSDGDTINI-[Answer->Data_Ultima_CompraSemana]>90
                                                                                Then [Coluna1_A] = [Coluna1_A] + 1
                                                                             EndIf
                                                                      EndSwitch
                     Case i = 2 And [Answer->Data] = DATA_SEMANA[2] : ACHOU_DATA = True
                                                                      Switch
                                                                        Case [Answer->Status]="RECONTATO" : [Coluna2_R] = [Coluna2_R] + 1 
                                                                        Case [Answer->Status]="VENDA"     : [Coluna2_P] = [Coluna2_P] + 1
                                                                             If Not IsBlank([Answer->Data_Ultima_CompraSemana]) And 
                                                                                VSDGDTINI-[Answer->Data_Ultima_CompraSemana]>90
                                                                                Then [Coluna2_A] = [Coluna2_A] + 1
                                                                             EndIf
                                                                      EndSwitch
                     Case i = 3 And [Answer->Data] = DATA_SEMANA[3] : ACHOU_DATA = True
                                                                      Switch
                                                                        Case [Answer->Status]="RECONTATO" : [Coluna3_R] = [Coluna3_R] + 1 
                                                                        Case [Answer->Status]="VENDA"     : [Coluna3_P] = [Coluna3_P] + 1
                                                                             If Not IsBlank([Answer->Data_Ultima_CompraSemana]) And 
                                                                                VSDGDTINI-[Answer->Data_Ultima_CompraSemana]>90
                                                                                Then [Coluna3_A] = [Coluna3_A] + 1
                                                                             EndIf
                                                                      EndSwitch
                     Case i = 4 And [Answer->Data] = DATA_SEMANA[4] : ACHOU_DATA = True
                                                                      Switch
                                                                        Case [Answer->Status]="RECONTATO" : [Coluna4_R] = [Coluna4_R] + 1 
                                                                        Case [Answer->Status]="VENDA"     : [Coluna4_P] = [Coluna4_P] + 1
                                                                             If Not IsBlank([Answer->Data_Ultima_CompraSemana]) And 
                                                                                VSDGDTINI-[Answer->Data_Ultima_CompraSemana]>90
                                                                                Then [Coluna4_A] = [Coluna4_A] + 1
                                                                             EndIf
                                                                      EndSwitch 
                     Case i = 5 And [Answer->Data] = DATA_SEMANA[5] : ACHOU_DATA = True
                                                                      Switch
                                                                        Case [Answer->Status]="RECONTATO" : [Coluna5_R] = [Coluna5_R] + 1 
                                                                        Case [Answer->Status]="VENDA"     : [Coluna5_P] = [Coluna5_P] + 1
                                                                             If Not IsBlank([Answer->Data_Ultima_CompraSemana]) And 
                                                                                VSDGDTINI-[Answer->Data_Ultima_CompraSemana]>90
                                                                                Then [Coluna5_A] = [Coluna5_A] + 1
                                                                             EndIf
                                                                      EndSwitch
                   EndSwitch
                   If ACHOU_DATA
                      Then Switch
                             Case [Answer->Status]="RECONTATO" : [Coluna6_R] = [Coluna6_R] + 1 
                             Case [Answer->Status]="VENDA"     : [Coluna6_P] = [Coluna6_P] + 1
                                   If Not IsBlank([Answer->Data_Ultima_CompraSemana]) And 
                                      VSDGDTINI-[Answer->Data_Ultima_CompraSemana]>90
                                      Then [Coluna6_A] = [Coluna6_A] + 1
                                   EndIf
                           EndSwitch
                           QuitLoop
                   EndIf        
                 EndFor 
            Else Switch
                   Case [Answer->Status]="RECONTATO" : [Coluna6_R] = [Coluna6_R] + 1 
                   Case [Answer->Status]="VENDA"     : [Coluna6_P] = [Coluna6_P] + 1
                        If Not IsBlank([Answer->Data_Ultima_CompraSemana]) And 
                           VSDGDTINI<>BlankDate() And VSDGDTINI-[Answer->Data_Ultima_CompraSemana]>90
                           Then [Coluna6_A] = [Coluna6_A] + 1
                        EndIf
                 EndSwitch
         EnDIf     

    Case Tipo="Clientes":
         If FAZ_SEMANA
            Then [Coluna1_C] = [Coluna1_C]+1
            Else [Coluna6_C] = [Coluna6_C]+1 
         EnDIf
  EndSwitch
  
  Moveto "Answer"
EndScan
Do_It!
ClearAll                         

EndProc

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
Proc ProcessaRM_3118B()
        
Tabela=Cria_Temp(PrivDir())
Copy "\\Base\\Sistemas\\Vendas\\RM_3118B" Tabela
Empty Tabela

;VARIAVEL UTILIZADA NO REPORT CASO ESTEJA UTILIZANDO A VERSAO COM TOTALIZADOR SEM MOSTRAR ZERADOS (op‡Æo 2 do report)
DECIMAL = "5"

;Verificador p/ realizar processo da semana ou processo total do per¡odo informado
If (IsAssigned(VSDGDTINI) And IsAssigned(VSDGDTFIM) And VSDGDTINI<>BlankDate()) And (VSDGDTFIM - VSDGDTINI+1 <=5) And (VSDGCODMODELO="02")
   Then FAZ_SEMANA = True
   Else FAZ_SEMANA = False
EndIf   

Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
While Novo_Dir_Trab()
  SelecionaRM_3118B()
EndWhile

If IsEmpty(Tabela)
   Then MENSAGEM("N„o existem registros a processar")
   Else Impressao_Orientacao="Paisagem"
        CopyReport "\\Base\\Sistemas\\Vendas\\Rm_3118B" "R" Tabela "R"
        IMPRIREL(Tabela,"R")
EndIf
Delete Tabela

EndProc

;-- Chamada principal ----------------------------------------------------------
ProcessaRM_3118B()

Release Vars Tabela
Release Procs SelecionaRM_3118B, SelecionaRM_3118B
