Árvore de páginas


01. VISÃO GERAL

Exemplos de execução via rotina automática na rotina de lançamentos contábeis Extemporâneos (CTBS460), mostrando exemplos de utilização e tabelas relacionadas.

02. EXEMPLO DE UTILIZAÇÃO

Abaixo mostraremos exemplos de utilização.


Aviso

As Execuções Automáticas demonstradas abaixo são apenas um exemplo.


Inclusão


MyCtbs460Inc
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "rwmake.ch"
#include 'totvs.ch'
#include 'tbiconn.ch'

Static __oModelAut := NIL //variavel oModel para substituir msexecauto em MVC

User Function MyCtbs460Inc() 
Local lNotFound := .F.
Local oModelCSQ
Local nX
Local aLog
Local cLog :=""
Local lRet := .T.

PREPARE ENVIRONMENT EMPRESA 'T1' FILIAL 'D MG 01' TABLES 'CSQ','CT2' MODULO 'CTB'

While CT2->(!Eof()) .AND. lNotFound == .F.
	CSQ->(dbSetOrder(1))
    lNotFound  :=  !CSQ->(dbSeek(CT2->CT2_FILIAL+DTOS(CT2->CT2_DATA)+CT2->CT2_LOTE+CT2->CT2_SBLOTE+CT2->CT2_DOC+CT2->CT2_LINHA+CT2->CT2_EMPORI+CT2->CT2_FILORI))
	If lNotFound
		Loop
	else
		CT2->( dbSkip() )
	Endif
	
Enddo

If __oModelAut == Nil //somente uma unica vez carrega o modelo CTBS460
__oModelAut := FWLoadModel( 'CTBS460' )
EndIf

__oModelAut:SetOperation(MODEL_OPERATION_INSERT)
__oModelAut:Activate()

oModelCSQ := __oModelAut:GetModel('CSQMASTER')
oModelCSQ:SetValue("CSQ_FILIAL",CT2->CT2_FILIAL)
oModelCSQ:SetValue("CSQ_DATA",CT2->CT2_DATA)
oModelCSQ:SetValue("CSQ_LOTE",CT2->CT2_LOTE)
oModelCSQ:SetValue("CSQ_SBLOTE",CT2->CT2_SBLOTE)
oModelCSQ:SetValue("CSQ_DOC",CT2->CT2_DOC)
oModelCSQ:SetValue("CSQ_LINHA",CT2->CT2_LINHA)
oModelCSQ:SetValue("CSQ_EMPORI",CT2->CT2_EMPORI)
oModelCSQ:SetValue("CSQ_FILORI",CT2->CT2_FILORI)
oModelCSQ:SetValue("CSQ_DTEXT",Stod("20230723"))
oModelCSQ:SetValue("CSQ_NATLCT","1") // 1 - Lançamento em Contas de Patrimônio/ 2 - Lançamento em Contas de Resultado

If __oModelAut:VldData() //validacao dos dados pelo modelo

	__oModelAut:CommitData() //gravacao dos dados

Else
	aLog := __oModelAut:GetErrorMessage() //Recupera o erro do model quando nao passou no VldData
	//laco para gravar em string cLog conteudo do array aLog
	For nX := 1 to Len(aLog)
		If !Empty(aLog[nX])
			cLog += Alltrim(aLog[nX]) + CRLF
		EndIf
	Next nX

	lMsErroAuto := .T. //seta variavel private como erro
	AutoGRLog(cLog) //grava log para exibir com funcao mostraerro
	mostraerro()
	lRet := .F. //retorna false
Endif


__oModelAut:DeActivate() //desativa modelo

Return( lRet )
 


Alteração


MyCtbs460Alt
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "rwmake.ch"
#include 'totvs.ch'
#include 'tbiconn.ch'

Static __oModelAut := NIL //variavel oModel para substituir msexecauto em MVC

User Function MyCtbs460Alt() 
Local lFound := .F.
Local oModelCSQ
Local nX
Local aLog
Local cLog :=""
Local lRet := .T.

PREPARE ENVIRONMENT EMPRESA 'T1' FILIAL 'D MG 01' TABLES 'CSQ','CT2' MODULO 'CTB'

While CT2->(!Eof()) .AND. lFound == .F.
	CSQ->(dbSetOrder(1))
    lFound  :=  CSQ->(dbSeek(CT2->CT2_FILIAL+DTOS(CT2->CT2_DATA)+CT2->CT2_LOTE+CT2->CT2_SBLOTE+CT2->CT2_DOC+CT2->CT2_LINHA+CT2->CT2_EMPORI+CT2->CT2_FILORI))
	If lFound
	    Loop
	else
		CT2->( dbSkip() )
	Endif
	
Enddo

If __oModelAut == Nil //somente uma unica vez carrega o modelo CTBS460
__oModelAut := FWLoadModel( 'CTBS460' )
EndIf

__oModelAut:SetOperation(MODEL_OPERATION_UPDATE)
__oModelAut:Activate()

oModelCSQ := __oModelAut:GetModel('CSQMASTER')
oModelCSQ:SetValue("CSQ_DTEXT",Stod("20230823"))


If __oModelAut:VldData() //validacao dos dados pelo modelo

	__oModelAut:CommitData() //gravacao dos dados

Else
	aLog := __oModelAut:GetErrorMessage() //Recupera o erro do model quando nao passou no VldData
	//laco para gravar em string cLog conteudo do array aLog
	For nX := 1 to Len(aLog)
		If !Empty(aLog[nX])
			cLog += Alltrim(aLog[nX]) + CRLF
		EndIf
	Next nX

	lMsErroAuto := .T. //seta variavel private como erro
	AutoGRLog(cLog) //grava log para exibir com funcao mostraerro
	mostraerro()
	lRet := .F. //retorna false
Endif


__oModelAut:DeActivate() //desativa modelo

Return( lRet )


Exclusão


MyCtbs460Exl
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "rwmake.ch"
#include 'totvs.ch'
#include 'tbiconn.ch'

Static __oModelAut := NIL //variavel oModel para substituir msexecauto em MVC

User Function MyCtbs460Exl() 
Local lFound := .F.
Local nX
Local aLog
Local cLog :=""
Local lRet := .T.

PREPARE ENVIRONMENT EMPRESA 'T1' FILIAL 'D MG 01' TABLES 'CSQ','CT2' MODULO 'CTB'

While CT2->(!Eof()) .AND. lFound == .F.
	CSQ->(dbSetOrder(1))
    lFound  :=  CSQ->(dbSeek(CT2->CT2_FILIAL+DTOS(CT2->CT2_DATA)+CT2->CT2_LOTE+CT2->CT2_SBLOTE+CT2->CT2_DOC+CT2->CT2_LINHA+CT2->CT2_EMPORI+CT2->CT2_FILORI))
	If lFound
	    Loop
	else
		CT2->( dbSkip() )
	Endif
	
Enddo

If __oModelAut == Nil //somente uma unica vez carrega o modelo CTBS460
__oModelAut := FWLoadModel( 'CTBS460' )
EndIf

__oModelAut:SetOperation(MODEL_OPERATION_DELETE)
__oModelAut:Activate()

If __oModelAut:VldData() //validacao dos dados pelo modelo

	__oModelAut:CommitData() //gravacao dos dados

Else
	aLog := __oModelAut:GetErrorMessage() //Recupera o erro do model quando nao passou no VldData
	//laco para gravar em string cLog conteudo do array aLog
	For nX := 1 to Len(aLog)
		If !Empty(aLog[nX])
			cLog += Alltrim(aLog[nX]) + CRLF
		EndIf
	Next nX

	lMsErroAuto := .T. //seta variavel private como erro
	AutoGRLog(cLog) //grava log para exibir com funcao mostraerro
	mostraerro()
	lRet := .F. //retorna false
Endif


__oModelAut:DeActivate() //desativa modelo

Return( lRet )
  


03. TABELAS UTILIZADAS

  • CT2- Lançamentos Contábeis
  • CSQ - Lançamento Extemporâneo       

04. DEMAIS ASSUNTOS