Árvore de páginas

Versões comparadas

Chave

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

...

Totvs custom tabs box
tabsConfiguraciones Previas, Flujo de prueba, Ejemplo inclusión
idspaso1,paso2,paso3
Totvs custom tabs box items
defaultyes
referenciapaso1
  1. Desarrollar y compilar la rutina automática para la generación de facturas de salida, ver sección "Ejemplo Inclusión".
  2. Configurar el menú para esta rutina, dentro del módulo Configurador (SIGACFG) | Entorno| Menús, agregar la opción en el menú para el módulo de Compras (SIGACOM).
  3. En la rutina de Productos (MATA010) que se encuentra en el menú perteneciente al módulo Compras (Actualizaciones | Archivos) registre un producto.
  4. En la rutina de Proveedores (MATA020) que se encuentra en el menú perteneciente al módulo Compras (Actualizaciones | Archivos) registre un proveedor informando los campos obligatorios, adaptando la información según sean sus necesidades.
  5. En la rutina de Imp. Variables (MATA995) que se encuentra en el menú perteneciente al módulo de Compras (Actualizaciones | Archivos) configurar los impuestos necesarios.
    1. En el caso de la RC0(Retención del ICA) para más información, consulte el apartado 05. ASUNTOS RELACIONADOS.
  6. En la rutina de Tipos de Entrada Y Salida (MATA080) que se encuentra en el menú perteneciente al módulo Compras (Actualizaciones | Archivos) registre una TES de entrada con los impuestos deseados.
Totvs custom tabs box items
defaultno
referenciapaso2
  1. Por medio de la rutina Compras (Actualizaciones | Compras)
    1. Dentro del módulo Compras (SIGACOM), acceder a la opción del menú creado para la rutina automática y esperar la ejecución.
    2. Al finalizar la ejecución, acceder a la rutina Compras (SIGACOM), confirme que la factura de entrada se generó.
    3. Validar el cálculo de los impuestos configurados.

Totvs custom tabs box items
defaultno
referenciapaso3
Nota

Cuando se utiliza el MsExecAuto, la inicialización correcta de la variable Private lMsErrorAuto es el valor .F., si se produce un error durante el ExecAuto, el sistema cambia automáticamente el valor de la variable lMsErrorAuto a .T. y muestra el error.


Ejemplo para facturas de entrada (MATA101N)

Bloco de código
languagejs
linenumberstrue
#INCLUDE "RWMAKE.CH"
#INCLUDE "TBICONN.CH"   

// Ejemplo de Factura de Entrada - Tipo - Normal //

User Function xMta101n()

    Local aCab          := {}   // Array con datos de encabezado
    Local aLin          := {}   // Array con datos de ítem
    Local aItem         := {}   // Array de ítems
    Local cDoc          := ""   // String con el número de documento
    Private lMsErroAuto := .F.  // Control de ejecución de rutina

    cDoc :=  FWInputBox("Número de Factura", "")    // Informar número de documento, ejemplo: "000000000001"

    // Encabezado   
    AADD( aCab, { "F1_FILIAL"   , xFilial("SF1")    , Nil })
    AAdd( aCab, { "F1_FORNECE"  , "23878 ", Nil })    
    AAdd( aCab, { "F1_LOJA"     , "01"              , Nil })    
    AAdd( aCab, { "F1_SERIE"    , "A"             , Nil })     
    AAdd( aCab, { "F1_DOC"      , cDoc              , Nil })
    AAdd( aCab, { "F1_TIPO"     , "N"               , Nil })
    AAdd( aCab, { "F1_FORMUL"   , "N"               , Nil })
    AAdd( aCab, { "F1_TIPODOC"  , "10"              , Nil })
    AAdd( aCab, { "F1_ESPECIE"  , "NF "             , Nil })
    AAdd( aCab, { "F1_EMISSAO"  , dDataBase         , Nil })
    AAdd( aCab, { "F1_DTDIGIT"  , dDataBase         , Nil })
    AAdd( aCab, { "F1_MOEDA"    , 1                 , Nil })
    AAdd( aCab, { "F1_TXMOEDA"  , 1                 , Nil })
    AAdd( aCab, { "F1_COND"     , "001"             , Nil })
    AAdd( aCab, { "F1_EST"      , "11"              , Nil })
    AAdd( aCab, { "F1_CODMUN"   , "11001"           , Nil })
    AAdd( aCab, { "F1_TPACTIV"  , "4923"             , Nil })
    AAdd( aCab, { "F1_NATUREZ"  , "OTROS"          , Nil })
    AAdd( aCab, { "F1_TIPOPE"   , ""              , Nil })
    AAdd( aCab, { "F1_DUPL"     , cDoc              , Nil })    // Informar título si hay integración financiera
 
    
    // Items    
    AADD( aLin, { "D1_FILIAL"   , xFilial("SD1")    , Nil })
    AADD( aLin, { "D1_ITEM"     , "0001"            , Nil })
    AAdd( aLin, { "D1_COD"      , "000001                        " , Nil })
    AAdd( aLin, { "D1_UM"       , "UN"              , Nil })
    AAdd( aLin, { "D1_QUANT"    , 1                 , Nil })
    AAdd( aLin, { "D1_VUNIT"    , 2000.00        , Nil })
    AAdd( aLin, { "D1_TOTAL"    , 2000.00        , Nil })
    AAdd( aLin, { "D1_TES"      , "244"             , Nil })
    AAdd( aLin, { "D1_CF"       , "111  "             , Nil })
    

    AAdd( aItem, aLin)    

    // Ejecuta Rutina Automática
    MSExecAuto( { |x,y| MATA101N(x,y) }, aCab, aItem, 3 )    

    If lMsErroAuto      
        MsgStop("Error en la grabación de la factura!") 
        MostraErro()    
    Else    
        msgInfo("Factura de Entrada incluida: " + cDoc, "MsExecAuto MATA101N")
    EndIf

Return 


NUEVO COMPRAS  COMA222Ejemplo para facturas de entrada (COMA222)

Bloco de código
languagejs
linenumberstrue
#INCLUDE 'protheus.ch'
 #INCLUDE "FWMVCDEF.CH"
User Function autCom22()
Local oMdlTab
Local aError    := {}
Local cMsj      := "Registrado con exito."
Local cFornece  := "23878 "
Local cLoja     := "01"
Local cDoc      := "090420240002"
Local cSerie    := "A"
       
    SetFunName("COMA222")
     cDoc :=  FWInputBox("Numero de Factura", "") 
    // 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_SERIE2"   ,   cSerie)
    oMdlTab:SetValue('SF1_MASTER', "F1_EMISSAO" ,   dDataBase)
    oMdlTab:SetValue('SF1_MASTER', "F1_MOEDA"   ,   1)
  
    oMdlTab:SetValue('SF1_MASTER', "F1_COND"    ,   "001" )
    oMdlTab:SetValue('SF1_MASTER',"F1_CODMUN"   ,  "11001" )
    oMdlTab:SetValue('SF1_MASTER', "F1_TPACTIV" ,   "A011100"  )

    //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"   ,   2000)
    oMdlTab:SetValue('SD1_DETAIL', "D1_TOTAL"   ,   2000)
    oMdlTab:SetValue('SD1_DETAIL', "D1_TES"     ,   "085")
    oMdlTab:SetValue('SD1_DETAIL', "D1_CF"      ,   "155  " )
    
  
 
    //Se ejecuta el commit
    If oMdlTab:VldData() // Se detonan las validaciones del modelo
        // Si pasa las validaciones, se ejecutará el CommitData del modelo para guardar los datos.
        oMdlTab:CommitData()
    Endif
 ALERT("FIN")
    // 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
 

...