- Criado por Raul Ortiz Medina, última alteração em 10 abr, 2024
6.1 PROCESO DE IMPLEMENTACIÓN
Para la ejecución de las rutinas de forma automática, es necesario utilizar el modelo definido para el documento de entrada.
En el modelo del documento fiscal, se definen todos los campos de la tablas de Encabezado de documentos de entrada(SF1) y Items de documentos de entrada (SD1).
Importante
Es importante que al momento de informar los valores en el modelo, se indiquen solo las propiedades que pertenecen al país donde se vaya a ejecutar el "Commit" del modelo, ya que si se informan algún otro campo que no existe para dicho país se detonará error en la ejecución.
- Compilar la rutina que contenga la Función de Usuario con el ExecAuto a la rutina Modelo del documento de entrada.
- En el módulo Configurador (SIGACFG) desde el menú Entorno| Archivos | Menú (CFGX013)
- Incluir en el menú la rutina para generación del documento por medio de rutina automática.
- Ir al menú donde se agregó la rutina con la Función de Usuario y ejecutar el proceso.
- Una vez finalizado, verificar la grabación correcta del recibo de cobro.
6.2 EJEMPLO DE UTILIZACIÓN
A continuación se muestran algunos ejemplos para ejecutar las operaciones de INSERT, DELETE del modelo.
En el modelo de los documentos fiscales de entrada, existen los siguientes grid para informar los datos del documento:
SF1_MASTER - Grid para informar los datos del encabezado (SF1).
SD1_DETAIL - Grid para informar los datos de los items (SD1).
Static Function LOCX60AUTO() Local oMdlTab Local aError := {} Local cMsj := "Registrado con éxito." Local cFornece := "000001" Local cLoja := "01" Local cDoc := "090420240001" Local cSerie := "R" SetFunName("COMA221") // Se define el modelo LOCX60 oMdlTab := FwLoadModel("LOCX60") // Se define la operación INSERT en el modelo oMdlTab:SetOperation(MODEL_OPERATION_INSERT) // Se activa el modelo oMdlTab:Activate() //Encabezado - SF1 oMdlTab:SetValue('SF1_MASTER', "F1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SF1_MASTER', "F1_FORNECE" , cFornece ) oMdlTab:SetValue('SF1_MASTER', "F1_LOJA" , cLoja ) oMdlTab:SetValue('SF1_MASTER', "F1_DOC" , cDoc) oMdlTab:SetValue('SF1_MASTER', "F1_SERIE" , cSerie) oMdlTab:SetValue('SF1_MASTER', "F1_EMISSAO" , dDataBase) oMdlTab:SetValue('SF1_MASTER', "F1_MOEDA" , 1) oMdlTab:SetValue('SF1_MASTER', "F1_PROVENT" , "BA" ) oMdlTab:SetValue('SF1_MASTER', "F1_FRETE" , 100 ) oMdlTab:SetValue('SF1_MASTER', "F1_SEGURO " , 200 ) oMdlTab:SetValue('SF1_MASTER', "F1_DESPESA" , 300 ) oMdlTab:SetValue('SF1_MASTER', "F1_DESCONT" , 200 ) //Detalle Items - SD1 oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM" , "0001" ) oMdlTab:SetValue('SD1_DETAIL', "D1_COD" , "000001" ) oMdlTab:SetValue('SD1_DETAIL', "D1_DOC" , cDoc) oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT" , 1) oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TES" , "001") oMdlTab:SetValue('SD1_DETAIL', "D1_CF" , "112") oMdlTab:GetModel('SD1_DETAIL' ):AddLine() oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM" , "0002" ) oMdlTab:SetValue('SD1_DETAIL', "D1_COD" , "000002" ) oMdlTab:SetValue('SD1_DETAIL', "D1_DOC" , cDoc) oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT" , 1) oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TES" , "001") oMdlTab:SetValue('SD1_DETAIL', "D1_CF" , "112") //Se ejecuta el commit If oMdlTab:VldData() // Se detonan las validaciones del modelo // Si pasa las validaciones, se ejecutara el CommitData del modelo para guardar los datos. oMdlTab:CommitData() Endif // Se obtienen los errores del modelo aError := oMdlTab:GetErrorMessage() If alltrim(aError[6]) <> "" cMsj := aError[6] Endif ConOut("Mensaje de proceso: " + cMsj) oMdlTab:DeActivate() Return
#INCLUDE 'protheus.ch' User Function LOCX60AUTO() Local oMdlTab Local cMsj := "Registro borrado con éxito." SetFunName("COMA221") oMdlTab := FwLoadModel("LOCX60") DbSelectArea("SF1") SF1->(DbSetOrder(1)) //F1_FILIAL+F1_DOC+F1_SERIE+F1_FORNECE+F1_LOJA+F1_TIPO If SF1->(MsSeek(xFilial("SF1") + "090420240001" + "R " + "000001" + "01" + "N",.T.)) oMdlTab:SetOperation(MODEL_OPERATION_DELETE) oMdlTab:Activate() If oMdlTab:VldData() oMdlTab:CommitData() Endif EndIf aError := oMdlTab:GetErrorMessage() If alltrim(aError[6]) <> "" cMsj := aError[6] Endif CONOUT("Mensaje de proceso: "+cMsj) oMdlTab:DeActivate() Return
Personalizaciones
Para los países de México, Colombia, Paraguay y Perú se debe considerar el nombre que actualmente se tiene en el menú "Movimientos": Remisión, para EUA y Republica Dominicana: Conduce, para el país de Chile : Guía de Despacho, para el país de Ecuador: Form. de Recepción y para el resto debe ser Remito de Entrada.
UserFunction LOCX10AUTO() Local oMdlTab Local aError := {} Local cMsj := "Registrado con éxito." Local cFornece := "000025" Local cLoja := "01" Local cDoc := "090420240002" Local cSerie := "A" SetFunName("COMA222") // Se define el modelo LOCX10 oMdlTab := FwLoadModel("LOCX10") // Se define la operación INSERT en el modelo oMdlTab:SetOperation(MODEL_OPERATION_INSERT) // Se activa el modelo oMdlTab:Activate() //Encabezado - SF1 oMdlTab:SetValue('SF1_MASTER', "F1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SF1_MASTER', "F1_FORNECE" , cFornece ) oMdlTab:SetValue('SF1_MASTER', "F1_LOJA" , cLoja ) oMdlTab:SetValue('SF1_MASTER', "F1_DOC" , cDoc) oMdlTab:SetValue('SF1_MASTER', "F1_SERIE" , cSerie) oMdlTab:SetValue('SF1_MASTER', "F1_EMISSAO" , dDataBase) oMdlTab:SetValue('SF1_MASTER', "F1_MOEDA" , 1) oMdlTab:SetValue('SF1_MASTER', "F1_PROVENT" , "BA" ) oMdlTab:SetValue('SF1_MASTER', "F1_COND" , "001" ) oMdlTab:SetValue('SF1_MASTER', "F1_FRETE" , 100 ) oMdlTab:SetValue('SF1_MASTER', "F1_SEGURO " , 200 ) oMdlTab:SetValue('SF1_MASTER', "F1_DESPESA" , 300 ) oMdlTab:SetValue('SF1_MASTER', "F1_DESCONT" , 200 ) //Detalle Items - SD1 oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM" , "0001" ) oMdlTab:SetValue('SD1_DETAIL', "D1_COD" , "000001" ) oMdlTab:SetValue('SD1_DETAIL', "D1_DOC" , cDoc) oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT" , 1) oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TES" , "175") oMdlTab:SetValue('SD1_DETAIL', "D1_CF" , "112") oMdlTab:GetModel('SD1_DETAIL' ):AddLine() oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM" , "0002" ) oMdlTab:SetValue('SD1_DETAIL', "D1_COD" , "000002" ) oMdlTab:SetValue('SD1_DETAIL', "D1_DOC" , cDoc) oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT" , 1) oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TES" , "175") oMdlTab:SetValue('SD1_DETAIL', "D1_CF" , "112") oMdlTab:GetModel('SD1_DETAIL' ):AddLine() oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM" , "0003" ) oMdlTab:SetValue('SD1_DETAIL', "D1_COD" , "000003" ) oMdlTab:SetValue('SD1_DETAIL', "D1_DOC" , cDoc) oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT" , 1) oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TES" , "175") oMdlTab:SetValue('SD1_DETAIL', "D1_CF" , "112") //Se ejecuta el commit If oMdlTab:VldData() // Se detonan las validaciones del modelo // Si pasa las validaciones, se ejecutara el CommitData del modelo para guardar los datos. oMdlTab:CommitData() Endif // Se obtienen los errores del modelo aError := oMdlTab:GetErrorMessage() If alltrim(aError[6]) <> "" cMsj := aError[6] Endif ConOut("Mensaje de proceso: " + cMsj) oMdlTab:DeActivate() Return
Static Function LOCX10AUTO() Local oMdlTab Local aError := {} Local cMsj := "Registrado con éxito." Local cFornece := "000025" Local cLoja := "01" Local cDoc := "090420240003" Local cSerie := "A" SetFunName("COMA222") // Se define el modelo LOCX10 oMdlTab := FwLoadModel("LOCX10") // Se define la operación INSERT en el modelo oMdlTab:SetOperation(MODEL_OPERATION_INSERT) // Se activa el modelo oMdlTab:Activate() //Encabezado - SF1 oMdlTab:SetValue('SF1_MASTER', "F1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SF1_MASTER', "F1_FORNECE" , cFornece ) oMdlTab:SetValue('SF1_MASTER', "F1_LOJA" , cLoja ) oMdlTab:SetValue('SF1_MASTER', "F1_DOC" , cDoc) oMdlTab:SetValue('SF1_MASTER', "F1_SERIE" , cSerie) oMdlTab:SetValue('SF1_MASTER', "F1_EMISSAO" , dDataBase) oMdlTab:SetValue('SF1_MASTER', "F1_MOEDA" , 2) oMdlTab:SetValue('SF1_MASTER', "F1_TXMOEDA" , 10) oMdlTab:SetValue('SF1_MASTER', "F1_PROVENT" , "BA" ) oMdlTab:SetValue('SF1_MASTER', "F1_COND" , "001" ) oMdlTab:SetValue('SF1_MASTER', "F1_FRETE" , 100 ) oMdlTab:SetValue('SF1_MASTER', "F1_SEGURO " , 200 ) oMdlTab:SetValue('SF1_MASTER', "F1_DESPESA" , 300 ) oMdlTab:SetValue('SF1_MASTER', "F1_DESCONT" , 200 ) //Detalle Items - SD1 oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM" , "0001" ) oMdlTab:SetValue('SD1_DETAIL', "D1_COD" , "000001" ) oMdlTab:SetValue('SD1_DETAIL', "D1_DOC" , cDoc) oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT" , 1) oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TES" , "175") oMdlTab:SetValue('SD1_DETAIL', "D1_CF" , "112") oMdlTab:GetModel('SD1_DETAIL' ):AddLine() oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM" , "0002" ) oMdlTab:SetValue('SD1_DETAIL', "D1_COD" , "000002" ) oMdlTab:SetValue('SD1_DETAIL', "D1_DOC" , cDoc) oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT" , 1) oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TES" , "175") oMdlTab:SetValue('SD1_DETAIL', "D1_CF" , "112") oMdlTab:GetModel('SD1_DETAIL' ):AddLine() oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM" , "0003" ) oMdlTab:SetValue('SD1_DETAIL', "D1_COD" , "000003" ) oMdlTab:SetValue('SD1_DETAIL', "D1_DOC" , cDoc) oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT" , 1) oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TES" , "175") oMdlTab:SetValue('SD1_DETAIL', "D1_CF" , "112") //Se ejecuta el commit If oMdlTab:VldData() // Se detonan las validaciones del modelo // Si pasa las validaciones, se ejecutara el CommitData del modelo para guardar los datos. oMdlTab:CommitData() Endif // Se obtienen los errores del modelo aError := oMdlTab:GetErrorMessage() If alltrim(aError[6]) <> "" cMsj := aError[6] Endif ConOut("Mensaje de proceso: " + cMsj) oMdlTab:DeActivate() Return
#INCLUDE 'protheus.ch' User Function LOCX10AUTO() Local oMdlTab Local cMsj := "Registro borrado con éxito." SetFunName("COMA222") oMdlTab := FwLoadModel("LOCX10") DbSelectArea("SF1") SF1->(DbSetOrder(1)) //F1_FILIAL+F1_DOC+F1_SERIE+F1_FORNECE+F1_LOJA+F1_TIPO If SF1->(MsSeek(xFilial("SF1") + "090420240002" + "A " + "000025" + "01" + "N",.T.)) oMdlTab:SetOperation(MODEL_OPERATION_DELETE) oMdlTab:Activate() If oMdlTab:VldData() oMdlTab:CommitData() Endif EndIf aError := oMdlTab:GetErrorMessage() If alltrim(aError[6]) <> "" cMsj := aError[6] Endif CONOUT("Mensaje de proceso: "+cMsj) oMdlTab:DeActivate() Return
#INCLUDE 'protheus.ch' UserFunction LOCX09AUTO() Local oMdlTab Local aError := {} Local cMsj := "Registrado con éxito." Local cFornece := "000025" Local cLoja := "01" Local cDoc := "090420240004" Local cSerie := "A" SetFunName("COMA223") // Se define el modelo LOCX09 oMdlTab := FwLoadModel("LOCX09") // Se define la operación INSERT en el modelo oMdlTab:SetOperation(MODEL_OPERATION_INSERT) // Se activa el modelo oMdlTab:Activate() //Encabezado - SF1 oMdlTab:SetValue('SF1_MASTER', "F1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SF1_MASTER', "F1_FORNECE" , cFornece ) oMdlTab:SetValue('SF1_MASTER', "F1_LOJA" , cLoja ) oMdlTab:SetValue('SF1_MASTER', "F1_DOC" , cDoc) oMdlTab:SetValue('SF1_MASTER', "F1_SERIE" , cSerie) oMdlTab:SetValue('SF1_MASTER', "F1_EMISSAO" , dDataBase) oMdlTab:SetValue('SF1_MASTER', "F1_MOEDA" , 1) oMdlTab:SetValue('SF1_MASTER', "F1_PROVENT" , "BA" ) oMdlTab:SetValue('SF1_MASTER', "F1_COND" , "001" ) oMdlTab:SetValue('SF1_MASTER', "F1_FRETE" , 100 ) oMdlTab:SetValue('SF1_MASTER', "F1_SEGURO " , 200 ) oMdlTab:SetValue('SF1_MASTER', "F1_DESPESA" , 300 ) oMdlTab:SetValue('SF1_MASTER', "F1_DESCONT" , 200 ) //Detalle Items - SD1 oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM" , "0001" ) oMdlTab:SetValue('SD1_DETAIL', "D1_COD" , "000001" ) oMdlTab:SetValue('SD1_DETAIL', "D1_DOC" , cDoc) oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT" , 1) oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TES" , "175") oMdlTab:SetValue('SD1_DETAIL', "D1_CF" , "112") oMdlTab:GetModel('SD1_DETAIL' ):AddLine() oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM" , "0002" ) oMdlTab:SetValue('SD1_DETAIL', "D1_COD" , "000002" ) oMdlTab:SetValue('SD1_DETAIL', "D1_DOC" , cDoc) oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT" , 1) oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TES" , "175") oMdlTab:SetValue('SD1_DETAIL', "D1_CF" , "112") oMdlTab:GetModel('SD1_DETAIL' ):AddLine() oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM" , "0003" ) oMdlTab:SetValue('SD1_DETAIL', "D1_COD" , "000003" ) oMdlTab:SetValue('SD1_DETAIL', "D1_DOC" , cDoc) oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT" , 1) oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TES" , "175") oMdlTab:SetValue('SD1_DETAIL', "D1_CF" , "112") //Se ejecuta el commit If oMdlTab:VldData() // Se detonan las validaciones del modelo // Si pasa las validaciones, se ejecutara el CommitData del modelo para guardar los datos. oMdlTab:CommitData() Endif // Se obtienen los errores del modelo aError := oMdlTab:GetErrorMessage() If alltrim(aError[6]) <> "" cMsj := aError[6] Endif ConOut("Mensaje de proceso: " + cMsj) oMdlTab:DeActivate() Return
#INCLUDE 'protheus.ch' User Function LOCX09AUTO() Local oMdlTab Local aError := {} Local cMsj := "Registrado con éxito." Local cFornece := "000025" Local cLoja := "01" Local cDoc := "090420240005" Local cSerie := "A" SetFunName("COMA223") // Se define el modelo LOCX09 oMdlTab := FwLoadModel("LOCX09") // Se define la operación INSERT en el modelo oMdlTab:SetOperation(MODEL_OPERATION_INSERT) // Se activa el modelo oMdlTab:Activate() //Encabezado - SF1 oMdlTab:SetValue('SF1_MASTER', "F1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SF1_MASTER', "F1_FORNECE" , cFornece ) oMdlTab:SetValue('SF1_MASTER', "F1_LOJA" , cLoja ) oMdlTab:SetValue('SF1_MASTER', "F1_DOC" , cDoc) oMdlTab:SetValue('SF1_MASTER', "F1_SERIE" , cSerie) oMdlTab:SetValue('SF1_MASTER', "F1_EMISSAO" , dDataBase) oMdlTab:SetValue('SF1_MASTER', "F1_MOEDA" , 2) oMdlTab:SetValue('SF1_MASTER', "F1_TXMOEDA" , 10) oMdlTab:SetValue('SF1_MASTER', "F1_PROVENT" , "BA" ) oMdlTab:SetValue('SF1_MASTER', "F1_COND" , "001" ) oMdlTab:SetValue('SF1_MASTER', "F1_FRETE" , 100 ) oMdlTab:SetValue('SF1_MASTER', "F1_SEGURO " , 200 ) oMdlTab:SetValue('SF1_MASTER', "F1_DESPESA" , 300 ) oMdlTab:SetValue('SF1_MASTER', "F1_DESCONT" , 200 ) //Detalle Items - SD1 oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM" , "0001" ) oMdlTab:SetValue('SD1_DETAIL', "D1_COD" , "000001" ) oMdlTab:SetValue('SD1_DETAIL', "D1_DOC" , cDoc) oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT" , 1) oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TES" , "175") oMdlTab:SetValue('SD1_DETAIL', "D1_CF" , "112") oMdlTab:GetModel('SD1_DETAIL' ):AddLine() oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM" , "0002" ) oMdlTab:SetValue('SD1_DETAIL', "D1_COD" , "000002" ) oMdlTab:SetValue('SD1_DETAIL', "D1_DOC" , cDoc) oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT" , 1) oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TES" , "175") oMdlTab:SetValue('SD1_DETAIL', "D1_CF" , "112") oMdlTab:GetModel('SD1_DETAIL' ):AddLine() oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM" , "0003" ) oMdlTab:SetValue('SD1_DETAIL', "D1_COD" , "000003" ) oMdlTab:SetValue('SD1_DETAIL', "D1_DOC" , cDoc) oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT" , 1) oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TES" , "175") oMdlTab:SetValue('SD1_DETAIL', "D1_CF" , "112") //Se ejecuta el commit If oMdlTab:VldData() // Se detonan las validaciones del modelo // Si pasa las validaciones, se ejecutara el CommitData del modelo para guardar los datos. oMdlTab:CommitData() Endif // Se obtienen los errores del modelo aError := oMdlTab:GetErrorMessage() If alltrim(aError[6]) <> "" cMsj := aError[6] Endif ConOut("Mensaje de proceso: " + cMsj) oMdlTab:DeActivate() Return
#INCLUDE 'protheus.ch' User Function LOCX09AUTO() Local oMdlTab Local cMsj := "Registro borrado con éxito." SetFunName("COMA223") oMdlTab := FwLoadModel("LOCX09") DbSelectArea("SF1") SF1->(DbSetOrder(1)) //F1_FILIAL+F1_DOC+F1_SERIE+F1_FORNECE+F1_LOJA+F1_TIPO If SF1->(MsSeek(xFilial("SF1") + "090420240004" + "A " + "000025" + "01" + "C",.T.)) oMdlTab:SetOperation(MODEL_OPERATION_DELETE) oMdlTab:Activate() If oMdlTab:VldData() oMdlTab:CommitData() Endif EndIf aError := oMdlTab:GetErrorMessage() If alltrim(aError[6]) <> "" cMsj := aError[6] Endif CONOUT("Mensaje de proceso: "+cMsj) oMdlTab:DeActivate() Return
#INCLUDE 'protheus.ch' User Function LOCX08AUTO() Local oMdlTab Local aError := {} Local cMsj := "Registrado con éxito." Local cFornece := "000001" Local cLoja := "01" Local cDoc := "000100000250" Local cSerie := "A" SetFunName("COMA224") // Se define el modelo LOCX08 oMdlTab := FwLoadModel("LOCX08") // Se define la operación INSERT en el modelo oMdlTab:SetOperation(MODEL_OPERATION_INSERT) // Se activa el modelo oMdlTab:Activate() //Encabezado - SF1 oMdlTab:SetValue('SF1_MASTER', "F1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SF1_MASTER', "F1_PV" , "0001" ) //Campo para Argentina, este campo debe ser informado antes de los demás. oMdlTab:SetValue('SF1_MASTER', "F1_FORNECE" , cFornece ) oMdlTab:SetValue('SF1_MASTER', "F1_LOJA" , cLoja ) oMdlTab:SetValue('SF1_MASTER', "F1_SERIE" , cSerie) oMdlTab:SetValue('SF1_MASTER', "F1_DOC" , cDoc) oMdlTab:SetValue('SF1_MASTER', "F1_EMISSAO" , dDataBase) oMdlTab:SetValue('SF1_MASTER', "F1_MOEDA" , 1) oMdlTab:SetValue('SF1_MASTER', "F1_PROVENT" , "BA" ) oMdlTab:SetValue('SF1_MASTER', "F1_TPVENT" , "B" ) oMdlTab:SetValue('SF1_MASTER', "F1_COND" , "001" ) oMdlTab:SetValue('SF1_MASTER', "F1_FRETE" , 100 ) oMdlTab:SetValue('SF1_MASTER', "F1_SEGURO " , 200 ) oMdlTab:SetValue('SF1_MASTER', "F1_DESPESA" , 300 ) oMdlTab:SetValue('SF1_MASTER', "F1_DESCONT" , 200 ) //Detalle Items - SD1 oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM" , "0001" ) oMdlTab:SetValue('SD1_DETAIL', "D1_COD" , "000001" ) oMdlTab:SetValue('SD1_DETAIL', "D1_DOC" , cDoc) oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT" , 1) oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TES" , "175") oMdlTab:SetValue('SD1_DETAIL', "D1_CF" , "112") oMdlTab:GetModel('SD1_DETAIL' ):AddLine() oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM" , "0002" ) oMdlTab:SetValue('SD1_DETAIL', "D1_COD" , "000002" ) oMdlTab:SetValue('SD1_DETAIL', "D1_DOC" , cDoc) oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT" , 1) oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TES" , "175") oMdlTab:SetValue('SD1_DETAIL', "D1_CF" , "112") oMdlTab:GetModel('SD1_DETAIL' ):AddLine() oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM" , "0003" ) oMdlTab:SetValue('SD1_DETAIL', "D1_COD" , "000003" ) oMdlTab:SetValue('SD1_DETAIL', "D1_DOC" , cDoc) oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT" , 1) oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TES" , "175") oMdlTab:SetValue('SD1_DETAIL', "D1_CF" , "112") //Se ejecuta el commit If oMdlTab:VldData() // Se detonan las validaciones del modelo // Si pasa las validaciones, se ejecutara el CommitData del modelo para guardar los datos. oMdlTab:CommitData() Endif // Se obtienen los errores del modelo aError := oMdlTab:GetErrorMessage() If alltrim(aError[6]) <> "" cMsj := aError[6] Endif ConOut("Mensaje de proceso: " + cMsj) oMdlTab:DeActivate() Return
#INCLUDE 'protheus.ch' User Function LOCX08AUTO() Local oMdlTab Local aError := {} Local cMsj := "Registrado con éxito." Local cFornece := "000001" Local cLoja := "01" Local cDoc := "000100000251" Local cSerie := "A" SetFunName("COMA224") // Se define el modelo LOCX08 oMdlTab := FwLoadModel("LOCX08") // Se define la operación INSERT en el modelo oMdlTab:SetOperation(MODEL_OPERATION_INSERT) // Se activa el modelo oMdlTab:Activate() //Encabezado - SF1 oMdlTab:SetValue('SF1_MASTER', "F1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SF1_MASTER', "F1_PV" , "0001" ) //Campo para Argentina, este campo debe ser informado antes de los demás. oMdlTab:SetValue('SF1_MASTER', "F1_FORNECE" , cFornece ) oMdlTab:SetValue('SF1_MASTER', "F1_LOJA" , cLoja ) oMdlTab:SetValue('SF1_MASTER', "F1_SERIE" , cSerie) oMdlTab:SetValue('SF1_MASTER', "F1_DOC" , cDoc) oMdlTab:SetValue('SF1_MASTER', "F1_EMISSAO" , dDataBase) oMdlTab:SetValue('SF1_MASTER', "F1_MOEDA" , 2) oMdlTab:SetValue('SF1_MASTER', "F1_TXMOEDA" , 10) oMdlTab:SetValue('SF1_MASTER', "F1_PROVENT" , "BA" ) oMdlTab:SetValue('SF1_MASTER', "F1_TPVENT" , "B" ) oMdlTab:SetValue('SF1_MASTER', "F1_COND" , "001" ) oMdlTab:SetValue('SF1_MASTER', "F1_FRETE" , 100 ) oMdlTab:SetValue('SF1_MASTER', "F1_SEGURO " , 200 ) oMdlTab:SetValue('SF1_MASTER', "F1_DESPESA" , 300 ) oMdlTab:SetValue('SF1_MASTER', "F1_DESCONT" , 200 ) //Detalle Items - SD1 oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM" , "0001" ) oMdlTab:SetValue('SD1_DETAIL', "D1_COD" , "000001" ) oMdlTab:SetValue('SD1_DETAIL', "D1_DOC" , cDoc) oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT" , 1) oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TES" , "175") oMdlTab:SetValue('SD1_DETAIL', "D1_CF" , "112") oMdlTab:GetModel('SD1_DETAIL' ):AddLine() oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM" , "0002" ) oMdlTab:SetValue('SD1_DETAIL', "D1_COD" , "000002" ) oMdlTab:SetValue('SD1_DETAIL', "D1_DOC" , cDoc) oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT" , 1) oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TES" , "175") oMdlTab:SetValue('SD1_DETAIL', "D1_CF" , "112") oMdlTab:GetModel('SD1_DETAIL' ):AddLine() oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL" , xFilial("SF1")) oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM" , "0003" ) oMdlTab:SetValue('SD1_DETAIL', "D1_COD" , "000003" ) oMdlTab:SetValue('SD1_DETAIL', "D1_DOC" , cDoc) oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT" , 1) oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL" , 1000) oMdlTab:SetValue('SD1_DETAIL', "D1_TES" , "175") oMdlTab:SetValue('SD1_DETAIL', "D1_CF" , "112") //Se ejecuta el commit If oMdlTab:VldData() // Se detonan las validaciones del modelo // Si pasa las validaciones, se ejecutara el CommitData del modelo para guardar los datos. oMdlTab:CommitData() Endif // Se obtienen los errores del modelo aError := oMdlTab:GetErrorMessage() If alltrim(aError[6]) <> "" cMsj := aError[6] Endif ConOut("Mensaje de proceso: " + cMsj) oMdlTab:DeActivate() Return
#INCLUDE 'protheus.ch' User Function LOCX08AUTO() Local oMdlTab Local cMsj := "Registro borrado con éxito." SetFunName("COMA224") oMdlTab := FwLoadModel("LOCX08") DbSelectArea("SF1") SF1->(DbSetOrder(1)) //F1_FILIAL+F1_DOC+F1_SERIE+F1_FORNECE+F1_LOJA+F1_TIPO If SF1->(MsSeek(xFilial("SF1") + "000100000250" + "A " + "000001" + "01" + "C",.T.)) oMdlTab:SetOperation(MODEL_OPERATION_DELETE) oMdlTab:Activate() If oMdlTab:VldData() oMdlTab:CommitData() Endif EndIf aError := oMdlTab:GetErrorMessage() If alltrim(aError[6]) <> "" cMsj := aError[6] Endif CONOUT("Mensaje de proceso: "+cMsj) oMdlTab:DeActivate() Return