Árvore de páginas

Versões comparadas

Chave

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

MATA120 - Autorização de Entrega

Linha de Produto:

Protheus

Segmento:

Manufatura

Módulo:

SIGAPCP - Planejamento e Controle da Produção

Parâmetro(s):


Nome
Tipo
Descrição
Default
Obrigatório Referência

ExpN1
Numérico
Autorização de entrega.







ExpA1
Array of Record
Array Cabeçalho da Autorização de entrega para Rotina Automática.







ExpA2
Array of Record

Array Itens da Autorização de entrega para Rotina Automática.







ExpN2
Numérico
Opção da Rotina para Rotina Automática.







ExpL1
Lógico
Apresenta a Dialog da Rotina em Rotina Automática.







ExpA1
Array of Record
Array com as informações para o rateio do Centro de Custo para Rotina Automática.







ExpA2
Array of Record
Reservado.







ExpA3
Array of Record
Array com as informações para o rateio de projeto para Rotina Automática.






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:

Para o recebimento de material com contrato de parceria é necessário que seja executada a rotina Automática (MATA125) ou a rotina Manual antes da Autorização de Entrega para que as baixas dos itens do contrato de parceria e o registro da autorização da compra sejam realizados.

Este procedimento é utilizado para autorizar a entrega dos itens do contrato de parceria que deve ser realizado antes do recebimento do material. É possível autorizar a entrega de apenas parte da quantidade total determinada no contrato, ficando o restante em aberto para outras autorizações.

Programa Fonte:

MATA120.PRX

Observações:
  • Quando o campo C7_MOEDA for informado, o campo C7_TXMOEDA também deve ser informado no array.
  • Os campos C7_NUMSC  e C7_ITEMSCdevem ser preenchidos  para fazer o relacionamento ao Contrato de Parceria.
  • Se for Alteração  ou Exclusão o campo C7_REC_WT deve conter o número do Registro   (Recno()).
  • Rateio por Centro   de Custo:
    • O array Rateio por Centro de Custo deve ser passado com todos os   campos e seguindo a mesma ordem do exemplo abaixo.
    • O array Rateio por Projeto deve ser passado com todos os  campos e seguindo a mesma ordem do exemplo abaixo. (Atenção essa  opção está disponível somente a partir da Versão Protheus 11).
Bloco de código
titleExemplo:
linenumberstrue
#INCLUDE "RWMAKE.CH"


#INCLUDE "PROTHEUS.CH"


#INCLUDE "tbiconn.CH"

User Function MyMata120()

Local aCabec := {}


Local aItens := {}


Local aLinha := {}


Local nY := 0


Local cDoc := ""


Local lOk := .T.

 
Local cSeek := ""

 
Local nCount := 0

PRIVATE lMsErroAuto := .F.

PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "FAT" TABLES "SC7"

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿


//| Abertura do ambiente |


//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ


ConOut(Repl("-",80))


ConOut(PadC("Teste de Inclusao de 10 pedidos de compra com 30 itens cada",80))


//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿


//| Verificacao do ambiente para teste |


//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ


dbSelectArea("SB1")


dbSetOrder(1)


If !SB1->(MsSeek(xFilial("SB1")+"PA002"))


lOk := .F.


ConOut("Cadastrar produto: PA002")


EndIf


dbSelectArea("SF4")


dbSetOrder(1)


If !SF4->(MsSeek(xFilial("SF4")+"001"))


lOk := .F.


ConOut("Cadastrar TES: 001")


EndIf


dbSelectArea("SE4")


dbSetOrder(1)


If !SE4->(MsSeek(xFilial("SE4")+"001"))


lOk := .F.


ConOut("Cadastrar condicao de pagamento: 001")


EndIf


dbSelectArea("SA2")


dbSetOrder(1)


If !SA2->(MsSeek(xFilial("SA2")+"F0000101"))


lOk := .F.


ConOut("Cadastrar fornecedor: F0000101")


EndIf


If lOk


ConOut("Inicio: "+Time())


//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿


//| Verifica o ultimo documento valido para um fornecedor |


//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ


dbSelectArea("SC7")


dbSetOrder(1)


MsSeek(xFilial("SC7")+"zzzzzz",.T.)


dbSkip(-1)


cDoc := SC7->C7_NUM


For nY := 1 To 1


aCabec := {}


aItens := {}

If Empty(cDoc)


cDoc := StrZero(1,Len(SC7->C7_NUM))


Else


cDoc := Soma1(cDoc)


EndIf

aadd(aCabec,{"C7_NUM" ,cDoc})


aadd(aCabec,{"C7_EMISSAO" ,dDataBase})


aadd(aCabec,{"C7_FORNECE" ,"F00001"})


aadd(aCabec,{"C7_LOJA" ,"01"})


aadd(aCabec,{"C7_COND" ,"001"})


aadd(aCabec,{"C7_CONTATO" ,"AUTO"})


aadd(aCabec,{"C7_FILENT" ,CriaVar("C7_FILENT")})

cSeek:= xFilial("SC3")+"F0000101"

dbSelectArea("SC3")


dbSetOrder(2)


MsSeek(cSeek)

While SC3->(!Eof()) .And. xFilial("SC3")+SC3->C3_FORNECE+SC3->C3_LOJA == cSeek

 
aLinha := {}


aadd(aLinha,{"C7_PRODUTO" ,SC3->C3_PRODUTO,Nil})


aadd(aLinha,{"C7_QUANT" ,SC3->C3_QUANT ,Nil})


aadd(aLinha,{"C7_PRECO" ,SC3->C3_PRECO ,Nil})


aadd(aLinha,{"C7_TOTAL" ,SC3->C3_TOTAL ,Nil})


aadd(aLinha,{"C7_NUMSC" ,SC3->C3_NUM ,Nil})


aadd(aLinha,{"C7_ITEMSC" ,SC3->C3_ITEM ,Nil})


aadd(aItens,aLinha)

 
SC3->(dbSkip())

 
nCount++


Enddo


//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿


//| Teste de Inclusao |


//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

 
If nCount > 0


MATA120(2,aCabec,aItens,3)



If !lMsErroAuto


ConOut("Incluido com sucesso! "+cDoc)

 
Else


ConOut("Erro na inclusao!")


MostraErro()


EndIf

 
Else


ConOut("Autorização não incluida!")


EndIF


Next nY


ConOut("Fim : "+Time())

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿


//| Teste de Alteracao |


//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ


dbSelectArea("SC7")


dbSetOrder(1)


MsSeek(xFilial("SC7")+cDoc)

//C7_FILIAL+C7_NUM+C7_ITEM+C7_SEQUEN

aCabec := {}


aItens := {}


aadd(aCabec,{"C7_NUM" ,SC7->C7_NUM})


aadd(aCabec,{"C7_EMISSAO" ,SC7->C7_EMISSAO})


aadd(aCabec,{"C7_FORNECE" ,SC7->C7_FORNECE})


aadd(aCabec,{"C7_LOJA" ,SC7->C7_LOJA})


aadd(aCabec,{"C7_COND" ,SC7->C7_COND})


aadd(aCabec,{"C7_CONTATO" ,SC7->C7_CONTATO})


aadd(aCabec,{"C7_FILENT" ,SC7->C7_FILENT})

aLinha := {}


aadd(aLinha,{"C7_ITEM" ,SC7->C7_ITEM ,Nil})


aadd(aLinha,{"C7_PRODUTO" ,SC7->C7_PRODUTO ,Nil})


aadd(aLinha,{"C7_QUANT" ,3 ,Nil})


aadd(aLinha,{"C7_PRECO" ,SC7->C7_PRECO ,Nil})


aadd(aLinha,{"C7_TOTAL" ,3*SC7->C7_PRECO ,Nil})

 
aadd(aLinha,{"C7_NUMSC" ,SC7->C7_NUMSC ,Nil})


aadd(aLinha,{"C7_ITEMSC" ,SC7->C7_ITEMSC ,Nil})


aadd(aLinha,{"C7_REC_WT" ,SC7->(RECNO()) ,Nil})


aadd(aItens,aLinha)

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿


//| Teste de alteracao |


//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ


ConOut(PadC("Teste de alteracao",80))


ConOut("Inicio: "+Time())


MATA120(2,aCabec,aItens,4)

If !lMsErroAuto


ConOut("Alteracao com sucesso! "+cDoc)

 
Else


ConOut("Erro na Alteracao!")


EndIf


ConOut("Fim : "+Time())


ConOut(Repl("-",80))


//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿


//| Teste de exclusao |


//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

 
dbSelectArea("SC7")


dbSetOrder(1)


MsSeek(xFilial("SC7")+cDoc)

aCabec := {}


aItens := {}


aadd(aCabec,{"C7_NUM" ,SC7->C7_NUM})


aadd(aCabec,{"C7_EMISSAO" ,SC7->C7_EMISSAO})


aadd(aCabec,{"C7_FORNECE" ,SC7->C7_FORNECE})


aadd(aCabec,{"C7_LOJA" ,SC7->C7_LOJA})


aadd(aCabec,{"C7_COND" ,SC7->C7_COND})


aadd(aCabec,{"C7_CONTATO" ,SC7->C7_CONTATO})


aadd(aCabec,{"C7_FILENT" ,SC7->C7_FILENT})

aLinha := {}


aadd(aLinha,{"C7_ITEM" ,SC7->C7_ITEM ,Nil})


aadd(aLinha,{"C7_PRODUTO" ,SC7->C7_PRODUTO ,Nil})


aadd(aLinha,{"C7_QUANT" ,SC7->C7_QUANT ,Nil})


aadd(aLinha,{"C7_PRECO" ,SC7->C7_PRECO ,Nil})

 
aadd(aLinha,{"C7_NUMSC" ,SC7->C7_NUMSC ,Nil})


aadd(aLinha,{"C7_ITEMSC" ,SC7->C7_ITEMSC ,Nil})


aadd(aLinha,{"C7_REC_WT" ,SC7->(RECNO()) ,Nil})

 
aadd(aItens,aLinha)

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿


//| Teste de Exclusao |


//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ


ConOut(PadC("Teste de exclusao",80))


ConOut("Inicio: "+Time())


MATA120(2,aCabec,aItens,5)

If !lMsErroAuto


ConOut("Exclusao com sucesso! "+cDoc)

 
Else


ConOut("Erro na exclusao!")


EndIf

ConOut("Fim : "+Time())


ConOut(Repl("-",80))


EndIf

RESET ENVIRONMENT

Return(.T.)