;** RM_0240C *******************************************************************
;* Resumo das Vendas Vista/Prazo por Estado                                    *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 01/05/2002 por Anivel Augusto Rodrigues
;Ultima Alteracao: 12/05/2006 por Anivel Augusto Rodrigues
;Motivo Alteracao: FechaMes
;Ultima Alteracao: 13/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 09/03/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes agrupado RM_0240    
;Ultima Alteracao: 09/03/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes substituido RM_0255    

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

If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC")
   Then 
         {Ask} TypeIn "\\Sistemas\\Cadastro\\Represen" Enter
         Moveto [Codigo do Representante] Example "crep"
         If VSDGGERENCIA<>""
            Then Moveto [Codigo da Gerencia     ] TypeIn "~VSDGGERENCIA"
            Else Moveto [Codigo da Gerencia     ] TypeIn "~VSDGGERENCIA.."
         EndIf
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter Check
        Moveto [Codigo da Empresa      ] TypeIn "~VSDGEMPRESA.."
        Moveto [Tipo de Pagamento      ] TypeIn "V Or P"
        Moveto [Data de Emissao        ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
        Moveto [Codigo do Representante] Example "crep" TypeIn ", ~VSDGREPRESEN.."
        Moveto [Descricao da Destinacao] TypeIn "..VEND.. or ..SERV.. OR ..SAIDA.."
        Moveto [Tipo Movimento Estoque ] TypeIn "S"
        Moveto [Situacao               ] TypeIn "NOT C"
        Do_It!
        ClearAll
EndIf
EndProc

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

{Ask} {Estados}
Moveto [UF       ] Example "est"
Moveto [Descricao] Check
{Ask} TypeIn Tabela Enter Check
Moveto [UF       ] Example "est" TypeIn "!"
Do_It!
ClearAll

View Tabela2
Edit "Answer"
Scan
   Moveto Tabela2
   Moveto [Codigo da Empresa]
   Locate [Answer->Codigo da Empresa],"0",[Answer->UF],""
   If Not RetVal
      Then End Down
           [Codigo da Empresa       ]=[Answer->Codigo da Empresa       ]
           [Tipo Registro           ]="0"
           [Forma de Pagamento      ]=[Answer->UF                      ]
           [Descricao Tipo Pagamento]=[Answer->UF]+" - "+[Answer->Descricao]
           [Nome Fantasia Empresa   ]=[Answer->Nome Fantasia Empresa   ]
   EndIf
   If [Answer->Tipo de Pagamento]="V"
      Then [Valor a Vista]=[Valor a Vista]+[Answer->Valor Nota Fiscal]
           [Valor Total  ]=[Valor Total  ]+[Answer->Valor Nota Fiscal]
      Else [Valor a Prazo]=[Valor a Prazo]+[Answer->Valor Nota Fiscal]
           [Valor Total  ]=[Valor Total  ]+[Answer->Valor Nota Fiscal]
   EndIf
   Moveto "Answer"
EndScan
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
Proc RM_0240C_Principal()

AGUARDE("Aguarde, gerando o relatĒrio")

Tabela=Cria_Temp(PrivDir())

Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
While Novo_Dir_Trab()
  If IsTable("Answer")     Then Delete "Answer" EndIf
  RM_0240C_Seleciona()
  If Not IsTable("Answer") Then Loop EndIf
  If IsTable(Tabela)
     Then Add "Answer" Tabela
     Else Rename "Answer" Tabela
  EndIf
EndWhile

Tabela2=Cria_Temp(PrivDir())
Empty "\\Base\\Sistemas\\Vendas\\Rm_0243"
Copy "\\Base\\Sistemas\\Vendas\\Rm_0243"  Tabela2

If not IsEmpty(Tabela)
   Then 
        RM_0240C_Processa()

        IMPRIREL(Tabela2,"1")

   Else MENSAGEM("No existem registros a processar")
EndIf

Delete Tabela
Delete Tabela2
EndProc

;-- Chamada principal ----------------------------------------------------------
RM_0240C_Principal()

Release Vars Tabela, Tabela2
Release Procs RM_0240C_Principal, RM_0240C_Seleciona, RM_0240C_Processa 

