Árvore de páginas

Versões comparadas

Chave

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

...

Rotina automatica MATA390


COLF1D1

Linha de Produto:

Microsiga Protheus

Segmento:

ServiçosManufatura

Módulo:

Compras Estoque/Custo (SIGACOMSIGAEST)

Rotina:

Rotina

Nome Técnico

Monitor Totvs Colaboração

COMXCOL

Ponto de Entrada:

Manutenção de lotes

MATA390

País(es):

Brasil

Banco(s) de Dados:

Todos

Tabelas utilizadas:

SF1 SD5 - SD1SB8

Sistema(s) operacional(is):

Windows/Linux

...

Rotina automatica

Descrição:

O Ponto de Entrada COLF1D1 permite adicionar acrescentar campos customizados na SF1 e SD1 antes da geração do documento.

Localização:

 Rotina de processamento dos documentos no Monitor Totvs Colaboração para documentos SF1/SD1.

Eventos:

O Ponto de entrada é executado antes do execauto

Programa Fonte:

COMXCOL

Esta rotina efetua manutenções nas Movimentações de Lote (SD5)

Observação:

Esta rotina permite 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.

Sintaxe

MATA390 - Programa de Manutenções nas Movimentações de Lote (SD5) ( [ PARAMIXB1 ] [ PARAMIXB2 ] ) --> nulo

Programa Fonte:

MATA390

Função:

AUTO390INC (Inclusão)

AUTO390DAT (Alteração data de validade)

AUTO390PRC (Alteração preço do lote)

AUTO390POT (Alteração potencia)

AUTO390EXC (Exclusão)

Função:

PROCDOCS

Parâmetros:

Nome

Tipo

Descrição

Obrigatório

PARAMIXB

Array

Cabeçalho da NF (SF1Contendo os valores para as movimentacoes de Lote (SD5)

X

PARAMIXBArrayItens da NF (SD1)X
 Retorno:
Nome
Tipo
Descrição
Obrigatório
aCabArrayCabeçalho da NF (SF1) X
aItensArrayItens da NF (SD1)X

 

Numerico

3 - Inclusão

4 - Alteração Data de validade

5 - Exclusão

6 - Alteração Preço

7 - Alteração Potencia

X

 

Exemplo:


//Inclusão

#Include 'Protheus.ch'

User Function AUT390INC()

Local cProd := ""
Local cLocal := ""
Local cLoteCtl := ""
Local dData := CtoD("//")
Local dDataVld := CtoD("//")
Local aVetor := {}
Local aTamCOD := {}
Local aTamLOC := {}
Local aTamLOT := {}
Local nQtd := 0
Local nOpc := 3

Private lMsErroAuto := .F.

PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "EST" TABLES "SD5"

aTamCOD := TamSx3("D5_PRODUTO")
aTamLOC := TamSx3("D5_LOCAL")
aTamLOT := TamSx3("D5_LOTECTL")

DbSelectArea("SD5")

cProd := PadR("0005",aTamCOD[1])
cLocal := PadR("01",aTamLOC[1])
dData := dDataBase
nQtd := 12000
cLoteCtl := PadR("11223344",aTamLOT[1])
dDataVld := dDataBase+30

aadd(aVetor,{"D5_PRODUTO" ,cProd ,NIL})
aadd(aVetor,{"D5_LOCAL" ,cLocal ,NIL})
aadd(aVetor,{"D5_LOTECTL" ,cLoteCtl ,NIL})
aadd(aVetor,{"D5_DATA" ,dData ,NIL})
aadd(aVetor,{"D5_QUANT" ,nQtd ,NIL})
aadd(aVetor,{"D5_DTVALID" ,dDataVld ,NIL})

MSExecAuto({|x,y| Mata390(x,y)},aVetor,nOpc)

If !lMsErroAuto
ConOut("Incluido com sucesso! " + cProd)
Else
MostraErro()
ConOut("Erro na inclusao!")
EndIf

RESET ENVIRONMENT

Return


//Alteração data de validade

//Observação: Não esquecer de informar o numero de lote (D5_NUMLOTE) e numero sequencia (D5_NUMSEQ), conforme numeros gerados após a inclusão.

...

#Include 'Protheus.ch'

User Function COLF1D1()

Local aCab := PARAMIXB[1]
Local aItens := PARAMIXB[2]
Local aRet := {}

//Customizações do cliente

aRet := {aCab,aItens}

AUT390DAT()

Local cProd := ""
Local cLocal := ""
Local cLoteCtl := ""
Local cNumLote := ""
Local cNumSeq := ""
Local dDataVld := CtoD("//")
Local aVetor := {}
Local aTamCOD := {}
Local aTamLOC := {}
Local aTamLOT := {}
Local aTamNLOT := {}
Local aTamSEQ := {}
Local nOpc := 4

Private lMsErroAuto := .F.

PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "EST" TABLES "SD5"

aTamCOD := TamSx3("D5_PRODUTO")
aTamLOC := TamSx3("D5_LOCAL")
aTamLOT := TamSx3("D5_LOTECTL")
aTamNLOT := TamSx3("D5_NUMLOTE")
aTamSEQ := TamSx3("D5_NUMSEQ")

DbSelectArea("SD5")

cProd := PadR("0005",aTamCOD[1])
cLocal := PadR("01",aTamLOC[1])
cLoteCtl := PadR("11223344",aTamLOT[1])
cNumLote := PadR("",aTamNLOT[1])
cNumSeq := PadR("000014",aTamSEQ[1])
dDataVld := dDataBase+90

aadd(aVetor,{"D5_PRODUTO" ,cProd ,NIL})
aadd(aVetor,{"D5_LOCAL" ,cLocal ,NIL})
aadd(aVetor,{"D5_LOTECTL" ,cLoteCtl ,NIL})
aadd(aVetor,{"D5_NUMLOTE" ,cNumLote ,NIL})
aadd(aVetor,{"D5_NUMSEQ" ,cNumSeq ,NIL})
aadd(aVetor,{"B8_DTVALID" ,dDataVld ,NIL}) //Utiliza B8 mesmo

MSExecAuto({|x,y| Mata390(x,y)},aVetor,nOpc)

If !lMsErroAuto
ConOut("Alterado data de validade com sucesso! " + cProd)
Else
MostraErro()
ConOut("Erro na alteração da data!")
EndIf

RESET ENVIRONMENT

Return


//Alteração preço

//Observação: Não esquecer de informar o numero de lote (D5_NUMLOTE) e numero sequencia (D5_NUMSEQ), conforme numeros gerados após a inclusão.

#Include 'Protheus.ch'

User Function AUT390PRC()

Local cProd := ""
Local cLocal := ""
Local cLoteCtl := ""
Local cNumLote := ""
Local cNumSeq := ""
Local aVetor := {}
Local aTamCOD := {}
Local aTamLOC := {}
Local aTamLOT := {}
Local aTamNLOT := {}
Local aTamSEQ := {}
Local nPrcLot := 0
Local nOpc := 6

Private lMsErroAuto := .F.

PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "EST" TABLES "SD5"

aTamCOD := TamSx3("D5_PRODUTO")
aTamLOC := TamSx3("D5_LOCAL")
aTamLOT := TamSx3("D5_LOTECTL")
aTamNLOT := TamSx3("D5_NUMLOTE")
aTamSEQ := TamSx3("D5_NUMSEQ")

DbSelectArea("SD5")

cProd := PadR("0005",aTamCOD[1])
cLocal := PadR("01",aTamLOC[1])
cLoteCtl := PadR("11223344",aTamLOT[1])
cNumLote := PadR("",aTamNLOT[1])
cNumSeq := PadR("000014",aTamSEQ[1])
nPrcLot := 15

aadd(aVetor,{"D5_PRODUTO" ,cProd ,NIL})
aadd(aVetor,{"D5_LOCAL" ,cLocal ,NIL})
aadd(aVetor,{"D5_LOTECTL" ,cLoteCtl ,NIL})
aadd(aVetor,{"D5_NUMLOTE" ,cNumLote ,NIL})
aadd(aVetor,{"D5_NUMSEQ" ,cNumSeq ,NIL})
aadd(aVetor,{"B8_PRCLOT" ,nPrcLot ,NIL}) //Utiliza B8 mesmo

MSExecAuto({|x,y| Mata390(x,y)},aVetor,nOpc)

If !lMsErroAuto
ConOut("Alterado preço do lote com sucesso! " + cProd)
Else
MostraErro()
ConOut("Erro na alteração do preço!")
EndIf

RESET ENVIRONMENT

Return


//Alteração potencia

//Observação: Não esquecer de informar o numero de lote (D5_NUMLOTE) e numero sequencia (D5_NUMSEQ), conforme numeros gerados após a inclusão.

#Include 'Protheus.ch'

User Function AUT390POT()

Local cProd := ""
Local cLocal := ""
Local cLoteCtl := ""
Local cNumLote := ""
Local cNumSeq := ""
Local aVetor := {}
Local aTamCOD := {}
Local aTamLOC := {}
Local aTamLOT := {}
Local aTamNLOT := {}
Local aTamSEQ := {}
Local nPotencia := 0
Local nOpc := 7

Private lMsErroAuto := .F.

PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "EST" TABLES "SD5"

aTamCOD := TamSx3("D5_PRODUTO")
aTamLOC := TamSx3("D5_LOCAL")
aTamLOT := TamSx3("D5_LOTECTL")
aTamNLOT := TamSx3("D5_NUMLOTE")
aTamSEQ := TamSx3("D5_NUMSEQ")

DbSelectArea("SD5")

cProd := PadR("0005",aTamCOD[1])
cLocal := PadR("01",aTamLOC[1])
cLoteCtl := PadR("11223344",aTamLOT[1])
cNumLote := PadR("",aTamNLOT[1])
cNumSeq := PadR("000014",aTamSEQ[1])
nPotencia := 22

aadd(aVetor,{"D5_PRODUTO" ,cProd ,NIL})
aadd(aVetor,{"D5_LOCAL" ,cLocal ,NIL})
aadd(aVetor,{"D5_LOTECTL" ,cLoteCtl ,NIL})
aadd(aVetor,{"D5_NUMLOTE" ,cNumLote ,NIL})
aadd(aVetor,{"D5_NUMSEQ" ,cNumSeq ,NIL})
aadd(aVetor,{"B8_POTENCI" ,nPotencia ,NIL}) //Utiliza B8 mesmo

MSExecAuto({|x,y| Mata390(x,y)},aVetor,nOpc)

If !lMsErroAuto
ConOut("Alterado potencia com sucesso! " + cProd)
Else
MostraErro()
ConOut("Erro na alteração da potencia!")
EndIf

RESET ENVIRONMENT

Return


//Exclusão 

//Observação: Não esquecer de informar o numero de lote (D5_NUMLOTE) e numero sequencia (D5_NUMSEQ), conforme numeros gerados após a inclusão.

#Include 'Protheus.ch'

User Function AUT390EXC()

Local cProd := ""
Local cLocal := ""
Local cLoteCtl := ""
Local cNumLote := ""
Local cNumSeq := ""
Local aVetor := {}
Local aTamCOD := {}
Local aTamLOC := {}
Local aTamLOT := {}
Local aTamNLOT := {}
Local aTamSEQ := {}
Local nOpc := 5

Private lMsErroAuto := .F.

PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "EST" TABLES "SD5"

aTamCOD := TamSx3("D5_PRODUTO")
aTamLOC := TamSx3("D5_LOCAL")
aTamLOT := TamSx3("D5_LOTECTL")
aTamNLOT := TamSx3("D5_NUMLOTE")
aTamSEQ := TamSx3("D5_NUMSEQ")

DbSelectArea("SD5")

cProd := PadR("0005",aTamCOD[1])
cLocal := PadR("01",aTamLOC[1])
cLoteCtl := PadR("11223344",aTamLOT[1])
cNumLote := PadR("",aTamNLOT[1])
cNumSeq := PadR("000014",aTamSEQ[1])

aadd(aVetor,{"D5_PRODUTO" ,cProd ,NIL})
aadd(aVetor,{"D5_LOCAL" ,cLocal ,NIL})
aadd(aVetor,{"D5_LOTECTL" ,cLoteCtl ,NIL})
aadd(aVetor,{"D5_NUMLOTE" ,cNumLote ,NIL})
aadd(aVetor,{"D5_NUMSEQ" ,cNumSeq ,NIL})

MSExecAuto({|x,y| Mata390(x,y)},aVetor,nOpc)

If !lMsErroAuto
ConOut("Excluido com sucesso! " + cProd)
Else
MostraErro()
ConOut("Erro na exclusão!")
EndIf

RESET ENVIRONMENT

ReturnReturn aRet