01. VISIÓN GENERAL

Línea de producto:

Microsiga Protheus®

Segmento:

Servicios

Módulo:

SIGAFAT - Facturación

Función:

FATA080 - Mantenimiento de reglas de descuento

Alcances:

Microsiga Protheus 12

Versiones:

Microsiga Protheus 12

Compatible países:

Todos

Sistemas operativos:

Todos

Compatible con las bases de datos:

Todos

Nivel de acceso:

Nivel 1 (Acceso Clientes)

Idiomas:

Todos


02. DESCRIPCIÓN

Función utilizada para incluir, modificar o eliminar reglas de descuento a través de la rutina automática (ExecAuto).

03. SINTAXIS

MSExecAuto({|a, b, c| FATA080(a, b, c)}, aCabec, aItens, nOpcX)

04. PARÁMETROS

Nombre

Tipo

Descripción

Estándar

Obligatorio

aCabec

 Array de registros

Array que contiene campos de encabezado (ACO)


aItens

 Array de registros

Array que contiene los campos de los ítems (ACP)


nOpcX

Numérico (opción de ejecución)

3 = Inclusión; 4 = Modificación; 5 = Borrado


05. DEVOLUCIÓN

Não há.

06. EJEMPLOS

Seleccione la siguiente operación deseada según su necesidad de ejecución:


Este es el ejemplo básico para ejecutar la Inclusión de la Regla de Descuento mediante la Rutina Automática:

#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"

User Function MyFata080()

Local cCodReg    := ""              // Código de la regla
Local cB1Cod     := "PRODUTO001"    // Código del producto
Local cMsgLog    := ""
Local cFilSB1    := ""
Local nOpcX      := 3               // Inclusión
Local aCabec     := {}
Local aItens     := {}
Local aLinha     := {}
Local lOk        := .T.
 
Private lMsErroAuto    := .F. // Indica si hubo error al ejecutar la rutina automática
Private lMsHelpAuto	   := .T. // Genera un mensaje de error como archivo .LOG en la system

//****************************************************************
//* Apertura del entorno
//****************************************************************
ConOut("Inicio: " + Time())
 
ConOut(Repl("-",80))
ConOut(PadC("Proceso de inclusión de reglas de descuento", 80))
 
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "FAT" TABLES "ACO","ACP","SA1","SBM"
 
//****************************************************************
//* Verifica si el producto existe //****************************************************************
SB1->(dbSetOrder(1))
cFilSB1 := xFilial("SB1")
If SB1->(! MsSeek(cFilSB1 + cB1Cod))
   cMsgLog += "Registrar el producto: " + cB1Cod + CRLF
   lOk     := .F.
EndIf
 
If lOk

   //|------------------------------------|
   //| Genera código de regla de descuento|
   //|------------------------------------|
   cCodReg := GetSxeNum("ACO", "ACO_CODREG") 
 
   //|---------------------------------|
   //| INFORMA ENCABEZADO              |
   //|---------------------------------|
   aCabec   := {}
   aadd(aCabec, {"ACO_CODREG",   cCodReg,                         Nil})
   aadd(aCabec, {"ACO_DESCRI",   "INCLUSAO DE REGRA DE DESCONTO", Nil})
   aadd(aCabec, {"ACO_MOEDA",    1,                               Nil})
   aadd(aCabec, {"ACO_TPHORA",   '1',                             Nil})
   aadd(aCabec, {"ACO_HORADE",  '00:00',                          Nil})
   aadd(aCabec, {"ACO_HORATE",  '23:59',                          Nil})
   aadd(aCabec, {"ACO_DATDE",    Date(),                          Nil})

   //|---------------------------------|
   //| INFORMA ÍTEMS                   |
   //|---------------------------------|
   aLinha := {}
   aadd(aLinha,{"ACP_ITEM",      '001',   Nil})
   aadd(aLinha,{"ACP_CODPRO",    cB1Cod,  Nil})
   aadd(aLinha,{"ACP_PERDES",    10,      Nil})
   aadd(aItens, aLinha)
 
   MSExecAuto({|a, b, c| FATA080(a, b, c)}, aCabec, aItens, nOpcX, .F.)
   
   If !lMsErroAuto
      ConOut("¡Incluido con éxito! " + cCodReg)
   Else
      ConOut("¡Error en la inclusión!")
   EndIf
 
Else
 
   ConOut(cMsgLog)
 
EndIf
 
ConOut("Fin: " + Time())
 
RESET ENVIRONMENT
Return

Este es el ejemplo básico para ejecutar la Modificación de la Regla de Descuento mediante la Rutina Automática:

#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"

User Function MyFata080()

Local cCodReg    := "000001"              // Código de la regla
Local cB1Cod     := "PRODUTO002"          // Código del producto
Local cMsgLog    := ""
Local cFilSB1    := ""
Local nOpcX      := 4                     // Modificación
Local aCabec     := {}
Local aItens     := {}
Local aLinha     := {}
Local lOk        := .T.
 
Private lMsErroAuto    := .F. // Indica si hubo error al ejecutar la rutina automática
Private lMsHelpAuto	  := .T. // Indica si hubo error al ejecutar la rutina automática

//****************************************************************
//* Apertura del entorno
//****************************************************************
ConOut("Inicio: " + Time())
 
ConOut(Repl("-",80))
ConOut(PadC("Proceso de cambio de reglas de descuento", 80))
 
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "FAT" TABLES "ACO","ACP","SA1","SBM"
 
//****************************************************************
//* Verifica si el producto existe
//****************************************************************
SB1->(dbSetOrder(1))
cFilSB1 := xFilial("SB1")
If SB1->(! MsSeek(cFilSB1 + cB1Cod))
   cMsgLog += "Registrar el producto: " + cB1Cod + CRLF
   lOk     := .F.
EndIf
 
If lOk

   //|---------------------------------|
   //| ENCABEZADO              |
   //|---------------------------------|
   aCabec   := {}
   aadd(aCabec, {"ACO_CODREG",   cCodReg,                         Nil})
   aadd(aCabec, {"ACO_DESCRI",   "MODIFICACIÓN DE REGLA DE DESCUENTO", Nil})

   //|---------------------------------|
   //| ÍTEMS                  |
   //|---------------------------------|
   aLinha := {}
   aadd(aLinha,{"LINPOS",     "ACP_ITEM",     '001'})
   aadd(aLinha,{"AUTDELETA",  "N",            Nil})
   aadd(aLinha,{"ACP_CODPRO", cB1Cod,         Nil})
   aadd(aLinha,{"ACP_PERDES",  15,            Nil})
   aadd(aItens, aLinha)
 
   MSExecAuto({|a, b, c| FATA080(a, b, c)}, aCabec, aItens, nOpcX, .F.)
   
   If !lMsErroAuto
      ConOut("¡Modificada con éxito! " + cCodReg)
   Else
      ConOut("¡Error al modificar!")
   EndIf
 
Else
 
   ConOut(cMsgLog)
 
EndIf
 
ConOut("Fin: " + Time())
 
RESET ENVIRONMENT
Return

Este es el ejemplo básico para ejecutar la Eliminación de Reglas de Descuento mediante la Rutina Automática:

#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"

User Function MyFata080()

Local cCodReg    := "000001"        // Código de la regla
Local nOpcX      := 5               // Borrado
Local aCabec     := {}
 
Private lMsErroAuto    := .F. // Indica si hubo error al ejecutar la rutina automática
Private lMsHelpAuto	  := .T. // Genera un mensaje de error como archivo .LOG en la system   

//****************************************************************
//* Apertura del entorno
//****************************************************************
ConOut("Inicio: " + Time())
 
ConOut(Repl("-",80))
ConOut(PadC("Proceso de eliminación de reglas de descuento", 80))
 
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "FAT" TABLES "ACO","ACP","SA1","SBM"
 
aCabec   := {}
aadd(aCabec, {"ACO_CODREG",   cCodReg,                 Nil})

MSExecAuto({|a, b, c| FATA080(a, b, c)}, aCabec, {}, nOpcX, .F.)
   
If !lMsErroAuto
   ConOut("¡Eliminado con éxito! " + cCodReg)
Else
   ConOut("¡Error al eliminar!")
EndIf

ConOut("Fin: " + Time())
 
RESET ENVIRONMENT
Return