Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


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
titleAviso

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


Inclusão

...


Bloco de código
languagepy
themeMidnight
titleMyCtbs460Inc
linenumberstrue
collapsetrue
#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


Bloco de código
languagepy
themeMidnight
titleMyCtbs460Alt
collapsetrue
#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


Bloco de código
languagepy
themeMidnight
titleMyCtbs460Exl
collapsetrue
#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

...