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.

...

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

...

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

...

.

...

Retorno:

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_ITEMSC

...

  • devem 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).

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:

 

...

Idioma

Espanhol, Inglês

Versões

Microsiga Protheus 8.11, Protheus 10, Protheus 11

Sistemas   Operacionais Suportados

Todos

Compatível com as   Bases de Dados

Todas

Nível de Acesso

Nível 1 (Acesso   Clientes)

Programa Fonte

mata120.prx

Sintaxe

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

Parâmetros
NomeTipoDescrição
ExpN1NuméricoAutorização de entrega.
ExpA1Array of RecordArray 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.

...

 

...