Árvore de páginas

Versões comparadas

Chave

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

...

A sintaxe para a chamada da API, que deve ser de forma persistente:


run lapllap/mlaapi018.p persistent set h-handle.

...

pi-ativa-doc-evento

Requisito

Nenhum.

Descrição

Ativa o documento de evento de contrato para aprovação pelo MLA 

Parâmetros




Não se aplica

Retorno

Não se aplica.



pi-exporta-ccusto

Requisito

Nenhum.

Descrição

Exportação de centros de custo conforme empresa

Parâmetros

Tipo

Input/Output

Descrição

c-empresa

CHARACTER

INPUT

Código da empresa

c-arq

CHARACTER

OUTPUT

Arquivo (.csv) gerado com os centros de custo.

Obs.: O arquivo gerado é no formato para importação através do MLA0171.

Retorno

Caso não haja centros de custo a serem exportados, a variável c-arq terá o valor branco "".




pi-exporta-ccusto-produtivo

Requisito

Nenhum.

Descrição

Exportação de centros de custo produtivos

Parâmetros

Tipo

Input/Output

Descrição

c-arq

CHARACTER

OUTPUT

Arquivo (.csv) gerado com os centros de custo

Obs.: O arquivo gerado é no formato para importação através do MLA0171.

Retorno

Não se aplica.



pi-retorna-documentos-existentes

Requisito

Nenhum.

Descrição

Retorna quais os tipos de documento cadastrados no módulo

Parâmetros

Tipo

Input/Output

Descrição

tt-docs-existentes

TEMP-TABLE

OUTPUT

Temp-table contendo os tipos 
de documento cadastrados

Retorno

Não se aplica.



pi-verifica-prog-consulta

Requisito

Nenhum.

Descrição

Verifica se há algum programa de consulta cadastrado para o documento.

Parâmetros

Tipo

Input/Output

Descrição

i-documento

INTEGER

INPUT

Código do documento do MLA

Retorno

Se existir algum programa retorna "OK", caso contrário "NOK".



pi-cria-programa-consulta

Requisito

Documento previamente cadastrado no MLA.

Descrição

Cria os programas de consulta padrões para o documento.

Parâmetros

Tipo

Input/Output

Descrição

i-documento

INTEGER

INPUT

Código do documento do MLA

c-empresaCHARACTERINPUTCódigo da empresa
tt-mla-prog-consultaTEMP-TABLEOUTPUTProgramas criados

Retorno

Caso o documento não esteja tratado pelo método, ou seja, não há programas de consulta para criar, retorna "NOK".



pi-verifica-chave-mla

Requisito

Documento previamente cadastrado no MLA.

Descrição

Verifica a existência da chave do documento.

Parâmetros

Tipo

Input/Output

Descrição

i-documento

INTEGER

INPUT

Código do documento do MLA

c-empresaCHARACTERINPUTCódigo da empresa
tt-mla-chave-doc-aprovTEMP-TABLEOUTPUTChave do documento

Retorno

Se a chave não existe, retorna "NOK".



pi-cria-chave-mla

Requisito

Documento previamente cadastrado no MLA.

Descrição

Cria as chaves dos documentos padräes no MLA0102 de acordo com o documento

Parâmetros

Tipo

Input/Output

Descrição

c-empresaCHARACTERINPUTCódigo da empresa

i-documento

INTEGER

INPUT

Código do documento do MLA

pl-efetiva-criacaoLOGICALINPUTIndica que a chave deve ser efetiva no 
banco de dados
pl-elimina-chaveLOGICALINPUTIndica que a chave atual do documento deve 
ser eliminada
tt-mla-chave-doc-aprovTEMP-TABLEOUTPUTChave do documento

Retorno

Caso o documento não esteja tratado pelo método, ou seja, não há chaves para criar, retorna "NOK".

Caso ocorra algum erro na criação da chave para o documento, retorna "NOK".

...



pi-compara-chave-padrao-chave-doc

...

/*------------------------------------------------------------------------------
Purpose: Compara a chave do documento rebida com a padrÆo do mesmo, caso esteja
diferente, retorna "NOK"
Parameters: pc-ep-codigo(CHARACTER - INPUT): C¢digo da empresa
pi-tipo-doc(INTEGER - INPUT): C¢digo do documento
tt-mla-chave-doc-aprov (TEMP-TABLE - INPUT): Chave atual do documento
Notes:
------------------------------------------------------------------------------*/
DEFINE INPUT PARAMETER pc-ep-codigo LIKE mla-tipo-doc-aprov.ep-codigo NO-UNDO.
DEFINE INPUT PARAMETER pi-tipo-doc LIKE mla-tipo-doc-aprov.cod-tip-doc NO-UNDO.
DEFINE INPUT PARAMETER TABLE FOR tt-mla-chave-doc-aprov-doc.

DEFINE VARIABLE i-num-chave-padrao AS INTEGER NO-UNDO.
DEFINE VARIABLE i-num-chave-doc AS INTEGER NO-UNDO.

IF pc-ep-codigo = "0":U THEN DO:
ASSIGN pc-ep-codigo = i-ep-codigo-usuario.
END.

/* Busca chave padrÆo do documento */
RUN pi-cria-chave-mla IN THIS-PROCEDURE (INPUT pc-ep-codigo,
INPUT pi-tipo-doc,
INPUT NO, /* NÆo realiza a cria‡Æo */
INPUT NO, /* Elimina chave antiga */
OUTPUT TABLE tt-mla-chave-doc-aprov).

FOR EACH tt-mla-chave-doc-aprov-doc NO-LOCK:
ASSIGN i-num-chave-doc = i-num-chave-doc + 1.
END.

FOR EACH tt-mla-chave-doc-aprov NO-LOCK:
ASSIGN i-num-chave-padrao = i-num-chave-padrao + 1.
END.

IF i-num-chave-doc <> i-num-chave-padrao THEN DO:
RETURN "NOK":U.
END.

FOR EACH tt-mla-chave-doc-aprov NO-LOCK:
FIND FIRST tt-mla-chave-doc-aprov-doc NO-LOCK
WHERE tt-mla-chave-doc-aprov-doc.posicao-ini = tt-mla-chave-doc-aprov.posicao-ini
AND tt-mla-chave-doc-aprov-doc.posicao-fim = tt-mla-chave-doc-aprov.posicao-fim NO-ERROR.

IF NOT AVAIL tt-mla-chave-doc-aprov-doc THEN DO:
RETURN "NOK":U.
END.
END.

RETURN "OK":U.
END PROCEDURE.

PROCEDURE pi-existencia-tipos-aprovacao:
/*------------------------------------------------------------------------------
Purpose: Verifica existˆncia de tipos de aprova‡Æo
Parameters:
Notes:
------------------------------------------------------------------------------*/

FIND FIRST mla-tipo-aprov NO-LOCK NO-ERROR.

IF NOT AVAIL mla-tipo-aprov THEN DO:
RETURN "NOK":U.
END.

RETURN "OK":U.
END PROCEDURE.

PROCEDURE pi-cria-tipos-aprovacao:
/*------------------------------------------------------------------------------
Purpose: Cria tipos de aprova‡Æo. Um de cada tipo:
- Hierarquia
- Faixa
- Lista
- PadrÆo
- T‚cnica
Parameters:
Notes:
------------------------------------------------------------------------------*/

FIND FIRST mla-tipo-aprov NO-LOCK NO-ERROR.
IF NOT AVAIL mla-tipo-aprov THEN DO:
CREATE mla-tipo-aprov.
{utp/ut-liter.i "Hierarquia"}
ASSIGN mla-tipo-aprov.cod-tip-aprov = 1
mla-tipo-aprov.des-tip-aprov = RETURN-VALUE
mla-tipo-aprov.ep-codigo = i-ep-codigo-usuario
mla-tipo-aprov.ind-tip-aprov = 1 /* Hierarquia */
mla-tipo-aprov.nr-min-aprov = 0.

CREATE mla-tipo-aprov.
{utp/ut-liter.i "Faixa"}
ASSIGN mla-tipo-aprov.cod-tip-aprov = 2
mla-tipo-aprov.des-tip-aprov = RETURN-VALUE
mla-tipo-aprov.ep-codigo = i-ep-codigo-usuario
mla-tipo-aprov.ind-tip-aprov = 5 /* Faixa */
mla-tipo-aprov.nr-min-aprov = 0.

CREATE mla-tipo-aprov.
{utp/ut-liter.i "Lista"}
ASSIGN mla-tipo-aprov.cod-tip-aprov = 3
mla-tipo-aprov.des-tip-aprov = RETURN-VALUE
mla-tipo-aprov.ep-codigo = i-ep-codigo-usuario
mla-tipo-aprov.ind-tip-aprov = 2 /* Lista */
mla-tipo-aprov.nr-min-aprov = 0.

CREATE mla-tipo-aprov.
{utp/ut-liter.i "PadrÆo"}
ASSIGN mla-tipo-aprov.cod-tip-aprov = 4
mla-tipo-aprov.des-tip-aprov = RETURN-VALUE
mla-tipo-aprov.ep-codigo = i-ep-codigo-usuario
mla-tipo-aprov.ind-tip-aprov = 3 /* PadrÆo */
mla-tipo-aprov.nr-min-aprov = 0.

CREATE mla-tipo-aprov.
{utp/ut-liter.i "T‚cnica"}
ASSIGN mla-tipo-aprov.cod-tip-aprov = 5
mla-tipo-aprov.des-tip-aprov = RETURN-VALUE
mla-tipo-aprov.ep-codigo = i-ep-codigo-usuario
mla-tipo-aprov.ind-tip-aprov = 4 /* T‚cnica */
mla-tipo-aprov.nr-min-aprov = 0.
END.

RETURN "OK":U.
END PROCEDURE.

PROCEDURE pi-exporta-usuarios:
/*------------------------------------------------------------------------------
Purpose: Exporta‡Æo de usu rios
Parameters: tt-param-usuar (TEMP-TABLE - INPUT): Temp-table com par³metros para exporta‡Æo
c-arq (CHARACTER - OUTPUT): Arquivo gerado
Notes:
------------------------------------------------------------------------------*/
DEFINE INPUT PARAMETER TABLE FOR tt-param-usuar.
DEFINE OUTPUT PARAMETER c-arq AS CHARACTER NO-UNDO.
DEFINE OUTPUT PARAMETER TABLE FOR RowErrors.

DEFINE VARIABLE c-output AS CHARACTER NO-UNDO.
DEFINE VARIABLE c-lotacao AS CHARACTER NO-UNDO.
DEFINE VARIABLE l-existe-usuar AS LOGICAL NO-UNDO.

FIND FIRST tt-param-usuar NO-ERROR.

FIND FIRST bf-mla-usuar-aprov WHERE bf-mla-usuar-aprov.cod-usuar = tt-param-usuar.cod-usuar-orig NO-LOCK NO-ERROR.
IF NOT AVAIL bf-mla-usuar-aprov THEN DO:

{utp/ut-liter.i "Usu rio"}

...

Requisito

Nenhum.

Descrição

Compara a chave do documento recebida com a chave padrão do mesmo

Parâmetros

Tipo

Input/Output

Descrição

c-empresaCHARACTERINPUTCódigo da empresa

i-documento

INTEGER

INPUT

Código do documento do MLA

tt-mla-chave-doc-aprov-docTEMP-TABLEOUTPUT

Chave do documento a ser validada

Retorno

Se a chave recebida estiver diferente da chave padrão do documento, retorna "NOK".



pi-existencia-tipos-aprovacao

Requisito

Nenhum.

Descrição

Verifica se há algum tipo de aprovação cadastrado.

Parâmetros




Não se aplica

Retorno

Se existir algum tipo de aprovação retorna "OK", caso contrário "NOK".



pi-cria-tipos-aprovacao

Requisito

Executar o "pi-existencia-tipos-aprovacao" antes para garantir que não há tipos de aprovação cadastrados.

Descrição

Realiza a criação dos tipos de aprovação. Um de cada tipo:

  • Hierarquia
  • Faixa
  • Lista
  • Padrão
  • Técnica

Parâmetros




Não se aplica

Retorno

Não se aplica.



pi-exporta-usuarios

Requisito

Usuários cadastrados.

Descrição

Exportação de usuários.

Parâmetros

Tipo

Input/Output

Descrição

tt-param-usuarTEMP-TABLEINPUTParâmetros a serem considerados para exportação.

c-arq

CHARACTER

OUTPUT

Arquivo (.csv) gerado com os usuários

Obs.: O arquivo gerado é no formato para importação através do MLA0171.

RowErrorsTEMP-TABLEOUTPUTTemp-table contendo erros ocorridos no processo.

Retorno

Retorna "NOK" caso ocorra algum erro.



pi-verifica-permissoes-aprovadores

Requisito

Aprovadores cadastrados no módulo do MLA.

Descrição

Verifica a existência de permissões cadastradas (MLA0104) para os usuários aprovadores do módulo.

Parâmetros

Tipo

Input/Output

Descrição

tt-aprovadoresTEMP-TABLEOUTPUTAprovadores que não possuem nenhuma permissão.

Retorno

Não se aplica.



pi-verifica-lotacoes-aprovadores

Requisito

Aprovadores cadastrados no módulo do MLA.

Descrição

Verifica a existência de lotações cadastradas (MLA0106) para os usuários aprovadores do módulo.

Parâmetros

Tipo

Input/Output

Descrição

tt-aprovadoresTEMP-TABLEOUTPUTAprovadores que não possuem nenhuma permissão em lotações.

Retorno

Não se aplica.



pi-verifica-utilizacao-verba

Requisito

Nenhum.

Descrição

Verifica se algum documento utiliza controle de verba no módulo

Parâmetros

Tipo

Input/Output

Descrição

l-utiliza

LOGICAL

OUTPUT

Indica utilização de verba por algum documento

Retorno

Não se aplica.



pi-verifica-prioridade-aprov-item-referencia

Requisito

Nenhum.

Descrição

Verifica se algum documento utiliza prioridade de aprovação por item ou referência.

Parâmetros

Tipo

Input/Output

Descrição

l-utiliza

LOGICAL

OUTPUT

Indica utilização de prioridade por item ou referência

Retorno

Não se aplica.



pi-verifica-prioridade-aprov-referencia

Requisito

Nenhum.

Descrição

Verifica se algum documento utiliza prioridade de aprovação por referência.

Parâmetros

Tipo

Input/Output

Descrição

l-utiliza

LOGICAL

OUTPUT

Indica utilização de prioridade por referência

Retorno

Não se aplica.



pi-verifica-utiliza-tipo-aprov

Requisito

Nenhum.

Descrição

Verifica se há algum tipo de aprovação para o tipo solicitado.

Parâmetros

Tipo

Input/Output

Descrição

i-tipoINTEGERINPUT

Tipo de aprovação.

1 - Hierarquia

2 - Lista

3 - Padrão

4 - Técnica

5 - Faixa

l-utiliza

LOGICAL

OUTPUT

Indica a existência do tipo de aprovação.

Retorno

Não se aplica.



pi-retorna-chave-doc

Requisito

Nenhum.

Descrição

Retorna a chave de um determinado documento

Parâmetros

Tipo

Input/Output

Descrição

p-cod-tip-codINTEGERINPUT

Código do documento

tt-chave

TEMP-TABLE

OUTPUT

Chaves do documento

Retorno

Não se aplica.



pi-localiza-info-documento

Requisito

Nenhum.

Descrição

Localiza informações como Empresa, Estabelecimento, Valor, Lotação, Item e Referência de um documento, com base em sua chave

Parâmetros

Tipo

Input/Output

Descrição

i-documentoINTEGERINPUT

Código do documento

tt-chave

TEMP-TABLE

INPUT

Chaves do documento (para localização)

c-empresaCHARACTEROUTPUTCódigo da empresa do documento
c-estabelCHARACTEROUTPUTCódigo do estabelecimento do documento
de-valor-docDECIMALOUTPUTValor do documento
c-lotacaoCHARACTEROUTPUTLotação do documento
c-itemCHARACTEROUTPUTItem do do documento
c-familiaCHARACTEROUTPUTFamília do Item do documento
c-referenciaCHARACTEROUTPUTReferência do documento
l-item-informadoLOGICALOUTPUTIndica se localizou o item

Retorno

Retorna "NOK" caso não consiga localizar o documento com base na chave recebida.

Trata a localização dos documentos: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 16, 18, 19, 20 e 21.



pi-valida-parametros-de-compra

Requisito

Nenhum.

Descrição

Se for recebido um documento de compras, valida se o mesmo está ativo na aprovação eletrônica (CD1750).

Parâmetros

Tipo

Input/Output

Descrição

i-documentoINTEGERINPUT

Código do documento

l-configurado

LOGICAL

OUTPUT

Indica se o documento está parametrizado corretamente na aprovação de compras.

Retorno

Caso não seja um documento de compras irá retornar como configurado.

Documentos considerados de compras: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 e 19.




pi-verifica-mla-param-aprov

Requisito

Nenhum.

Descrição

Verifica a existência de parametrização de aprovação para empresa e estabelecimento (MLA0000)

Parâmetros

Tipo

Input/Output

Descrição

c-empresaCHARACTERINPUT

Código da empresa

c-estabCHARACTERINPUTCódigo do estabelecimento

l-existe

LOGICAL

OUTPUT

Indica se existe a parametrização

Retorno

Não se aplica.



pi-verifica-mla-tipo-doc-aprov

Requisito

Nenhum.

Descrição

Verifica a existência de parametrização de tipo de documento (MLA0101)

Parâmetros

Tipo

Input/Output

Descrição

i-documentoINTEGERINPUT

Código do documento

c-empresaCHARACTERINPUT

Código da empresa

c-estabCHARACTERINPUTCódigo do estabelecimento

l-existe

LOGICAL

OUTPUT

Indica se existe a parametrização

l-aprovLOGICALOUTPUTIndica se o documento está marcado para sofrer aprovação
i-prioridade-aprovINTEGEROUTPUTPrioridade de aprovação do documento

Retorno

Não se aplica.



pi-verifica-usuario

Requisito

Nenhum.

Descrição

Retorna a existência do usuário, sua lotação e forma de geração do documento

Parâmetros

Tipo

Input/Output

Descrição

c-cod-usuarCHARACTERINPUT

Código do usuário

c-lotacaoCHARACTEROUTPUT

Código da lotação

i-responsavelINTEGEROUTPUTResponsável pela geração (1 - Lotação, 2 - Centro de Custo)

l-utiliza-lotacao-orig

LOGICAL

OUTPUT

Indica se deve utilizar a lotação do usuário do documento de origem

Retorno

Retorna "NOK" caso não encontre o usuário.



pi-retorna-tipos-aprovacao-prioridade

Requisito

Nenhum.

Descrição

Retorna os tipos de aprovação conforme a prioridade

Parâmetros

Tipo

Input/Output

Descrição

i-documentoINTEGERINPUT

Código do documento

c-empresaCHARACTERINPUT

Código da empresa

i-prioridadeINTEGERINPUTPrioridade de aprovação (1 - Documento, 2 - Item, 3 - Referência, 4 - Família)
c-item-fam-refCHARACTERINPUTCódigo do item, família ou referência (conforme a prioridade informada)
c-programaCHARACTEROUTPUTNome do programa de configurações
tt-tipo-aprovTEMP-TABLEOUTPUTTipos de aprovação do documento

Retorno

Não se aplica.



pi-retorna-familia-item

Requisito

Nenhum.

Descrição

Verifica se o item existe e caso exista, retorna sua família.

Parâmetros

Tipo

Input/Output

Descrição

c-itemCHARACTERINPUT

Código do item

c-familiaCHARACTEROUTPUTCódigo da família

Retorno

Se o item não existir retorna "NOK"



pi-valida-existencia-usuar

Requisito

Nenhum.

Descrição

Verifica se o usuário informado existe

Parâmetros

Tipo

Input/Output

Descrição

c-usuarCHARACTERINPUT

Código do usuário

l-existeLOGICALOUTPUTIndica existência do usuário

Retorno

Não se aplica.



pi-verifica-referencia

Requisito

Nenhum.

Descrição

Verifica existência da referência

Parâmetros

Tipo

Input/Output

Descrição

c-empresaCHARACTERINPUT

Código da empresa

i-documentoINTEGERINPUTCódigo do documento
c-referenciaCHARACTERINPUTCódigo da referência

Retorno

Retorna "NOK" caso a referência não exista.



pi-verifica-lotacao

Requisito

Nenhum.

Descrição

Verifica existência da lotação no MLA

Parâmetros

Tipo

Input/Output

Descrição

c-empresaCHARACTERINPUT

Código da empresa

c-lotacaoCHARACTERINPUTCódigo da lotação

Retorno

Retorna "NOK" caso a referência não exista.



pi-retorna-lotacao

Requisito

Nenhum.

Descrição

Retorna a informação da lotação ou da onde ela deve vir, para cada documento

Parâmetros

Tipo

Input/Output

Descrição

c-lotacao-localizadaCHARACTERINPUT

Lotação que foi localizada para o documento (caso não tenha sido, enviar em branco)

c-usuar-geradorCHARACTERINPUTUsuário gerador da pendência
i-documentoINTEGERINPUTCódigo do documento
c-lotacaoCHARACTEROUTPUTLotação a ser utilizada
c-msg-lotacao-docCHARACTEROUTPUTMensagem indicando da onde a lotação vem

Retorno

Não se aplica.



pi-retorna-hierarquia-aprovadores

Requisito

Nenhum.

Descrição

Retorna os aprovadores da hierarquia

Parâmetros

Tipo

Input/Output

Descrição

i-documentoINTEGERINPUTCódigo do documento
c-empresaCHARACTERINPUT

Código da empresa

c-estabCHARACTERINPUTCódigo do estabelecimento
c-lotacao-docCHARACTERINPUTCódigo da lotação
tt-aprovadoresTEMP-TABLEOUTPUTAprovadores da hierarquia

Retorno

Não se aplica.



pi-retorna-aprovadores-lista-por-prioridade

Requisito

Nenhum.

Descrição

Retorna os aprovadores da lista conforme prioridade de aprovação

Parâmetros

Tipo

Input/Output

Descrição

i-documentoINTEGERINPUTCódigo do documento
c-empresaCHARACTERINPUT

Código da empresa

c-estabCHARACTERINPUTCódigo do estabelecimento
i-prioridadeINTEGERINPUTPrioridade de aprovação (1 - Documento, 2 - Item, 3 - Referência, 4 - Família)
c-item-fam-refCHARACTERINPUTCódigo do item, família ou referência (conforme a prioridade)
c-programaCHARACTEROUTPUTNome do programa de configurações
tt-aprovadoresTEMP-TABLEOUTPUTAprovadores da lista

Retorno

Não se aplica.



pi-retorna-aprovador-padrao

Requisito

Nenhum.

Descrição

Retorna o aprovador padrão para o tipo de aprovação, empresa e estabelecimento

Parâmetros

Tipo

Input/Output

Descrição

i-tip-aprovINTEGERINPUTCódigo do tipo de aprovação
c-empresaCHARACTERINPUT

Código da empresa

c-estabCHARACTERINPUTCódigo do estabelecimento
tt-aprovadoresTEMP-TABLEOUTPUTAprovador padrão

Retorno

Não se aplica.



pi-retorna-faixa-aprovacao

Requisito

Nenhum.

Descrição

Verifica a faixa de aprovação conforme valor e documento

Parâmetros

Tipo

Input/Output

Descrição

i-documentoINTEGERINPUTCódigo do documento
c-empresaCHARACTERINPUT

Código da empresa

c-estabCHARACTERINPUTCódigo do estabelecimento
c-lotacaoCHARACTERINPUTCódigo da lotação
de-valorDECIMALINPUTValor da pendência
i-num-faixaINTEGEROUTPUTNúmero da faixa
c-des-faixaCHARACTEROUTPUTDescrição da faixa
de-lim-iniDECIMALOUTPUTLimite inicial da faixa
de-lim-fimDECIMALOUTPUTLimite final da faixa

Retorno

Se a faixa não existir retorna "NOK"



pi-verifica-aprovadores-hierarquia-faixa

Requisito

Nenhum.

Descrição

Retorna os aprovadores da hierarquia/faixa

Parâmetros

Tipo

Input/Output

Descrição

i-documentoINTEGERINPUTCódigo do documento
c-empresaCHARACTERINPUT

Código da empresa

c-estabCHARACTERINPUTCódigo do estabelecimento
c-lotacaoCHARACTERINPUTCódigo da lotação
i-num-faixaINTEGERINPUTNúmero da faixa
tt-aprovadoresTEMP-TABLEOUTPUTAprovadores da hierarquia/faixa

Retorno

Não se aplica.



pi-verifica-permissao-limite-usuario

Requisito

Nenhum.

Descrição

Verifica a permissão e limite do usuário no documento

Parâmetros

Tipo

Input/Output

Descrição

c-cod-usuarCHARACTERINPUTCódigo do usuário
i-documentoINTEGERINPUTCódigo do documento
c-empresaCHARACTERINPUT

Código da empresa

c-estabCHARACTERINPUTCódigo do estabelecimento
de-valorDECIMALINPUTValor da pendência
l-existeLOGICALOUTPUTIndica se existe o cadastro da permissão para o usuário
l-validaLOGICALOUTPUTIndica se a permissão no documento está na validade
l-limiteLOGICALOUTPUTIndica se existe o limite está válido

Retorno

Não se aplica.




pi-verifica-lotacao-usuario

Requisito

Nenhum.

Descrição

Verifica a permissão do usuário na lotação

Parâmetros

Tipo

Input/Output

Descrição

c-cod-usuarCHARACTERINPUTCódigo do usuário
c-empresaCHARACTERINPUT

Código da empresa

c-lotacaoCHARACTERINPUTCódigo da lotação
l-existeLOGICALOUTPUTIndica se existe o cadastro de lotação para o usuário
l-validaLOGICALOUTPUTIndica se a permissão na lotação está na validade

Retorno

Não se aplica.



pi-verifica-verba-usuario

Requisito

Nenhum.

Descrição

Verifica a verba do usuário para o documento em questão

Parâmetros

Tipo

Input/Output

Descrição

c-cod-usuarCHARACTERINPUTCódigo do usuário
i-documentoINTEGERINPUTCódigo do documento
c-empresaCHARACTERINPUT

Código da empresa

c-estabCHARACTERINPUTCódigo do estabelecimento
de-valorDECIMALINPUTValor da pendência
l-usa-verbaLOGICALOUTPUTIndica se o documento utiliza verba
l-existe-verbaLOGICALOUTPUTIndica se existe a verba cadastrada
l-verba-validaLOGICALOUTPUTIndica se a verba está na validade e valor correto

Retorno

Não se aplica.


Tabelas temporárias utilizadas como parâmetro:


tt-docs-existentes

Entrada/Saída

Temp-table contendo os tipos de documento cadastrados

Saída

Atributo

Tipo

Formato

Descrição

Obrigatório

Evolução

cod-tip-doc

Inteiro

>>9

Código do documento

Sim

-

des-tip-doc
Caracterex(40)Descrição do documentoSim-



tt-mla-prog-consulta

Entrada/Saída

Temp-table contendo os programas de consulta

Saída

Atributo

Tipo

Formato

Descrição

Obrigatório

Evolução

Definição dos campos deve ser LIKE mla-prog-consulta

-



tt-mla-chave-doc-aprov

Entrada/Saída

Temp-table contendo as chaves de um documento

Saída

Atributo

Tipo

Formato

Descrição

Obrigatório

Evolução

Definição dos campos deve ser LIKE mla-chave-doc-aprov
r-RowidROWID-RowidNão-



tt-mla-chave-doc-aprov-doc

Entrada/Saída

Temp-table contendo as chaves de um documento a ser validado

Entrada

Atributo

Tipo

Formato

Descrição

Obrigatório

Evolução

Definição dos campos deve ser LIKE mla-chave-doc-aprov
r-RowidROWID-RowidNão-



tt-param-usuar

Entrada/Saída

Temp-table contendo parâmetros para exportação de usuários

Entrada

Atributo

Tipo

Formato

Descrição

Obrigatório

Evolução

cod-usuar-ini

Caractere

x(12)

Código Usuário inicial a ser considerado na exportação

Sim

-

cod-usuar-fim

Caractere

x(12)

Código Usuário final a ser considerado na exportação

Sim

-

l-comprador
LógicoYES/NOConsidera usuário somente se ele for compradorSim-
l-aprovador
LógicoYES/NOConsidera usuário somente se ele for aprovadorSim-
l-solicitante
LógicoYES/NOConsidera usuário somente se ele for solicitanteSim-
l-requis
LógicoYES/NOConsidera usuário somente se ele for requisitanteSim-
l-requis-manut
LógicoYES/NOConsidera usuário somente se ele for requisitante de manutençãoSim-
sc-codigo-iniCaracterex(20)Centro de custo inicial do usuário a ser considerado na exportaçãoSim-
sc-codigo-fimCaracterex(20)Centro de custo final do usuário a ser considerado na exportaçãoSim-
cod-lotacao-iniCaracterex(20)Lotação inicial do usuário a ser considerado na exportaçãoSim-
cod-lotacao-fimCaracterex(20)Lotação final do usuário a ser considerado na exportaçãoSim-
l-utiliza-lotacaoLógicoYES/NOIndica a utilização do centro de custo do usuário que está sendo exportado, se não marcado, gera com a lotação do usuário de cópiaSim-

RowErrors

Entrada/Saída

Temp-table com dados dos erros ocorridos durante o processo

Saída

Atributo

Tipo

Descrição

Obrigatório

Evolução

ErrorSequence

 INTEGER

Número da sequência do erro

Sim

Não se aplica

ErrorNumber

INTEGER Código do erro 

Sim

Não se aplica

ErrorDescriptionCHARACTER Descrição do erro SimNão se aplica
ErrorParametersCHARACTER Parâmentros da mensagem de erro SimNão se aplica
ErrorTypeCHARACTER Tipo do erro SimNão se aplica
ErrorHelpCHARACTER Texto de ajuda da mensagem de erro SimNão se aplica
ErrorSubTypeCHARACTERSubtipo do erroSimNão se aplica



tt-chave

Entrada/Saída

Temp-table contendo as chaves de um documento

Saída

Atributo

Tipo

Formato

Descrição

Obrigatório

Evolução

Definição dos campos deve ser LIKE mla-chave-doc-aprov

-

valorCHARACTERx(20)Valor da chaveNão-



tt-tipo-aprov

Entrada/Saída

Temp-table contendo os tipos de aprovação

Saída

Atributo

Tipo

Formato

Descrição

Obrigatório

Evolução

seqINTEGER>>>>>>>>9Sequência do tipo de aprovaçãoSim-
cod-tip-aprovINTEGER>9Código do tipo de aprovaçãoSim-
des-tip-aprovCHARACTERx(40)Descrição do tipo de aprovaçãoSim-
prioridade-aprovINTEGER>9Prioridade de aprovaçãoSim-
log-limiteLOGICALyes/noSomente aprovadores com limiteSim-
nr-min-aprovINTEGER>9Número mínimo de aprovaçõesSim-
ind-tip-aprovINTEGER>9Tipo de aprovaçãoSim-



tt-aprovadores

Entrada/Saída

Temp-table contendo os aprovadores

Saída

Atributo

Tipo

Formato

Descrição

Obrigatório

Evolução

seq-aprovINTEGER>9Sequência aprovadorSim-
cod-usuarCHARACTERx(12)Código do usuárioSim-
nome-usuarCHARACTERx(40)Nome do UsuárioSim-
mestreLOGICALSim/NãoUsuário mestreSim-
log-dependLOGICALSim/NãoIndica dependência entre os aprovadoresNão-

ASSIGN c-output = SESSION:TEMP-DIRECTORY + "usuarios_":U + replace(STRING(NOW, "99-99-9999HH:MM:SS":U), ":":U, "":U) + ".csv":U.
OUTPUT TO VALUE(c-output).

FOR EACH usuar_mestre FIELDS (cod_usuario nom_usuario cod_e_mail_local)
WHERE usuar_mestre.cod_usuario >= tt-param-usuar.cod-usuar-ini
AND usuar_mestre.cod_usuario <= tt-param-usuar.cod-usuar-fim NO-LOCK:

IF tt-param-usuar.l-comprador OR
tt-param-usuar.l-aprovador OR
tt-param-usuar.l-solicitante OR
tt-param-usuar.l-requis OR
tt-param-usuar.l-requis-manut OR
tt-param-usuar.sc-codigo-ini <> "" OR
tt-param-usuar.sc-codigo-fim <> "ZZZZZZZZZZZZZZZZZZZZ":U OR
tt-param-usuar.cod-lotacao-ini <> "":U OR
tt-param-usuar.cod-lotacao-fim <> "ZZZZZZZZZZZZZZZZZZZZ":U THEN DO:
FIND FIRST usuar-mater WHERE usuar-mater.cod-usuar = usuar_mestre.cod_usuario NO-LOCK NO-ERROR.

IF NOT AVAIL usuar-mater THEN DO:
NEXT.
END.

IF tt-param-usuar.l-comprador AND NOT usuar-mater.usuar-comprador THEN DO:
NEXT.
END.

IF tt-param-usuar.l-aprovador AND NOT usuar-mater.usuar-aprovador THEN DO:
NEXT.
END.

IF tt-param-usuar.l-solicitante AND NOT usuar-mater.usuar-solic THEN DO:
NEXT.
END.

IF tt-param-usuar.l-requis AND NOT usuar-mater.usuar-requis THEN DO:
NEXT.
END.

IF tt-param-usuar.l-requis-manut AND NOT usuar-mater.usuar-requis-manut THEN DO:
NEXT.
END.

IF usuar-mater.sc-codigo < tt-param-usuar.sc-codigo-ini OR
usuar-mater.sc-codigo > tt-param-usuar.sc-codigo-fim THEN DO:
NEXT.
END.

IF usuar-mater.cod-lotacao < tt-param-usuar.cod-lotacao-ini OR
usuar-mater.cod-lotacao > tt-param-usuar.cod-lotacao-fim THEN DO:
NEXT.
END.
END.

IF tt-param-usuar.l-utiliza-lotacao AND AVAIL usuar-mater THEN DO:
ASSIGN c-lotacao = usuar-mater.cod-lotacao.
END.
ELSE DO:
ASSIGN c-lotacao = bf-mla-usuar-aprov.cod-lotacao.
END.

PUT UNFORMATTED "mla-usuar-aprov":U ";":U STRING(bf-mla-usuar-aprov.ep-codigo) ";":U STRING(usuar_mestre.cod_usuario) ";":U
STRING(usuar_mestre.nom_usuario) ";":U STRING(bf-mla-usuar-aprov.cod-estabel) ";":U
STRING(c-lotacao) ";":U STRING(bf-mla-usuar-aprov.mo-codigo) ";":U
STRING(bf-mla-usuar-aprov.destino-lotacao) ";":U SUBSTRING(bf-mla-usuar-aprov.char-1,2,1) ";":U STRING(bf-mla-usuar-aprov.perm-aprov) ";":U
STRING(bf-mla-usuar-aprov.usuar-mestre) ";":U STRING(bf-mla-usuar-aprov.libera-verba) ";":U
STRING(bf-mla-usuar-aprov.envia-email) ";":U STRING(bf-mla-usuar-aprov.recebe-email) ";":U
STRING(bf-mla-usuar-aprov.log-html) ";":U STRING(bf-mla-usuar-aprov.log-4) ";":U
STRING(bf-mla-usuar-aprov.aprova-auto) ";":U STRING(bf-mla-usuar-aprov.aprova-auto-aprov) ";":U
STRING(usuar_mestre.cod_e_mail_local) ";":U STRING(bf-mla-usuar-aprov.idi-ordenacao-portal) ";":U
STRING(bf-mla-usuar-aprov.log-pendcia-todas-empres) ";":U STRING(bf-mla-usuar-aprov.int-1) ";":U
STRING(bf-mla-usuar-aprov.log-aprovac-unica-pendcia) ";":U SUBSTRING(bf-mla-usuar-aprov.char-1,3,1) ";":U SUBSTRING(bf-mla-usuar-aprov.char-1,4,1) SKIP.

ASSIGN l-existe-usuar = YES.
END.

IF l-existe-usuar THEN DO:
ASSIGN c-arq = c-output.
END.
ELSE DO:
ASSIGN c-arq = "".
END.

RETURN "OK":U.
END PROCEDURE.

PROCEDURE pi-verifica-permissoes-aprovadores:
/*------------------------------------------------------------------------------
Purpose: Verifica a existˆncia permissäes cadastradas para os usu rios aprovadores do MLA
Parameters: tt-aprovadores (TEMP-TABLE - OUTPUT): Aprovadores que nÆo possuem nenhuma
permissÆo cadastrada.
Notes:
------------------------------------------------------------------------------*/
DEFINE OUTPUT PARAMETER TABLE FOR tt-aprovadores.

EMPTY TEMP-TABLE tt-aprovadores.

FOR EACH mla-usuar-aprov FIELDS (cod-usuar nome-usuar perm-aprov) WHERE mla-usuar-aprov.perm-aprov = YES NO-LOCK:
IF NOT CAN-FIND(FIRST mla-perm-aprov WHERE mla-perm-aprov.cod-usuar =
mla-usuar-aprov.cod-usuar) THEN DO:
CREATE tt-aprovadores.
ASSIGN tt-aprovadores.cod-usuar = mla-usuar-aprov.cod-usuar
tt-aprovadores.nome-usuar = mla-usuar-aprov.nome-usuar.
END.
END.

RETURN "OK":U.
END PROCEDURE.

PROCEDURE pi-verifica-lotacoes-aprovadores:
/*------------------------------------------------------------------------------
Purpose: Verifica a existˆncia lota‡äes cadastradas para os usu rios aprovadores do MLA
Parameters: tt-aprovadores (TEMP-TABLE - OUTPUT): Aprovadores que nÆo possuem nenhuma
permissÆo cadastrada para lota‡äes
Notes:
------------------------------------------------------------------------------*/
DEFINE OUTPUT PARAMETER TABLE FOR tt-aprovadores.

EMPTY TEMP-TABLE tt-aprovadores.

FOR EACH mla-usuar-aprov FIELDS (cod-usuar nome-usuar perm-aprov) WHERE mla-usuar-aprov.perm-aprov = YES NO-LOCK:
IF NOT CAN-FIND(FIRST mla-perm-lotacao WHERE mla-perm-lotacao.cod-usuar =
mla-usuar-aprov.cod-usuar) THEN DO:
CREATE tt-aprovadores.
ASSIGN tt-aprovadores.cod-usuar = mla-usuar-aprov.cod-usuar
tt-aprovadores.nome-usuar = mla-usuar-aprov.nome-usuar.
END.
END.

RETURN "OK":U.
END PROCEDURE.

PROCEDURE pi-verifica-utilizacao-verba:
/*------------------------------------------------------------------------------
Purpose: Verifica se algum documento utiliza controle de verba
Parameters: l-utiliza (LOGICAL - OUTPUT): Utiliza verba
Notes:
------------------------------------------------------------------------------*/
DEFINE OUTPUT PARAMETER l-utiliza AS LOGICAL NO-UNDO.

IF CAN-FIND(FIRST mla-tipo-doc-aprov WHERE
mla-tipo-doc-aprov.verba-aprov = YES) THEN DO:
ASSIGN l-utiliza = YES.
END.
ELSE DO:
ASSIGN l-utiliza = NO.
END.

RETURN "OK":U.
END PROCEDURE.

PROCEDURE pi-verifica-prioridade-aprov-item-referencia:
/*------------------------------------------------------------------------------
Purpose: Verifica se algum documento utiliza prioridade de aprova‡Æo por item ou referˆncia
Parameters: l-utiliza (LOGICAL - OUTPUT): Utiliza prioridade por item ou referˆncia
Notes:
------------------------------------------------------------------------------*/
DEFINE OUTPUT PARAMETER l-utiliza AS LOGICAL NO-UNDO.

IF CAN-FIND(FIRST mla-tipo-doc-aprov WHERE
mla-tipo-doc-aprov.prioridade-aprov = 2 OR mla-tipo-doc-aprov.prioridade-aprov = 3) THEN DO:
ASSIGN l-utiliza = YES.
END.
ELSE DO:
ASSIGN l-utiliza = NO.
END.

RETURN "OK":U.
END PROCEDURE.

PROCEDURE pi-verifica-prioridade-aprov-referencia:
/*------------------------------------------------------------------------------
Purpose: Verifica se algum documento utiliza prioridade de aprova‡Æo por referˆncia
Parameters: l-utiliza (LOGICAL - OUTPUT): Utiliza prioridade por referˆncia
Notes:
------------------------------------------------------------------------------*/
DEFINE OUTPUT PARAMETER l-utiliza AS LOGICAL NO-UNDO.

IF CAN-FIND(FIRST mla-tipo-doc-aprov WHERE
mla-tipo-doc-aprov.prioridade-aprov = 3) THEN DO:
ASSIGN l-utiliza = YES.
END.
ELSE DO:
ASSIGN l-utiliza = NO.
END.

RETURN "OK":U.
END PROCEDURE.

PROCEDURE pi-verifica-utiliza-tipo-aprov:
/*------------------------------------------------------------------------------
Purpose: Verifica se h  cadastro de tipo de aprova‡Æo para o tipo solicitado
Parameters: i-tipo (INTEGER - INPUT): 1 - Hierarquia
2 - Lista
3 - PadrÆo
4 - T‚cnica
5 - Faixa
l-utiliza (LOGICAL - OUTPUT): Existe esse tipo de aprova‡Æo
Notes:
------------------------------------------------------------------------------*/
DEFINE INPUT PARAMETER i-tipo AS INTEGER NO-UNDO.
DEFINE OUTPUT PARAMETER l-utiliza AS LOGICAL NO-UNDO.

...

ASSIGN l-utiliza = YES.
END.

RETURN "OK":U.
END PROCEDURE.

-----------------

DEFINE TEMP-TABLE tt-docs-existentes NO-UNDO
FIELD cod-tip-doc LIKE mla-tipo-doc-aprov.cod-tip-doc
FIELD des-tip-doc LIKE mla-tipo-doc-aprov.des-tip-doc
INDEX codigo
cod-tip-doc ASCENDING.

DEFINE TEMP-TABLE tt-mla-prog-consulta NO-UNDO LIKE mla-prog-consulta.

...