Árvore de páginas

Versões comparadas

Chave

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

...

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

...

No inventário é solicitado que o saldo do produto MP003 seja zerado no endereço END003, mas há saldo empenhado neste endereço, assim o relatório é apresentado e o inventário não é realizado.

03. LISTA ATUAL DE INCONSISTENCIAS

Image Removed

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

Informações
iconfalse
titleExemplo de Exclusão
Bloco de código
languagec#
themeMidnight
linenumberstrue
collapsetrue
#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


Conclusão

Quando a rastreabilidade por endereço é ativada no produto, é importante que seja informado o endereço nos empenhos das ordens de produção, pois assim o saldo empenhado na tabela SB2 - Saldos Físico e Financeiro terá sua distribuição correta na tabela SBF - Saldos por Endereço. Quando o controle por endereço está ativado no produto, a rotina MATA340 - Inventário buscará o saldo empenhado para o produto e endereço na tabela SBF - Saldos por Endereço, pois o saldo empenhado na tabela SB2 - Saldos Físico e Financeiro é somente o totalizador dos empenhos de todos os endereços daquele produto. Caso os empenhos gerados através de ordens de produção não tenham seus respectivos endereços, não há como saber quais quantidades empenhadas na tabela SB2 - Saldos Físico e Financeiro correspondem ao endereço que está sendo inventariado no momento, dessa forma, o relatório Itens Não Inventariados não entende que há uma inconsistência para o produto e endereço inventariado.

Outro motivo que é importante ser destacado neste momento é que empenhos gerados por ordem de produção sem endereços informados não podem travar o processo de inventário, sendo que muitas empresas não param seus processos de produção durante um inventário físico em seus almoxarifados, da forma explicada anteriormente, garante-se que o inventário somente não ocorra para o produto e endereço específicos.

Vale destacar também que empenhos gerados através de ordem de produção do tipo Prevista não são considerados como inconsistência, pois ainda é incerta sua produção.


03. LISTA ATUAL DE INCONSISTENCIAS

Image Added

04. ASSUNTOS RELACIONADOS