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: Bloco de código |
---|
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: Campo | Valor |
---|
X3_ARQUIVO | CNB | X3_ORDEM | 79 [Modificar se necessário] | X3_CAMPO | CNB_NOMESC | X3_TIPO | C (Caractere) | X3_TAMANHO | 60 [Modificar se necessário] | X3_DECIMAL | 0 | X3_TITULO | Desc. Escala | X3_DESCRIC | Descrição da Escala | X3_PICTURE | @! | X3_VISUAL | V (Visualizar) | X3_CONTEXT | V (Virtual) | X3_VALID |
| X3_RELACAO | U_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) Campo | Valor |
---|
X7_CAMPO | CNB_PRODUT | X7_SEQUENC | 011 [Modificar se necessário] | X7_REGRA | U_RetEscal() | X7_CDOMIN | CNB_NOMESC | X7_TIPO | P | X7_SEEK | N |
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) |