- Criado por Raul Ortiz Medina, última alteração por Luis Arturo Samaniego Guzman em 13 nov, 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 documento de entrada.
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