Función: MATA125 - Contrato de asociación
Versiones: | Microsiga Protheus 8.11, Protheus 10, Protheus 11, Protheus 12 |
Compatible países: | Todos |
Sistemas operativos: | Todos |
Compatible a las bases de datos: | Todas |
Nivel de acceso: | Nivel 1 (Acceso Clientes) |
Idiomas: | Todos |
Producto: | Protheus | ||||||||||||||||
Ocurrencia: | Rutina automática - MATA125 (Execauto) | ||||||||||||||||
Entorno: | SIGACOM - Compras | ||||||||||||||||
Descripción: | Esta rutina permite el registro de cualquier Contrato de asociación en la empresa. El Contrato de asociación es un contrato de suministro de productos por un determinado período. | ||||||||||||||||
Sintaxis: | MATA125 - Contrato de asociación ( [ ExpN1 ] [ ExpA1 ] [ ExpA2 ])
| ||||||||||||||||
Devolución: | L (Lógico) = .T. (Muestra error) / .F. (OK) | ||||||||||||||||
Observaciones: | Los campos de encabezado del Contrato de asociación (C3_EMISSAO / C3_FORNECE / C3_LOJA / C3_COND / C3_CONTATO / C3_FILENT) deben informarse obligatoriamente en esta rutina. Los campos de ítems del Contrato de asociación (C3_PRODUTO / C3_QUANT / C3_PRECO) deben informarse obligatoriamente en esta rutina. Si se informa el campo (C3_MOEDA), el campo (C3_TXMOEDA) también debe informarse en los ítems del contrato. Si se modificara o borrara un contrato, el campo (C3_REC_WT) debe estar completado con el número del registro (SC3->(Recno())
Modificación del Contrato de asociación: Para modificar/borrar ítems existentes en el Contrato de asociación, debe utilizarse LINPOS y AUTODELETA Para incluir un nuevo ítem en un contrato existente, debe informarse el campo (C3_ITEM) con un registro nuevo, y NO utilizar LINPOS ni AUTODELETA. |
Ejemplos:
#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("Rutina automática para Contrato de asociación",80))
//PREPARE ENVIRONMENT EMPRESA "01" SUCURSAL "1001" MÓDULO "COM"
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Prueba de inclusión
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿//| 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 con éxito! "+cDoc)
Endif
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Prueba de modificación
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
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("¡Modificado con éxito! "+cDoc)
Endif
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Prueba de borrado |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
MSExecAuto( {|x,y,z| mata125(x,y,z)},aCab,aItens,5)
If lMsErroAuto
MostraErro()
Else
MsgAlert("Excluído com sucesso! "+cDoc)
Endif
MsgAlert("¡Final de Rutina automática! "+Time())
//RESET ENVIRONMENT
Return