Árvore de páginas


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

CampoTFH_PERINI
Sequencia001
Cnt. Dominio

TFH_VLPRPA

TipoPrimário
RegraU_CalcVlMC()
PosicionaNão
CondicaoU_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á