CONTEÚDO
- Visão Geral
- Medição com itens
- Medição sem Itens
- Medição com Rateio pré-configurado
- Medição com Rateio
- Medição configurado para ignorar produtos bloqueados
- Obtendo a lista de competências
- Estorno de uma medição
- Exclusão de uma medição
- Inclusão medição com multa/bonificação por planilha
- Inclusão medição com multa/bonificação por item da planilha
- Inclusão medição marcando todas as planilhas
- Inclusão medição marcando planilhas específicas
- Inclusão medição com TES informada no item
- Inclusão de medição com múltiplas naturezas
- Inclusão de autorização de fornecimento
- Inclusão de medição com desconto
01. VISÃO GERAL
Objetivo desse documento é exemplificar a utilização do ExecAuto da nova rotina de Medições(CNTA121).
Alternativas para pontos de entrada
Para alternativas para os pontos de entrada, acessar a página CNTA121 - Exemplos pontos de entrada_MVC
Para uma lista com o De/Para dos pontos de entrada do CNTA120 para o CNTA121, acessar a página GCT0084_Nova_Medição_CNTA121
02. Medição com itens
Exemplo medição de um contrato fixo com itens
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" User Function CNT121_002() Local oModel := Nil Local cCodCTR := "CNTA121EXEMP002" Local cNumMed := "" Local aMsgDeErro:= {} Local lRet := .F. CN9->(DbSetOrder(1)) If CN9->(DbSeek(xFilial("CN9") + cCodCTR))//Posicionar na CN9 para realizar a inclusão oModel := FWLoadModel("CNTA121") oModel:SetOperation(MODEL_OPERATION_INSERT) If(oModel:CanActivate()) oModel:Activate() oModel:SetValue("CNDMASTER","CND_CONTRA" ,CN9->CN9_NUMERO) oModel:SetValue("CNDMASTER","CND_RCCOMP" ,"1")//Selecionar competência oModel:SetValue("CXNDETAIL","CXN_CHECK" , .T.)//Marcar a planilha(nesse caso apenas uma) oModel:GetModel('CNEDETAIL'):GoLine(1) oModel:SetValue( 'CNEDETAIL' , 'CNE_QUANT' , 1) If (oModel:VldData()) /*Valida o modelo como um todo*/ oModel:CommitData() EndIf EndIf If(oModel:HasErrorMessage()) aMsgDeErro := oModel:GetErrorMessage() Else cNumMed := CND->CND_NUMMED oModel:DeActivate() lRet := CN121Encerr(.T.) //Realiza o encerramento da medição EndIf EndIf Return lRet
03. Medição sem itens
Exemplo medição sem itens
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" User Function CNT121_001() Local oModel := Nil Local cCodCTR := "CNTA121EXEMP001" Local cNumMed := "" Local aMsgDeErro:= {} Local lRet := .F. CN9->(DbSetOrder(1)) If CN9->(DbSeek(xFilial("CN9") + cCodCTR))//Posicionar na CN9 para realizar a inclusão oModel := FWLoadModel("CNTA121") oModel:SetOperation(MODEL_OPERATION_INSERT) If(oModel:CanActivate()) oModel:Activate() oModel:SetValue("CNDMASTER","CND_CONTRA" ,CN9->CN9_NUMERO) oModel:SetValue("CNDMASTER","CND_RCCOMP" ,"1")//Selecionar competência oModel:SetValue("CXNDETAIL","CXN_CHECK" , .T.)//Marcar a planilha(nesse caso apenas uma) oModel:GetModel('CNEDETAIL'):LoadValue('CNE_ITEM', PadL("1", CNE->(Len(CNE_ITEM)), "0"))//Adiciona um item a planilha oModel:SetValue( 'CNEDETAIL' , 'CNE_PRODUT' , 'GCT000000000000000000000000002') oModel:SetValue( 'CNEDETAIL' , 'CNE_QUANT' , 1000) oModel:SetValue( 'CNEDETAIL' , 'CNE_VLUNIT' , 1 ) If (oModel:VldData()) /*Valida o modelo como um todo*/ oModel:CommitData() EndIf EndIf If(oModel:HasErrorMessage()) aMsgDeErro := oModel:GetErrorMessage() Else cNumMed := CND->CND_NUMMED oModel:DeActivate() lRet := CN121Encerr(.T.) //Realiza o encerramento da medição EndIf EndIf Return lRet
04. Medição com rateio pré-configurado
Medição com rateio pré-configurado
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" User Function CNT121_003() Local oModel := Nil Local cCodCTR := "CNTA121EXEMP003" Local cNumMed := "" Local aMsgDeErro:= {} Local lRet := .F. Local aRatPreCfg:= {} CN9->(DbSetOrder(1)) If CN9->(DbSeek(xFilial("CN9") + cCodCTR))//Posicionar na CN9 para realizar a inclusão oModel := FWLoadModel("CNTA121") oModel:SetOperation(MODEL_OPERATION_INSERT) If(oModel:CanActivate()) oModel:Activate() oModel:SetValue("CNDMASTER","CND_CONTRA" ,CN9->CN9_NUMERO) oModel:SetValue("CNDMASTER","CND_RCCOMP" ,"1")//Selecionar competência oModel:SetValue("CXNDETAIL","CXN_CHECK" , .T.)//Marcar a planilha(nesse caso apenas uma) oModel:GetModel('CNEDETAIL'):GoLine(1) oModel:SetValue( 'CNEDETAIL' , 'CNE_QUANT' , 1) aAdd(aRatPreCfg,{'CTJ_FILIAL', xFilial("CTJ")}) aAdd(aRatPreCfg,{'CTJ_RATEIO', 'GCT001'}) CN121RatP(oModel, Nil, aRatPreCfg)//Importa rateio pre-configurado If (oModel:VldData()) /*Valida o modelo como um todo*/ oModel:CommitData() EndIf EndIf If(oModel:HasErrorMessage()) aMsgDeErro := oModel:GetErrorMessage() Else cNumMed := CND->CND_NUMMED oModel:DeActivate() lRet := CN121Encerr(.T.) //Realiza o encerramento da medição EndIf EndIf Return lRet
05. Medição com rateio
Medição com rateio manual
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" User Function CNT121_004() Local oModel := Nil Local cCodCTR := "CNTA121EXEMP004" Local cNumMed := "" Local aMsgDeErro:= {} Local lRet := .F. CN9->(DbSetOrder(1)) If CN9->(DbSeek(xFilial("CN9") + cCodCTR))//Posicionar na CN9 para realizar a inclusão oModel := FWLoadModel("CNTA121") oModel:SetOperation(MODEL_OPERATION_INSERT) If(oModel:CanActivate()) oModel:Activate() oModel:SetValue("CNDMASTER","CND_CONTRA" ,CN9->CN9_NUMERO) oModel:SetValue("CNDMASTER","CND_RCCOMP" ,"1")//Selecionar competência oModel:SetValue("CXNDETAIL","CXN_CHECK" , .T.)//Marcar a planilha(nesse caso apenas uma) oModel:GetModel('CNEDETAIL'):GoLine(1) oModel:SetValue( 'CNEDETAIL' , 'CNE_QUANT' , 1) /*Os rateios abaixo serao incluidos pra corrente do modelo da CNE*/ oModel:SetValue("CNZDETAIL","CNZ_PERC" , 50) oModel:SetValue("CNZDETAIL","CNZ_CC" , '000000001') oModel:SetValue("CNZDETAIL","CNZ_CONTA" , '01234') oModel:SetValue("CNZDETAIL","CNZ_ITEMCT" , '0000000') oModel:SetValue("CNZDETAIL","CNZ_CLVL" , '000001') oModel:GetModel('CNZDETAIL'):AddLine() oModel:SetValue("CNZDETAIL","CNZ_ITEM" , '02') oModel:SetValue("CNZDETAIL","CNZ_PERC" , 50) oModel:SetValue("CNZDETAIL","CNZ_CC" , '000000002') oModel:SetValue("CNZDETAIL","CNZ_CONTA" , '01235') oModel:SetValue("CNZDETAIL","CNZ_ITEMCT", '00001') oModel:SetValue("CNZDETAIL","CNZ_CLVL" , '000002') If (oModel:VldData()) /*Valida o modelo como um todo*/ oModel:CommitData() EndIf EndIf If(oModel:HasErrorMessage()) aMsgDeErro := oModel:GetErrorMessage() Else cNumMed := CND->CND_NUMMED oModel:DeActivate() lRet := CN121Encerr(.T.) //Realiza o encerramento da medição EndIf EndIf Return lRet
06. Medição configurada para ignorar produtos bloqueados
Ignorando os produtos bloqueados da planilha
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" User Function CNT121_005() Local oModel := Nil Local cCodCTR := "CNTA121EXEMP005" Local cNumMed := "" Local aMsgDeErro:= {} Local lRet := .F. CN9->(DbSetOrder(1)) If CN9->(DbSeek(xFilial("CN9") + cCodCTR))//Posicionar na CN9 para realizar a inclusão oModel := FWLoadModel("CNTA121") oModel:SetOperation(MODEL_OPERATION_INSERT) If(oModel:CanActivate()) oModel:Activate() oModel:SetValue("CNDMASTER","CND_CONTRA" ,CN9->CN9_NUMERO) oModel:SetValue("CNDMASTER","CND_RCCOMP" ,"1")//Selecionar competência oModel:SetValue("CXNDETAIL","CXN_IGITEM", .T.)//Configura para ignorar produtos bloqueados oModel:SetValue("CXNDETAIL","CXN_CHECK" , .T.)//Marcar a planilha(nesse caso apenas uma) oModel:GetModel('CNEDETAIL'):GoLine(1) oModel:SetValue( 'CNEDETAIL' , 'CNE_QUANT' , 1) If (oModel:VldData()) /*Valida o modelo como um todo*/ oModel:CommitData() EndIf EndIf If(oModel:HasErrorMessage()) aMsgDeErro := oModel:GetErrorMessage() Else cNumMed := CND->CND_NUMMED oModel:DeActivate() lRet := CN121Encerr(.T.) //Realiza o encerramento da medição EndIf EndIf Return lRet
07. Obtendo a lista de competências
Obtendo a lista de competências de um contrato
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" User Function CNT121_006() Local oModel := Nil Local cCodCTR := "CNTA121EXEMP006" Local aCompets := {} Local nCompet := 0 Local cNumMed := "" Local aMsgDeErro:= {} Local lRet := .F. CN9->(DbSetOrder(1)) If CN9->(DbSeek(xFilial("CN9") + cCodCTR))//Posicionar na CN9 para realizar a inclusão /* <CtrCompets> retorna a lista de competências possíveis para o contrato, deve-se estar posicionado no contrato(CN9). O array é composto pelas competências no formato MM/AAAA, exemplo: { '05/2020', '06/2020', '07/2020' } O campo <CND_RCCOMP> recebe o índice desse vetor correspondente a competência à ser medida, porém o índice deve ser convertido para caractere. No exemplo acima, caso se deseje medir a competência '05/2020', cujo índice no vetor é um(1), deve-se passar o valor '1'(caractere) para o campo <CND_RCCOMP>. */ aCompets := CtrCompets() nCompet := aScan(aCompets, {|x| AllTrim(x) == '05/2020' }) oModel := FWLoadModel("CNTA121") oModel:SetOperation(MODEL_OPERATION_INSERT) If(oModel:CanActivate()) oModel:Activate() oModel:SetValue("CNDMASTER","CND_CONTRA" ,CN9->CN9_NUMERO) oModel:SetValue("CNDMASTER","CND_RCCOMP" , cValToChar(nCompet))//Selecionar competência oModel:SetValue("CXNDETAIL","CXN_CHECK" , .T.)//Marcar a planilha(nesse caso apenas uma) If (oModel:VldData()) /*Valida o modelo como um todo*/ oModel:CommitData() EndIf EndIf If(oModel:HasErrorMessage()) aMsgDeErro := oModel:GetErrorMessage() Else cNumMed := CND->CND_NUMMED oModel:DeActivate() lRet := CN121Encerr(.T.) //Realiza o encerramento da medição EndIf EndIf Return lRet
08. Estorno de uma medição
Estornando uma medição
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" User Function CNT121_007() Local cCodCTR := "CNTA121EXEMP007" Local cMedErro := "" Local lRet := .F. CND->(DbSetOrder(1)) If CND->(DbSeek(xFilial("CND") + cCodCTR))//Posicionar na CND para realizar o estorno CN121Estorn(.T.,/*lAprRev*/, @cMedErro) lRet := Empty(cMedErro) //Vazio caso nao ocorra nenhum erro EndIf Return lRet
09. Exclusão de uma medição
Excluindo uma medição
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" User Function CNT121_008() Local oModel := Nil Local cCodCTR := "CNTA121EXEMP008" Local aMsgDeErro:= {} Local lRet := .F. CND->(DbSetOrder(1)) If CND->(DbSeek(xFilial("CND") + cCodCTR))//Posicionar na CND para realizar a exclusão oModel := FWLoadModel("CNTA121") oModel:SetOperation(MODEL_OPERATION_DELETE) If(oModel:CanActivate()) oModel:Activate() If (oModel:VldData()) /*Valida o modelo como um todo*/ oModel:CommitData() EndIf EndIf lRet := !(oModel:HasErrorMessage()) If(!lRet) aMsgDeErro := oModel:GetErrorMessage() EndIf EndIf Return lRet
10. Inclusão medição com multa/bonificação por planilha
Inclusão medição com multa/bonificação por planilha
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" User Function CNT121_009() Local oModel := Nil Local cCodCTR := "CNTA121EXEMP009" Local cNumMed := "" Local aMsgDeErro:= {} Local lRet := .F. CN9->(DbSetOrder(1)) If CN9->(DbSeek(xFilial("CN9") + cCodCTR))//Posicionar na CN9 para realizar a inclusão oModel := FWLoadModel("CNTA121") oModel:SetOperation(MODEL_OPERATION_INSERT) If(oModel:CanActivate()) oModel:Activate() oModel:SetValue("CNDMASTER","CND_CONTRA" ,CN9->CN9_NUMERO) oModel:SetValue("CNDMASTER","CND_RCCOMP" ,"1")//Selecionar competência oModel:SetValue("CXNDETAIL","CXN_CHECK" , .T.)//Marcar a planilha(nesse caso apenas uma) oModel:GetModel('CNRDETAIL1'):GoLine(1)//<CNRDETAIL1> é o submodelo das multas da planilha(CXN) oModel:SetValue("CNRDETAIL1","CNR_TIPO" , '1')//1=Multa/2=Bonificação oModel:SetValue("CNRDETAIL1","CNR_DESCRI" , 'TESTE MULTA') oModel:SetValue("CNRDETAIL1","CNR_VALOR" , 100) oModel:GetModel('CNRDETAIL1'):AddLine() oModel:SetValue("CNRDETAIL1","CNR_TIPO" , '2')//1=Multa/2=Bonificação oModel:SetValue("CNRDETAIL1","CNR_DESCRI" , 'TESTE BONIFICACAO') oModel:SetValue("CNRDETAIL1","CNR_VALOR" , 101) If (oModel:VldData()) /*Valida o modelo como um todo*/ oModel:CommitData() EndIf EndIf If(oModel:HasErrorMessage()) aMsgDeErro := oModel:GetErrorMessage() Else cNumMed := CND->CND_NUMMED oModel:DeActivate() lRet := CN121Encerr(.T.) //Realiza o encerramento da medição EndIf EndIf Return lRet
11. Inclusão medição com multa/bonificação por item da planilha
Inclusão medição com multa/bonificação por item da planilha
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" User Function CNT121_010() Local oModel := Nil Local cCodCTR := "CNTA121EXEMP010" Local cNumMed := "" Local aMsgDeErro:= {} Local lRet := .F. CN9->(DbSetOrder(1)) If CN9->(DbSeek(xFilial("CN9") + cCodCTR))//Posicionar na CN9 para realizar a inclusão oModel := FWLoadModel("CNTA121") oModel:SetOperation(MODEL_OPERATION_INSERT) If(oModel:CanActivate()) oModel:Activate() oModel:SetValue("CNDMASTER","CND_CONTRA" ,CN9->CN9_NUMERO) oModel:SetValue("CNDMASTER","CND_RCCOMP" ,"1")//Selecionar competência oModel:SetValue("CXNDETAIL","CXN_CHECK" , .T.)//Marcar a planilha(nesse caso apenas uma) oModel:GetModel('CNEDETAIL'):GoLine(1)//Posiciona no item da medicao desejada oModel:GetModel('CNRDETAIL2'):GoLine(1)//<CNRDETAIL2> é o submodelo das multas dos itens da planilha(CNE) oModel:SetValue("CNRDETAIL2","CNR_TIPO" , '1')//1=Multa/2=Bonificação oModel:SetValue("CNRDETAIL2","CNR_DESCRI" , 'TESTE MULTA') oModel:SetValue("CNRDETAIL2","CNR_VALOR" , 100) oModel:GetModel('CNRDETAIL2'):AddLine() oModel:SetValue("CNRDETAIL2","CNR_TIPO" , '2')//1=Multa/2=Bonificação oModel:SetValue("CNRDETAIL2","CNR_DESCRI" , 'TESTE BONIFICACAO') oModel:SetValue("CNRDETAIL2","CNR_VALOR" , 101) If (oModel:VldData()) /*Valida o modelo como um todo*/ oModel:CommitData() EndIf EndIf If(oModel:HasErrorMessage()) aMsgDeErro := oModel:GetErrorMessage() Else cNumMed := CND->CND_NUMMED oModel:DeActivate() lRet := CN121Encerr(.T.) //Realiza o encerramento da medição EndIf EndIf Return lRet
12. Inclusão medição marcando todas as planilhas
Inclusão medição marcando todas as planilhas
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" User Function CNT121_011() Local oModel := Nil Local cCodCTR := "CNTA121EXEMP011" Local cNumMed := "" Local aMsgDeErro:= {} Local lRet := .F. Local nX := 0 CN9->(DbSetOrder(1)) If CN9->(DbSeek(xFilial("CN9") + cCodCTR))//Posicionar na CN9 para realizar a inclusão oModel := FWLoadModel("CNTA121") oModel:SetOperation(MODEL_OPERATION_INSERT) If(oModel:CanActivate()) oModel:Activate() oModel:SetValue("CNDMASTER","CND_CONTRA" ,CN9->CN9_NUMERO) oModel:SetValue("CNDMASTER","CND_RCCOMP" ,"1")//Selecionar competência For nX := 1 To oModel:GetModel("CXNDETAIL"):Length() //Marca todas as planilhas oModel:GetModel("CXNDETAIL"):GoLine(nX) oModel:SetValue("CXNDETAIL","CXN_CHECK" , .T.) Next nX If (oModel:VldData()) /*Valida o modelo como um todo*/ oModel:CommitData() EndIf EndIf If(oModel:HasErrorMessage()) aMsgDeErro := oModel:GetErrorMessage() Else cNumMed := CND->CND_NUMMED oModel:DeActivate() lRet := CN121Encerr(.T.) //Realiza o encerramento da medição EndIf EndIf Return lRet
13. Inclusão medição marcando planilhas específicas
Inclusão medição marcando planilhas específicas
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" User Function CNT121_012() Local oModel := Nil Local cCodCTR := "CNTA121EXEMP012" Local cNumMed := "" Local aMsgDeErro:= {} Local lRet := .F. CN9->(DbSetOrder(1)) If CN9->(DbSeek(xFilial("CN9") + cCodCTR))//Posicionar na CN9 para realizar a inclusão oModel := FWLoadModel("CNTA121") oModel:SetOperation(MODEL_OPERATION_INSERT) If(oModel:CanActivate()) oModel:Activate() oModel:SetValue("CNDMASTER","CND_CONTRA" ,CN9->CN9_NUMERO) oModel:SetValue("CNDMASTER","CND_RCCOMP" ,"1")//Selecionar competência //Marca planilha de acordo com a linha informada oModel:GetModel("CXNDETAIL"):GoLine(1) //Marca planilha 000001 oModel:SetValue("CXNDETAIL","CXN_CHECK" , .T.) oModel:GetModel("CXNDETAIL"):GoLine(2) //Marca planilha 000002 oModel:SetValue("CXNDETAIL","CXN_CHECK" , .T.) If (oModel:VldData()) /*Valida o modelo como um todo*/ oModel:CommitData() EndIf EndIf If(oModel:HasErrorMessage()) aMsgDeErro := oModel:GetErrorMessage() Else cNumMed := CND->CND_NUMMED oModel:DeActivate() lRet := CN121Encerr(.T.) //Realiza o encerramento da medição EndIf EndIf Return lRet
14. Inclusão medição com TES informada no item
Exemplo Inclusão medição com TES informada no item
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" User Function CNT121_013() Local oModel := Nil Local cCodCTR := "CNTA121EXEMP013" Local cNumMed := "" Local aMsgDeErro:= {} Local lRet := .F. CN9->(DbSetOrder(1)) If CN9->(DbSeek(xFilial("CN9") + cCodCTR))//Posicionar na CN9 para realizar a inclusão oModel := FWLoadModel("CNTA121") oModel:SetOperation(MODEL_OPERATION_INSERT) If(oModel:CanActivate()) oModel:Activate() oModel:SetValue("CNDMASTER","CND_CONTRA" ,CN9->CN9_NUMERO) oModel:SetValue("CNDMASTER","CND_RCCOMP" ,"1")//Selecionar competência oModel:SetValue("CXNDETAIL","CXN_CHECK" , .T.)//Marcar a planilha(nesse caso apenas uma) oModel:GetModel('CNEDETAIL'):GoLine(1) //Posiciona na linha desejada oModel:SetValue('CNEDETAIL', 'CNE_TES', '001')//Preenche TES - Este campo aceita tipo de entrada e saída. If (oModel:VldData()) /*Valida o modelo como um todo*/ oModel:CommitData() EndIf EndIf If(oModel:HasErrorMessage()) aMsgDeErro := oModel:GetErrorMessage() Else cNumMed := CND->CND_NUMMED oModel:DeActivate() lRet := CN121Encerr(.T.) //Realiza o encerramento da medição EndIf EndIf Return lRet
15. Inclusão de medição com múltiplas naturezas
Exemplo inclusão de medição com múltiplas naturezas
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" User Function CNT121_014() Local oModel := Nil Local cCodCTR := "CNTA121EXEMP014" Local cNumMed := "" Local aMsgDeErro:= {} Local lRet := .F. CN9->(DbSetOrder(1)) If CN9->(DbSeek(xFilial("CN9") + cCodCTR))//Posicionar na CN9 para realizar a inclusão oModel := FWLoadModel("CNTA121") oModel:SetOperation(MODEL_OPERATION_INSERT) If(oModel:CanActivate()) oModel:Activate() oModel:SetValue("CNDMASTER","CND_CONTRA" ,CN9->CN9_NUMERO) oModel:SetValue("CNDMASTER","CND_RCCOMP" ,"1")//Selecionar competência oModel:SetValue("CXNDETAIL","CXN_CHECK" , .T.)//Marcar a planilha(nesse caso apenas uma) /*CXO=Múltiplas naturezas | CXP = Distribuição das naturezas em CC*/ oModel:SetValue("CXODETAIL","CXO_ITEM", StrZero(1, Len(CXO->CXO_ITEM) )) oModel:SetValue("CXODETAIL","CXO_NATURE", 'GCT0000001') oModel:SetValue("CXODETAIL","CXO_PERC" , 50) oModel:SetValue("CXPDETAIL","CXP_ITEM" , StrZero(1, Len(CXP->CXP_ITEM) )) oModel:SetValue("CXPDETAIL","CXP_CC" , "GCT000001") oModel:SetValue("CXPDETAIL","CXP_CONTA" , "GCT00000000000000001") oModel:SetValue("CXPDETAIL","CXP_PERC" , 50) oModel:GetModel('CXPDETAIL'):AddLine() oModel:SetValue("CXPDETAIL","CXP_ITEM" , StrZero(2, Len(CXP->CXP_ITEM) )) oModel:SetValue("CXPDETAIL","CXP_CC" , "GCT000002") oModel:SetValue("CXPDETAIL","CXP_CONTA" , "GCT00000000000000002") oModel:SetValue("CXPDETAIL","CXP_PERC" , 50) oModel:GetModel('CXODETAIL'):AddLine() oModel:SetValue("CXODETAIL","CXO_ITEM" , StrZero(2, Len(CXO->CXO_ITEM) )) oModel:SetValue("CXODETAIL","CXO_NATURE", 'FIN0000001') oModel:SetValue("CXODETAIL","CXO_PERC" , 50) oModel:SetValue("CXPDETAIL","CXP_ITEM" , StrZero(1, Len(CXP->CXP_ITEM) )) oModel:SetValue("CXPDETAIL","CXP_CC" , "GCT000003") oModel:SetValue("CXPDETAIL","CXP_CONTA" , "GCT00000000000000003") oModel:SetValue("CXPDETAIL","CXP_ITEMCT", "GCT000001") oModel:SetValue("CXPDETAIL","CXP_CLVL" , "GCT000001") oModel:SetValue("CXPDETAIL","CXP_PERC" , 50) oModel:GetModel('CXPDETAIL'):AddLine() oModel:SetValue("CXPDETAIL","CXP_ITEM" , StrZero(2, Len(CXP->CXP_ITEM) )) oModel:SetValue("CXPDETAIL","CXP_CC" , "GCT000004") oModel:SetValue("CXPDETAIL","CXP_PERC" , 50) If (oModel:VldData()) /*Valida o modelo como um todo*/ oModel:CommitData() EndIf EndIf If(oModel:HasErrorMessage()) aMsgDeErro := oModel:GetErrorMessage() Else cNumMed := CND->CND_NUMMED oModel:DeActivate() lRet := CN121Encerr(.T.) //Realiza o encerramento da medição EndIf EndIf Return lRet
16. Inclusão de autorização de fornecimento
Exemplo Autorização de Fornecimento
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" User Function CNT121_015() Local oModel := Nil Local cCodCTR := "CNTA121EXEMP015" Local cNumMed := "" Local aMsgDeErro:= {} Local lRet := .F. CN9->(DbSetOrder(1)) If CN9->(DbSeek(xFilial("CN9") + cCodCTR))//Posicionar na CN9 para realizar a inclusão Cn121GAutF(.T., .T.) // Ativa o modo Autorização de Fornecimento(precisa ser antes do FwLoadModel) oModel := FWLoadModel("CNTA121") oModel:SetOperation(MODEL_OPERATION_INSERT) If(oModel:CanActivate()) oModel:Activate() oModel:SetValue("CNDMASTER","CND_CONTRA" ,CN9->CN9_NUMERO) oModel:SetValue("CNDMASTER","CND_RCCOMP" ,"1")//Selecionar competência oModel:SetValue("CXNDETAIL","CXN_CHECK" , .T.)//Marcar a planilha oModel:GetModel('CXNDETAIL'):GoLine(2) oModel:SetValue("CXNDETAIL","CXN_CHECK" , .T.) //Marca segunda planilha If (oModel:VldData()) /*Valida o modelo como um todo*/ oModel:CommitData() EndIf EndIf If(oModel:HasErrorMessage()) aMsgDeErro := oModel:GetErrorMessage() Else cNumMed := CND->CND_NUMMED oModel:DeActivate() lRet := CN121Encerr(.T.) //Realiza o encerramento da medição EndIf Cn121GAutF(.F., .T.)//Restaura propriedade do CNTA121 EndIf Return lRet
17. Inclusão de medição com desconto
Exemplo Medição com Desconto
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" User Function CNT121_016() Local oModel := Nil Local cCodCTR := "CNTA121EXEMP016" Local cNumMed := "" Local aMsgDeErro:= {} Local lRet := .F. Local oDescontos := Nil CN9->(DbSetOrder(1)) If CN9->(DbSeek(xFilial("CN9") + cCodCTR))//Posicionar na CN9 para realizar a inclusão oModel := FWLoadModel("CNTA121") oModel:SetOperation(MODEL_OPERATION_INSERT) If(oModel:CanActivate()) oModel:Activate() oModel:SetValue("CNDMASTER","CND_CONTRA" ,CN9->CN9_NUMERO) oModel:SetValue("CNDMASTER","CND_RCCOMP" ,"1")//Selecionar competência oModel:SetValue("CXNDETAIL","CXN_CHECK" , .T.)//Marcar a planilha oDescontos := oModel:GetModel("CNQDETAIL") oDescontos:SetValue("CNQ_TPDESC","0001")//Adiciona um desconto oDescontos:SetValue("CNQ_VALOR" ,100) oDescontos:AddLine() oDescontos:SetValue("CNQ_TPDESC","0002")//Adiciona um desconto oDescontos:SetValue("CNQ_VALOR" ,51) If (oModel:VldData()) /*Valida o modelo como um todo*/ oModel:CommitData() EndIf EndIf If(oModel:HasErrorMessage()) aMsgDeErro := oModel:GetErrorMessage() Else cNumMed := CND->CND_NUMMED oModel:DeActivate() lRet := CN121Encerr(.T.) //Realiza o encerramento da medição EndIf EndIf Return lRet
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas