

; Script fora de uso, verificar quem precisa e analisar !!
;Ultima Alteracao: 31/08/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes           

return


;** GeraOFCB **************************************************************************
;*  Gera OF da Cobran‡a  (Vise)                                                        *
;**************************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 05/08/2005 por Jos‚ Lu¡s Ameno da Silva
;Ultima Alteracao: 10/07/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 25/08/2015 por Kamila Gomes 
;Motivo Alteracao: Altera‡Æo no processo dos Numero do Lan‡amento - Numero_Lancamento()
;Ultima Alteracao: 07/12/2015 por Anivel Augusto Rodrigues
;Motivo Alteracao: exclusao referencia ao campo INSS
;Ultima Alteracao: 27/05/2016 por Bruno Carvalho 
;Motivo Alteracao: Alterado NUM_LANCTO = PROXLANCTO_NLANC -> Padroniza‡Æo da rotina de Numero_Lancamento()
;Ultima Alteracao: 28/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes ShowDialog TG_DESTINAT

;*******************************************************************************
;* Rotina para Selecionar Registros                                            *
;*******************************************************************************
Proc Seleciona()
ClearAll

{Ask} {\\Sistemas\\Cobranca\\Calccob} Check
Moveto [Codigo da Empresa      ] TypeIn "~VSDGEMPRESA"
If Not IsBlank(VSDGDESTINAT)
   Then Moveto [Codigo          ] TypeIn "~VSDGDESTINAT"
   Else Moveto [Codigo          ] TypeIn ">=~VSDGDESTINATINI, <=~VSDGDESTINATFIM"
Endif
Moveto [Data de Emissao        ]  TypeIn "~VSDGDTREF"
;;Moveto [Valor Taxa Balanco     ]  TypeIn "Blank"
Do_It!
ClearAll

If IsEmpty("Answer")
   Then Return
EndIf

EndProc  ; (Seleciona)

;*******************************************************************************
;* Rotina Geracao dos Dados da FaturaI,FaturaC                                 *
;*******************************************************************************
Proc Gera_NF()

CoEdit "Answer","FaturaI","FaturaC","FaturaV"

Moveto "FaturaC"

NR = NRecords("Answer")
     
ORD1   = ""
ORD2   = ""
ORDFAT = ""

Moveto "Answer"
Scan
   Barra(NR, RecNo())
   Aguarde("Aguarde, Processando "+BARRA_STRING)
   
   Moveto "FaturaC"
   While True
      Moveto [Numero da OF]
      End                     
      If Numero_Lancamento("Interno","")
          Then ORDFAT = PROXLANCTO_NLANC
               Release Vars PROXLANCTO_NLANC
      EndIf
      Moveto [Numero da OF]
      Locate ORDFAT
      If Not Retval
         Then End Down
              [Numero da OF]=ORDFAT
              If Not IsLockRecord()
                 Then QuitLoop
              EndIf         
      EndIf
   EndWhile
   If ORD1="" Then ORD1=ORDFAT EndIf

;;; GRAVA NO FATURAI
   SEQ=1
   Moveto "FaturaI"
   End
   Down
   [Numero da OF            ]=ORDFAT
   [Item da OF              ]=SEQ
   [Numero Pedido_Orcamento ]=""
   [Codigo do Item          ]="0000000005"
   [Quantidade              ]=1
   [Preco Unitario          ]=[Answer->Valor do Documento]
   [Preco Total             ]=[Answer->Valor do Documento]
   [Preco Unitario Tabela   ]=[Preco Unitario]
   [Tributacao de IPI       ]="N"
   [Tributacao de ICMS      ]="N"
   [Tributacao de ISSQN     ]="N"
   UnLockRecord

;;; GRAVA NO FATURAC
   Moveto "FaturaC"
   Moveto [Numero da OF]
   Locate ORDFAT
   [Codigo                   ]=[Answer->Codigo]
   [Codigo da Empresa        ]=VSDGEMPRESA
   [Data de Emissao          ]=[Answer->Data de Emissao  ]
   [Data de Saida            ]=[Data de Emissao]
   [Codigo da Destinacao     ]="014"
   [Condicao de Pagamento    ]="01"
   [Codigo da Transportadora ]="0001"
   [Codigo do Representante  ]="0001"
   [Codigo da Tabela         ]="00001"
   [Numero_Carregamento      ]="000001"
   [Frete por Conta          ]="1"
   If [Answer->Formulario]="1_BANCO"
      Then [Forma de Pagamento]="BO"
   EndIf
   If [Answer->Formulario]="2_RECIBO"
      Then [Forma de Pagamento]="CO"
   EndIf
   [Valor Servico            ]=[Answer->Valor do Documento]
   [Valor Nota Fiscal        ]=[Answer->Valor do Documento]
   UnLockRecord

;;; GRAVA NO FATURAV
   Moveto "FaturaV"
   End
   Down
   [Numero da OF            ]=ORDFAT
   [Sequencia               ]="01"
   [Data                    ]=[FaturaC->Data de Emissao   ]
   [Valor                   ]=[FaturaC->Valor Nota Fiscal ]
   [Forma de Pagamento      ]=[FaturaC->Forma de Pagamento]
   UnLockRecord

   ORD2=ORDFAT

   Moveto "FaturaC"
   Moveto [Numero da OF]
   If Numero_Lancamento("Interno","")
       Then ORDFAT = PROXLANCTO_NLANC
            Release Vars PROXLANCTO_NLANC
   EndIf
   Moveto "Answer"
EndScan

Do_It!
ClearAll

EndProc  ; (Gera_NF)

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Temp=True
MSG_CAMPO=""
TECLA=""

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_DESTINAT"      : Campo="TG_EMPRESA"
            Case Campo="TG_DESTINATINI"   : Campo="TG_DESTINAT"
            Case Campo="TG_DESTINATFIM"   : Campo="TG_DESTINATINI"
            Case Campo="TG_DTREF"         : Campo="TG_DESTINAT"
            Case Campo="YES" Or Campo="NO": Campo="TG_DESTINAT"
          EndSwitch
     Case Evento["KeyCode"] = 13:
          Temp=False
          If Checa_TAG()
             Then Switch
                    Case Campo="TG_EMPRESA":
                         If Not IsBlank(VSDGEMPRESA)
                            Then Campo="TG_DESTINAT"
                            Else VSDGNOMEMP=""
                         EndIf
                    Case Campo="TG_DESTINAT"      :
                         If Not IsBlank(VSDGDESTINAT)
                            Then VSDGDESTINATINI=""
                                 VSDGDESTINATFIM=""
                                 Campo="TG_DTREF"
                            Else VSDGNOMDEST=""
                                 Campo="TG_DESTINATINI"
                         EndIf
                    Case Campo="TG_DESTINATINI"   : Campo="TG_DESTINATFIM"
                    Case Campo="TG_DESTINATFIM"   : Campo="TG_DTREF"
                    Case Campo="TG_DTREF" :
                         If Not IsBlank(VSDGDTREF)
                            Then Campo="YES"
                         EndIf
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_EMPRESA":
       MSG_CAMPO="Informe a Empresa"
  Case Campo="TG_DESTINAT":
       MSG_CAMPO="Informe o Cliente"
Endswitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Vendas\\Bib_Fat"

LimpAguarde()

VSDGEMPRESA    = ""
VSDGNOMEMP     = ""
VSDGDESTINAT   = ""
VSDGDESTINATINI= ""
VSDGDESTINATFIM= ""
VSDGNOMDEST    = ""
VSDGDTREF      = Today()
ClearAll

While True

  ShowDialog "Gera OF da Cobran‡a para montar Nota Fiscal" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB"
   @ 05,12   Height 13 Width 56

    Label  @ 00,00 "Empresa"  For "TG_EMPRESA"
    Accept @ 01,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_EMPRESA"    To VSDGEMPRESA
    Accept @ 01,09 Width 23 "A20" Picture "!*!" Tag "TG_NOMEMPRESA" To VSDGNOMEMP

    Label  @ 02,00 "Pessoa"  For "TG_DESTINAT"
    Accept @ 03,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_DESTINAT" To VSDGDESTINAT
    Accept @ 03,09 Width 23 "A20" Picture "!*!" Tag "TG_NOMDEST"  To VSDGNOMDEST

    Label  @ 04,00 "Inicial"  For "TG_DESTINATINI"
    Accept @ 05,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_DESTINATINI" To VSDGDESTINATINI
    Label  @ 04,08 "Final"  For "TG_DESTINATFIM"
    Accept @ 05,09 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_DESTINATFIM" To VSDGDESTINATFIM

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

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

  EndDialog
  If Not RetVal Then QuitLoop EndIf

  If IsBlank(VSDGDTREF)
     Then Mensagem("Data Referente Invalida !")
          Loop
  EndIf

  AGUARDE("Aguarde, gerando dados")
  Seleciona()

  If IsEmpty("Answer")
     Then Mensagem("N„o existem registros a processar")
          Loop
  EndIf

  Gera_NF()
  MSG="Anote os N£meros das OFs geradas:// //"
  MSG=MSG+"primeira: "+ORD1+"//"
  MSG=MSG+"£ltima  : "+ORD2+"// //"
  Mensagem(MSG)

  ClearAll
  If IsTable("Answer")
     Then Delete "Answer"
  EndIf

EndWhile
ClearAll
Release Vars All
Release Procs All
