;** Rm_0246 ********************************************************************
;* Relacao de ECF's -                                                          *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 14/05/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: 04/08/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao TG_NOMECARTAO
;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: 14/03/2016 por Kamila Gomes        
;Motivo Alteracao: InclusÆo dos Cupons Cancelados
;Ultima Alteracao: 19/04/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes dos Cupons Cancelados
;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: 17/02/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes NFCE                   

;*******************************************************************************
;* Rotina p/ Selecionar Registros                                              *
;*******************************************************************************
Proc SELECIONA()
ClearAll
;****** 1. Selecao *************************************************************
{Ask} {NotaC} Check
Moveto [Codigo da Empresa      ] TypeIn "~VSDGEMPRESA.."
Moveto [Codigo do Documento    ] TypeIn "~VSDGTPDOCTO.."
Moveto [Tipo do Documento      ] TypeIn "CUP.. or NFCE"
Moveto [Tipo de Pagamento      ] TypeIn "V Or P"
Moveto [Data de Emissao        ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
Moveto [Descricao da Destinacao] TypeIn "..VEND.. or ..SERV.. OR ..SAIDA.."
Moveto [Tipo Movimento Estoque ] TypeIn "S"
If VSDGOPRELANALSINT="2"
   then Moveto [Situacao               ] TypeIn "Not C"
Endif   
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

;****** 2. Selecao *************************************************************
{Ask} {Answer}
Moveto [Codigo da Empresa      ] Example "cemp" TypeIn "!"
Moveto [Numero do Documento    ] Example "ndoc" TypeIn "!"
Moveto [Serie do Documento     ] Example "sdoc" TypeIn "!"
{Ask} {NotaV} Check
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Numero do Documento    ] Example "ndoc"
Moveto [Serie do Documento     ] Example "sdoc"
Moveto [Forma de Pagamento     ] TypeIn "~VSDGTPPAGTO.."
Moveto [Nome do Cartao         ] TypeIn "~VSDGNOMECARTAO.."
Do_It!
ClearAll

View "NotaC"
CoEdit "Answer"
Scan

 If VSDGOPRELANALSINT="1"
    then getrecord "\\sistemas\\vendas\\notac" [answer->codigo da empresa],[answer->Numero do Documento],[answer->Serie do Documento] to regnotac  
         if retval
            then if regnotac["Situacao"]="C"
                    then [Observacao             ]="* CANCELADO *"
                         [Valor                  ]=blanknum()
                 endif
         endif
 endif   

 If [Forma de Pagamento     ]="CT" or
    [Forma de Pagamento     ]="CD" Or
    [Forma de Pagamento     ]="CL"
    Then [Observacao]=Format("W30,AL",[Numero do Cartao])+" - "+[Observacao]
 EndIf
 If [Forma de Pagamento     ]="CH" or
    [Forma de Pagamento     ]="CP"
    Then [Observacao]=Format("W20,AL",[Nome_Banco])+" - "+[Numero_Cheque]
 EndIf
EndScan
Do_It!
ClearAll

Tabela=Cria_Temp(PrivDir())
Copy "Answer" Tabela
CopyReport "\\base\\sistemas\\vendas\\NotaV" "3" Tabela "1"
CopyReport "\\base\\sistemas\\vendas\\NotaV" "4" Tabela "2"
ClearAll

;****** 3. Selecao *************************************************************
{Ask} {Answer}
Moveto [Codigo da Empresa      ] Check
Moveto [Serie do Documento     ] Check
Moveto [Numero do Documento    ] TypeIn "calc Min, Calc Max"
Do_It!
ClearAll

{Ask} {Answer}
Moveto [Codigo da Empresa        ] Example "CodE" 
Moveto [Serie do Documento       ] Example "Seri"
Moveto [Min of Numero do Document] Example "Min"
Moveto [Max of Numero do Document] Example "Max"
{Ask} TypeIn Tabela Enter
Moveto [Codigo da Empresa        ] Example "CodE" 
Moveto [Serie do Documento       ] Example "Seri"
Moveto [Numero_conta             ] TypeIn "Changeto " Example "Min"
Moveto [Numero_cheque            ] TypeIn "Changeto " Example "Max"
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_TPPAGTO"       : Campo="TG_TPDOCTO"
            Case Campo="TG_NOMECARTAO"    : Campo="TG_TPPAGTO"
            Case Campo="TG_DTINI"         : Campo="TG_NOMECARTAO"
            Case Campo="TG_HRINI"         : Campo="TG_DTINI"
            Case Campo="TG_DTFIM"         : Campo="TG_HRINI"
            Case Campo="TG_HRFIM"         : Campo="TG_DTFIM"
            Case Campo="TG_OPRELANALSINT" : Campo="TG_HRFIM"
            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_TPPAGTO"
                    Case Campo="TG_TPPAGTO"      : Campo="TG_NOMECARTAO"
                    Case Campo="TG_NOMECARTAO"   : 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="TG_OPRELANALSINT"
                    Case Campo="TG_OPRELANALSINT": 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  =""
VSDGTPPAGTO =""
VSDGOPRELANALSINT=""
VSDGNOMECARTAO=""

While True

  ShowDialog "Relacao de ECF/NFCE - Forma Pagtos II" 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 16 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 "Forma de Pagamento"  For "TG_TPPAGTO"
    Accept @ 05,03 Width 05 "A2"  Picture "!*!" Tag "TG_TPPAGTO"    To VSDGTPPAGTO
    Accept @ 05,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMTPPG"    To VSDGNOMTPPAGTO

    Label  @ 06,00 "Nome do Cart„o"  For "TG_NOMECARTAO"
    Accept @ 07,01 Width 33 "A15"  Picture "!*!" Tag "TG_NOMECARTAO"    To VSDGNOMECARTAO

    Label  @ 08,00 "Per¡odo Referente" For "TG_DTINI"
    Label  @ 09,04 " de" For "TG_DTINI"
    Accept @ 09,09 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 09,22 "as" For "TG_DTINI"
    Accept @ 09,26 Width 08 "A5"  Picture "##:##" Tag "TG_HRINI" To VSDGHRINI
    Label  @ 10,04 "at‚" For "TG_DTFIM"
    Accept @ 10,09 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM
    Label  @ 10,22 "as" For "TG_DTFIM"
    Accept @ 10,26 Width 08 "A5"  Picture "##:##" Tag "TG_HRFIM" To VSDGHRFIM

    Label  @ 00,35 "Op‡„o do Relat¢rio" For "TG_OPRELANALSINT"
    Accept @ 01,39 Width 04 "A1"  Picture "1,2" Tag "TG_OPRELANALSINT" To VSDGOPRELANALSINT
    Accept @ 01,44 Width 25 "A20"  Picture "!*!" Tag "TG_NOMOPRELANASINT" To VSDGNOMOPRELANALSINT

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

  EndDialog
  If Not RetVal Then QuitLoop EndIf
  If Not Valida_ShowDialog("") Then Loop 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 If VSDGOPRELANALSINT="1"
             Then IMPRIREL(Tabela,"1")
             Else IMPRIREL(Tabela,"2")
          EndIf
          Delete Tabela
  EndIf

  Delete "Answer"

EndWhile
ClearAll
Release Vars All
Release Procs All
