;** Rm_0243 ********************************************************************
;* Resumo das Operacoes ECF's - Formas Pagto                                   *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 27/04/2002 por Anivel Augusto Rodrigues
;Ultima Alteracao: 08/09/2004 por Jos‚ Lu¡s Ameno da Silva
;Motivo Alteracao: PrivDir
;Ultima Alteracao: 19/10/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Cupom
;Ultima Alteracao: 17/08/2012 por Bruno Carvalho e Kamila
;Motivo Alteracao: Ajustado report e ASK p/ quebrar por tipo de documento
;Ultima Alteracao: 06/09/2012 por Kamila Gomes        
;Motivo Alteracao: Ajustado filtro por tipo de documento
;Ultima Alteracao: 20/12/2012 por Kamila Gomes        
;Motivo Alteracao: Ajustado Valor Vendas Liquidas
;Ultima Alteracao: 13/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 11/07/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes CL=CartÆo Parcelado
;Ultima Alteracao: 05/08/2017 por Bruno Carvalho
;Motivo Alteracao: Substituido [Valor IR] -> [Valor DebitoCredito]
;Ultima Alteracao: 14/08/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes demonstrar apenas formas de pagamento, outros dados j  estÆo no rm_0249 conferencia Reduzao Z
;Ultima Alteracao: 25/01/2018 por Kamila Gomes
;Motivo Alteracao: Ajustes checkplus forma de pagamento

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

;****** 1. Selecao *************************************************************
{Ask} {NotaC}
Moveto [Codigo da Empresa       ] Example "cemp" Check TypeIn "!, ~VSDGEMPRESA.."
Moveto [Numero do Documento     ] Example "ndoc" Check TypeIn "!"
Moveto [Serie do Documento      ] Example "sdoc" Check TypeIn "!, ~VSDGTPDOCTO.."
Moveto [Tipo do Documento       ] TypeIn "CUP.."
Moveto [Nome Fantasia Empresa   ] Check
Moveto [Tipo de Pagamento       ] Check TypeIn "V Or P"
Moveto [Data de Emissao         ] Check TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
Moveto [Hora de Saida           ] Check
Moveto [Valor Desconto          ] Check
Moveto [Valor Mercadoria Liquido] Check
Moveto [Valor Nota Fiscal       ] Check
Moveto [Valor DebitoCredito     ] Check
Moveto [Descricao da Destinacao ] TypeIn "..VEND.. or ..SERV.. OR ..SAIDA.."
Moveto [Tipo Movimento Estoque  ] TypeIn "S"
Moveto [Situacao                ] Check
{Ask} {NotaV}
Moveto [Codigo da Empresa       ] Example "cemp"
Moveto [Numero do Documento     ] Example "ndoc"
Moveto [Serie do Documento      ] Example "sdoc"
Moveto [Forma de Pagamento      ] CheckPlus
Moveto [Nome do Cartao          ] CheckPlus
Moveto [Valor                   ] CheckPlus
Moveto [Data                    ] CheckPlus
Do_It!
ClearAll

For i From 1 To 2
  {Ask} {Answer} TypeIn "Fast Delete"
  If i=1
     Then Moveto [Data de Emissao        ] TypeIn "~VSDGDTINI"
          Moveto [Hora de Saida          ] TypeIn "<~VSDGHRINI"
     Else Moveto [Data de Emissao        ] TypeIn "~VSDGDTFIM"
          Moveto [Hora de Saida          ] TypeIn ">~VSDGHRFIM"
  EndIf
  Do_It!
  ClearAll
EndFor

If IsEmpty("Answer")
   Then Return
EndIf

If SYS_CODIGO_CLIENTE="0078"
   Then {Ask} {\\Sistemas\\Posto\\FPgtoECF}
        Moveto [Tipo do Pagamento      ] Example "fpg"
        Moveto [Tipo de Pagamento      ] Example "tp"
        {Ask} {Answer} ;TypeIn "Fast"
        Moveto [Forma de Pagamento     ] Example "fpg"
        Moveto [Tipo de Pagamento      ] TypeIn "Changeto " Example "tp"
        Do_It!
        ClearAll
EndIf

{Ask} {\\Sistemas\\Cadastro\\TpPagto}
Moveto [Tipo do Pagamento       ] Example "fpg"
Moveto [Descricao Tipo Pagamento] Check
{Ask} {Answer} CheckPlus
Moveto [Forma de Pagamento      ] Example "fpg" TypeIn "!"
Do_It!
ClearAll

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

View Tabela
Edit "Answer"
Scan For [Situacao]<>"C"

   Moveto Tabela
   Moveto [Codigo da Empresa]
   Locate [Answer->Codigo da Empresa],[Answer->Serie do Documento],"0",[Answer->Forma de Pagamento],[Answer->Nome do Cartao]
   If Not RetVal                        
      Then End Down
           [Codigo da Empresa       ]=[Answer->Codigo da Empresa       ]
           [Serie do Documento      ]=[Answer->Serie do Documento      ]
           [Tipo Registro           ]="0"
           [Forma de Pagamento      ]=[Answer->Forma de Pagamento      ]
           [Nome do Cartao          ]=[Answer->Nome do Cartao          ]
           [Descricao Tipo Pagamento]=[Answer->Descricao Tipo Pagamento]+"/"+[Nome do Cartao]
           [Nome Fantasia Empresa   ]=[Answer->Nome Fantasia Empresa   ]
   EndIf
   If [Answer->Tipo de Pagamento]="V"
      Then [Valor a Vista]=[Valor a Vista]+[Answer->Valor]
           [Valor Total  ]=[Valor Total  ]+[Answer->Valor]
      Else If [Answer->Data]=[Answer->Data de Emissao]
              Then If ([Answer->Forma de Pagamento]="NO" Or
                       [Answer->Forma de Pagamento]="CO" Or
                       [Answer->Forma de Pagamento]="CT" Or
                       [Answer->Forma de Pagamento]="CL")
                      Then [Valor a Prazo]=[Valor a Prazo]+[Answer->Valor]
                           [Valor Total  ]=[Valor Total  ]+[Answer->Valor]
                      Else [Valor a Vista]=[Valor a Vista]+[Answer->Valor]
                           [Valor Total  ]=[Valor Total  ]+[Answer->Valor]
                    EndIf
               Else [Valor a Prazo]=[Valor a Prazo]+[Answer->Valor]
                    [Valor Total  ]=[Valor Total  ]+[Answer->Valor]
           EndIf
           
   EndIf
   Moveto "Answer"
EndScan
Do_It!
ClearAll 

EndProc

;*******************************************************************************
;* 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"] =  27:
          Temp=False
          Switch
            Case Campo="TG_EMPRESA"       : Campo="NO" 
            Case Campo="TG_TPDOCTO"       : Campo="TG_EMPRESA"
            Case Campo="TG_DTINI"         : Campo="TG_TPDOCTO"
            Case Campo="TG_HRINI"         : Campo="TG_DTINI"
            Case Campo="TG_DTFIM"         : Campo="TG_HRINI"
            Case Campo="TG_HRFIM"         : Campo="TG_DTFIM"
            Case Campo="YES" Or Campo="NO": Campo="TG_EMPRESA"
          EndSwitch
     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"] = 13:
          Temp=False
          If Checa_TAG()
             Then Switch
                    Case Campo="TG_EMPRESA": Campo="TG_TPDOCTO"
                    Case Campo="TG_TPDOCTO": Campo="TG_DTINI"
                    Case Campo="TG_DTINI"  : Campo="TG_HRINI"
                    Case Campo="TG_HRINI"  : Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"  : Campo="TG_HRFIM"
                    Case Campo="TG_HRFIM"  : Campo="YES"
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf

Switch
  Case Campo="TG_EMPRESA":
     MSG_CAMPO="Informe uma Empresa"
Endswitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

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

VSDGEMPRESA=""
VSDGTPDOCTO=""
VSDGDTINI  =BlankDate()
VSDGDTFIM  =BlankDate()
VSDGHRINI  =""
VSDGHRFIM  =""

While True

  ShowDialog "Resumo das opera‡”es ECF's - Formas Pagto" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
   @ 05,12   Height 12 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_NOMEMPRESA" To VSDGNOMEMP
    
    Label  @ 02,00 "Tipo do Documento"  For "TG_TPDOCTO"
    Accept @ 03,01 Width 07 "A4"  Picture "!*!" Tag "TG_TPDOCTO" To VSDGTPDOCTO
    Accept @ 03,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMTPDOCTO"  To VSDGNOMTPDOCTO
    
    Label  @ 04,00 "Per¡odo Referente" For "TG_DTINI"
    Label  @ 05,04 " de" For "TG_DTINI"
    Accept @ 05,09 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 05,22 "as" For "TG_DTINI"
    Accept @ 05,26 Width 08 "A5"  Picture "##:##" Tag "TG_HRINI" To VSDGHRINI
    Label  @ 06,04 "at‚" For "TG_DTFIM"
    Accept @ 06,09 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM
    Label  @ 06,22 "as" For "TG_DTFIM"
    Accept @ 06,26 Width 08 "A5"  Picture "##:##" Tag "TG_HRFIM" To VSDGHRFIM

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

  EndDialog
  If Not RetVal Then QuitLoop EndIf

  If IsBlank(VSDGEMPRESA)
     Then Mensagem("Empresa Invalida !")
          Loop
  EndIf
  If IsBlank(VSDGDTINI)  Or IsBlank(VSDGDTFIM)
     Then Mensagem("Data Invalida !")
          Loop
  EndIf
  If IsBlank(VSDGHRINI)  Or IsBlank(VSDGHRFIM)
     Then Mensagem("Hora Invalida !")
          Loop
  EndIf

  DISPOSITIVO()
  If OK=""  Then Loop EndIf

  AGUARDE("Aguarde, gerando o relat¢rio")
  SELECIONA()

  If IsEmpty("Answer")
     Then MENSAGEM("N„o existem registros a processar")
     Else IMPRIREL(Tabela,"R")
          Delete Tabela
  EndIf

  Delete "Answer"

EndWhile
ClearAll
Release Vars All
Release Procs All

