Árvore de páginas

01. VISÃO GERAL

Linha de Produto:Microsiga Protheus®
Segmento:Serviços
Módulo:SIGAFAT - Faturamento
Função:FATA080 - Manutenção das Regras de Desconto
Abrangências:Microsiga Protheus 12
Versões:Microsiga Protheus 12
Compatível Países:Todos
Sistemas Operacionais:Todos
Compatível com as Bases de Dados:Todos
Nível de Acesso:Nível 1 (Acesso Clientes)
Idiomas:Todos


02. DESCRICÃO

Função utilizada para inclusão, alteração e exclusão das Regras de Desconto via rotina automática (ExecAuto).

03. SINTAXE

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

04. PARÂMETROS

Nome

TipoDescriçãoDefaultObrigatório
aCabecArray de registrosArray contendo os campos do cabeçalho (ACO)
Sim
aItensArray de registrosArray contendo os campos dos itens (ACP)
Sim
nOpcXNumérico (opção de execução)3 = Inclusão; 4 = Alteração; 5 = Exclusão
Sim

05. RETORNO

Não há.

06. EXEMPLOS

Escolha a operação desejada abaixo de acordo com a sua necessidade de execução:


Este é o exemplo básico para a execução da Inclusão da Regra de Desconto via Rotina Automática:

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

User Function MyFata080()

Local cCodReg    := ""              // Código da Regra
Local cB1Cod     := "PRODUTO001"    // Código do Produto
Local cMsgLog    := ""
Local cFilSB1    := ""
Local nOpcX      := 3               // Inclusão
Local aCabec     := {}
Local aItens     := {}
Local aLinha     := {}
Local lOk        := .T.
 
Private lMsErroAuto    := .F. // Indica se houve erro na execução da rotina automática
Private lMsHelpAuto	  := .T. // Gera mensagem de erro como aquivo .LOG na system
 
//****************************************************************
//* Abertura do ambiente
//****************************************************************
ConOut("Inicio: " + Time())
 
ConOut(Repl("-",80))
ConOut(PadC("Processo de inclusao de Regra de Desconto", 80))
 
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "FAT" TABLES "ACO","ACP","SA1","SBM"
 
//****************************************************************
//* Verifica se o produto existe
//****************************************************************
SB1->(dbSetOrder(1))
cFilSB1 := xFilial("SB1")
If SB1->(! MsSeek(cFilSB1 + cB1Cod))
   cMsgLog += "Cadastrar o Produto: " + cB1Cod + CRLF
   lOk     := .F.
EndIf
 
If lOk

   //|---------------------------------|
   //| Gera código da Regra de Desconto|
   //|---------------------------------|
   cCodReg := GetSxeNum("ACO", "ACO_CODREG") 
 
   //|---------------------------------|
   //| PREENCHE CABECALHO              |
   //|---------------------------------|
   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})

   //|---------------------------------|
   //| PREENCHE ITENS                  |
   //|---------------------------------|
   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 com sucesso! " + cCodReg)
   Else
      ConOut("Erro na inclusao!")
   EndIf
 
Else
 
   ConOut(cMsgLog)
 
EndIf
 
ConOut("Fim: " + Time())
 
RESET ENVIRONMENT
Return

Este é o exemplo básico para a execução da Alteração da Regra de Desconto via Rotina Automática:

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

User Function MyFata080()

Local cCodReg    := "000001"              // Código da Regra
Local cB1Cod     := "PRODUTO002"          // Código do Produto
Local cMsgLog    := ""
Local cFilSB1    := ""
Local nOpcX      := 4                     // Alteração
Local aCabec     := {}
Local aItens     := {}
Local aLinha     := {}
Local lOk        := .T.
 
Private lMsErroAuto    := .F. // Indica se houve erro na execução da rotina automática
Private lMsHelpAuto	  := .T. // Gera mensagem de erro como aquivo .LOG na system
 
//****************************************************************
//* Abertura do ambiente
//****************************************************************
ConOut("Inicio: " + Time())
 
ConOut(Repl("-",80))
ConOut(PadC("Processo de alteração de Regra de Desconto", 80))
 
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "FAT" TABLES "ACO","ACP","SA1","SBM"
 
//****************************************************************
//* Verifica se o produto existe
//****************************************************************
SB1->(dbSetOrder(1))
cFilSB1 := xFilial("SB1")
If SB1->(! MsSeek(cFilSB1 + cB1Cod))
   cMsgLog += "Cadastrar o Produto: " + cB1Cod + CRLF
   lOk     := .F.
EndIf
 
If lOk

   //|---------------------------------|
   //| CABECALHO              |
   //|---------------------------------|
   aCabec   := {}
   aadd(aCabec, {"ACO_CODREG",   cCodReg,                         Nil})
   aadd(aCabec, {"ACO_DESCRI",   "ALTERACAO DE REGRA DE DESCONTO", Nil})

   //|---------------------------------|
   //| ITENS                  |
   //|---------------------------------|
   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("Alterada com sucesso! " + cCodReg)
   Else
      ConOut("Erro na alteração!")
   EndIf
 
Else
 
   ConOut(cMsgLog)
 
EndIf
 
ConOut("Fim: " + Time())
 
RESET ENVIRONMENT
Return

Este é o exemplo básico para a execução da Exclusão da Regra de Desconto via Rotina Automática:

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

User Function MyFata080()

Local cCodReg    := "000001"        // Código da Regra
Local nOpcX      := 5               // Exclusão
Local aCabec     := {}
 
Private lMsErroAuto    := .F. // Indica se houve erro na execução da rotina automática
Private lMsHelpAuto	  := .T. // Gera mensagem de erro como aquivo .LOG na system
 
//****************************************************************
//* Abertura do ambiente
//****************************************************************
ConOut("Inicio: " + Time())
 
ConOut(Repl("-",80))
ConOut(PadC("Processo de exclusão de Regra de Desconto", 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("Excluida com sucesso! " + cCodReg)
Else
   ConOut("Erro na exclusão!")
EndIf

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