MATA105 - Solicitação ao Almoxarifado

Função: MATA105 - Solicitação ao Almoxarifado


Versões:Protheus 10
Compatível Países:Todos
Sistemas Operacionais:Todos
Compatível às Bases de Dados:Todos
Nível de Acesso:Nível 1 (Acesso Clientes)
Idiomas:Português (Brasil)


Descrição:
OBJETIVO:
Esta rotina é executada toda vez que for identificada a necessidade de algum produto/material.

Observação:
A solicitação ao armazém permite gerar requisições de materiais (Pré-requisições), não vinculadas a uma ordem de produção.
A rotina Solicitação ao Armazém controla os produtos solicitados por um determinado departamento ou usuário ao armazém.
O Sistema permite o acompanhamento dos saldos, quantidades e compra do material.
Identificada a necessidade, o usuário deve incluir a solicitação ao armazém, o que desencadeará a execução de uma série de processos controlados pelo sistema.
Programa Fonte:
MATA105.PRX
Sintaxe:

MATA105 - Solicitação ao Almoxarifado ( [ PARAMIXB1 ] [ PARAMIXB2 ] [ PARAMIXB3 ] ) --> NIL

Retorno:
NIL (nulo)

Exemplos


User Function ROTMATA105()
Local lRet := .T.
Local aCab := {}
Local aItens := {}
Local nSaveSx8 := 0
Local cNumero := ''

Local nOpcx := 0

Private lMsErroAuto := .F.
Private lMsErroHelp := .T.

RpcClearEnv()
RpcSetType( 3 )
lRet := RpcSetEnv( '99', '01'  )

If ( !lRet )
ConOut( 'Problemas na Inicialização do Ambiente' )
Else

 //---------- nOpcx = 3 Inclusão de Solicitação de Armazém --------------
nOpcx := 3
nSaveSx8:= GetSx8Len()
cNumero := GetSx8Num( 'SCP', 'CP_NUM' )

dbSelectArea( 'SB1' )
SB1->( dbSetOrder( 1 ) )

dbSelectArea( 'SCP' )
SCP->( dbSetOrder( 1 ) )

If nOpcx == 3
While SCP->( dbSeek( xFilial( 'SCP' ) + cNumero ) )
ConfirmSx8()
cNumero := GetSx8Num('SCP', 'CP_NUM')
EndDo
EndIf

Aadd( aCab, { "CP_NUM" ,cNumero , Nil })
Aadd( aCab, { "CP_EMISSAO" ,dDataBase , Nil })

Aadd( aItens, {} )
Aadd( aItens[ Len( aItens ) ],{"CP_ITEM" , '01' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_PRODUTO" ,'PRD_001' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_QUANT" ,10 , Nil } )

Aadd( aItens, {} )
Aadd( aItens[ Len( aItens ) ],{"CP_ITEM" , '02' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_PRODUTO" ,'PRD_002' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_QUANT" ,20 , Nil } )

Aadd( aItens, {} )
Aadd( aItens[ Len( aItens ) ],{"CP_ITEM" , '03' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_PRODUTO" ,'PRD_003' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_QUANT" ,30 , Nil } )

Aadd( aItens, {} )
Aadd( aItens[ Len( aItens ) ],{"CP_ITEM" , '04' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_PRODUTO" ,'PRD_004' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_QUANT" ,40 , Nil } )


//---------- nOpcx = 4 Alteração de Solicitação de Armazém -------------

//-----------------------------------------------------------------------------//
// AUTDELETA - Opcional
// Atributo para Definir se o Item que pertence a Solicitação de Armazém deve
// ser Excluído ou Não no processo de Alteração.

// - N = Não Deve Ser Excluído
// - S = Sim Deve Ser Excluído
//-----------------------------------------------------------------------------//
nOpcx := 4
Aadd( aCab, { "CP_NUM" ,cNumero , Nil })
Aadd( aCab, { "CP_EMISSAO" ,dDataBase , Nil })

Aadd( aItens, {} )
Aadd( aItens[ Len( aItens ) ],{"CP_ITEM" , '01' , Nil } )

Aadd( aItens[ Len( aItens ) ],{"CP_NUM" , 'cNumero' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_PRODUTO" ,'PRD_001' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_QUANT" ,10 , Nil } )
Aadd( aItens[ Len( aItens ) ],{"AUTDELETA" ,'N' , Nil } )

Aadd( aItens, {} )
Aadd( aItens[ Len( aItens ) ],{"CP_ITEM" , '02' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_PRODUTO" ,'PRD_002' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_QUANT" ,120 , Nil } )
Aadd( aItens[ Len( aItens ) ],{"AUTDELETA" ,'N' , Nil } )

Aadd( aItens, {} )
Aadd( aItens[ Len( aItens ) ],{"CP_ITEM" , '03' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_PRODUTO" ,'PRD_003' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_QUANT" ,30 , Nil } )

Aadd( aItens[ Len( aItens ) ],{"AUTDELETA" ,'S' , Nil } )

Aadd( aItens, {} )
Aadd( aItens[ Len( aItens ) ],{"CP_ITEM" , '04' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_PRODUTO" ,'PRD_004' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_QUANT" ,40 , Nil } )

Aadd( aItens[ Len( aItens ) ],{"AUTDELETA" ,'N' , Nil } )


//---------- nOpcx = 5 Exclusão de Solicitação de Armazém --------------
nOpcx := 5
Aadd( aCab, { "CP_NUM" ,cNumero , Nil })
Aadd( aCab, { "CP_EMISSAO" ,dDataBase , Nil })

Aadd( aItens, {} )
Aadd( aItens[ Len( aItens ) ],{"CP_ITEM" , '01' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_PRODUTO" ,'PRD_001' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_QUANT" ,10 , Nil } )

Aadd( aItens, {} )
Aadd( aItens[ Len( aItens ) ],{"CP_ITEM" , '02' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_PRODUTO" ,'PRD_002' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_QUANT" ,20 , Nil } )

Aadd( aItens, {} )
Aadd( aItens[ Len( aItens ) ],{"CP_ITEM" , '03' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_PRODUTO" ,'PRD_003' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_QUANT" ,30 , Nil } )

Aadd( aItens, {} )
Aadd( aItens[ Len( aItens ) ],{"CP_ITEM" , '04' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_PRODUTO" ,'PRD_004' , Nil } )
Aadd( aItens[ Len( aItens ) ],{"CP_QUANT" ,40 , Nil } )

//----------------------------------------------------------------------


SB1->( dbSetOrder( 1 ) )
SCP->( dbSetOrder( 1 ) )
MsExecAuto( { | x, y, z | Mata105( x, y , z ) }, aCab, aItens , nOpcx )

If lMsErroAuto
If !__lSX8
RollBackSx8()
EndIf

MsgStop( 'Erro ao Executar o Processo' )
MostraErro()
   lRet := .F.

Else
While ( GetSx8Len() > nSaveSx8 )
ConfirmSx8()
   End

   MsgInfo( 'Processo Executado' )
EndIf

EndIf

Return lRet

Parâmetros:



Nome

Tipo

Descrição

Default

Obrigatório

Referência

PARAMIXB1

Array of Record

Cabeçalho da Solicitação ao Almoxarifado










PARAMIXB2

array_of_record

Itens da Solicitação ao Almoxarifado










PARAMIXB3

numerico

Opção escolhida: 3-Inclusão 4-Alteração 5-Exclusão










Atualizado em 06/07/2023
Este artigo foi útil?  
Agradecemos sua avaliação.