Á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

 

 

 

   Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos). 

 

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

O módulo de Recebimento permite a entrada de documentos onde os itens podem ter naturezas de operação diferentes.

No modelo atual, ao dar entrada em um documento de rateio, é possível vincular um ou mais documentos, porém eles devem ter natureza de operação compatível com a natureza da nfe.

Image Removed

 

...

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. 

  1. Múltiplas Naturezas

Com a possibilidade de existirem itens com natureza de operação diferentes, o cálculo dos impostos de ser feito separadamente para cada item.
Este desenvolvimento cria um tratamento, através da configuração de regra de negócio no programa cd0024, que permite a alteração da natureza fiscal dos itens, permitindo o cálculo de alíquotas e tipo de tributação pela natureza de cada item.

 

No modelo abaixo estão sendo vinculadas 3 NFe's de mercadoria

...

ao CTe, onde os itens possuem naturezas distintas. Os itens herdam a natureza da nota de rateio.
Image Added  


O modelo proposto permite a entrada de múltiplas naturezas para o documento referenciado através da utilização do

...

configurador de regras para a tradução da natureza. Image Added

Image Removed

 

...

 Pode ser tomar como exemplo o modelo abaixo.

...


 
Image Added  

Image Removed

Image Added


 
O modelo mostra a entrada manual pelo módulo de Recebimento, porém a solução também será aplicada quando a entrada for via TOTVS Colaboração ou integração com o módulo GFE.


2. Apropriação de Despesas do Item 


Para alguns tipos de itens, como por exemplo, vasilhames retornáveis, pallets, etc., a apropriação de despesas não deve ser aplicada, pois o item não é de compra/consumo.

...

  

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

...

O programa re1904 é responsável por vincular as notas fiscais de mercadoria ao conhecimento de transporte de rateio.

Ao abrir a tela, é sugerido alíquota e código de tributação para os itens das NFE's de mercadoria com base na natureza do documento.


Image RemovedImage Added


Ao clicar no botão OK, deve-se realizar a chamada para a cdapi034, responsável pela tradução do (engine de regras) para cada item das notas referenciadas, para que seja realizada a tradução das naturezas. 
 
Se a natureza for traduzida, devem ser utilizadas alíquotas e tributações cadastradas para a natureza de operação retornada pelo engine configurador de regras e vinculá-las ao item que será criado.
 
Caso a natureza de operação não sofra tradução, devem ser utilizadas alíquotas e tributações vinculadas a natureza de operação do cabeçalho da nota.
 
Importante:
Quando Quando usar Múltiplas Naturezas, os campos referentes a alíquota e tributação dos impostos podem ser sobrepostos pelos parâmetros específicos de cada natureza de operação.
Os valores alterados nos campos somente serão aplicados nos itens cuja natureza não tenha sofrido tradução.

Ao fazer alteração, a tela será aberta com os documentos já vínculadosvinculados.

Caso a natureza de todos os itens tenham sofrido tradução, os valores de impostos apresentados na tela serão referentes a natureza de operação do cabeçalho do documento.

Caso exista alguma natureza que não tenha sofrido alteração, os valores de impostos apresentados na tela serão referentes ao item que contém a natureza não traduzida.
 
Por exemplo: 
Na imagem acima, foram vinculados dois documentos (0000123 e 1611001).
Ao confirmar, foi feita a busca dos itens e realizado a tradução de naturezas.
Image Removed Image Added

Image Removed

...


Image Added



Para o item SOJA SOJA não ocorreu tradução de natureza de operação, portanto a natureza fiscal ficou igual a natureza do cabeçalho do documento, as alíquotas e tributações respeitaram os valores informados no re1904.
Image RemovedImage Added

 Para o item .compras, a natureza de operação sofreu tradução e a natureza fiscal foi alterada para 16220E, mantendo as alíquotas e tributações relacionadas a natureza traduzida.
Image RemovedImage Added

Também deve ser possível realizar a tradução de CFOP para natureza de operação. 
Por exemplo:
     

...

Image Added


Ao confirmar, se utilizar múltiplas naturezas e algum item for vinculado a nota de rateio, mostrar mensagem 54933 alertando que as naturezas podem sofrer alteração.

 


2. BOIN366.P

Implementar no programa boin366 a utilização do ENGINE DE REGRAS conforme os dados a seguir:

Incluir a include cd9701.i  para tratar múltiplas naturezas; 

Verificar se existe a operação 'item-doc-rateio' cadastrada na tabela config-operac e salvar o resultado da busca em uma variável lógica.

           /*Verifica se a operacao item-doc-rateio est  cadastrada no CD0025*/
           FIND FIRST config-operac NO-LOCK
                 WHERE config-operac.cdn-empresa = <empresa do estabelecimento>
                       AND config-operac.cod-estab = <Código Estabelecimento  >
                       AND config-operac.cod-tip-operac = "item-doc-rateio":U NO-ERROR.
            IF AVAIL config-operac THEN
                ASSIGN l-item-doc-rateio = YES.

...

Buscar regras para as seguintes operações: NFRat-ItemConta , NFRat-ItemNatOf e NFRat-ApropDesp.

Obs: Os tipos de operação descritos acima devem estar cadastrados no programa cd0025(Cadastrar Tipo Operação)

Ao percorrer a tabela item-doc-est  para geração dos itens, executar o engine de regras passando variáveis conforme tabela abaixo:

TT-VARIAVEL

cod-var-oper

cod-val-var

it-codigo

Código Item

nat-operacao-nf

Código Natureza de Operação da Mercadoria

cod-estabel

Código Estabelecimento 

cod-transp

Código Transportador

cod-fornec

Código Fornecedor

ct-codigo

Código Conta

sc-codigo,

Código Centro Custo

cfop-nf

Código CFOP da Mercadoria


Buscar grupo estoque(ge-codigo) e famila(fm-codigo) do item e criar as seguintes variáveis:

TT-VARIAVEL

cod-var-oper

cod-val-var

ge-codigo

Grupo Estoque do Item

fm-codigo

Familia do Item

 

Verificar se existe um retorno "apropria-despesa-item" com valor "NAO" para a operação "NFRat-ApropDesp" . Se existir deve desconsiderar o item e ir para o próximo.

Salvar a natureza retornada no campo nat-of da tabela item-doc-est. Se não ocorrer a tradução, salvar a natureza do documento principal.

Usar a natureza do campo nat-of para buscar alíquota e tributação dos impostos.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 <Nesta etapa incluir representações gráficas que descrevam o problema a ser resolvido e o sistema a ser desenvolvido. Exemplo: Diagrama - Caso de Uso, Diagrama de Atividades, Diagrama de Classes, Diagrama de Entidade e Relacionamento e Diagrama de Sequência>.  9. Ajuste nos programas de exportação de dados:   Alterar o programa SPCD250 para que o mesmos considere a nova tabela ctbz-recebto .  

Opcional

 

Dicionário de Dados

ctbz-recebto - Arquivo para Contabilização dos movimentos do Recebimento

 

 

 

 

 

 

 

 

 

Coluna

Tipo

Formato

Mandatório

Label

serie-docto

char

x(5)

s

Série

nro-docto

char

x(16)

s

Documento

cod-emitente

inte

>>>>>>>>9

s

Emitente

nat-operacao

char

x(06)

s

Nat Operação

sequencia

inte

>>>>9

s

Sequencia

dt-trans

date

99/99/9999

s

Data Transação

cod-estabel

char

x(05)

s

Estabelecimento

ct-codigo

char

x(20)

s

Conta

sc-codigo

char

x(20)

s

Centro Custo

val-ctbl

dec-2

->>>,>>>,>>>,>>9.99

 

Valor do Movimento

val-ctbl-cred

dec-2

->>>,>>>,>>>,>>9.99

 

Valor do Movimento

val-ctbl-mo

dec-2[5]

->>>,>>>,>>>,>>9.99

 

Valor

val-ctbl-cred-mo

dec-2[5]

->>>,>>>,>>>,>>9.99

 

Valor

dsl-histor

char

x(2000)

 

Histórico

cod-unid-neg

char

x(03)

s

Unidade de Negócio

log-ctbzdo

log

Sim/Não

 

Contabilizado

referencia

char

x(20)

 

Referencia

 

 

 

 

 

 

 

 

 

 

Tipo

Indice

Coluna

 

 

PU

ctbz-re-docto

serie-docto

 

 

 

 

nro-docto

 

 

 

 

cod-emitente

 

 

 

 

nat-operacao

 

 

 

 

sequencia

 

 

 

 

ct-codigo

 

 

 

 

sc-codigo

 

 

 

 

cod-unid-neg

 

 

 

 

 

 

 

 

ctbz-re-dt-contab

dt-trans

 

 

 

 

l-contabiliza

 

 

 

 

cod-estabel

 

 

 

 

 

 

 

 

ctbz-re-conta

ct-codigo

 

 

 

 

sc-codigo

 

 

 

 

cod-unid-neg

 

 

 

 

 

 

 

 

ctbz-re-conta-dt

dt-trans

 

 

 

 

ct-codigo

 

 

 

 

sc-codigo

 

 

 

 

cod-unid-neg

 

 

 

 

 

 

 

 

ctbz-re-estab-ref

cod-estabel

 

 

 

 

referencia

 

 

 

 

 

 

 

 

ctbz-re-estab-conta

cod-estabel

 

 

 

 

ct-codigo

 

 

 

 

sc-codigo

 

 

 

 

dt-trans

 

 

 

 

cod-unid-neg

 

 

movto-ctbl-recebto - Arquivo para Movimentação Contábil do Recebimento

 

 

 

 

 

 

 

 

 

Coluna

Tipo

Formato

Mandatório

Label

cod-estabel

char

x(5)

s

Estabelecimento

ct-codigo

char

x(20)

s

Conta

sc-codigo

inte

x(20)

s

Centro Custo

dt-trans

char

99/99/9999

s

Data Transação

cod-unid-neg

char

x(03)

s

Unidade de Negócio

referencia

char

x(20)

 

Referencia

num-id-movto-ctbl

inte

999999999

 

Identificação

val-ctbl

dec-2

->>>,>>>,>>>,>>9.99

 

Valor do Movimento

val-ctbl-mo

dec-2[5]

->>>,>>>,>>>,>>9.99

 

Valor

dsl-histor

char

x(2000)

 

Histórico

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Tipo

Indice

Coluna

 

 

PU

mvtctbl-est-conta

cod-estabel

 

 

 

 

ct-codigo

 

 

 

 

sc-codigo

 

 

 

 

dt-trans

 

 

 

 

cod-unid-neg

 

 

 

 

 

 

 

Simples

mvtctbl-num-id

num-id-movto-ctbl

 

 

 

 

 

 

 

(Opcional)

Grupo de Perguntas

 Não se aplica.  

(Opcional)

Consulta Padrão

Não se aplica.  

(Opcional)

Estrutura de Menu

  <Informações utilizadas na linha Datasul>.   Procedimentos  

Procedimento

 

 

 

Descrição

(Max 40 posições)

(Max 40 posições)

(Max 40 posições)

Módulo

 

 

 

Programa base

 

 

 

Nome Menu

(Max 32 posições)

(Max 32 posições)

(Max 32 posições)

Interface

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

Registro padrão

Sim

Sim

Sim

Visualiza Menu

Sim/Não

Sim/Não

Sim/Não

Release de Liberação

 

 

 

      Programas  

Programa

 

 

 

Descrição

(Max 40 posições)

(Max 40 posições)

(Max 40 posições)

Nome Externo

 

 

 

Nome Menu/Programa

(Max 32 posições)

(Max 32 posições)

(Max 32 posições)

Nome Verbalizado[1]

(Max 254 posições)

(Max 254 posições)

(Max 254 posições)

Procedimento

 

 

 

Template

(Verificar lista de opções no man01211)

(Verificar lista de opções no man01211)

(Verificar lista de opções no man01211)

Tipo[2]

Consulta/Manutenção/ Relatório/Tarefas

Consulta/Manutenção/ Relatório/Tarefas

Consulta/Manutenção/ Relatório/Tarefas

Interface

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

Categoria[3]

 

 

 

Executa via RPC

Sim/Não

Sim/Não

Sim/Não

Registro padrão

Sim

Sim

Sim

Outro Produto

Não

Não

Não

Visualiza Menu

Sim/Não

Sim/Não

Sim/Não

Query on-line

Sim/Não

Sim/Não

Sim/Não

Log Exec.

Sim/Não

Sim/Não

Sim/Não

Rotina (EMS)

 

 

 

Sub-Rotina (EMS)

 

 

 

Localização dentro da Sub Rotina (EMS)

 

 

 

Compact[4]

Sim/Não

Sim/Não

Sim/Não

Home[5]

Sim/Não

Sim/Não

Sim/Não

Posição do Portlet[6]

0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right

0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right

0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right

Informar os papeis com os quais o programa deve ser vinculado

 

 

 

  Cadastro de Papéis <O cadastro de papéis é obrigatório para os projetos de desenvolvimento FLEX a partir do Datasul 10>. <Lembrete: o nome dos papeis em inglês descrito neste ponto do documento, devem ser homologados pela equipe de tradução>.  

Código Papel

(máx 3 posições)

Descrição em Português*

 

Descrição em Inglês*

 

  [1] Nome Verbalizado é obrigatório para desenvolvimentos no Datasul 10 em diante. [2] Tipo é obrigatório para desenvolvimento no Datasul 10 em diante [3] Categorias são obrigatórias para os programas FLEX. [4] Obrigatório quando o projeto for FLEX [5] Obrigatório quando o projeto for FLEX [6] Obrigatório quando o projeto for FLEX

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.                                                             

 

cd0666.i

 

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-variavel.cod-val-var = TRIM(STRING(p-it-codigo)).

CREATE tt-variavel.
ASSIGN tt-variavel.cod-var-oper = "nat-operacao":U
       tt-variavel.cod-val-var = TRIM(STRING(p-nat-operacao)).

CREATE tt-variavel.
ASSIGN tt-variavel.cod-var-oper = "cod-estabel":U
       tt-variavel.cod-val-var = TRIM(STRING(p-nat-operacao)).

CREATE tt-variavel.
ASSIGN tt-variavel.cod-var-oper = "cod-transp":U
       tt-variavel.cod-val-var = TRIM(STRING(p-cod-transp)).

CREATE tt-variavel.
ASSIGN tt-variavel.cod-var-oper = "cod-fornec":U
       tt-variavel.cod-val-var = TRIM(STRING(p-cod-fornec)).

CREATE tt-variavel.
ASSIGN tt-variavel.cod-var-oper = "ct-codigo":U
       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-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 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)).

 

Busca retornos para os tipos de operação

/*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 = "apropria-despesa-item":U
              AND tt-retorno.valor-retorno = "NAO":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.

 

  
 
  

...

 

 

...

 

 

...

 

 

...

 

 

...