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 |
|
|
|
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
...
- 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
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.
...
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.
- 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.
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.
...
Pode ser tomar como exemplo o modelo abaixo.
...
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.
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.
...
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.
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.
Também deve ser possível realizar a tradução de CFOP para natureza de operação.
Por exemplo:
...
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.
...
...
...
...
...