#INCLUDE 'TBICONN.CH'
#INCLUDE 'PROTHEUS.CH'
#INCLUDE 'FWMVCDEF.CH'
User Function MyExec094()
Local oModel094 := Nil //-- Objeto que recibirá el modelo de la MATA094
Local cNum := "000000000000001" //-- Recibe el número del documento que se evaluará
Local cTipo := "CT" //-- Recibe el tipo del documento que se evaluará
Local cAprov := "000003" //-- Recibe el código del aprobador del documento
Local cJustif := "Rechazo de contrato" //-- Recibe la justificación para rechazo
Local nLenSCR := 0 //-- Control de tamaño del campo del documento
Local lOk := .T. //-- Control de validación y commit
Local aErro := {} //-- Recibe msg de error de procesamiento
//-- Inicia el entorno
PREPARE ENVIRONMENT EMPRESA "01" FILIAL "01" USER "Administrador" PASSWORD "*" MODULO "COM"
nLenSCR := TamSX3("CR_NUM")[1] //-- Obtiene tamaño del campo CR_NUM
DbSelectArea("SCR")
SCR->(DbSetOrder(3)) //-- CR_FILIAL+CR_TIPO+CR_NUM+CR_APROV
If SCR->(DbSeek(xFilial("SCR") + cTipo + Padr(cNum, nLenSCR) + cAprov))
//-- Códigos de operaciones posibles:
//-- "001" // Liberado
//-- "002" // Revertir
//-- "003" // Superior
//-- "004" // Transferir Superior
//-- "005" // Rechazado
//-- "006" // Bloqueo
//-- "007" // Visualización
//-- Selecciona la operación de rechazo de documentos
A094SetOp('005')
//-- Carga el modelo de datos y selecciona la operación de aprobación (UPDATE)
oModel094 := FWLoadModel('MATA094')
oModel094:SetOperation( MODEL_OPERATION_UPDATE )
oModel094:Activate()
//-- Informa la justificación
oModel094:GetModel('FieldSCR'):SetValue('CR_OBS', cJustif)
//-- Valida el formulario
lOk := oModel094:VldData()
If lOk
//-- Si validó, graba el formulario
lOk := oModel094:CommitData()
EndIf
//-- Evalua errores
If !lOk
//-- Busca el Error del Modelo de Datos
aErro := oModel094:GetErrorMessage()
//-- Elabora el texto que se mostrará en la pantalla
AutoGrLog("Id del formulario de origen:" + ' [' + AllToChar(aErro[01]) + ']')
AutoGrLog("Id del campo de origen: " + ' [' + AllToChar(aErro[02]) + ']')
AutoGrLog("Id del formulario de error: " + ' [' + AllToChar(aErro[03]) + ']')
AutoGrLog("Id del campo de error: " + ' [' + AllToChar(aErro[04]) + ']')
AutoGrLog("Id del error: " + ' [' + AllToChar(aErro[05]) + ']')
AutoGrLog("Mensaje del error: " + ' [' + AllToChar(aErro[06]) + ']')
AutoGrLog("Mensaje de la solución:" + ' [' + AllToChar(aErro[07]) + ']')
AutoGrLog("Valor atribuido: " + ' [' + AllToChar(aErro[08]) + ']')
AutoGrLog("Valor anterior: " + ' [' + AllToChar(aErro[09]) + ']')
//-- Muestra el mensaje de error
MostraErro()
EndIf
//-- Desactiva el modelo de datos
oModel094:DeActivate()
Else
MsgInfo("Documento no encontrado!", "MyExec094")
EndIf
//-- Finaliza el entorno
RESET ENVIRONMENT
Return Nil
|