01. DADOS GERAIS
Produto: | TOTVS Prestadores de Serviços Terceirização
|
---|---|
Linha de Produto: | Linha Protheus |
Segmento: | Serviços |
Módulo: | Terceirização(SIGATEC) |
Função: | TECA740.PRW |
País: | Brasil |
Ticket: | Não há |
Requisito/Story/Issue (informe o requisito relacionado) : | DSERSGS-13292 |
02. SITUAÇÃO/REQUISITO
Ao informar uma data inicial no material de consumo é necessário que o calculo de pro-rata seja feito de forma manual e também a criação do cronograma de cobrança para o mesmo.
03. SOLUÇÃO
Implementado gatilho para realizar o calculo e a criação do cronograma de cobrança para essa competência.
Para a utilização da implementação será necessário a criação do gatilho de forma manual através do modulo Configurador(SIGACFG)
Crie o seguinte gatilho pelo configurador.
Campo | Conteúdo |
---|---|
Campo | TFH_PERINI |
Sequencia | 001 |
Cnt. Dominio | TFH_VLPRPA |
Tipo | Primário |
Regra | U_CalcVlMC() |
Posiciona | Não |
Condicao | U_CondVlMC() |
Importante
Essa implementação só será executada para contratos recorrentes(TFJ_CNTREC) e não terá efeito para itens extras.
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" User Function CalcVlMC() Local aAreaTFH := TFH->(GetArea()) // Salva area Local nDataIni := Day(dDataBase) Local nMes := Month(dDataBase) Local nAno := Year(dDataBase) Local dDataIniCtr := cTod("") Local dDataFimCtr := cTod("") Local cCompet := "" Local cCodTFJ := "" Local cCodTFH := "" Local nDataFim := 30 //Qtd de dias para calculo do Vlr dia. Local nValor := 0 Local nQtd := 0 Local nDtFimMes := Day(dDataBase) Local cCompetAnt := "" Local nMesAnt := 0 Local nAnoAnt := 0 Local oModel := FwModelActive() If IsInCallStack("AT870Antco") dDataIniCtr := PARAMIXB[1] dDataFimCtr := PARAMIXB[2] nDataIni := Day(dDataIniCtr) //dia de inicio do contrato nDtFimMes := Day(dDataFimCtr) // dia de fim do contrato nMes := Month(dDataIniCtr) nAno := Year(dDataIniCtr) cCodTFJ := PARAMIXB[3] nValor := PARAMIXB[4] // preço de venda do contrato nQtd := PARAMIXB[5] // preço de venda do contrato cCompetAnt := PARAMIXB[6] cCodTFH := PARAMIXB[7] Else dDataIniCtr := FwFldGet("TFH_PERINI") dDataFimCtr := FwFldGet("TFH_PERFIM") nDataIni := Day(dDataIniCtr) //dia de inicio do contrato nDtFimMes := Day(dDataFimCtr) // dia de fim do contrato nMes := Month(dDataIniCtr) nAno := Year(dDataIniCtr) cCodTFJ := FwFldGet("TFJ_CODIGO") nValor := FwFldGet("TFH_PRCVEN") // preço de venda do contrato nQtd := FwFldGet("TFH_QTDVEN") // preço de venda do contrato cCompetAnt := At740GtPer() cCodTFH := FwFldGet("TFH_COD") EndIf If !Empty(cCompetAnt) nMesAnt := Month(cCompetAnt) nAnoAnt := Year(cCompetAnt) If Len(cValToChar(nMesAnt)) == 1 cCompetAnt := "0" + cValToChar(nMesAnt) + "/" + cValToChar(nAnoAnt) Else cCompetAnt := cValToChar(nMesAnt) + "/" + cValToChar(nAnoAnt) EndIf EndIf If Len(cValToChar(nMes)) == 1 cCompet := "0" + cValToChar(nMes) + "/" + cValToChar(nAno) Else cCompet := cValToChar(nMes) + "/" + cValToChar(nAno) EndIf If Month(dDataFimCtr) == Month(dDataIniCtr) .And. Year(dDataFimCtr) == Year(dDataIniCtr) nValor := (nValor/nDataFim)*((nDtFimMes-nDataIni)+1) Else nValor := (nValor/nDataFim)*((nDataFim-nDataIni)+1) EndIf //Arredonda o valor nValor := nValor * nQtd nValor := Round(nValor,TamSX3("TFL_VLPRPA")[2]) //Atualiza o cronograma At740IAuto("TFH", cCodTFH, cCompet, nValor, cCodTFJ,cCompetAnt,nDataIni > 1) FWModelActive(oModel) RestArea(aAreaTFH) Return nValor User Function CondVlMC() Local lRet := .F. Local lIsRecorrente := FwFldGet("TFJ_CNTREC") == "1" Local lIsItenExtra := FwfldGet("TFH_COBCTR") == "2" //Só será executado para contratos recorrentes e não será executado para item extra If lIsRecorrente .And. !lIsItenExtra .AND. Day(FwFldGet("TFH_PERFIM")) != 1 lRet := .T. EndIf Return lRet
04. DEMAIS INFORMAÇÕES
Não há
05. ASSUNTOS RELACIONADOS
- Não há
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas