| Produto: | |
|---|---|
| Linha de Produto: | |
| Segmento: | |
| Módulo: | |
| Função: | MatFilCalc (sigacus.prw) - Função para seleção das filiais para processamento por empresa |
| País: | Todos |
| Ticket: | 22636073 |
| Issue: | DMANMAT01-43940 |
Ponto de entrada utilizado para substituir a tela padrão de seleção das filiais em diversas rotinas do sistema.
Sua chamada ocorre somente em contextos onde a tela padrão para seleção de filiais seria apresentada, não sendo executado por padrão em chamadas via rotina automática ou schedule, por exemplo.
O ponto de entrada recebe como parâmetro um array contendo as filiais previamente identificadas pela rotina padrão, com as informações abaixo.
| Parâmetro | Tipo | Descrição |
|---|---|---|
| PARAMIXB[nX][1] | Lógico | Determina se a filial será considerada (.T.) ou não (.F.) para processamento |
| PARAMIXB[nX][2] | Caracter | Código da filial |
| PARAMIXB[nX][3] | Caracter | Nome da filial |
| PARAMIXB[nX][4] | Caracter | CNPJ da filial |
| PARAMIXB[nX][5] | Caracter | Inscrição estadual da filial |
| PARAMIXB[nX][6] | Caracter | Inscrição municipal da filial |
O retorno do ponto de entrada deve ser um array no mesmo formato do array recebido como parâmetro, com as informações abaixo.
| Parâmetro | Tipo | Descrição |
|---|---|---|
| PARAMIXB[1] | Lógico | Determina se a filial será considerada (.T.) ou não (.F.) para processamento |
| PARAMIXB[2] | Caracter | Código da filial |
| PARAMIXB[3] | Caracter | Nome da filial |
| PARAMIXB[4] | Caracter | CNPJ da filial |
| PARAMIXB[5] | Caracter | Inscrição estadual da filial |
| PARAMIXB[6] | Caracter | Inscrição municipal da filial |
Caso o ponto de entrada retorne um array vazio a rotina chamadora seguirá sua execução, porém, nenhuma filial será processada na rotina uma vez que não houve retorno de uma filial válida para processamento. |
#include "Protheus.ch"
User Function MTFilCalc()
Local aFilsOrig := PARAMIXB[1]
Local aFilsCalc := {}
If FWIsInCallStack("MATA350")
aAdd(aFilsCalc, {})
aAdd(aFilsCalc[Len(aFilsCalc)], .T.) // Determina se a filial será considerada (.T.) ou não (.F.) para processamento
aAdd(aFilsCalc[Len(aFilsCalc)], cFilAnt) // Código da filial
aAdd(aFilsCalc[Len(aFilsCalc)], "Filial 01") // Nome da filial
aAdd(aFilsCalc[Len(aFilsCalc)], "12.345.678/0009-10") // CNPJ da filial
aAdd(aFilsCalc[Len(aFilsCalc)], "111.222.333.444") // Inscrição estadual da filial
aAdd(aFilsCalc[Len(aFilsCalc)], "555.666.777.888") // Inscrição municipal da filial
Else
aFilsCalc := aFilsOrig
EndIf
Return aFilsCalc |