Histórico da Página
ER_MANMAT01-1202 - Permitir Multiplas Naturezas para Documento de Rateio
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
Informações Gerais
Especificação |
|
|
|
Produto | Datasul | Módulos | Recebimento/Contabilidade/GFE |
Segmento Executor | Manufatura |
|
|
Projeto1 | D_MAN_MAT001 | IRM1 | MANMAT01-101 |
Requisito1 | MANMAT01-1202 | Subtarefa1 | MANMAT01-1221 |
Chamado2 |
|
|
|
País | ( X ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. |
|
|
Outros |
|
|
|
...
Objeto | Tipo de Operação | Opção de Menu | Regras de Negócio |
boin366.p | [Alteração] | - | - |
re1904.w | [Alteração] | - | - |
Objetivo
- Adaptação das rotinas de recebimento para permitir múltiplas naturezas em notas de rateio.
- Alterar a conta contábil e o centro de custo dos itens que fazem parte da nota fiscal de entrada e que não terão valor considerável para a apropriação de despesas de frete.
Permitir desprezar o item para apropriação de despesas de frete. Atribuição de Custo para Ordem de Manutenção para Item de Controle Total
Definição da Regra de Negócio
No processo de apropriação de despesas de frete sobre compras, é criada uma nota fiscal de rateio vinculada a um ou mais documentos de entrada, contendo os mesmos itens e repassando o valor de frete a cada um proporcionalmente.
...
Este desenvolvimento cria um tratamento, através da configuração de regra de negócio no programa cd0024, que altera a conta contábil e centro de custo dos itens da nota fiscal de rateio que não devem ter parte na apropriação de despesas de frete, fazendo com que o valor passe para uma conta diferente de despesas de frete.
Também será possível criar uma regra para definir se deve considerar apropriação do custo do frete para o item. Com isso, é possível configurar uma regra para 'desprezar' o item no momento da geração da nota de rateio.
3.Atribuição de Custo para Ordem para Item de Controle
Em algumas situações são feitas aquisições emergenciais para atender uma manutenção em que se adquire um item de controle total para uso direto em uma ordem de manutenção. Neste caso as despesas desta aquisição, por exemplo frete, deverão ser atribuídas diretamente para a ordem de manutenção que desencadeou a compra e não para o custo médio do item.
Assim, quando se receber uma nota de rateio e houver uma ordem associada a uma das notas de mercadoria, o custo da nota rateada deverá ir para a ordem. Isto deverá acontecer somente se a ordem associada for de Manutenção.
ALTERAÇÕES ERP DATASUL
1. re1904.w
...
Alterar os campos conta e centro custo com os valores retornados.
Exemplo de implementação
CREATE tt-variavel.
ASSIGN tt-variavel.cod-var-oper = "it-codigo":U
tt tt-variavel.cod-val-var = TRIM(STRING(p-it-codigo)).
CREATE tt-variavel.
ASSIGN tt-variavel.cod-var-oper = "nat-operacao":U
tt tt-variavel.cod-val-var = TRIM(STRING(p-nat-operacao)).
CREATE tt-variavel.
ASSIGN tt-variavel.cod-var-oper = "cod-estabel":U
tt tt-variavel.cod-val-var = TRIM(STRING(p-nat-operacao)).
CREATE tt-variavel.
ASSIGN tt-variavel.cod-var-oper = "cod-transp":U
tt tt-variavel.cod-val-var = TRIM(STRING(p-cod-transp)).
CREATE tt-variavel.
ASSIGN tt-variavel.cod-var-oper = "cod-fornec":U
tt tt-variavel.cod-val-var = TRIM(STRING(p-cod-fornec)).
CREATE tt-variavel.
ASSIGN tt-variavel.cod-var-oper = "ct-codigo":U
tt tt-variavel.cod-val-var = TRIM(STRING(p-ct-codigo)).
CREATE tt-variavel.
ASSIGN tt-variavel.cod-var-oper = "sc-codigo":U
tt-variavel.cod-val-var = TRIM(STRING(p-sc-codigo)).
CREATE tt-variavel.
ASSIGN tt-variavel.cod-var-oper = "cfop":U
tt tt-variavel.cod-val-var = TRIM(STRING(p-cod-cfop)).
IF VALID-HANDLE(h-boin172) THEN DO:
RUN openQueryStatic IN h-boin172 (input "Main":U).
run RUN goToKey IN h-boin172 (input p-it-codigo).
RUN getIntField IN h-boin172 (INPUT "ge-codigo", OUTPUT c-var-ge-codigo).
RUN getCharField IN h-boin172 (INPUT "fm-codigo", OUTPUT c-var-fm-codigo).
END.
CREATE tt-variavel.
ASSIGN tt-variavel.cod-var-oper = "ge-codigo":U
tt-variavel.cod-val-var = TRIM(STRING(c-var-ge-codigo)).
CREATE tt-variavel.
ASSIGN tt-variavel.cod-var-oper = "fm-codigo":U
tt-variavel.cod-val-var = TRIM(STRING(c-var-fm-codigo)).
Verificação se existe tipo Busca retornos para os tipos de operação cadastrado
/*Verifica se a operacao item-doc-rateio est cadastrada no CD0025*/
FOR EACH config-operac NO-LOCK
WHERE config-operac.cdn-empresa = i-empresa
AND config-operac.cod-estab = docum-est.cod-estabel
AND (config-operac.cod-tip-operac = "NFRat-ItemConta":U OR
config-operac.cod-tip-operac = "NFRat-ItemNatOf":U OR
config-operac.cod-tip-operac = "NFRat-ApropDesp":U ):
...
RUN cdp/cdapi034.p (INPUT p-empresa,
...
INPUT p-cod-estabel,
...
INPUT p-cod-tip-operac,
...
...
INPUT TABLE tt-variavel,
...
OUTPUT i-cod-regra-utilizada,
...
OUTPUT TABLE tt-retorno,
...
OUTPUT TABLE RowErrors).
END.
Implementação para desprezar o item
IF CAN-FIND(FIRST tt-retorno
WHERE tt-retorno.campo-retorno = "
apropriacaoapropria-despesa-item":U
AND tt-retorno.valor-retorno = "
simNAO":U) THEN NEXT.
Implementação para multiplas naturezas
FOR EACH tt-retorno
WHERE tt-retorno.campo-retorno = "nat-of"
OR tt-retorno.campo-retorno = "cod-cfop":
ASSIGN c-nat-of = tt-retorno.valor-retorno.
END.
Implementação para conta e centro de custo
FOR EACH tt-retorno:
CASE tt-retorno.campo-retorno:
WHEN "ct-codigo":U THEN ASSIGN b-item-doc-est.ct-codigo = STRING(tt-retorno.valor-retorno).
WHEN "sc-codigo":U THEN ASSIGN b-item-doc-est.sc-codigo = STRING(tt-retorno.valor-retorno).
END CASE.
END.
Para atribuir o custo para a ordem de manutenção feita as seguintes verificações:
- Verificar se o item é controle total (item.tipo-contr <> 2);
- Verificar se o módulo de manutenção industrial está habilitado (param-global.modulo-mi);
- Se o número da ordem do item da NFe de mercadoria é maior que zero(item-doc-est.nr-ord-prod);
- Se o número da ordem é referente a uma ordem de manutenção (ord-manut).
IF AVAIL param-global
AND param-global.modulo-mi
AND CAN-FIND(FIRST ord-manut
WHERE ord-manut.nr-ord-produ = item-doc-est.nr-ord-prod) THEN DO:
ASSIGN b-item-doc-est.ct-codigo = item-doc-est.ct-codigo (conta ordem manutenção)
b-item-doc-est.sc-codigo = item-doc-est.sc-codigo (centro custo ordem manutenção)
b-item-doc-est.nr-ord-prod = item-doc-est.nr-ord-prod. (número da ordem manutenção)
END.