ÍNDICE

  1. Datos generales
  2. Descripción
  3. Sintaxis
  4. Parámetros
  5. Devolución
  6. Ejemplos

01. DATOS GENERALES

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


02. DESCRIPCIÓN

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)


03. SINTAXIS

MSExecAuto({|a, b, c| FATA050(a, b, c)}, aCabec, aGrid, nOpcX)

04. PARÁMETROS

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

05. DEVOLUCIÓN

{}

06. EJEMPLOS

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.)