Árvore de páginas

Versões comparadas

Chave

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

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

  1. Adaptação das rotinas de recebimento para permitir múltiplas naturezas em notas de rateio.
  2. 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. 
  3. 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

...

    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.