Línea de producto: | Microsiga Protheus |
Segmento: | Servicios |
Módulo: | Financeiro |
Punto de entrada: | FINM010, FINM020 |
Requisito (ISSUE): | DSERFINR-660 DSERFINR-2195 DSERFINP-1307 |
País(es): | Todos |
Base(s) de datos: | Todos |
Sistema(s) operativo(s): | Todos |
Versiones/Release: | 12 |
Función: | FINM010, FINM020 |
Devolución: | lRet |
A partir de la versión 12, los puntos de entrada que manejan la tabla SE5 se descontinuarán debido al cambio de las rutinas de grabación de la SE5 a la MVC y grabación de las tablas del grupo FK.
En el estándar MVC tenemos un único punto de entrada y este se llama en varios momentos dentro del fuente estándar. Su acción se determinará por su ID de ejecución.
FINM010 es el modelo de datos de la Baja por cobrar y, por lo tanto, es el punto de entrada utilizado por rutinas que realizan este tipo de operación. FINM020 es el modelo de datos de la Baja por Pagar y, por lo tanto, es el punto de entrada utilizado por rutinas que realizan este tipo de operación.
El momento de su ejecución se definirá según el ID de ejecución utilizado.
Para grabar los registros auxiliares (multa, intereses, descuento) estos puntos de entrada no servirán para la GRABACIÓN EN LA TABLA SE5. Este sirve solamente para la grabación del registro principal de la baja. Se debe analizar puntualmente el punto de entrada que servirá para la necesidad deseada.
Para más informaciones sobre la reestruturación de las tablas SE5, que se descontinuará, verifique el siguiente enlace.
Documentação sobre pontos de entrada em MVC:
http://tdn.totvs.com/display/public/mp/Pontos+de+Entrada+para+fontes+Advpl+desenvolvidos+utilizando+o+conceito+MVC
Documentación sobre reestruturación de la tabla SE5:
http://tdn.totvs.com/pages/releaseview.action?pageId=183730415
Documentación sobre Puntos de Entrada para grabar datos complementarios de la baja:
SE5FI070 - Grabación de datos complementarios de la tabla SE5 CR
F80GRVFK - Punto de entrada para grabar datos complementarios de la baja
SE5FI080 - Punto de entrada para grabar datos complementarios de la baja
F080ACONT - Complemento de baja por pagar
SE3F070 - Tratamiento complementario de la baja por cobrar
Ejemplo de grabación de las FK y SE5:
Importante: Si desea utilizar este ejemplo para Movimientos bancarios por pagar, simplemente sustituya el submodelo y el prefijo de los campos de la tabla FK1 (FK1DETAIL, FK1_TPDOC) por el submodelo y el prefijo de los campos de la tabla FK2 (FK2DETAIL, FK2_TPDOC)
#Include 'Protheus.ch'
#Include 'FWMVCDEF.ch'
User Function FINM010()
Local aParam := PARAMIXB
Local lRet := .T.
Local oSubFK1 := ''
Local cIdPonto := ''
Local cIdModel := ''
If aParam <> NIL
oSubFK1 := aParam[1] //Objeto del formulario o del modelo, según el caso
cIdPonto := aParam[2] //ID del lugar de ejecución del punto de entrada
cIdModel := aParam[3] //ID del formulario
If cIdPonto == 'FORMPOS'
If cIdPonto == 'FORMPOS'
If cIdModel == 'FK1DETAIL'
oSubFK1:SetValue( "FK1_HISTOR", 'PUNTO DE ENTRADA EN MVC' )
EndIf
If cIdModel == 'FK5DETAIL'
oSubFK1:SetValue( "FK5_HISTOR", 'PUNTO DE ENTRADA EN MVC' )
EndIf
EndIf
EndIf
EndIf
Return lRet
Los datos grabados en las tablas FK se copian automáticamente a la tabla SE5, si es necesario realizar la grabación de un campo de la SE5 que no tiene un campo correspondiente en las tablas FK, es necesario informar el atributo "E5_CAMPOS" del modelo de datos para realizar la grabación en la tabla SE5. Los campos informados en este atributo se grabarán directamente en la SE5.
Ejemplo:
#Include 'Protheus.ch'
#Include 'FWMVCDEF.ch'
User Function FINM010()
Local aParam := PARAMIXB
Local lRet := .T.
Local oModParam := ''
Local oModelBxR := ''
Local cIdPonto := ''
Local cIdModel := ''
Local oFK8 := Nil
Local oFKA := Nil
Local cCamposE5 := ''
If aParam <> NIL
oModParam := aParam[1] //Objeto del formulario o del modelo, según el caso
cIdPonto := aParam[2] //ID del lugar de ejecución del punto de entrada
cIdModel := aParam[3] //ID del formulario
If cIdPonto == 'FORMPOS'
If cIdModel == 'FK5DETAIL'
oModelBxR := oModParam:GetModel()
oFK8 := oModelBxR:GetModel( "FK8DETAIL" )
oFKA := oModelBxR:GetModel( "FKADETAIL" )
cCamposE5 := AllTrim(oModelBxR:GetValue('MASTER', 'E5_CAMPOS'))
If !Empty(cCamposE5)
cCamposE5 := Left( cCamposE5, Len(cCamposE5) -1 )
cCamposE5 += ",{ 'E5_CCD', '000000001'}"
cCamposE5 += ",{ 'E5_CCC', '000000002'}}"
Else
cCamposE5 := "{{ 'E5_CCD', '000000001'}"
cCamposE5 += ",{ 'E5_CCC', '000000002'}}"
EndIf
oModelBxR:SetValue( "MASTER","E5_CAMPOS",cCamposE5 ) // Informando el atributo "E5_CAMPOS"
oFK8:SetValue( "FK8_CCD", '000000001' )
oFK8:SetValue( "FK8_CCC", '000000002' )
oFK8:SetValue( "FK8_IDMOV", oFKA:GetValue('FKA_IDORIG') )
EndIf
EndIf
EndIf
Return lRet
Ejemplo do uso del punto de entrada que modifica las tablas FK5(Movimiento bancario) y FK6(Valores adicionales - Multa, intereses, descuento, etc.)
User Function FINM010()
Local aParam := PARAMIXB
Local lRet := .T.
Local oSubModel := ''
Local cIdPonto := ''
Local cIdModel := ''
Local cCamposE5 := ''
Local oModelBx := ''
If aParam <> NIL
oSubModel := aParam[1] //Objeto del formulario o del modelo, según el caso
cIdPonto := aParam[2] //ID del lugar de ejecución del punto de entrada
cIdModel := aParam[3] //ID del formulario
If cIdPonto == 'FORMPOS' // En la validación total del formulario.
If cIdModel == 'FK1DETAIL' //Validación del formulario FK1
If "VL" $ oSubModel:GetValue("FK1_TPDOC") //Condición para modificar la grabación
oSubModel:SetValue( "FK1_HISTOR", 'P.E. EM MVC,BAIXA FK1' ) // Nuevos valores
EndIF
ElseIf cIdModel == 'FK6DETAIL' //Validación del formulario FK6
If "DC" $ oSubModel:GetValue("FK6_TPDOC")
oSubModel:SetValue( "FK6_HISTOR", 'P.E. EM MVC,DESCONTO' )
EndIf
ElseIf cIdModel == 'FK5DETAIL' //Validación del formulario FK5
If "VL" $ oSubModel:GetValue("FK5_TPDOC") //Condición para modificar la grabación
oSubModel:SetValue( "FK5_HISTOR", 'P.E. EM MVC,BAIXA FK5' ) // Nuevos valores
EndIF
EndIf
EndIf
EndIf
Return lRet