Histórico da Página
...
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 | |
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-empresa | CHARACTER | INPUT | Código da empresa | |
tt-mla-prog-consulta | TEMP-TABLE | OUTPUT | Programas 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-empresa | CHARACTER | INPUT | Código da empresa | |
tt-mla-chave-doc-aprov | TEMP-TABLE | OUTPUT | Chave 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-empresa | CHARACTER | INPUT | Código da empresa | |
i-documento | INTEGER | INPUT | Código do documento do MLA | |
pl-efetiva-criacao | LOGICAL | INPUT | Indica que a chave deve ser efetiva no banco de dados | |
pl-elimina-chave | LOGICAL | INPUT | Indica que a chave atual do documento deve ser eliminada | |
tt-mla-chave-doc-aprov | TEMP-TABLE | OUTPUT | Chave 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-empresa | CHARACTER | INPUT | Código da empresa | |
i-documento | INTEGER | INPUT | Código do documento do MLA | |
tt-mla-chave-doc-aprov-doc | TEMP-TABLE | OUTPUT | 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:
| |||
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-usuar | TEMP-TABLE | INPUT | Parâ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. | |
RowErrors | TEMP-TABLE | OUTPUT | Temp-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-aprovadores | TEMP-TABLE | OUTPUT | Aprovadores 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-aprovadores | TEMP-TABLE | OUTPUT | Aprovadores 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-tipo | INTEGER | INPUT | 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-cod | INTEGER | INPUT | 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-documento | INTEGER | INPUT | Código do documento | |
tt-chave | TEMP-TABLE | INPUT | Chaves do documento (para localização) | |
c-empresa | CHARACTER | OUTPUT | Código da empresa do documento | |
c-estabel | CHARACTER | OUTPUT | Código do estabelecimento do documento | |
de-valor-doc | DECIMAL | OUTPUT | Valor do documento | |
c-lotacao | CHARACTER | OUTPUT | Lotação do documento | |
c-item | CHARACTER | OUTPUT | Item do do documento | |
c-familia | CHARACTER | OUTPUT | Família do Item do documento | |
c-referencia | CHARACTER | OUTPUT | Referência do documento | |
l-item-informado | LOGICAL | OUTPUT | Indica 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-documento | INTEGER | INPUT | 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-empresa | CHARACTER | INPUT | Código da empresa | |
c-estab | CHARACTER | INPUT | Có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-documento | INTEGER | INPUT | Código do documento | |
c-empresa | CHARACTER | INPUT | Código da empresa | |
c-estab | CHARACTER | INPUT | Código do estabelecimento | |
l-existe | LOGICAL | OUTPUT | Indica se existe a parametrização | |
l-aprov | LOGICAL | OUTPUT | Indica se o documento está marcado para sofrer aprovação | |
i-prioridade-aprov | INTEGER | OUTPUT | Prioridade 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-usuar | CHARACTER | INPUT | Código do usuário | |
c-lotacao | CHARACTER | OUTPUT | Código da lotação | |
i-responsavel | INTEGER | OUTPUT | Responsá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-documento | INTEGER | INPUT | Código do documento | |
c-empresa | CHARACTER | INPUT | Código da empresa | |
i-prioridade | INTEGER | INPUT | Prioridade de aprovação (1 - Documento, 2 - Item, 3 - Referência, 4 - Família) | |
c-item-fam-ref | CHARACTER | INPUT | Código do item, família ou referência (conforme a prioridade informada) | |
c-programa | CHARACTER | OUTPUT | Nome do programa de configurações | |
tt-tipo-aprov | TEMP-TABLE | OUTPUT | Tipos 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-item | CHARACTER | INPUT | Código do item | |
c-familia | CHARACTER | OUTPUT | Có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-usuar | CHARACTER | INPUT | Código do usuário | |
l-existe | LOGICAL | OUTPUT | Indica 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-empresa | CHARACTER | INPUT | Código da empresa | |
i-documento | INTEGER | INPUT | Código do documento | |
c-referencia | CHARACTER | INPUT | Có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-empresa | CHARACTER | INPUT | Código da empresa | |
c-lotacao | CHARACTER | INPUT | Có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-localizada | CHARACTER | INPUT | Lotação que foi localizada para o documento (caso não tenha sido, enviar em branco) | |
c-usuar-gerador | CHARACTER | INPUT | Usuário gerador da pendência | |
i-documento | INTEGER | INPUT | Código do documento | |
c-lotacao | CHARACTER | OUTPUT | Lotação a ser utilizada | |
c-msg-lotacao-doc | CHARACTER | OUTPUT | Mensagem 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-documento | INTEGER | INPUT | Código do documento | |
c-empresa | CHARACTER | INPUT | Código da empresa | |
c-estab | CHARACTER | INPUT | Código do estabelecimento | |
c-lotacao-doc | CHARACTER | INPUT | Código da lotação | |
tt-aprovadores | TEMP-TABLE | OUTPUT | Aprovadores 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-documento | INTEGER | INPUT | Código do documento | |
c-empresa | CHARACTER | INPUT | Código da empresa | |
c-estab | CHARACTER | INPUT | Código do estabelecimento | |
i-prioridade | INTEGER | INPUT | Prioridade de aprovação (1 - Documento, 2 - Item, 3 - Referência, 4 - Família) | |
c-item-fam-ref | CHARACTER | INPUT | Código do item, família ou referência (conforme a prioridade) | |
c-programa | CHARACTER | OUTPUT | Nome do programa de configurações | |
tt-aprovadores | TEMP-TABLE | OUTPUT | Aprovadores 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-aprov | INTEGER | INPUT | Código do tipo de aprovação | |
c-empresa | CHARACTER | INPUT | Código da empresa | |
c-estab | CHARACTER | INPUT | Código do estabelecimento | |
tt-aprovadores | TEMP-TABLE | OUTPUT | Aprovador 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-documento | INTEGER | INPUT | Código do documento | |
c-empresa | CHARACTER | INPUT | Código da empresa | |
c-estab | CHARACTER | INPUT | Código do estabelecimento | |
c-lotacao | CHARACTER | INPUT | Código da lotação | |
de-valor | DECIMAL | INPUT | Valor da pendência | |
i-num-faixa | INTEGER | OUTPUT | Número da faixa | |
c-des-faixa | CHARACTER | OUTPUT | Descrição da faixa | |
de-lim-ini | DECIMAL | OUTPUT | Limite inicial da faixa | |
de-lim-fim | DECIMAL | OUTPUT | Limite 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-documento | INTEGER | INPUT | Código do documento | |
c-empresa | CHARACTER | INPUT | Código da empresa | |
c-estab | CHARACTER | INPUT | Código do estabelecimento | |
c-lotacao | CHARACTER | INPUT | Código da lotação | |
i-num-faixa | INTEGER | INPUT | Número da faixa | |
tt-aprovadores | TEMP-TABLE | OUTPUT | Aprovadores 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-usuar | CHARACTER | INPUT | Código do usuário | |
i-documento | INTEGER | INPUT | Código do documento | |
c-empresa | CHARACTER | INPUT | Código da empresa | |
c-estab | CHARACTER | INPUT | Código do estabelecimento | |
de-valor | DECIMAL | INPUT | Valor da pendência | |
l-existe | LOGICAL | OUTPUT | Indica se existe o cadastro da permissão para o usuário | |
l-valida | LOGICAL | OUTPUT | Indica se a permissão no documento está na validade | |
l-limite | LOGICAL | OUTPUT | Indica 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-usuar | CHARACTER | INPUT | Código do usuário | |
c-empresa | CHARACTER | INPUT | Código da empresa | |
c-lotacao | CHARACTER | INPUT | Código da lotação | |
l-existe | LOGICAL | OUTPUT | Indica se existe o cadastro de lotação para o usuário | |
l-valida | LOGICAL | OUTPUT | Indica 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-usuar | CHARACTER | INPUT | Código do usuário | |
i-documento | INTEGER | INPUT | Código do documento | |
c-empresa | CHARACTER | INPUT | Código da empresa | |
c-estab | CHARACTER | INPUT | Código do estabelecimento | |
de-valor | DECIMAL | INPUT | Valor da pendência | |
l-usa-verba | LOGICAL | OUTPUT | Indica se o documento utiliza verba | |
l-existe-verba | LOGICAL | OUTPUT | Indica se existe a verba cadastrada | |
l-verba-valida | LOGICAL | OUTPUT | Indica 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 | Caractere | x(40) | Descrição do documento | Sim | - |
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-Rowid | ROWID | - | Rowid | Nã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-Rowid | ROWID | - | Rowid | Nã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ógico | YES/NO | Considera usuário somente se ele for comprador | Sim | - |
l-aprovador | Lógico | YES/NO | Considera usuário somente se ele for aprovador | Sim | - |
l-solicitante | Lógico | YES/NO | Considera usuário somente se ele for solicitante | Sim | - |
l-requis | Lógico | YES/NO | Considera usuário somente se ele for requisitante | Sim | - |
l-requis-manut | Lógico | YES/NO | Considera usuário somente se ele for requisitante de manutenção | Sim | - |
sc-codigo-ini | Caractere | x(20) | Centro de custo inicial do usuário a ser considerado na exportação | Sim | - |
sc-codigo-fim | Caractere | x(20) | Centro de custo final do usuário a ser considerado na exportação | Sim | - |
cod-lotacao-ini | Caractere | x(20) | Lotação inicial do usuário a ser considerado na exportação | Sim | - |
cod-lotacao-fim | Caractere | x(20) | Lotação final do usuário a ser considerado na exportação | Sim | - |
l-utiliza-lotacao | Lógico | YES/NO | Indica 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ópia | Sim | - |
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 |
ErrorDescription | CHARACTER | Descrição do erro | Sim | Não se aplica |
ErrorParameters | CHARACTER | Parâmentros da mensagem de erro | Sim | Não se aplica |
ErrorType | CHARACTER | Tipo do erro | Sim | Não se aplica |
ErrorHelp | CHARACTER | Texto de ajuda da mensagem de erro | Sim | Não se aplica |
ErrorSubType | CHARACTER | Subtipo do erro | Sim | Nã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 | - | ||||
valor | CHARACTER | x(20) | Valor da chave | Nã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 |
seq | INTEGER | >>>>>>>>9 | Sequência do tipo de aprovação | Sim | - |
cod-tip-aprov | INTEGER | >9 | Código do tipo de aprovação | Sim | - |
des-tip-aprov | CHARACTER | x(40) | Descrição do tipo de aprovação | Sim | - |
prioridade-aprov | INTEGER | >9 | Prioridade de aprovação | Sim | - |
log-limite | LOGICAL | yes/no | Somente aprovadores com limite | Sim | - |
nr-min-aprov | INTEGER | >9 | Número mínimo de aprovações | Sim | - |
ind-tip-aprov | INTEGER | >9 | Tipo de aprovação | Sim | - |
tt-aprovadores | Entrada/Saída | ||||
Temp-table contendo os aprovadores | Saída | ||||
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
seq-aprov | INTEGER | >9 | Sequência aprovador | Sim | - |
cod-usuar | CHARACTER | x(12) | Código do usuário | Sim | - |
nome-usuar | CHARACTER | x(40) | Nome do Usuário | Sim | - |
mestre | LOGICAL | Sim/Não | Usuário mestre | Sim | - |
log-depend | LOGICAL | Sim/Não | Indica dependência entre os aprovadores | Nã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.
...