CONTEÚDO


01. VISÃO GERAL

Nesta página iremos documentar algumas informações importantes sobre a funcionalidade da rotina MATA340 - Inventário.

Quando a rotina estiver sendo processada, algumas checagens serão realizadas e caso alguma inconsistência seja detectada, ao final do processamento, será apresentado o relatório Itens Não Inventariados.


Os exemplos utilizados nesta documentação são meramente ilustrativos e a responsabilidade pela correta configuração do sistema é do cliente.

02. INCONSISTÊNCIA

02.01. ITENS EMPENHADOS / RESERVADOS NO ARQUIVO SB2/SB8/SBF

A inconsistência Itens empenhados / reservados no arquivo SB2/SB8/SBF será apresentada caso a quantidade empenhada ou reservada seja maior do que a quantidade inventariada.

Para a correta analise dessa inconsistência, deverá ser feito a verificação da configuração do produto, ou seja, se controla rastreabilidade por lote e/ou endereço.

Caso o produto não tenha rastreabilidade ativada por lote e endereço, a quantidade reservada será analisada na tabela SB2 - Saldos Físico e Financeiro.

Caso o produto tenha somente a rastreabilidade por lote ativada, a quantidade empenhada será analisada na tabela SB8 - Saldos por Lote.

Caso o produto tenha a rastreabilidade ativada por lote e endereço ou somente por endereço, a quantidade empenhada será analisada na tabela SBF - Saldos por Endereço.


Exemplo:

Iremos ilustrar como a ordem de produção poderá afetar a geração do relatório Itens Não Inventariados.


Produto acabado


Produto matéria prima


Estrutura


Saldo em estoque


Ordem de produção com empenho sem sugestão de endereço






Cadastro do inventário


Processamento do inventário



Neste cenário, o relatório Itens Não Inventariados não é apresentado, pois o sistema não entende como uma inconsistência um empenho gerado pela ordem de produção que não tinha um endereço informado.


Agora iremos mostrar um cenário onde a ordem de produção terá endereço informado em seu empenho, usando os mesmos cadastros do cenário anterior.


Ordem de produção com empenho e sugestão de endereço






03. LISTA ATUAL DE INCONSISTENCIAS

04. EXEMPLO DE UTILIZAÇÃO NA EXCLUSÃO

#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"

Static __oModelAut := NIL //variavel oModel para substituir msexecauto em MVC  User Function AltProjImob()  User Function ExcProjImob() User Function ExcProjImob()

User Function ExcProjImob()
Local nX
Local aLog
Local cLog :=""
Local lRet := .T.
Local cCodPrj:='0000000000'
Local cCodRev:='0001'

If __oModelAut == Nil //somente uma unica vez carrega o modelo ATFA430
__oModelAut := FWLoadModel('ATFA430')
EndIf

nOpcAuto := 5 //3 - Inclusão | 4 - Alteração | 5 - Exclusão

__oModelAut:SetOperation(nOpcAuto) // 3 - Inclusão | 4 - Alteração | 5 - Exclusão
__oModelAut:Activate() //ativa modelo

DBSelectArea("FNB")
FNB->(DBSetOrder(1)) 
DbSeek( xFilial("FNB") + cCodPrj + cCodRev)

If __oModelAut:VldData() //validacao dos dados pelo modelo
    __oModelAut:CommitData() //gravacao dos dados
Else
    aLog := __oModelAut:GetErrorMessage() //Recupera o erro do model quando nao passou no VldData

    //laco para gravar em string cLog conteudo do array aLog
    For nX := 1 to Len(aLog)
        If !Empty(aLog[nX])
            cLog += Alltrim(aLog[nX]) + CRLF
        EndIf
    Next nX

    lMsErroAuto := .T. //seta variavel private como erro
    AutoGRLog(cLog) //grava log para exibir com funcao mostraerro
    mostraerro()
    lRet := .F. //retorna false                                 
EndIf

__oModelAut:DeActivate() //desativa modelo
    
Return( lRet )

05. ASSUNTOS RELACIONADOS