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.

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.

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

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

    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.
    ExpA2Array of RecordArray Itens da Autorização de entrega para Rotina Automática
    ExpN2NuméricoOpção da Rotina para Rotina Automática.
    ExpL1LógicoApresenta a Dialog da Rotina em Rotina Automática.
    ExpA1Array of RecordArray com as informações para o rateio do Centro de Custo para Rotina Automática.
    ExpA2Array of RecordReservado
    ExpA3Array of RecordArray com as informações para o rateio de projeto para Rotina Automática.