Home

Linha Microsiga Protheus

Páginas filhas
  • MATA120 - Autorização de Entrega

Versões comparadas

Chave

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

Pagetitle
MATA120 - Pedido Autorização de ComprasEntrega
MATA120 - Pedido Autorização de ComprasEntrega

Função: MATA120 - Autorização de Entrega

 

Versões:Microsiga Protheus 8.11 , Protheus 10,Protheus 11
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:Espanhol , Inglês

 

Descrição:

Para efetuar o recebimento de um material com Contrato de Parceria, é necessário que seja executada tanto por meio de Rotina Automática(MATA125) como Manual antes da rotina de Autorização de Entrega, para realizar as baixas dos itens do contrato de parceria e registrar a autorização da compra.

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

Programa Fonte:
mata120.prx
Sintaxe:

MATA120 - Autorização de Entrega ( [ ExpN1 ] [ ExpA1 ] [ ExpA2 ] [ ExpN2 ] [ ExpL1 ] [ ExpA1 ] [ ExpA2 ] [ ExpA3 ])

Retorno:

Observações

Quando o campo: C7_MOEDA for informado, o campo: C7_TXMOEDA, também deve ser inofrmado no array.

Os campos C7_NUMSC e C7_ITEMSC deverão estar preenchidos para relacionar ao Contrato de Parceria.

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.

Exemplos:

#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.)

 


Parâmetros:

 

 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 os informações para o rateio do Centro de Custo para Rotina Automática.          
 ExpA2  Array of Record  Reservado          
 ExpA3  Array of Record  Array com os informações para o rateio de projeto para Rotina Automática.