Árvore de páginas


01. DADOS GERAIS

Produto:

TOTVS Backoffice

Linha de Produto:

Linha Protheus

Segmento:

Backoffice

Módulo:

TOTVS Backoffice (Linha Protheus) - Estoque e Custos (SIGAEST)

Função:MatFilCalc (sigacus.prw) - Função para seleção das filiais para processamento por empresa
País:Todos
Ticket:22636073
Issue:DMANMAT01-43940


02. DESCRIÇÃO

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.

03. PARÂMETROS

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âmetroTipoDescrição
PARAMIXB[nX][1]LógicoDetermina se a filial será considerada (.T.) ou não (.F.) para processamento
PARAMIXB[nX][2]CaracterCódigo da filial
PARAMIXB[nX][3]CaracterNome da filial
PARAMIXB[nX][4]CaracterCNPJ da filial
PARAMIXB[nX][5]CaracterInscrição estadual da filial
PARAMIXB[nX][6]CaracterInscrição municipal da filial

04. RETORNO

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âmetroTipoDescrição
PARAMIXB[nX][1]LógicoDetermina se a filial será considerada (.T.) ou não (.F.) para processamento
PARAMIXB[nX][2]CaracterCódigo da filial
PARAMIXB[nX][3]CaracterNome da filial
PARAMIXB[nX][4]CaracterCNPJ da filial
PARAMIXB[nX][5]CaracterInscrição estadual da filial
PARAMIXB[nX][6]CaracterInscrição municipal da filial



Importante

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.

05. EXEMPLO DE UTILIZAÇÃO

Exemplo
#include "Protheus.ch"

User Function MTFilCal()

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