Árvore de páginas

Versões comparadas

Chave

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

 Exemplo de Rotina Automática CNTA300

Características do Requisito

Linha de Produto:

Microsiga Protheus

Segmento:

Serviços

Módulo:

Gestão de Contratos

Rotina:

Rotina

Nome Técnico

CNTA300

Manutenção de Contratos

País(es):

Todos

Banco(s) de Dados:

Todos

Sistema(s) Operacional(is):

Todos

Descrição

A Rotina CNTA300 foi desenvolvida em MVC, portanto para realizar a inclusão, alteração e exclusão de um contrato, automaticamente, deve-se fazer uso do modelo de dados. A Seguir mostraremos um exemplo de como realizar a inclusão de um contrato utilizando o modelo de dados da rotina CNTA300.

Para mais detalhes sobre a utilização do MVC, consulte a pagina: http://tdn.totvs.com/display/public/mp/AdvPl+utilizando+MVC


Exemplo de Rotina Automática - Inclusão

 

Bloco de código
themeEclipse
#Include 'Protheus.ch'
#INCLUDE "FWMVCDEF.CH"
User Function CN300AUTO()

Local oModel := FWLoadModel("CNTA300") //Carrega o modelo

oModel:SetOperation(MODEL_OPERATION_INSERT) // Seta operação de inclusão

oModel:Activate() // Ativa o Modelo 

//Cabeçalho do contrato
oModel:SetValue( 'CN9MASTER'	, 'CN9_DTINIC'	, Ctod("24/02/2017")	)
oModel:SetValue( 'CN9MASTER'	, 'CN9_NUMERO'	, '000000000000069'	)
oModel:SetValue( 'CN9MASTER'	, 'CN9_UNVIGE'	, '3'					)
oModel:SetValue( 'CN9MASTER'	, 'CN9_VIGE'		, 1						)
oModel:SetValue( 'CN9MASTER'	, 'CN9_MOEDA'		, 1						)
oModel:SetValue( 'CN9MASTER'	, 'CN9_CONDPG'	, '001'				)
oModel:SetValue( 'CN9MASTER'	, 'CN9_TPCTO'		, '001'				)
oModel:SetValue( 'CN9MASTER'	, 'CN9_FLGREJ'	, '2'					)
oModel:SetValue( 'CN9MASTER'	, 'CN9_FLGCAU'	, '2'					)
oModel:SetValue( 'CN9MASTER'	, 'CN9_ASSINA'	, Ctod("24/02/2017")	)

//Cliente/Fornecedor do Contrato
oModel:SetValue( 'CNCDETAIL'	, 'CNC_CODIGO'	, '001   '	)
oModel:SetValue( 'CNCDETAIL'	, 'CNC_LOJA'		, '01'		)
//Planilhas do Contrato
oModel:LoadValue(	'CNADETAIL'	, 'CNA_CONTRA'	, '000000000000069'	)
oModel:SetValue( 	'CNADETAIL' 	, 'CNA_NUMERO'	, '000001'				)
oModel:SetValue(	'CNADETAIL' 	, 'CNA_FORNEC'	, '001   '				)
oModel:SetValue(	'CNADETAIL' 	, 'CNA_LJFORN'	, '01'					)
oModel:SetValue(	'CNADETAIL' 	, 'CNA_TIPPLA'	, '004'				)
oModel:SetValue(	'CNADETAIL' 	, 'CNA_FLREAJ'	, '2'					)

//Itens da Planilha do Contrato
oModel:SetValue( 'CNBDETAIL'	, 'CNB_ITEM'		, '001'				)
oModel:SetValue( 'CNBDETAIL'	, 'CNB_PRODUT'	, '001            '	)
oModel:SetValue( 'CNBDETAIL'	, 'CNB_QUANT'		, 1						)
oModel:SetValue( 'CNBDETAIL'	, 'CNB_VLUNIT'	, 1000					)
oModel:SetValue( 'CNBDETAIL'	, 'CNB_PEDTIT'	, '1'					)

//Cronograma Financeiro

oModel:GetModel('CNFDETAIL'):SetNoInserLine(.F.)
oModel:GetModel('CNFDETAIL'):SetNoUpdateLine(.F.)

oModel:LoadValue( 'CNFDETAIL'	, 'CNF_NUMERO' 	, '000071'				)
oModel:SetValue( 'CNFDETAIL'	, 'CNF_PARCEL' 	, '01'					)
oModel:SetValue( 'CNFDETAIL'	, 'CNF_COMPET'	, '02/2017'			)
oModel:SetValue( 'CNFDETAIL'	, "CNF_VLPREV"	, 500					)
oModel:SetValue( 'CNFDETAIL'	, "CNF_VLREAL"	, 0						)
oModel:SetValue( 'CNFDETAIL'	, "CNF_SALDO"		, 500					)
oModel:SetValue( 'CNFDETAIL'	, 'CNF_PRUMED'	, Ctod("24/02/2017")	)
oModel:SetValue( 'CNFDETAIL'	, 'CNF_DTVENC'	, Ctod("24/02/2017")	)
oModel:SetValue( 'CNFDETAIL'	, 'CNF_TXMOED'	, 1						)

oModel:GetModel('CNFDETAIL'):AddLine()

oModel:LoadValue( 'CNFDETAIL'	, 'CNF_NUMERO' 	, '000071'				)
oModel:SetValue( 'CNFDETAIL'	, 'CNF_PARCEL' 	, '02'					)
oModel:SetValue( 'CNFDETAIL'	, 'CNF_COMPET'	, '02/2017'			)
oModel:SetValue( 'CNFDETAIL'	, "CNF_VLPREV"	, 500					)
oModel:SetValue( 'CNFDETAIL'	, "CNF_VLREAL"	, 0						)
oModel:SetValue( 'CNFDETAIL'	, "CNF_SALDO"		, 500					)
oModel:SetValue( 'CNFDETAIL'	, 'CNF_PRUMED'	, Ctod("24/02/2017")	)
oModel:SetValue( 'CNFDETAIL'	, 'CNF_DTVENC'	, Ctod("24/02/2017")	)
oModel:SetValue( 'CNFDETAIL'	, 'CNF_TXMOED'	, 1						)

//Validação e Gravação do Modelo
If oModel:VldData() 
	oModel:CommitData() 
EndIf

Return

Exemplo de Rotina Automática - Revisão de Realinhamento

A Rotina CNTA300 foi desenvolvida em MVC, portanto para realizar a revisão automaticamente, deve-se fazer uso do modelo de dados. A Seguir mostraremos um exemplo de como realizar a revisão de um contrato utilizando o modelo de dados da rotina CNTA300.

Para mais detalhes sobre a utilização do MVC, consulte a pagina: http://tdn.totvs.com/display/public/mp/AdvPl+utilizando+MVC

É imprescindível informar mediante a função A300STpRev("3") o tipo de revisão que será realizada, podendo ser:

"1" - Aditivo
"2" - Reajuste
"3" - Realinhamento
"4" - Readequação
"5" - Paralisação
"6" - Reinício
"7" - Cláusulas
"8" - Contábil
"9" - Índice
"A" - Fornecedor/Cliente
"B" - Grupo de Aprovação
"C" - Renovação
"D" - Multa/Bonificação
"E" - Caução
"F" - Orçamento de Serviços GS

Bloco de código
themeEclipse
#Include 'Protheus.ch'
#INCLUDE#Include "FWMVCDEF.CH"

User Function CN300AUTO() 
Local oModel	:= Nil  //Carrega o modelo
Local cContra	:= ' < NUMERONúmero DOdo CONTRATOcontrato > '

CN9->(DBSetOrder(1))
If CN9->(DbSeek(xFilial("CN9")+cContra))
 	
 	A300STpRev("3")	
 	
 	oModel := FWLoadModel("CNTA300") //Carrega o modelo
 
	oModel:SetOperation(MODEL_OPERATION_INSERT) // Seta operação de inserção
	 
	oModel:Activate(.T.) // Ativa o modelo passando o parâmetro como True para realizar uma cópia.
 
	//Cabeçalho do contrato
	oModel:SetValue( 'CN9MASTER'    , 'CN9_TIPREV'  , '005' )
	oModel:SetValue( 'CN9MASTER'    , 'CN9_JUSTIF'  , 'Justificativa da revisão do contrato')
	
	//Itens da Planilha do Contrato
	oModel:SetValue( 'CNBDETAIL'    , 'CNB_VLUNIT'  , 0.0010)
	
	//Validação e Gravação do Modelo
	If oModel:VldData()
	    oModel:CommitData()
	EndIf
	
EndIf
 
Return