Árvore de páginas

Versões comparadas

Chave

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


ÍNDICE

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

01. DATOS GENERALES

Línea de producto

CONTEÚDO

  1. Dados Gerais
  2. Descrição
  3. Sintaxe
  4. Parâmetros
  5. Retorno
  6. Exemplos

01. DADOS GERAIS

Linha de ProdutoServiços FaturamentoFunção VendaAbrangênciasMicrosiga Protheus  Protheus VersõesMicrosiga Protheus  Protheus Compatível Países OperacionaisCompatível com as Bases de DadosTodosNível AcessoNível Acesso

:

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:

Todas

Nivel de

acceso:

Nivel 1 (

Acceso Clientes)

Idiomas:

Todos


02. 

...

DESCRIPCIÓN

Função Función utilizada para inclusão, alteração ou exclusão de Regras de Bonificação via rotina inclusión, modificación o borrado de Reglas de bonificación vía rutina automática (ExecAuto).

03. 

...

SINTAXIS

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

04. 

...

PARÁMETROS

Principales campos y parámetros


Nombre

Principais Campos e Parâmetros

NomeDescriçãoObrigatório de  contendo os campos do cabeçalho Sim de  contendo os campos da Simopção execução Inclusão Alteração ExclusãoSim

Tipo

Descripción

Obligatorio

aCabec

Array

 de registros

Array

 con los campos del encabezado (ACQ)

aGrid

Array

 de registros

Array

 con los campos de la Grid (ACR)

nOpcX

Numérico (

opción de

ejecución)

3 =

Inclusión; 4 =

Modificación; 5 =

Borrado

05.

...

DEVOLUCIÓN

         Não há No EXISTE

06. 

...

EJEMPLOS

Totvs custom tabs box items
defaultno
referenciaFonteFuente

Exemplo Ejemplo básico para a execução la ejecución de Inclusão, Alteração e Exclusão de Regras de Bonificação via Rotina Automática Inclusión, Modificación y Borrado de Reglas de bonificación vía Rutina automática:

Bloco de código
linenumberstrue
#Include 'protheus.ch'
#Include 'topconn.ch'
#Include "tbiconn.ch"

//----------------------------------------------------------------------------
/*/{Protheus.doc} TSTFATA090
ExemploEjemplo de ExecAuto para ala rotinarutina FATA090-ManutençãoMantenimiento dasde Regrasreglas de Bonificaçãobonificación

@author Squad CRM/FAT
@since 29/09/2023
@version 1.0
/*/
//----------------------------------------------------------------------------

User Function TSTFATA090()

Local aCab              as Array
Local aItens            as Array
Local aLinha            as Array
Local cCodRegra         as Char			//Código de dala Regraregla
Local aErroAuto         as Array
Local nCount            as Numeric
Local cLogErro          as Char
Local cItem             as Char
Local nOpcX				as Numeric		//OpçãoOpción para (3 = InclusãoInclusión; 4 = AlteraçãoModificación; 5 = ExclusãoBorrado)
Private lMsErroAuto		as Logical
Private lAutoErrNoFile	as Logical

// NesteEn este RDMAKE (ExemploEjemplo), oel mesmomismo número de regraregla de bonificaçãobonificación ése utilizadoutiliza para ala RotinaRutina Automáticaautomática (Modelos INCLUSÃOINCLUSIÓN / ALTERAÇÃOMODIFICACIÓN ey EXCLUSÃOBORRADO).
//****************************************************************
//* AberturaApertura dodel ambienteentorno
//****************************************************************
FWLogMsg('WARN',, 'SIGAFAT', FunName(), '', '01', ("Inicio: " + Time()) , 0, 0, {})

RpcClearEnv()
RPCSetType(3) //NaoNo fazrealiza consumo de licençalicencia
RPCSetEnv("T1", "D MG 01", Nil, Nil, "FAT")

//|---------------------------------|
//| InclusãoInclusión - InícioInicio				|
//|---------------------------------|

cCodRegra := GetSxeNum("ACQ","ACQ_CODREG")
aCab      := {}
aItens    := {}

//|---------------------------------|
//| Preenche Cabeçalho				 Completa encabezado             |
//|---------------------------------|
Aadd(aCab,{"ACQ_CODREG" ,cCodRegra                        ,Nil})
Aadd(aCab,{"ACQ_DESCRI" ,"REGRAREGLA DE BONIFICACAOBONIFICACIÓN "+cCodRegra,Nil})
Aadd(aCab,{"ACQ_CODPRO" ,"FATR00000000000000000000000032" ,Nil})
Aadd(aCab,{"ACQ_QUANT"  ,1                                ,Nil})
Aadd(aCab,{"ACQ_TPRGBN" ,"1"                              ,Nil})
	
//|---------------------------------|
//| PreencheCompleta ITENSÍTEMS 					|
//|---------------------------------|
aLinha := {}
Aadd(aLinha,{"ACR_ITEM"	  ,"001"                            ,Nil})
Aadd(aLinha,{"ACR_CODPRO" ,"FATR00000000000000000000000026" ,Nil})
Aadd(aItens,aLinha)

aLinha := {}
Aadd(aLinha,{"ACR_ITEM"	  ,"002"                            ,Nil})
Aadd(aLinha,{"ACR_CODPRO" ,"FATR00000000000000000000000027" ,Nil})
Aadd(aItens,aLinha)

//|-----------------------------|
//| GeraGenera aRegla Regra de Bonificação bonificación|
//|-----------------------------|
nOpcX		    := 3
lAutoErrNoFile	:= .F.
MSExecAuto({|a,b,c,d| FATA090(a,b,c)}, aCab, aItens, nOpcx)

If lMsErroAuto
    FWLogMsg('WARN',, 'SIGAFAT', FunName(), '', '02', "Erro¡Error en nala inclusaoinclusión!" , 0, 0, {})
    aErroAuto := GetAutoGRLog()
    For nCount := 1 To Len(aErroAuto)
       cLogErro += StrTran(StrTran(aErroAuto[nCount], "<", ""), "-", "") + " "
       FWLogMsg('WARN',, 'SIGAFAT', FunName(), '', '03', cLogErro , 0, 0, {})
       ConOut(cLogErro)
    Next
Else
    FWLogMsg('WARN',, 'SIGAFAT', FunName(), '', '04', ("Incluido¡Incluido comcon sucessoéxito! "+cCodRegra) , 0, 0, {})
EndIf
//|---------------------------------|
//| InclusãoInclusión - FimFinal  				|
//|---------------------------------|


//|---------------------------------|
//| AlteraçãoModificación - InícioInicio				  	    |
//|---------------------------------|
ACQ->(DbSetOrder(1))
If ACQ->(DbSeek(xFilial("ACQ")+cCodRegra))
    aCab      := {}
    aItens    := {}

    //|---------------------------------|
    //| Preenche Cabeçalho				 Completa encabezado             |
    //|---------------------------------|
    Aadd(aCab,{"ACQ_CODREG" ,ACQ->ACQ_CODREG    ,Nil})
    Aadd(aCab,{"ACQ_DESCRI" ,ACQ->ACQ_DESCRI    ,Nil})
    Aadd(aCab,{"ACQ_CODPRO" ,ACQ->ACQ_CODPRO    ,Nil})
    Aadd(aCab,{"ACQ_QUANT"  ,2                  ,Nil}) //AlterandoModificando ala quantidadecantidad aque serse bonificadabonificará paraa 2
    Aadd(aCab,{"ACQ_TPRGBN" ,ACQ->ACQ_TPRGBN    ,Nil})
        
    //|---------------------------------|
    //| PreencheCompleta ITENSÍTEMS 					|
    //|---------------------------------|
    ACR->(DbSetOrder(1))
    If ACR->(DbSeek(xFilial("ACR")+cCodRegra))
        While ACR->(!Eof()) .And. ACR->ACR_CODREG == cCodRegra
            aLinha := {}
            Aadd(aLinha,{"LINPOS"     ,"ACR_ITEM"      ,ACR->ACR_ITEM})
            Aadd(aLinha,{"AUTDELETA"  ,"N"             ,Nil          })
            Aadd(aLinha,{"ACR_CODPRO" ,ACR->ACR_CODPRO ,Nil          })
            Aadd(aItens,aLinha)
            cItem := ACR->ACR_ITEM
            ACR->(DbSkip())
        End

        //AdicionandoAgregando oel item
ítem            aLinha := {}
        Aadd(aLinha,{"ACR_ITEM"	  ,(cItem := Soma1(cItem))          ,Nil})
        Aadd(aLinha,{"ACR_CODPRO" ,"FATR00000000000000000000000028" ,Nil})
        Aadd(aItens,aLinha)

        //Adicionando o item
       Agregando el ítem         aLinha := {}
        Aadd(aLinha,{"ACR_ITEM"	  ,(cItem := Soma1(cItem))          ,Nil})
        Aadd(aLinha,{"ACR_CODPRO" ,"FATR00000000000000000000000029" ,Nil})
        Aadd(aItens,aLinha)
    EndIf

    //|-------------------------------|
    //| AlteraModifica aRegla Regra de Bonificação bonificación|
    //|-------------------------------| 
	nOpcX		    := 4
    lMsErroAuto		:= .F.
    lAutoErrNoFile	:= .F.     
	MSExecAuto({|a,b,c,d| FATA090(a,b,c)}, aCab, aItens,  nOpcX )
    If lMsErroAuto
        FWLogMsg('WARN',, 'SIGAFAT', FunName(), '', '05', "Erro¡Error en nala alteraçãomodificación!" , 0, 0, {})
        aErroAuto := GetAutoGRLog()
        For nCount := 1 To Len(aErroAuto)
            cLogErro += StrTran(StrTran(aErroAuto[nCount], "<", ""), "-", "") + " "
            FWLogMsg('WARN',, 'SIGAFAT', FunName(), '', '06', cLogErro , 0, 0, {})
            ConOut(cLogErro)
        Next
    Else
        FWLogMsg('WARN',, 'SIGAFAT', FunName(), '', '07', ("Alterado¡Modificado comcon sucessoéxito! "+cCodRegra) , 0, 0, {})
    EndIf
EndIf
//|---------------------------------|
//| AlteraçãoModificación - Fim  				 Final            |
//|---------------------------------|

//|---------------------------------|
//| ExclusãoBorrado - Início				 Inicio                |
//|---------------------------------|
ACQ->(DbSetOrder(1))
If ACQ->(DbSeek(xFilial("ACQ")+cCodRegra))
    aCab      := {}
    aItens    := {}

    //|---------------------------------|
    //| Preenche Cabeçalho				 Completa encabezado             |
    //|---------------------------------|
    Aadd(aCab,{"ACQ_CODREG" ,ACQ->ACQ_CODREG ,Nil})
    Aadd(aCab,{"ACQ_DESCRI" ,ACQ->ACQ_DESCRI ,Nil})
    Aadd(aCab,{"ACQ_CODPRO" ,ACQ->ACQ_CODPRO ,Nil})
    Aadd(aCab,{"ACQ_QUANT"  ,ACQ->ACQ_QUANT  ,Nil})
    Aadd(aCab,{"ACQ_TPRGBN" ,ACQ->ACQ_TPRGBN ,Nil})
        
    //|---------------------------------|
    //| PreencheCompleta ITENSÍTEMS 					|
    //|---------------------------------|
    ACR->(DbSetOrder(1))
    If ACR->(DbSeek(xFilial("ACR")+cCodRegra))
        While ACR->(!Eof()) .And. ACR->ACR_CODREG == cCodRegra
            aLinha := {}
            Aadd(aLinha,{"ACR_ITEM"	  ,ACR->ACR_ITEM   ,Nil})
            Aadd(aLinha,{"ACR_CODPRO" ,ACR->ACR_CODPRO ,Nil})
            Aadd(aItens,aLinha)
            ACR->(DbSkip())
        End
    EndIf

    //|-------------------------------|
    //| Borra ExcluiRegla ade Regrabonificación de Bonificação |
    //|-------------------------------| 
	nOpcX		    := 5
    lMsErroAuto		:= .F.
    lAutoErrNoFile	:= .F.
    MSExecAuto({|a,b,c,d| FATA090(a,b,c)}, aCab, aItens, nOpcX)

    If lMsErroAuto
        FWLogMsg('WARN',, 'SIGAFAT', FunName(), '', '08', "Erro¡Error en nael exclusãoborrado!" , 0, 0, {})
        aErroAuto := GetAutoGRLog()
        For nCount := 1 To Len(aErroAuto)
            cLogErro += StrTran(StrTran(aErroAuto[nCount], "<", ""), "-", "") + " "
            FWLogMsg('WARN',, 'SIGAFAT', FunName(), '', '09', cLogErro , 0, 0, {})
            ConOut(cLogErro)
        Next
    Else
        FWLogMsg('WARN',, 'SIGAFAT', FunName(), '', '10', ("Excluido¡Borrado comcon sucessoéxito! "+cCodRegra) , 0, 0, {})
    EndIf
EndIf
//|---------------------------------|
//| ExclusãoBorrado - Fim  				 Final                 |
//|---------------------------------|

RpcClearEnv()

Return