Árvore de páginas


Função: MATA125 - Contrato de Parceria

Versões:

Microsiga Protheus 8.11, Protheus 10, Protheus 11, Protheus 12

Compatível Países:

Todos

Sistemas Operacionais:

Todos

Compatível às bases de dados:

Todos

Nivel de Acesso:

Nivel 1 (Acesso Clientes)

Idiomas:

Todos




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)

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 / C3_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.


Exemplos:

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

User Function EXEC125()

Local aCab   := {}
Local aItens := {}  
Local cDoc   := ""  
Local nX     := 0
Private        lMsErroAuto := .F.   
ConOut(Repl("-",80))
ConOut(PadC("Rotina Automática para o Contrato de Parceria",80))

//PREPARE ENVIRONMENT EMPRESA "01" FILIAL "1001" MODULO "COM"   


//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Teste de Inclusão                                           
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿//| Verifica numero da CP       |//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 

dbSelectArea("SC3")
dbSetOrder(1)
MsSeek(xFilial("SC3")+"zzzzzz",.T.)
dbSkip(-1)

cDoc := SC3->C3_NUM
If Empty(cDoc)    
    cDoc := StrZero(1,Len(SC3->C3_NUM))
Else
    cDoc := Soma1(cDoc)
EndIf

aadd(aCab,{"C3_FILIAL", xFilial("SC3"), NIL})
aadd(aCab,{"C3_NUM",cDoc,NIL})
aadd(aCab,{"C3_EMISSAO",dDataBase})
aadd(aCab,{"C3_FORNECE" ,"COM003" ,NIL})
aadd(aCab,{"C3_LOJA","01",NIL})
aadd(aCab,{"C3_COND" ,"003" ,NIL})
aadd(aCab,{"C3_MOEDA",1,NIL})

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_DATPRI",dDataBase,Nil})    
    aadd(aLinha,{"C3_DATPRF",dDataBase,Nil})    
    aadd(aItens,aLinha)
Next nX      

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

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


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

aCab   := {}  
aItens := {}
aadd(aCab,{"C3_FILIAL", xFilial("SC3"), NIL})
aadd(aCab,{"C3_NUM",cDoc,NIL})
aadd(aCab,{"C3_EMISSAO",dDataBase})
aadd(aCab,{"C3_FORNECE" ,"COM003" ,NIL})
aadd(aCab,{"C3_LOJA","01",NIL})
aadd(aCab,{"C3_COND" ,"003" ,NIL})
aadd(aCab,{"C3_MOEDA",1,NIL})            

For nX := 1 To 3
    aLinha := {}           
    
    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       

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

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


//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Teste de Exclusão                                            |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

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

If lMsErroAuto    
    MostraErro()
Else        
    MsgAlert("Excluído com sucesso! "+cDoc)
Endif  

MsgAlert("Fim da Rotina Automática! "+Time())       

//RESET ENVIRONMENT          

Return