Árvore de páginas

Versões comparadas

Chave

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

...

Produto:

Protheus 

Ocorrência:Rotina Automática - MATA125 (Execauto)

Ambiente:

SIGACOM - Compras

Descrição:

Essa rotina permite o registro de qualquer Contrato de Parceria na empresa. O Contrato de Parceria é um contrato de fornecimento de produtos por um determinado período.

Sintaxe:

MATA125 - Contrato de Parceria ( [ ExpN1 ] [ ExpA1 ] [ ExpA2 ])


NomeTipoDescriçãoDefault
ExpA1Array of RecordCabeçalho do Contrato de Parceria na Rotina Automática.
ExpA2Array of RecordItens do Contrato de Parceria na Rotina Automática.
ExpN1NuméricoOpção do aRotina na Rotina Automática.

3 - Inclusão

4 - Alteração

5 - Exclusão

Retorno:

L (Logico) = .T. (Apresentou erro) / .F. (OK)

Sintaxe:

MATA125 - Contrato de Parceria ( [ ExpN1 ] [ ExpA1 ] [ ExpA2 ])


NomeTipoDescriçãoDefault
ExpA1Array of RecordCabeçalho do Contrato de Parceria na Rotina Automática.
ExpA2Array of RecordItens do Contrato de Parceria na Rotina Automática.
ExpN1NuméricoOpção do aRotina na Rotina Automática.

3 - Inclusão

4 - Alteração

5 - Exclusão

ExpA3ArrayRateio de Projeto

Observações: 

Os campos de cabeçalho do Contrato de Parceria (C3_EMISSAO / C3_FORNECE / C3_LOJA / C3_COND / C3_CONTATO / C3_FILENT) deverão ser obrigatoriamente informados nesta rotina.

Os campos de itens do Contrato de Parceria(C3_PRODUTO / C3_QUANT / C7C3_PRECO) deverão ser obrigatoriamente informados nesta rotina.

Se informar o campo (C3_MOEDA), o campo (C3_TXMOEDA) também devera ser informado nos itens do contrato.

Se for alterar ou excluir um contrato o campo (C3_REC_WT) tem que estar preenchido com o numero do registro (SC3->(Recno())


Alteração de Contrato de Parceria:

Para alterar/excluir item já existente no Contrato de Parceria, deve-se utilizar o LINPOS e AUTODELETA

Para incluir um novo item em um contrato já existente, deve-se informar o campo (C3_ITEM) com um registro novo, e NÃO utilizar o LINPOS e AUTODELETA.

Rateio de Projeto: (Opção disponível a partir da versão 11)

O array de projeto deve ser passado com todos os campos e seguindo a mesma ordem do exemplo abaixo.


Exemplos:

#INCLUDE "MATA125.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "PROTHEUS.CH"

...

For nX := 1 To 2
    aLinha := {}           
    aadd(aLinha,{"C3_FILIAL",xFilial("SC3"),Nil})    
    aadd(aLinha,{"C3_ITEM",StrZero(nX,len(SC3->C3_ITEM)),Nil})          
    If nX==1
        aadd(aLinha,{"C3_PRODUTO"  ,"COM000000000000000000000000047",Nil})    
        aadd(aLinha,{"C3_QUANT",1,Nil})    
        aadd(aLinha,{"C3_PRECO",39,Nil})    
        aadd(aLinha,{"C3_TOTAL",39,Nil})            
    else
        aadd(aLinha,{"C3_PRODUTO"  ,"COM000000000000000000000000126",Nil})    
        aadd(aLinha,{"C3_QUANT",2,Nil})    
        aadd(aLinha,{"C3_PRECO",100,Nil})    
        aadd(aLinha,{"C3_TOTAL",200,Nil})            
    END        /*    aadd(aLinha,{"C3_PRODUTO"  ,"COM000000000000000000000000047",Nil})    
    aadd(aLinha,{"C3_QUANT",2,Nil})    
    aadd(aLinha,{"C3_PRECO",135,Nil})    
    aadd(aLinha,{"C3_TOTAL",270,Nil})            */

    aadd(aLinha,{"C3_DATPRI",dDataBase,Nil})    
    aadd(aLinha,{"C3_DATPRF",dDataBase,Nil})    
    aadd(aItens,aLinha)
Next nX       

//Rateio Projeto
aAdd(aRatPrj, Array(2))
aRatPrj[1][1] := "0001"
aRatPrj[1][2] := {}

For nX := 1 To Len(aItemPrj)
aLinha := {}
aAdd(aLinha, {"AJ7_FILIAL" , xFilial("AJ7") , Nil})
aAdd(aLinha, {"AJ7_PROJET" , aItemPrj[nX][1], Nil})
aAdd(aLinha, {"AJ7_TAREFA" , PadR(aItemPrj[nX][2],TamSX3("AF9_TAREFA")[1]), Nil})
aAdd(aLinha, {"AJ7_NUMPC" , cDoc , Nil})
aAdd(aLinha, {"AJ7_ITEMPC" , "0001" , Nil})
aAdd(aLinha, {"AJ7_COD" , "0001" , Nil})
aAdd(aLinha, {"AJ7_QUANT" , 1 , Nil})
aAdd(aLinha, {"AJ7_REVISA" , "0001" , Nil})
aAdd(aRatPrj[1][2], aClone(aLinha))
Next nX

nX      

    
MSExecAuto( {|x,y,z| mata125(x,y,z)},aCab,aItens,3,aRatPrj)             

If lMsErroAuto    
    MostraErro()
Else    
    MsgAlert("Incluido com sucesso! "+cDoc)
Endif  *


///ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Teste de Alteração                                           
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ   

...

For nX := 1 To 3
    aLinha := {}           
    //aadd(aLinha,{"C3_FILIAL",xFilial("SC3"),Nil})         
    //aadd(aLinha,{"LINPOS","C3_ITEM",StrZero(nX,len(SC3->C3_ITEM)),Nil})      
    //aadd(aLinha,{"AUTDELETA","N",Nil})
    If nX==1
        aadd(aLinha,{"C3_PRODUTO"  ,"COM000000000000000000000000047",Nil})    
        aadd(aLinha,{"C3_QUANT",1,Nil})    
        aadd(aLinha,{"C3_PRECO",59,Nil})    
        aadd(aLinha,{"C3_TOTAL",59,Nil})            
    elseif nx==2
        aadd(aLinha,{"C3_PRODUTO"  ,"COM000000000000000000000000126",Nil})    
        aadd(aLinha,{"C3_QUANT",2,Nil})    
        aadd(aLinha,{"C3_PRECO",110,Nil})    
        aadd(aLinha,{"C3_TOTAL",220,Nil})    
    elseif nx==3
        aadd(aLinha,{"C3_PRODUTO"  ,"COM000000000000000000000000167",Nil})    
        aadd(aLinha,{"C3_QUANT",2,Nil})    
        aadd(aLinha,{"C3_PRECO",110,Nil})    
        aadd(aLinha,{"C3_TOTAL",220,Nil})        
    END        
    aadd(aLinha,{"C3_DATPRI",dDataBase,Nil})    
    aadd(aLinha,{"C3_DATPRF",dDataBase,Nil})
    aadd(aItens,aLinha)
Next nX       

...