;** FT_DNota *******************************************************************
;*  Descancelamento do Documento                                               *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 12/12/2015 por Anivel Augusto Rodrigues 
;Ultima Alteracao: 11/07/2017 por Bruno Carvalho 
;Motivo Alteracao: Ajsutado mensagem [Observacao na Nota Fiscal] p/ quando ocorrer descancelamento
;Ultima Alteracao: 07/06/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado/ajustado Grava_LogEx() 
;Ultima Alteracao: 08/10/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes release vars e procs   

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
proc ft_dnota()
private posi, posf

If not Checa_Supervisor()
   Then return
endif
    
Moveto "NotaC"
;------ Descancelando Nota ------
[NotaC->Situacao       ]=""

PosI = Search("[**",[NotaC->Observacao na Nota Fiscal])
PosF = Search("**]",[NotaC->Observacao na Nota Fiscal])

If PosI>0 And PosF>0
   Then If PosI=1
           Then [NotaC->Observacao na Nota Fiscal] = Ltrim(Rtrim(SubStr([NotaC->Observacao na Nota Fiscal],PosF+4,Len([NotaC->Observacao na Nota Fiscal])))) 
           Else [NotaC->Observacao na Nota Fiscal] = Ltrim(Rtrim(SubStr([NotaC->Observacao na Nota Fiscal],1,PosI-1))) + " " + 
                                                     Ltrim(Rtrim(SubStr([NotaC->Observacao na Nota Fiscal],PosF+4,Len([NotaC->Observacao na Nota Fiscal]))))
        EndIf 
EndIf
                   
UnLockRecord
FormKey
             
;------- Descancelando Fatura -------
Moveto "FaturaC"
Moveto [Numero da OF]
Locate [NotaC->Numero da OF       ]
If RetVal
   then if [Numero Nota Gerada]=[NotaC->Numero do Documento] and
           [Serie Nota Gerada ]=[NotaC->Serie do Documento ]
           then 
                if substr([Docto Nota Gerada],1,3)="NFE"
                   Then [FaturaC->Sistema Gerador]=[NotaC->Sistema Gerador]
                   Else [FaturaC->Sistema Gerador]=""
                EndIf
                
                PosI = Search("[**",[FaturaC->Observacao na Nota Fiscal])
                PosF = Search("**]",[FaturaC->Observacao na Nota Fiscal])
                
                If PosI>0 And PosF>0
                   Then If PosI=1
                           Then [FaturaC->Observacao na Nota Fiscal] = 
                                Ltrim(Rtrim(SubStr([FaturaC->Observacao na Nota Fiscal],PosF+4,Len([FaturaC->Observacao na Nota Fiscal])))) 
                           Else [FaturaC->Observacao na Nota Fiscal] = 
                                Ltrim(Rtrim(SubStr([FaturaC->Observacao na Nota Fiscal],1,PosI-1))) + " " + 
                                Ltrim(Rtrim(SubStr([FaturaC->Observacao na Nota Fiscal],PosF+4,Len([FaturaC->Observacao na Nota Fiscal]))))
                        EndIf 
                EndIf
        Endif
EndIf
UnLockRecord

;----------------------------------
Moveto "NotaC"
FormKey
Grava_LogEx("DescNota")
Mensagem("Documento DESCANCELADO !// //"+
         "Um LOG foi criado para esta opera‡Æo de sua responsabilidade.// //"+
         "Execute os procedimentos abaixo:                               //"+
         " - Regerar o documento para corrigir a movimenta‡Æo financeira.//"+
         " - Executar o reprocessamento do Estoque para corrigir Saldos. // //"+
         "Verifique se tudo esta correto !")

endproc

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************

ft_dnota()

release vars ft_dnota