Á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:Prestadores de Serviços
Função:teca850.prw - Assistente do Contrato
Ticket:9368673
Requisito/Story/Issue (informe o requisito relacionado) :DSERSGS-9016


02. SITUAÇÃO/REQUISITO

Ao gerar um contrato utilizando o Assistente de Contratos (TECA850) o sistema salva as informações do contrato no Orçamento apenas no término da operação, impedindo algumas customizações durante a geração do contrato.

03. SOLUÇÃO

As informações do contrato passam a ser salvas no orçamento antes da exibição da tela do Contrato (CNTA300)

04. DEMAIS INFORMAÇÕES


Exemplo de uso

Após aplicar esta atualização, é possível carregar informações do Orçamento na geração do contrato.

O exemplo a seguir demonstra como inserir a Descrição da Escala no contrato (apenas para orçamento desagrupado, MV_GSDSGCN = 1):



1) Crie um Ponto de Entrada com a seguinte função:

User Function RetEscal()
Local cRet := ""
Local cQry := GetNextAlias()
Local oModel := FwModelActive()
Local cContrt := ""
Local cRev := ""
Local cPlan := ""
Local cItemCNB := ""

If oModel:GetId() == 'CNTA300' .AND. oModel:GetModel("CNBDETAIL"):Length() > 0
    cPlan := FwFldGet("CNA_NUMERO")
    cRev := FwFldGet("CN9_REVISA")
    cContrt := FwFldGet("CN9_NUMERO")
    cItemCNB := FwFldGet("CNB_ITEM")

    BeginSQL Alias cQry
        SELECT TDW.TDW_DESC
        FROM %Table:TDW% TDW
        INNER JOIN %Table:TFF% TFF ON
            TDW.TDW_COD = TFF.TFF_ESCALA AND
            TFF.TFF_FILIAL = %xFilial:TFF% AND
            TFF.TFF_ITCNB = %Exp:cItemCNB% AND
            TFF.TFF_CONTRT = %Exp:cContrt% AND
            TFF.TFF_CONREV = %Exp:cRev% AND
            TFF.%NotDel%
        INNER JOIN %Table:TFL% TFL ON
            TFL.TFL_CODIGO = TFF.TFF_CODPAI AND
            TFF.TFF_FILIAL = TFL.TFL_FILIAL AND
            TFL.%NotDel% AND
            TFL.TFL_PLAN = %Exp:cPlan% AND
            TFL.TFL_CONTRT = %Exp:cContrt% AND
            TFL.TFL_CONREV = %Exp:cRev%
        WHERE TDW.TDW_FILIAL = %xFilial:TDW%
            AND TDW.%NotDel%
    EndSQL

    If !EMPTY((cQry)->TDW_DESC)
        cRet := Alltrim((cQry)->TDW_DESC)
    Else
        cRet := "Escala não configurada"
    EndIf

    (cQry)->(DbCloseArea())
EndIf
Return cRet

//--------------------------
// P.E. SetActivate CNTA300
//--------------------------

User Function CN300ACT()
Local aParam := PARAMIXB
Local oModel
Local oMdlCNB
Local oMdlCNA
Local aSaveLines
Local nX
local nY

If aParam <> NIL
    aSaveLines := FWSaveRows()
    oModel := aParam[1]
    oMdlCNB := oModel:GetModel("CNBDETAIL")
    oMdlCNA := oModel:GetModel("CNADETAIL")
    If oMdlCNB:CanUpdateLine() .AND. !oMdlCNA:isEmpty()
        For nX := 1 To oMdlCNA:Length()
            oMdlCNA:SetLine(nX)
            If !oMdlCNB:isEmpty()
                For nY := 1 To oMdlCNB:Length()
                    oMdlCNB:SetLine(nY)
                    oMdlCNB:LoadValue("CNB_NOMESC", U_RetEscal())
                Next nY
            EndIf
        Next nX
    EndIf
    FWRestRows(aSaveLines)
EndIf
Return .T.


2) Acesse o configurador e crie um novo campo Virtual na tabela dos Itens do Contrato (CNB) da seguinte maneira:

CampoValor
X3_ARQUIVOCNB
X3_ORDEM79 [Modificar se necessário]
X3_CAMPOCNB_NOMESC
X3_TIPOC (Caractere)
X3_TAMANHO60 [Modificar se necessário]
X3_DECIMAL0
X3_TITULODesc. Escala
X3_DESCRICDescrição da Escala
X3_PICTURE@!
X3_VISUALV (Visualizar)
X3_CONTEXTV (Virtual)
X3_VALID
X3_RELACAOU_RetEscal()
Obrigatório?Não
Usado?Sim


3) Ainda no configurador, será necessário criar um novo gatilho (SX7) para o campo Código do Produto (CNB_PRODUT) na tabela dos Itens do Contrato (CNB)

CampoValor
X7_CAMPOCNB_PRODUT
X7_SEQUENC011 [Modificar se necessário]
X7_REGRAU_RetEscal()
X7_CDOMINCNB_NOMESC
X7_TIPOP
X7_SEEKN


4) Inclua um Orçamento e gere o contrato. Verifique que o sistema passará a informar o novo campo conforme configurado, mesmo durante a geração do contrato (rotina Assistente de Contrato - TECA850)


05. ASSUNTOS RELACIONADOS