;** Rm_Termo *******************************************************************
;*  Imprime o Termo de Abertura/Fechameto do Inventario                        *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 31/05/2001 por Anivel Augusto Rodrigues
;Ultima Alteracao: 06/01/2006 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes
;Alterado em     : 29/06/2006 por Antonio Marcelo Alves
;Motivo Alteracao: Inclusao ImpriArq()
;Ultima Alteracao: 13/08/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Deleta_Arquivo
;Ultima Alteracao: 13/01/2014 por Kamila Gomes
;Motivo Alteracao: Ajustes Data do periodo
;Ultima Alteracao: 18/09/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 28/09/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog
;Ultima Alteracao: 20/08/2018 por Bruno Carvalho   
;Motivo Alteracao: Ajustes ao buscar cgc da empresa, p/ buscar diretamente no cadastro da pr¢pria empresa -> TERMO()        

;*******************************************************************************
;* Rotina p/ pricipal de impressao de termos                                   *
;*******************************************************************************
Proc IMPRIME()

Print File ARQIMP ASP1+CI_15CPP+ASP2+"\n"
FOLHA=FOLHA+1

While True
  If OPCAOPAG<>"Todas"
     Then If FOLHA<OPCAOPAGINI Or
             FOLHA>OPCAOPAGFIM
             Then QuitLoop
          EndIf
  EndIf

   If (VSDGIMPRI = "1")
      Then Salta_Linha(08)
           Print File ARQIMP ASP1+Spaces(96) + "FOLHA: 0001" +ASP2+"\n"
           Salta_Linha(02)

           Print File ARQIMP ASP1+Spaces(32) + "                        T E R M O   D E   A B E R T U R A                                " +ASP2+"\n"
           Print File ARQIMP ASP1+Spaces(32) + "                        ---------   ---   ---------------                    " +ASP2+"\n"
           Salta_Linha(02)
           Termo()
   EndIf
   If (VSDGIMPRI = "2")
      Then Salta_Linha(08)
           Print File ARQIMP ASP1+Spaces(96) + "FOLHA: "+Format("W7,Al",VSDGPAGFIM)+ASP2+"\n"
           Salta_Linha(02)

           Print File ARQIMP ASP1+Spaces(32) + "                    T E R M O   D E   E N C E R R A M E N T O                            " +ASP2+"\n"
           Print File ARQIMP ASP1+Spaces(32) + "                    ---------   ---   -----------------------                " +ASP2+"\n"
           Salta_Linha(02)
           Termo()
   EndIf
   QuitLoop
 EndWhile
 Print File ARQIMP ASP1+CI_10CPP+ASP2+"\n"
 Print File ARQIMP ASP1+CI_6LPP+ASP2+"\n"

EndProc  ; (Imprime)

;*******************************************************************************
;* Rotina p/ impressao do termo                                                *
;*******************************************************************************
Proc TERMO()

    View "\\Sistemas\\Cadastro\\Empresas"
    View "\\Sistemas\\Cadastro\\CompEmp"
    View "\\Sistemas\\Icms_Ipi\\Respdoct"
    View "\\Sistemas\\Icms_Ipi\\ReceitaE"

    Moveto "\\Sistemas\\Cadastro\\Empresas"
    Moveto [Codigo da Empresa]
    Locate VSDGEMPRESA
    If RetVal
       Then RAZSOC  =[Razao Social Empresa]
            ENDERECO=[Endereco Empresa    ]
            BAIRRO  =[Bairro Empresa      ]
            CGC     =[Cgc Empresa         ]
            IE      =[IE Empresa          ]
            CIDADE  =[Cidade Empresa      ]
    EndIf

    Moveto "\\Sistemas\\Cadastro\\CompEmp"
    Moveto [Codigo da Empresa]
    Locate VSDGEMPRESA
    If RetVal
       Then JUCEMG   =[Jucemg             ]
            ARQUIVADO=[Arquivado          ]
            REPRLEGAL=[Representante Legal]
    EndIf
   
    ;Buscando o CGC do cadastro da empresa
    GetRecord "\\Sistemas\\Cadastro\\Empresas" VSDGEMPRESA To REG_EMPRESA
    If RetVal
       Then CGC = REG_EMPRESA["CGC Empresa"]
       Else CGC = ""
    EndIf
    
    ;Moveto "\\Sistemas\\Icms_Ipi\\ReceitaE"
    ;Moveto [Codigo da Empresa]
    ;Locate VSDGEMPRESA
    ;If RetVal
    ;   Then CGC=[CGC]
    ;EndIf

    Moveto "\\Sistemas\\Icms_Ipi\\Respdoct"
    Moveto [Codigo da Empresa]
    Locate VSDGEMPRESA

    If RetVal
       Then NOMRESP=[Nome Do Responsavel]
            CRC    =[CPF/CRC            ]
            CARGO  =[Cargo da Empresa   ]
    EndIf

  While True
   If OPCAOPAG<>"Todas"
      Then If FOLHA<OPCAOPAGINI Or
              FOLHA>OPCAOPAGFIM
              Then QuitLoop
           EndIf
   EndIf

   If (VSDGIMPRI = "1")         ;;*** Termo de Abertura ***
      Then ESCEXT(VSDGPAGINI)

           Print File ARQIMP ASP1+Spaces(37) + "CONTEM  ESTE LIVRO  " + Format("W6,Al",VSDGNUMPAG) + " FOLHAS NUMERADAS  ELETRONICAMENTE POR  PRO-" +ASP2+"\n\n"

           POS=Search("centavo",EXTENSO)
           POSN=Search("*",EXTENSO)
           STRING=Len(SubStr(EXTENSO,1,POSN-1))

           Print File ARQIMP ASP1+Spaces(37) + "CESSAMENTO DE DADOS, DE  "+Format("W7,Al",VSDGPAGINI)+" ("+SubStr(EXTENSO,1,POS-1)+SubStr(EXTENSO,POSN,42-STRING)+")"+ASP2+"\n"
           Print File ARQIMP ASP1+ASP2+"\n"
           PAGFIM=VSDGPAGFIM+"000"
           ESCEXT(PAGFIM)
           POS=Search("reais",EXTENSO)
           POSN=Search("*",EXTENSO)

           STRING=Len(SubStr(EXTENSO,1,POSN-1))

           Print File ARQIMP ASP1+Spaces(37) + "A "+Format("W7,Al",VSDGPAGFIM)+" ("+SubStr(EXTENSO,1,POS-1)+SubStr(EXTENSO,POSN,45-STRING)+")"+" JA   ESCRITURADAS,"+ASP2+"\n\n"

           Print File ARQIMP ASP1+Spaces(37) + "QUE  SERVIRA   DE  LIVRO DE   REGISTRO DE      INVENTARIO   NRO,  "+Format("W16,Al",VSDGLIVRO)+ASP2+"\n\n"

          ;;*** Termo de Encerramento ***

      Else Print File ARQIMP ASP1+Spaces(37) + "NESTA DATA PROCEDEMOS AO ENCERRAMENTO DO PRESENTE LIVRO DE NUMERO "+Format("W16,Al",VSDGLIVRO) +ASP2+"\n\n"
           Print File ARQIMP ASP1+Spaces(37) + "CONSTITUIDO    POR   FORMULARIOS   COM "+Format("W6,Al",VSDGNUMPAG)+"  FOLHAS    CONTENDO    A"+ASP2+"\n\n"
           Print File ARQIMP ASP1+Spaces(37) + "ESCRITURACAO   EFETUADA   NO   PERIODO   DE                 "+Format("D13",VSDGDTREF)+ASP2+"\n\n"
           Print File ARQIMP ASP1+Spaces(37) + "QUE    SERVIU    DE     LIVRO   DE   REGISTRO    DE         INVENTARIO "+ASP2+"\n\n"
   EndIf

    Print File ARQIMP ASP1+Spaces(37) + "DA FIRMA   "+Format("W49,Al",RAZSOC)+"SEDIADA  A"+ASP2+"\n\n"

    Print File ARQIMP ASP1+Spaces(37) + Format("W40,Al",ENDERECO)+"  "+Format("W18,AL",BAIRRO)+ASP2+"\n\n"

    Print File ARQIMP ASP1+Spaces(37) + "INSCRITA NO CADASTRO NACIONAL PESSOA JURIDICA DO MINISTERIO DA FAZENDA"+ASP2+"\n\n"

    Print File ARQIMP ASP1+Spaces(37) + "SOB O  NRO. " + Format("W20,AL",CGC)+", INSCRITA NA SECRETARIA DA FAZENDA DO"+ASP2+"\n\n"

    Print File ARQIMP ASP1+Spaces(37) + "ESTADO DE MINAS GERAIS SOB NR." +Format("W18,AL",IE) +" E REGISTRADA NA JUNTA"+ASP2+"\n\n"

    Print File ARQIMP ASP1+Spaces(37) + "COMERCIAL DO ESTADO DE MINAS GERAIS SOB NR."+
    Format("W13,AL",JUCEMG)+"EM "+Format("D13",ARQUIVADO)+"."+ASP2+"\n\n"

    Print File ARQIMP ASP1+Spaces(37) + "DECLARAMOS QUE  O PRESENTE LIVRO ESTA TOTALMENTE ESCRITURADO POR  PRO-"+ASP2+"\n\n"

    Print File ARQIMP ASP1+Spaces(37) + "CESSAMENTO  ELETRONICO CONFORME PERMITE   O  CONVENIO ICMS NRO. 95, DF"+ASP2+"\n\n"

    Print File ARQIMP ASP1+Spaces(37) + "24/10/89."+ASP2+"\n\n"

    Salta_Linha(2)

    Print File ARQIMP ASP1+Spaces(57) + CIDADE+", " + Alinhm(StrVal(Day(VSDGDTREF)),2) + " de " + MesExt(Month(VSDGDTREF)) + "  " + StrVal(Year(VSDGDTREF)) +ASP2 +"\n"

    Salta_Linha(4)

    Print File ARQIMP ASP1+Spaces(49) + "-------------------------------------------------"+ASP2+"\n"
    Print File ARQIMP ASP1+Spaces(49) + Format("W40,AL",REPRLEGAL) +ASP2+"\n"
    Print File ARQIMP ASP1+Spaces(49) + Format("W40,AL",CGC) +ASP2+"\n"
    Print File ARQIMP ASP1+Spaces(49) + "TITULAR" +ASP2+"\n"

    Salta_Linha(4)


    Print File ARQIMP ASP1+Spaces(73) + "-------------------------"+ASP2+"\n"
    Print File ARQIMP ASP1+Spaces(73) + Format("W40,AL",NOMRESP) +ASP2+"\n"
    Print File ARQIMP ASP1+Spaces(73) + Format("W20,AL",CRC) +ASP2+"\n"
    Print File ARQIMP ASP1+Spaces(73) + Format("W20,AL",CARGO)+ ASP2+"\n"
   QuitLoop
 EndWhile
;   Print File ARQIMP ASP1+Sys_ReSet_Impressora+ASP2+"\n"
   Print File ARQIMP ASP1+CI_10CPP+ASP2+"\n"
   ClearAll
EndProc

;*******************************************************************************
;* Rotina p/ Selecionar e Ordernar Registros                                   *
;*******************************************************************************
Proc SALTA_LINHA(LINHA)
While True
  If OPCAOPAG<>"Todas"
     Then If FOLHA<OPCAOPAGINI Or
             FOLHA>OPCAOPAGFIM
             Then QuitLoop
          EndIf
  EndIf
  For I From 1 to LINHA
      Print File ARQIMP ASP1+ASP2+"\n"
  EndFor
  QuitLoop
EndWhile
EndProc

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Temp=True
TECLA=""
MSG_CAMPO=""
If Disparo="OPEN"  Then AoCriarShowDialog() EndIf
If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] = -59: Dialog_F1()
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            Case Campo="TG_EMPRESA"       : Campo="NO"
            Case Campo="TG_PAGINI"        : Campo="TG_EMPRESA"
            Case Campo="TG_PAGFIM"        : Campo="TG_PAGINI"
            Case Campo="TG_NUMPAG"        : Campo="TG_PAGFIM"
            Case Campo="TG_LIVRO"         : Campo="TG_NUMPAG"
            Case Campo="TG_DTREF"         : Campo="TG_LIVRO"
            Case Campo="TG_IMPRIME"       : Campo="TG_DTREF"
            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_PAGINI"
                         If IsBlank(VSDGEMPRESA)
                            Then VSDGNOMEMP=""
                                 Campo="TG_EMPRESA"
                            Else View "\\Sistemas\\Cadastro\\CompEmp"
                                 Moveto [Codigo da Empresa]
                                 Locate VSDGEMPRESA
                                 If Not RetVal
                                    Then Mensagem("N„o Foi Informado o Complemento P/ Empresa !")
                                         ClearAll
                                         Campo="TG_EMPRESA"
                                    Else Campo="TG_PAGINI"
                                 EndIf
                                 View "\\Sistemas\\Icms_Ipi\\RespDoct"
                                 Moveto [Codigo da Empresa]
                                 Locate VSDGEMPRESA
                                 If Not RetVal
                                    Then Mensagem("N„o Foi Informado o Responsavel P/ Empresa !")
                                         ClearAll
                                         Campo="TG_EMPRESA"
                                    Else Campo="TG_PAGINI"
                                 EndIf
                                 ;View "\\Sistemas\\Icms_Ipi\\Receitae"
                                 ;Moveto [Codigo da Empresa]
                                 ;Locate VSDGEMPRESA
                                 ;If Not RetVal
                                 ;   Then Mensagem("N„o Foi Informado os dados Ref Receita Estadual P/ Empresa !")
                                 ;        ClearAll
                                 ;        Campo="TG_EMPRESA"
                                 ;   Else Campo="TG_PAGINI"
                                 ;EndIf
                         EndIf
                    Case Campo="TG_PAGINI"   :
                         VSDGPAGINI=ControlValue("TG_PAGINI")
                         If Not IsBlank(VSDGPAGINI)
                            Then VSDGPAGINI=ALINHM(VSDGPAGINI,4)
                                 Campo="TG_PAGFIM"
                         EndIf
                    Case Campo="TG_PAGFIM"   :
                         VSDGPAGFIM=ControlValue("TG_PAGFIM")
                         If Not IsBlank(VSDGPAGFIM)
                            Then VSDGPAGFIM=ALINHM(VSDGPAGFIM,4)
                                 If VSDGPAGFIM < VSDGPAGINI
                                    Then Mensagem ("Pagina Final Menor que Pagina Inicial")
                                         Campo="TG_PAGFIM"
                                    Else Campo="TG_NUMPAG"
                                 EndIf
                         EndIf
                    Case Campo="TG_NUMPAG"   :
                         VSDGNUMPAG=ControlValue("TG_NUMPAG")
                         If Not IsBlank(VSDGNUMPAG)
                            Then VSDGNUMPAG=ALINHM(VSDGNUMPAG,4)
                                 Campo="TG_LIVRO"
                         EndIf
                    Case Campo="TG_LIVRO"   :
                         VSDGLIVRO=ControlValue("TG_LIVRO")
                         If Not IsBlank(VSDGLIVRO)
                            Then VSDGLIVRO=ALINHM(VSDGLIVRO,4)
                                 Campo="TG_DTREF"
                         Endif
                    Case Campo="TG_DTREF"   :Campo="TG_IMPRIME"
                    Case Campo="TG_IMPRIME"   :
                         VSDGIMPRI=ControlValue("TG_IMPRIME")
                         If Not IsBlank(VSDGIMPRI)
                            Then Switch
                                   Case VSDGIMPRI="0": VSDGNOMIMPRI="TODOS"
                                   Case VSDGIMPRI="1": VSDGNOMIMPRI="ABERTURA"
                                   Case VSDGIMPRI="2": VSDGNOMIMPRI="ENCERRAMENTO"
                                 EndSwitch
                                 Campo="YES"
                         Endif
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_EMPRESA":
       MSG_CAMPO="Informe a Empresa"
  Case Campo="TG_PAGINI":
       MSG_CAMPO="Informe a Pagina Inicial"
  Case Campo="TG_PAGFIM":
       MSG_CAMPO="Informe a Pagina Final"
  Case Campo="TG_NUMPAG":
       MSG_CAMPO="Informe o Numero de Paginas"
  Case Campo="TG_DTREF":
       MSG_CAMPO="Informe a Data de Emissao"
  Case Campo="TG_OPCAO":
       MSG_CAMPO="Informe a Opcao: 1=Caixa, 2=Banco"
  Case Campo="TG_IMPRIME":
       MSG_CAMPO="Informe o Tipo de Impress„o: 1=Abertura, 2=Encerramento"
  Case Campo="TG_LIVRO":
       MSG_CAMPO="Informe o Numero do Livro"
EndSwitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bibliot"
LimpAguarde()
PROCESSO_OK=True
VSDGEMPRESA =""
VSDGPAGINI  =""
VSDGPAGFIM  =""
VSDGNUMPAG  =""
VSDGIMPRI   =""
VSDGNOMIMPRI=""
VSDGLIVRO   =""
VSDGDTREF   =BlankDate()
While True
  ShowDialog "Termo de Abertura/Fechameto do Inventario" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
   @ 03,12   Height 13 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 "Intervalo de Paginas de"  For "TG_PAGINI"
    Accept @ 03,01 Width 14 "A4"  Picture "#*#" Tag "TG_PAGINI" To VSDGPAGINI
    Label  @ 03,15 "at‚" For "TG_PAGFIM"
    Accept @ 03,20 Width 14 "A4"  Picture "!*!" Tag "TG_PAGFIM" To VSDGPAGFIM

    Label  @ 04,00 "N§ Paginas" For "TG_NUMPAG"
    Accept @ 05,01 Width 14 "A4"  Picture "!*!" Tag "TG_NUMPAG" To VSDGNUMPAG

    Label  @ 04,19 "N§ Livro" For "TG_LIVRO"
    Accept @ 05,20 Width 14 "A4"  Picture "!*!" Tag "TG_LIVRO" To VSDGLIVRO

    Label  @ 06,00 "Data" For "TG_DTREF"
    Accept @ 07,02 Width 13 "D"  Picture "#[#].##.##[##]" Tag "TG_DTREF" To VSDGDTREF

    Label  @ 00,35 "Tipo de ImpressÆo"  For "TG_IMPRIME"
    Accept @ 01,39 Width 04 "A1"  Picture "1,2" Tag "TG_IMPRIME" To VSDGIMPRI
    Accept @ 01,44 Width 25 "A25"  Picture "ABERTURA,ENCERRAMENTO" Tag "TG_NOMIMPRIME" To VSDGNOMIMPRI

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

  EndDialog
  If Not RetVal Then QuitLoop EndIf

  FOLHA=NumVal(VSDGNUMPAG)-1

  DISPOSITIVO()
  If OK="" Then Loop EndIf
  If PROCESSO_OK
     Then ASP1=""
          ASP2=""
          ARQIMP = DIREPORT+"TERMO.TXT"
          Switch
            Case OK="A": ARQIMP = DIREPORT+ARQUIVO+".TXT"
            Case OK="V": ASP1="\""
                         ASP2="\""
          EndSwitch
          Deleta_Arquivo(ARQIMP)
          If IsTable("Answer") Then Delete "Answer" EndIf
          IMPRIME()

          If OK="V"
             Then {Tools} {Copy} {Table} {\\Base\\Sistemas\\Estoque\\Rm_tx160} {Answer} ClearAll
                  {Tools} {ExportImport} {Import} {ASCII} {AppendDelimited} TypeIn ARQIMP Enter
                  {Answer} ClearAll
                  OPCAOPAG="Todas"
                  IMPRIREL("Answer","R")
                  Deleta_Arquivo(ARQIMP)
             Else Mensagem("Impress„o Concluida !")
                  If OK="I"
                     Then
;---- Imprime Arquivo Impressao ------------------------------------------------
                       ImpriArq(ARQIMP)
                  EndIf
          EndIf
  EndIf

EndWhile
ClearAll
Release Vars All
Release Procs All

