MATA390 - Pesquisa Lotes
Linha de Produto: | Protheus |
Segmento: | Manufatura |
Módulo: | SIGAPCP - Planejamento e Controle da Produção |
Nível de Acesso: | Nível 1 (Acesso Clientes) |
Idiomas: | Espanhol, Inglês |
País(es): | Todos |
Banco(s) de Dados: | Todos |
Sistema(s) Operacional(is): | Todos |
Ponto de Entrada
Descrição: | Esta rotina tem como objetivo pesquisar e visualizar lotes já existentes e incluir/excluir lotes novos (somente lotes incluídos manualmente poderão ser excluídos). A inclusão de lotes deve ser utilizada quando um produto com saldo em estoque e sem controle de rastreabilidade passa a utilizar este controle. Importante: Esta rotina permite a inclusão de saldos para rastreabilidade em produtos que já possuam saldo em estoque. |
Programa Fonte: | MATA390.PRW |
Sintaxe: | MATA390 - Pesquisa Lotes ( ) --> Nil |
Retorno: | Nil
|
Observações: | Esta rotina pode ser utilizada via Rotina Automática. |
User Function MyMata390()Local aCabec := {}Local cLoteFor := ""Local cProduto := ""Local cArmazem := ""Local cDoc := ""Local cSerie := ""Local dDatMov := ""Local nQuant := 0Local nLote := ""Local dDatVal := "" Local lOk := .T.Private lMsHelpAuto := .T.PRIVATE lMsErroAuto := .F.//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿//| Abertura do ambiente |//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙPREPARE ENVIRONMENT EMPRESA "YY" FILIAL "01" MODULO "EST" TABLES "SD5" DbSelectArea("SB1")DbSetOrder(1)If !SB1->(MsSeek(xFilial("SB1")+"PA001")) lOk := .F. ConOut(OemToAnsi("Cadastrar produto: PA001"))EndIfDbSelectArea("SF1")DbSetOrder(1)If !SF1->(MsSeek(xFilial("SF1")+"000000001"+"UNI")) lOk := .F. ConOut(OemToAnsi("Cadastrar NF: PA001"))EndIfIf lOk cDoc := SF1->F1_DOC cSerie := SF1->F1_SERIE DbSelectArea("SD1") DbSetOrder(1) dbSeek(xFilial("SD1")+cDoc+cSerie) cProduto := SD1->D1_COD nQuant := D1_QUANT cArmazem := Posicione("SB1",1,xFilial("SB1")+cProduto,"B1_LOCPAD") dDatMov := dDataBase cLoteFor := "00001" dDatVal := CtoD("31/12/2008") nLote := SD5->D5_LOTECTL If Empty(nLote) nLote := StrZero(1,Len(SD1->D1_DOC)) Else nLote := Soma1(nLote) EndIf ConOut(Repl("-",80)) ConOut(PadC("Teste de Manutencoes nas Movimentacoes de Lote",80)) ConOut("Inicio: "+Time()) //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //| Teste de Inclusao | //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Begin Transaction aCabec := {} aadd(aCabec,{"D5_LOTEFOR",cLoteFor,}) aadd(aCabec,{"D5_PRODUTO",cProduto,}) aadd(aCabec,{"D5_LOCAL",cArmazem,}) aadd(aCabec,{"D5_DOC",cDoc,}) aadd(aCabec,{"D5_SERIE",cSerie,}) aadd(aCabec,{"D5_DATA",dDatMov,}) aadd(aCabec,{"D5_QUANT",nQuant,}) aadd(aCabec,{"D5_LOTECTL",nLote,}) aadd(aCabec,{"D5_DTVALID",dDatVal,}) MSExecAuto({|x,y| mata390(x,y)},aCabec,3) If !lMsErroAuto ConOut("Incluido com sucesso! "+nLote) Else ConOut("Erro na inclusao!") EndIf ConOut("Fim : "+Time()) End TransactionEndIfRESET ENVIRONMENTReturn Nil