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 |
Función utilizada para incluir, modificar o eliminar reglas de descuento a través de la rutina automática (ExecAuto).
MSExecAuto({|a, b, c| FATA080(a, b, c)}, aCabec, aItens, nOpcX)
Nombre | Tipo | Descripción | Estándar | Obligatorio |
aCabec | Array de registros | Array que contiene campos de encabezado (ACO) | Sí | |
aItens | Array de registros | Array que contiene los campos de los ítems (ACP) | Sí | |
nOpcX | Numérico (opción de ejecución) | 3 = Inclusión; 4 = Modificación; 5 = Borrado | Sí |
Não há.
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