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 ejecutado en la validación total del modelo. Parámetros recibidos: | Nombre | Tipo | Descripción |
---|
PARAMIXB[1] | O | Objeto del formulario o del modelo, conforme el caso | PARAMIXB[2] | C | ID del local de ejecución del punto de entrada. | PARAMIXB[3] | C | ID del formulario. |
| Respuesta: | Nombre | Tipo | Descripción |
---|
lRet | L | .T. indica que no hay errores. |
|
#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.
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
EndIf
EndIf
Return xRet
|
| Punto de entrada ejecutado antes de la alteración de cualquier campo de formulario. Parámetros recibidos: | Formulario. Nombre | Tipo | Descripción |
---|
PARAMIXB[1] | O | Objeto del formulario o del modelo, conforme el caso | PARAMIXB[2] | C | ID del local de ejecución del punto de entrada. | PARAMIXB[3] | C | ID del formulario. | PARAMIXB[4] | C | Acción de formulario. | PARAMIXB[5] | C | ID del Campo. | PARAMIXB[5] | C | Dato asignado al campo |
Grid. Nombre | Tipo | Descripción |
---|
PARAMIXB[1] | O | Objeto del formulario o del modelo, conforme el caso | PARAMIXB[2] | C | ID del local de ejecución del punto de entrada. | PARAMIXB[3] | C | ID del formulario. | PARAMIXB[4] | N | Número de línea de FWFORMGRID | PARAMIXB[5] | C | Acción del FWFORMGRID. | PARAMIXB[6] | C | ID del Campo. |
| Respuesta: | Nombre | Tipo | Descripción |
---|
lRet | L | "CANSETVALUE" - Indica si el campo puede ser editado. "SETVALUE" - Indica si el valor no puede ser atribuido. |
|
#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 == 'FORMPRE' //Ejecutado antes de la alteración de cualquier campo de formulario.
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
EndIf
EndIf
Return xRet
|
| Punto de entrada ejecutado en la validación total del formulario. Parámetros recibidos: | Nombre | Tipo | Descripción |
---|
PARAMIXB[1] | O | Objeto del formulario o del modelo, conforme el caso | PARAMIXB[2] | C | ID del local de ejecución del punto de entrada. | PARAMIXB[3] | C | ID del formulario. |
| Respuesta: | Nombre | Tipo | Descripción |
---|
lRet | L | En caso de que el formulario esté correcto retornar .T., si existen errores retornar .F. |
|
#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 == 'FORMPOS' //Validación total del formulario.
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
EndIf
EndIf
Return xRet
|
| Punto de entrada ejecutado antes de la alteración de cualquier campo de formulario. Parámetros recibidos: | Nombre | Tipo | Descripción |
---|
PARAMIXB[1] | O | Objeto del formulario o del modelo, conforme el caso | PARAMIXB[2] | C | ID del local de ejecución del punto de entrada. | PARAMIXB[3] | C | ID del formulario. | PARAMIXB[4] | N | Número de línea de FWFORMGRID | PARAMIXB[5] | C | Acción del FWFORMGRID. | PARAMIXB[6] | C | ID del Campo. |
| Respuesta: | Nombre | Tipo | Descripción |
---|
lRet | L | Indica si permite alterar la línea .T., en caso contrario .F. |
|
#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 == 'FORMLINEPRE' //Ejecutado antes de la alteración de una línea de formulário FWFORMGRID (Grid)
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
EndIf
EndIf
Return xRet
|
| Punto de entrada ejecutado al finalizar la edición de una línea. Parámetros recibidos: | Nombre | Tipo | Descripción |
---|
PARAMIXB[1] | O | Objeto del formulario o del modelo, conforme el caso | PARAMIXB[2] | C | ID del local de ejecución del punto de entrada. | PARAMIXB[3] | C | ID del Model. | PARAMIXB[4] | N | Número de línea. |
| Respuesta: | Nombre | Tipo | Descripción |
---|
lRet | L | Si el valor retornado es .T. si la línea no tiene errores, en caso de existir un error retornar .F. |
|
#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 == 'FORMLINEPOS' //Ejecutado al finalizar la edición de una línea de formulário FWFORMGRID (Grid). (Validación de línea)
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
|
#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
Puntos de entrada descontinuados.
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. |