Línea de producto: | Microsiga Protheus® |
Segmento: | Servicios |
Módulo: | SIGAFAT - Facturación |
Función: | FATA050 - Metas de venta |
Alcances: | Microsiga Protheus 12, Protheus 11 |
Versiones: | Microsiga Protheus 12, Protheus 11 |
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 de Metas de Venta a través de la rutina automática (ExecAuto).
Observación
Aunque el registro de metas de ventas tienga un encabezado y una grid, la información se registra en una sola tabla (SCT)
MSExecAuto({|a, b, c| FATA050(a, b, c)}, aCabec, aGrid, nOpcX)
Nombre | Tipo | Descripción | Obrigatório |
---|---|---|---|
aCabec | Array de registros | Array que contiene los campos de encabezado (SCT) | Sim |
aGrid | Array de registros | Array que contiene campos de la grid (SCT) | Sim |
nOpcX | Numérico (opción de ejecución) | 3 = Inclusión; 4 = Modificación; 5 = Borrado | Sim |
{}
Elija el siguiente modelo deseado de acuerdo con la operación que se realizará:
Ejemplo básico para ejecutar la Inclusión de Metas de Venta mediante la Rutina Automática:
#INCLUDE "PROTHEUS.CH" #INCLUDE "TBICONN.CH" User Function MyFATA050 Local cDescri := "META DE VENTA" Local cVend1 := "Vend01" Local nQtd1 := 1 Local nValor1 := 100 Local cVend2 := "Vend02" Local nQtd2 := 2 Local nValor2 := 200 Local nOpcX := 3 Local nCount := 0 Local aErroAuto := {} Private lMsErroAuto := .F. Private lAutoErrNoFile := .F. //* Abertura do ambiente ConOut("Inicio: " + Time()) ConOut(Repl("-",80)) ConOut(PadC("Inclusión de Meta de Venta", 80)) PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "FAT" TABLES "SCT","SA3" //* Inclusión - INICIO aCabec := {} aGrid := {} aLinha := {} //--- Informando los datos del encabezado //**************************************************************** //* Por estándar de la rutina el código de la meta de venta se genera de manera automática //* Si desea informar un código específico, agregue el campo CT_DOC a la array aCabec //* Ejemplo: aadd(aCabec, {"CT_DOC", "Meta00001", Nil}) //**************************************************************** aadd(aCabec, {"CT_DESCRI", cDescri, Nil}) //--- Informando los datos de la Grid aLinha := {} aadd(aLinha,{"CT_SEQUEN", '001', Nil}) aadd(aLinha,{"CT_VEND", cVend1, Nil}) aadd(aLinha,{"CT_QUANT", nQtd1, Nil}) aadd(aLinha,{"CT_VALOR", nValor1, Nil}) aadd(aGrid, aLinha) aLinha := {} aadd(aLinha,{"CT_SEQUEN", '002', Nil}) aadd(aLinha,{"CT_VEND", cVend2, Nil}) aadd(aLinha,{"CT_QUANT", nQtd2, Nil}) aadd(aLinha,{"CT_VALOR", nValor2, Nil}) aadd(aGrid, aLinha) //--- Commit de la rutina MSExecAuto({|a, b, c| FATA050(a, b, c)}, aCabec, aGrid, nOpcX) If !lMsErroAuto ConOut("¡Incluida con éxito!) Else ConOut("¡Error al incluir!") aErroAuto := GetAutoGRLog() For nCount := 1 To Len(aErroAuto) cLogErro += StrTran(StrTran(aErroAuto[nCount], "<", ""), "-", "") + " " ConOut(cLogErro) Next nCount EndIf RESET ENVIRONMENT Return(.T.)
Exemplo básico para a execução de Alteração de Metas de Venda via Rotina Automática:
#INCLUDE "PROTHEUS.CH" #INCLUDE "TBICONN.CH" User Function MyFATA050 Local cMeta := "Meta00001" //Meta que se modificará Local cDescri := "META DE VENTA MODIF" Local nOpcX := 4 Local nCount := 0 Local cSequen := "002" Local aErroAuto := {} Private lMsErroAuto := .F. Private lAutoErrNoFile := .F. //* Apertura del entorno ConOut("Inicio: " + Time()) ConOut(Repl("-",80)) ConOut(PadC("Cambio de Meta de Venta", 80)) PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "FAT" TABLES "SCT","SA3" // Verifica si existe el registro que se cambiará SCT->(DBSetOrder(1)) If SCT->(! MsSeek(xFilial("SCT") + cMeta + cSequen)) cMsgLog += "No se encontró la meta de venta: " + cB1Cod + ",Sequencia: " + cSequen + CRLF lOk := .F. EndIf //* Alteracao - INÍCIO aCabec := {} aGrid := {} aLinha := {} //************************************************************************************************ //*** En este ejemplo estamos cambiando la descripción en el encabezado y la cantidad de secuencia 002 *** //************************************************************************************************ //--- Informando los datos del encabezado aadd(aCabec, {"CT_DOC", cMeta, Nil}) aadd(aCabec, {"CT_DESCRI", cDescri, Nil}) //--- Informando los datos de la Grid aLinha := {} aadd(aLinha,{"LINPOS", "CT_SEQUEN", '002'}) // Para cambiar un ítem de la grid es necesario informar su secuencia con "LIMPIOS" aadd(aLinha,{"AUTDELETA", "N", Nil}) aadd(aLinha,{"CT_QUANT", 5, Nil}) aadd(aGrid, aLinha) //--- Commit de la rutina MSExecAuto({|a, b, c| FATA050(a, b, c)}, aCabec, aGrid, nOpcX) If !lMsErroAuto ConOut("¡Modificada con éxito! " + cMeta) Else ConOut("¡Error en la modificación!") aErroAuto := GetAutoGRLog() For nCount := 1 To Len(aErroAuto) cLogErro += StrTran(StrTran(aErroAuto[nCount], "<", ""), "-", "") + " " ConOut(cLogErro) Next nCount EndIf RESET ENVIRONMENT Return(.T.)
Ejemplo básico para ejecutar la Eliminación de Metas de Venta mediante la Rutina Automática:
#INCLUDE "PROTHEUS.CH" #INCLUDE "TBICONN.CH" User Function MyFATA050 Local cMeta := "Meta00001" Local nOpcX := 5 Local nCount := 0 Local aErroAuto := {} Private lMsErroAuto := .F. Private lAutoErrNoFile := .F. //* Abertura do ambiente ConOut("Inicio: " + Time()) ConOut(Repl("-",80)) ConOut(PadC("Eliminación de Meta de Venta", 80)) PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "FAT" TABLES "SCT","SA3" // Verifica si existe el registro que se cambiará SCT->(DBSetOrder(1)) If SCT->(! MsSeek(xFilial("SCT") + cMeta)) cMsgLog += "No se encontró la meta de venta: " + CRLF lOk := .F. EndIf //* Exclusão - INÍCIO aCabec := {} //--- Informando los datos del encabezado aadd(aCabec, {"CT_DOC", cMeta, Nil}) //--- Commit de la rutina MSExecAuto({|a, b, c| FATA050(a, b, c)}, aCabec, , nOpcX) If !lMsErroAuto ConOut("¡Borrado con éxito! ") Else ConOut("¡Error en el borrado!") aErroAuto := GetAutoGRLog() For nCount := 1 To Len(aErroAuto) cLogErro += StrTran(StrTran(aErroAuto[nCount], "<", ""), "-", "") + " " ConOut(cLogErro) Next nCount EndIf RESET ENVIRONMENT Return(.T.)