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