Los puntos de entrada utilizados en las rutinas de documentos fiscales (MATA101N, MATA102N, MATA466N) no se encuentran disponibles dentro de las nuevas rutinas de documentos fiscales, sin embargo; por medio de los puntos de entrada padrón de MVC es posible realizar validaciones de datos en los documentos de entrada, como se ejemplifican la información a continuación.
Punto de entrada MVC | Descripción | |||||||||||||||||||||||||||||||||||||||||||||||||||||
MODELPOS | Punto de entrada ejecutado en la validación total del modelo.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||
FORMPRE | Punto de entrada ejecutado antes de la alteración de cualquier campo de formulario.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||
FORMPOS | Punto de entrada ejecutado en la validación total del formulario.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||
FORMLINEPRE | Punto de entrada ejecutado antes de la alteración de cualquier campo de formulario.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||
FORMLINEPOS | Punto de entrada ejecutado al finalizar la edición de una línea.
|
#INCLUDE 'protheus.ch' #INCLUDE 'FWMVCDEF.CH' User Function LOCXIN() Local aParam := PARAMIXB Local xRet := .T. Local oObj := '' Local cIdPonto := '' Local cIdModel := '' Local cAction := '' Local nLinha := 0 Local nX := 0 Local cIdCpo := 0 If aParam <> NIL oObj := aParam[1] cIdPonto := aParam[2] cIdModel := aParam[3] If cIdPonto == 'MODELPOS' //Validación total del modelo. /*aParam 1 O Objeto del formulário o de modelo, conforme sea el caso 2 C ID local de ejecución del punto de entrada 3 C ID de formulário*/ xRet := .T. If Empty(oObj:GetModel("SF1_MASTER"):GetValue("F1_TPVENT")) xRet := .F. Help( ,, "HELP",, "El campo F1_TPVENT debe ser informado.", 1, 0) EndIf For nX := 1 To oObj:GetModel("SD1_DETAIL"):Length() If Empty(oObj:GetModel("SD1_DETAIL"):GetValue("D1_CONTA", nX)) xRet := .F. Help( ,, "HELP",, "El campo D1_CONTA debe ser informado.", 1, 0) EndIf Next ElseIf cIdPonto == 'FORMPRE' //Ejecutado antes de la alteración de cualquier campo de formulario. //Formulario /*aParam 1 O Objeto del formulário o de modelo, conforme sea el caso 2 C ID local de ejecución del punto de entrada 3 C ID de formulário 4 C Acción de formulario 5 C Id del campo 6 C Dato asignado al campo*/ //Grid /*aParam 1 O Objeto del formulário o de modelo, conforme sea el caso 2 C ID local de ejecución del punto de entrada 3 C ID de formulário 4 N Número de línea de FWFORMGRID 5 C Acción de FWFORMGRID 6 C Id del campo*/ If cIdModel == "SF1_MASTER" cAction := aParam[4] cIdCpo := aParam[5] elseIf cIdModel == "SD1_DETAIL" cAction := aParam[5] cIdCpo := aParam[6] EndIf If cAction == "CANSETVALUE" If cIdCpo == "F1_LOJA" xRet := !Empty(oObj:GetValue("F1_FORNECE")) EndIf ElseIf cAction == "SETVALUE" If cIdCpo == "D1_CF" If Empty(oObj:GetValue("D1_TES")) xRet := .F. Help( ,, "HELP",, "Informe primero un TES", 1, 0) EndIf EndIf EndIf ElseIf cIdPonto == 'FORMPOS' //Validación total del formulario. /*aParam 1 O Objeto del formulário o de modelo, conforme sea el caso 2 C ID local de ejecución del punto de entrada 3 C ID de formulário*/ xRet := .T. If cIdModel == "SF1_MASTER" If Empty(oObj:GetValue("F1_TPVENT")) xRet := .F. Help( ,, "HELP",, "El campo F1_TPVENT debe ser informado.", 1, 0) EndIf ElseIf cIdModel == "SD1_DETAIL" For nX := 1 To oObj:Length() If Empty(oObj:GetValue("D1_CONTA", nX)) xRet := .F. Help( ,, "HELP",, "El campo D1_CONTA debe ser informado.", 1, 0) EndIf Next EndIf ElseIf cIdPonto == 'FORMLINEPRE' //Ejecutado antes de la alteración de una línea de formulário FWFORMGRID (Grid) /*aParam 1 O Objeto del formulário o de modelo, conforme sea el caso 2 C ID local de ejecución del punto de entrada 3 C ID de formulário 4 N Número de línea de FWFORMGRID 5 C Acción de FWFORMGRID 6 C Id del campo*/ If cIdModel == "SD1_DETAIL" cAction := aParam[5] nLinha := oObj:GetLine() If cAction == "DELETE" .and. nLinha == 1 xRet := .F. //Retorno de la validación. Help( ,, "HELP",, "No puede ser eliminada esta linea.", 1, 0) EndIf EndIf ElseIf cIdPonto == 'FORMLINEPOS' //Ejecutado al finalizar la edición de una línea de formulário FWFORMGRID (Grid). (Validación de línea) /*aParam 1 O Objeto del formulário o de modelo, conforme sea el caso 2 C ID local de ejecución del punto de entrada 3 C ID de formulário 4 N Número de línea de FWFORMGRID*/ If cIdModel == "SD1_DETAIL" nLinha := oObj:GetLine() If Empty(oObj:GetValue("D1_CC", nLinha)) Help( ,, "HELP",, "El campo D1_CC debe ser informado.", 1, 0) xRet := .F. //Retorno de la validación. EndIf EndIf EndIf EndIf Return xRet |
La función de usuario debe llamarse "LOCXIN", sin embargo; es importante que el nombre del fuente no sea "LOCXIN". Para más información verificar: Punto de entrada padrón MVC |
Los puntos de entrada citados a continuación no tienen funcionalidad dentro de las rutinas COMA221, COMA222, COMA223, COMA224.
Punto de entrada | Descripción |
---|---|
LOCXPE4| MT100GRV | Punto de entrada pre grabación de la nota. |
LOCXPE5 | Punto de entrada post grabación del libro fiscal. |
LOCXPE6 | A103VLR | Punto de entrada para alterar valor total de la nota para base de calculo de los titulos. |
LOCXPE7 | GQREENTR | Punto de entrada para integración con Celerina. |
LOCXPE8 | M466SF1 | Punto de entrada post grabación de enecabezado. |
LOCXPE9 | Punto de entrada post grabaciones de campos del encabezado. |
LOCXPE11 | A466CRTO | Punto de entrada post grabaciones finalizada la transacción. |
LOCXPE13 | Punto de entrada para alterar cantidad de la segunda unidad de medida. |
LOCXPE14 | M466SD1 | Punto de entrada post actualizaciones de cada item. |
LOCXPE15 | Punto de entrada para ejecutar rdmakes para tratamiento especifico. |
LOCXPE16 | MT100TOK | Punto de entrada para incluir validaciones en el tudook. |
LOCXPE17 | MT100LOK | Punto de entrada para agregar validaciones de linea. |
LOCXPE19 | A100F4CP | Punto de entrada para notas de entrada que no sea devoluciones para agregar teclas. |
LOCXPE24 | M460NUM | Punto de entrada para numeración de NF. |
LOCXPE30 | Punto de entrada para colocar campos obligatorios. |
LOCXPE37 | Punto de entrada post grabación de SE1/SE2. |
LOCXPE38 | Punto de entrada post grabación de SE1/SE2. |
LOCXPE45 | M101SER | Punto de entrada para alterar serie de NF. |
LOCXPE62 | Punto de entrada para fecha de emisión. |
LOCXPE68 | Punto de entrada para manipular los valores de costo de entrada en las monedas. |
LOCXPE72 | Punto de entrada para incluir campos de usuario al encabezado del documento. |
LOCXPE74 | Punto de entrada para permitir alterar la provincia de entrega. |
A103CND2 | Punto de entrada para alterar condición de pago. |
LXHORANFIS | Punto de entrada para ajustar valor del campo F1_HORA. |
LOCXDREM | Punto de entrada para descripción del Remito. |
M100L001 | Punto de entrada para actualizar la tasa en las tablas fiscales. |
MAGENTE | Punto de entrada para verificar si es agente de percepción de IVA. |