01. DADOS GERAIS
| Produto: | | Solucoes_totvs_cross |
|---|
| SolucaoCross | TOTVS Backoffice |
|---|
|
| Solucoes_totvs_parceirosexptotvs |
|---|
|
|
|---|
| Linha de Produto: | |
|---|
| Segmento: | |
|---|
| Módulo: | | Modulos_cross_segmentos |
|---|
| ModulosCrossSegmentos | TOTVS Backoffice (Linha Protheus) - Estoque e Custos (SIGAEST) |
|---|
|
| Modulos_totvs_prestadores_de_servicos |
|---|
|
|---|
| 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â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 |
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â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 |
| Nota |
|---|
|
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
| Bloco de código |
|---|
| language | java |
|---|
| theme | Midnight |
|---|
| title | Exemplo |
|---|
| linenumbers | true |
|---|
|
#INCLUDE#include '"Protheus.ch'"
User Function MT010JinMTFilCal()
Local cParam1aFilsOrig := ""PARAMIXB[1]
Local cJsonDataaFilsCalc := {}
If FWIsInCallStack("MATA350")
Local uRet
Local oModel := FWModelActive(aAdd(aFilsCalc, {})
Local lMVC := TableInDic("G3Q"aAdd(aFilsCalc[Len(aFilsCalc)], .FT.) .And. oModel <> Nil .And. oModel:cSource == "MATA010"
Local cCod := ""
Local aArea // Determina := GetArea()
Local oJson
cParam1 := PARAMIXB[1]
oJson := JsonObject():New()
uRet := oJson:FromJson(cParam1)
if ValType(uRet) == "U"
If lMVC
se a filial será considerada (.T.) ou não (.F.) para processamento
aAdd(aFilsCalc[Len(aFilsCalc)], cFilAnt) cCod := AllTrim(oModel:GetValue("SB1MASTER","B1_COD"))
// Código da filial
cDesc := AllTrim(oModel:GetValue("SB1MASTER","B1_DESC")) + " MT010Jin"
aAdd(aFilsCalc[Len(aFilsCalc)], "Filial 01") else
cCod// Nome := M->B1_CODda filial
cDesc := M->B1_DESC + " MT010Jin"
Endif
oJson["Content"]["TcOrthers"] := JsonObject():New()
oJson["Content"]["TcOrthers"]["Cust1"] := "TESTE DE CUSTOMIZADO1"aAdd(aFilsCalc[Len(aFilsCalc)], "12.345.678/0009-10") // CNPJ da filial
oJson["Content"]["TcOrthers"]["TESPROD"] := JsonObject():New()
oJson["Content"]["TcOrthers"]["TESTECOD"] := cCod
oJson["Content"]["TcOrthers"]["TESTEDESC"] := cDesc
cJsonData := oJson:toJSON(cParam1)
If ValType(ret) == "C"
aAdd(aFilsCalc[Len(aFilsCalc)], "111.222.333.444") // Inscrição estadual da filial
aAdd(aFilsCalc[Len(aFilsCalc)], "555.666.777.888") //Falha aoInscrição transformarmunicipal texto em objeto jsonda filial
Else
aFilsCalc cJsonData := ''
Endif
aFilsOrig
EndIf
RestArea(aArea)
FreeObj(oJson)
Return cJsonData
|
...