Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Totvs custom tabs box
tabsRemito de Entrada, Factura de Entrada, Nota de Débito Proveedor, Nota de Crédito Interna
idspasso1,passo2,passo3,passo4
Totvs custom tabs box items
defaultyes
referenciapasso1
Bloco de código
languagejava
firstline1
titleEjemplo completo:Inclusión de Remito
linenumberstrue
collapsetrue
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   
Bloco de código
languagejava
firstline1
titleEjemplo completo:Borrado Remito
linenumberstrue
collapsetrue
#INCLUDE 'protheus.ch'


Totvs custom tabs box items
defaultno
referenciapasso2

a

Bloco de código
languagejava
firstline1
titleEjemplo completo:
linenumberstrue
collapsetrue
UserFunction LOCX10AUTO  

User Function LOCX60AUTO()
Local oMdlTab
Local aError    := {}
Local cMsj      := "RegistradoRegistro borrado con éxito."

Local cFornece  := SetFunName("000025COMA221")
Local cLoja     
    oMdlTab := FwLoadModel("01LOCX60")
Local  cDoc  DbSelectArea("SF1")
    := "090420240002"
Local cSerieSF1->(DbSetOrder(1)) //F1_FILIAL+F1_DOC+F1_SERIE+F1_FORNECE+F1_LOJA+F1_TIPO     := "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 )


    oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL" 
  ,  If SF1->(MsSeek(xFilial("SF1"))
    oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM"    ,   "0001" )
 + "090420240001" + "R  " + "000001" + "01" + "N",.T.))
        oMdlTab:SetValueSetOperation('SD1_DETAIL', "D1_COD"MODEL_OPERATION_DELETE)
     ,   "000001" oMdlTab:Activate()
        If oMdlTab:SetValue('SD1_DETAIL', "D1_DOC"VldData()
     ,   cDoc)
    oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT"CommitData()
       , Endif  1)
     oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT"EndIf
 
    ,aError   1000:= oMdlTab:GetErrorMessage()
    If oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL"alltrim(aError[6]) <> ""
   ,   1000)
   cMsj oMdlTab:SetValue('SD1_DETAIL', "D1_TES":= aError[6]
    Endif
 ,   "175")
    oMdlTab:SetValue('SD1_DETAIL', "D1_CF"      ,   "112")

CONOUT("Mensaje de proceso: "+cMsj) 
     
    oMdlTab:GetModel('SD1_DETAIL' ):AddLineDeActivate()
 
Return 
Informações
titlePersonalizaciones

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.

Totvs custom tabs box items
defaultno
referenciapasso2
Bloco de código
languagejava
firstline1
titleInclusión de Factura (Moneda 1)
linenumberstrue
collapsetrue
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: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" SetOperation(MODEL_OPERATION_INSERT)
  
    // ,Se activa el "112")
modelo
    oMdlTab:GetModel('SD1_DETAIL' ):AddLine()
Activate()
   
    //Encabezado - SF1
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_FILIAL"  ,   xFilial("SF1"))
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_ITEMFORNECE"    ,   "0003"cFornece )
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_CODLOJA"     ,   "000003"cLoja )
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_DOC"     ,   cDoc)
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_QUANTSERIE"   ,   1cSerie)
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_VUNITEMISSAO"   ,   1000dDataBase)
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_TOTALMOEDA"   ,   10001)
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_TESPROVENT"     ,   "175BA" )
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_CFCOND"      ,   "112001")

    //Se ejecuta el commit )
    If oMdlTab:VldData() // Se detonan las validaciones del modeloSetValue('SF1_MASTER', "F1_FRETE"   ,   100 )
    oMdlTab:SetValue('SF1_MASTER', "F1_SEGURO " , // Si pasa200 las)
 validaciones, se ejecutara el CommitData del modelo para guardar los datos.
     oMdlTab:SetValue('SF1_MASTER', "F1_DESPESA" ,   300 )
    oMdlTab:CommitData()
SetValue('SF1_MASTER', "F1_DESCONT" ,   200 Endif)

    	//Detalle SeItems obtienen los errores del modelo
  - SD1
  aError := oMdlTab:GetErrorMessage()
SetValue('SD1_DETAIL', "D1_FILIAL"  ,  If alltrim(aError[6]) <> ""xFilial("SF1"))
    oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM"   cMsj := aError[6]
 ,   "0001" Endif)
    ConOut("Mensaje de proceso: " + cMsj)
     oMdlTab:SetValue('SD1_DETAIL', "D1_COD"     ,   "000001" )
    oMdlTab:DeActivate()
Return  
Bloco de código
languagejava
firstline1
titleEjemplo completo:
linenumberstrue
collapsetrue
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 modeloSetValue('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:SetOperationSetValue(MODEL_OPERATION_INSERT)
  
    // Se activa el modelo'SD1_DETAIL', "D1_ITEM"    ,   "0002" )
    oMdlTab:Activate()
SetValue('SD1_DETAIL', "D1_COD"   
  ,  //Encabezado - SF1 "000002" )
    oMdlTab:SetValue('SF1SD1_MASTERDETAIL', "F1D1_FILIALDOC"     ,   xFilial("SF1")cDoc)
    oMdlTab:SetValue('SF1SD1_MASTERDETAIL', "F1D1_FORNECEQUANT"   ,   cFornece 1)
    oMdlTab:SetValue('SF1SD1_MASTERDETAIL', "F1D1_LOJAVUNIT"    ,   cLoja 1000)
    oMdlTab:SetValue('SF1SD1_MASTERDETAIL', "F1D1_DOCTOTAL"     ,   cDoc1000)
    oMdlTab:SetValue('SF1SD1_MASTERDETAIL', "F1D1_SERIETES"     ,   cSerie"175")
    oMdlTab:SetValue('SF1SD1_MASTERDETAIL', "F1D1_EMISSAOCF"      ,   dDataBase"112")

    oMdlTab:SetValueGetModel('SF1SD1_MASTERDETAIL', "F1_MOEDA"   ,   2)
 ):AddLine()

    oMdlTab:SetValue('SF1SD1_MASTERDETAIL', "F1D1_TXMOEDAFILIAL"  ,   10xFilial("SF1"))
    oMdlTab:SetValue('SF1SD1_MASTERDETAIL', "F1D1_PROVENTITEM"    ,   "BA0003" )
    oMdlTab:SetValue('SF1SD1_MASTERDETAIL', "F1D1_CONDCOD"     ,   "001000003" )
    oMdlTab:SetValue('SF1SD1_MASTERDETAIL', "F1D1_FRETEDOC"     ,   100 cDoc)
    oMdlTab:SetValue('SF1SD1_MASTERDETAIL', "F1D1_SEGUROQUANT"  " ,   200 1)
    oMdlTab:SetValue('SF1SD1_MASTERDETAIL', "F1D1_DESPESA" ,   300 )
    oMdlTab:SetValue('SF1_MASTER', "F1_DESCONT"VUNIT"   ,   200 1000)


    oMdlTab:SetValue('SD1_DETAIL', "D1_FILIALTOTAL"   ,   xFilial("SF1")1000)
    oMdlTab:SetValue('SD1_DETAIL', "D1_ITEMTES"     ,   "0001175" )
    oMdlTab:SetValue('SD1_DETAIL', "D1_CODCF"      ,   "000001112" )

    oMdlTab:SetValue('SD1_DETAIL', "D1_DOC"  //Se ejecuta el commit
   ,   cDoc)
    oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT"   ,   1)
    oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT"   ,   1000)
    oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL"   ,   1000)
If oMdlTab:VldData() // Se detonan las validaciones del modelo
        // Si pasa las validaciones, se ejecutara el CommitData del modelo para guardar los datos.
        oMdlTab:SetValue('SD1_DETAIL', "D1_TES"     ,   "175")CommitData()
    Endif

    oMdlTab:SetValue('SD1_DETAIL', "D1_CF"      ,   "112")

    oMdlTab:GetModel('SD1_DETAIL' ):AddLine()
// Se obtienen los errores del modelo
    aError := oMdlTab:GetErrorMessage()
    oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL"  ,   xFilial("SF1"))
    oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM"    ,   "0002" )
    oMdlTab:SetValue('SD1_DETAIL', "D1_COD"     ,   "000002" )If alltrim(aError[6]) <> ""
        cMsj := aError[6]
    Endif
    ConOut("Mensaje de proceso: " + cMsj)
     
    oMdlTab:DeActivate()
Return  
Bloco de código
languagejava
firstline1
titleInclusión de Factura (Moneda 2)
linenumberstrue
collapsetrue
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 modeloSetValue('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"))SetOperation(MODEL_OPERATION_INSERT)
  
    // Se activa el modelo
    oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM"Activate()
   
    //Encabezado ,   "0003" )- SF1
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_CODFILIAL"     ,   xFilial("000003SF1" ))
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_DOCFORNECE" ,    ,cFornece   cDoc)
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_QUANTLOJA"    ,   cLoja 1)
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_VUNITDOC"     ,   1000cDoc)
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_TOTALSERIE"   ,   1000cSerie)
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_TESEMISSAO"     ,   "175"dDataBase)
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_CFMOEDA"      ,   "112"2)

    oMdlTab:SetValue('SF1_MASTER',  //Se ejecuta el commit
 "F1_TXMOEDA" ,   10)
   If oMdlTab:VldData() // Se detonan las validaciones del modeloSetValue('SF1_MASTER', "F1_PROVENT" ,   "BA" )
        // Si pasa las validaciones, se ejecutara el CommitData del modelo para guardar los datos.oMdlTab:SetValue('SF1_MASTER', "F1_COND"    ,   "001" )
        oMdlTab:CommitData()
    Endif

oMdlTab:SetValue('SF1_MASTER', "F1_FRETE"   ,   100 //)
 Se obtienen los errores del modelo
    aError := oMdlTab:GetErrorMessage( oMdlTab:SetValue('SF1_MASTER', "F1_SEGURO " ,   200 )
    If alltrim(aError[6]) <> ""
 oMdlTab:SetValue('SF1_MASTER', "F1_DESPESA" ,   300 )
   cMsj := aError[6]
    Endif
    ConOut("Mensaje de proceso: " + cMsj)
     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:DeActivate()
Return 
Bloco de código
languagejava
firstline1
titleEjemplo completo:
linenumberstrue
collapsetrue
#INCLUDE 'protheus.ch'


Totvs custom tabs box items
defaultno
referenciapasso3

a

Bloco de código
languagejava
firstline1
titleEjemplo completo:
linenumberstrue
collapsetrue
#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 modeloSetValue('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:SetOperationGetModel(MODEL_OPERATION_INSERT)
  
    // Se activa el modelo
    oMdlTab:Activate()
   
    //Encabezado - SF1'SD1_DETAIL' ):AddLine()

    oMdlTab:SetValue('SF1SD1_MASTERDETAIL', "F1D1_FILIAL"  ,   xFilial("SF1"))
    oMdlTab:SetValue('SF1SD1_MASTERDETAIL', "F1D1_FORNECEITEM"    ,   cFornece"0002" )
    oMdlTab:SetValue('SF1SD1_MASTERDETAIL', "F1D1_LOJACOD"     ,   cLoja"000002" )
    oMdlTab:SetValue('SF1SD1_MASTERDETAIL', "F1D1_DOC"     ,   cDoc)
    oMdlTab:SetValue('SF1SD1_MASTERDETAIL', "F1D1_SERIEQUANT"   ,   cSerie1)
    oMdlTab:SetValue('SF1SD1_MASTERDETAIL', "F1D1_EMISSAOVUNIT"   ,   dDataBase1000)
    oMdlTab:SetValue('SF1SD1_MASTERDETAIL', "F1D1_MOEDATOTAL"   ,   11000)
    oMdlTab:SetValue('SF1SD1_MASTERDETAIL', "F1D1_PROVENTTES"     ,   "BA175" )
    oMdlTab:SetValue('SF1SD1_MASTERDETAIL', "F1D1_CONDCF"      ,   "001112" )

    oMdlTab:SetValueGetModel('SF1SD1_MASTERDETAIL', "F1_FRETE" ):AddLine()

   ,   100 )
    oMdlTab:SetValue('SF1_MASTER', "F1_SEGURO " ,   200 )
    oMdlTab:SetValue('SF1_MASTER', "F1_DESPESA" ,   300 )
    oMdlTab:SetValue('SF1_MASTER', "F1_DESCONT" ,   200 )


    oMdlTab oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL"  ,   xFilial("SF1"))
    oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM"    ,   "00010003" )
    oMdlTab:SetValue('SD1_DETAIL', "D1_COD"     ,   "000001000003" )
    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()

//Se ejecuta el commit
    If oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL"  ,   xFilial("SF1"))
    oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM"    ,   "0002" )
    oMdlTab:SetValue('SD1_DETAIL', "D1_COD"     ,   "000002" )
VldData() // Se detonan las validaciones del modelo
        // Si pasa las validaciones, se ejecutara el CommitData del modelo para guardar los datos.
        oMdlTab:SetValue('SD1_DETAIL', "D1_DOC"CommitData()
    Endif

  ,  // cDoc)
Se obtienen los  oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT"errores del modelo
   , aError  1:= oMdlTab:GetErrorMessage()
    If oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT"alltrim(aError[6]) <> ""
   ,   1000)
  cMsj  oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL":= aError[6]
   ,   1000)Endif
    oMdlTab:SetValue('SD1_DETAIL', "D1_TES"     ,   "175")ConOut("Mensaje de proceso: " + cMsj)
     
    oMdlTab:SetValue('SD1_DETAIL', "D1_CF"      ,   "112")
DeActivate()
Return 
Bloco de código
languagejava
firstline1
titleBorrado de Factura
linenumberstrue
collapsetrue
#INCLUDE 'protheus.ch'  
User Function LOCX10AUTO()
Local oMdlTab
Local cMsj := "Registro borrado con éxito."

    SetFunName("COMA222")
     
    oMdlTab:GetModel('SD1_DETAIL' ):AddLine()
 := FwLoadModel("LOCX10")
    oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL"  ,   xFilial("SF1"))
    oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM"    ,   "0003" )
    oMdlTab:SetValue('SD1_DETAIL', "D1_COD"DbSelectArea("SF1")
    SF1->(DbSetOrder(1)) //F1_FILIAL+F1_DOC+F1_SERIE+F1_FORNECE+F1_LOJA+F1_TIPO                       ,   "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  
Bloco de código
languagejava
firstline1
titleEjemplo completo:
linenumberstrue
collapsetrue
#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 )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:SetValue('SF1_MASTER', "F1_LOJA"    ,   cLoja DeActivate()
 
Return 
Totvs custom tabs box items
defaultno
referenciapasso3
Bloco de código
languagejava
firstline1
titleInclusión de Nota Débito Proveedor (Moneda 1)
linenumberstrue
collapsetrue
#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: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 )SetOperation(MODEL_OPERATION_INSERT)
  
    // Se activa el modelo
    oMdlTab:Activate()
   
    //Encabezado - SF1
    oMdlTab:SetValue('SF1_MASTER', "F1_SEGUROFILIAL" " ,   200 xFilial("SF1"))
    oMdlTab:SetValue('SF1_MASTER', "F1_DESPESAFORNECE" ,   300cFornece )
    oMdlTab:SetValue('SF1_MASTER', "F1_DESCONTLOJA"    ,   200cLoja )


    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_FILIALDOC"     ,   xFilial("SF1"cDoc))
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_ITEMSERIE"    ,   "0001" cSerie)
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_CODEMISSAO"     ,   "000001" dDataBase)
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_DOCMOEDA"     ,   cDoc1)
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_QUANTPROVENT" ,  ,  "BA" 1)
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_VUNITCOND"    ,   "001" 1000)
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_TOTALFRETE"   ,   100 1000)
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_TESSEGURO " ,    ,   "175"200 )
    oMdlTab:SetValue('SD1SF1_DETAILMASTER', "D1F1_CFDESPESA" ,     ,   "112")
300 )
    oMdlTab:GetModelSetValue('SD1SF1_DETAIL' ):AddLine()
MASTER', "F1_DESCONT" ,   200 )

 	//Detalle Items - SD1
    oMdlTab:SetValue('SD1_DETAIL', "D1_FILIAL"  ,   xFilial("SF1"))
    oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM"    ,   "00020001" )
    oMdlTab:SetValue('SD1_DETAIL', "D1_COD"     ,   "000002000001" )
    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"    ,   "00030002" )
    oMdlTab:SetValue('SD1_DETAIL', "D1_COD"     ,   "000003000002" )
    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 commitoMdlTab:GetModel('SD1_DETAIL' ):AddLine()

    If oMdlTab:VldData() // Se detonan las validaciones del modelo
        // Si pasa las validaciones, se ejecutara el CommitData del modelo para guardar los datos.
    SetValue('SD1_DETAIL', "D1_FILIAL"  ,   xFilial("SF1"))
    oMdlTab:SetValue('SD1_DETAIL', "D1_ITEM"    ,   "0003" )
    oMdlTab:SetValue('SD1_DETAIL', "D1_COD"     ,   "000003" )
    oMdlTab:CommitData()
 SetValue('SD1_DETAIL', "D1_DOC"   Endif

  ,  // SecDoc)
 obtienen los errores del modelo
 oMdlTab:SetValue('SD1_DETAIL', "D1_QUANT"   , aError := oMdlTab:GetErrorMessage( 1)
    If alltrim(aError[6]) <> ""
oMdlTab:SetValue('SD1_DETAIL', "D1_VUNIT"   ,   1000)
  cMsj  := aError[6]
oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL"   , Endif
  1000)
  ConOut("Mensaje de proceso: " + cMsj)
     
    oMdlTab:DeActivate()
Return  
Bloco de código
languagejava
firstline1
titleEjemplo completo:
linenumberstrue
collapsetrue
#INCLUDE 'protheus.ch'


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  
Bloco de código
languagejava
firstline1
titleInclusión de Nota DébitoProveedor (Moneda 2)
linenumberstrue
collapsetrue
#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  
Bloco de código
languagejava
firstline1
titleBorrado Nota Débito Proveedor
linenumberstrue
collapsetrue
#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   
Totvs custom tabs box items
defaultno
referenciapasso4
Bloco de código
languagejava
firstline1
titleInclusión de Nota Crédito Interna (Moneda 1)
linenumberstrue
collapsetrue
#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


Bloco de código
languagejava
firstline1
titleInclusión de Nota Crédito Interna (Moneda 2)
linenumberstrue
collapsetrue
#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


Bloco de código
languagejava
firstline1
titleBorrado Nota Crédito Interna
linenumberstrue
collapsetrue
#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  
Totvs custom tabs box items
defaultno
referenciapasso2

a

Bloco de código
languagejava
firstline1
titleEjemplo completo:
linenumberstrue
collapsetrue
#INCLUDE 'protheus.ch'


Bloco de código
languagejava
firstline1
titleEjemplo completo:
linenumberstrue
collapsetrue
#INCLUDE 'protheus.ch'