Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[RESUELTO] - Heredar mas información de la cuenta
#7
(09-22-2016, 06:23 AM)julioval Wrote:
(09-21-2016, 07:20 AM)kapsule Wrote: Hola @julioval

Lo primero que debes hacer es registrar el evento correspondiente para el módulo que quieres implementar los nuevos datos. Para ello debes hacer lo siguiente.

1. Crear un fichero <NombreModulo>Handler.php.
2. Una vez creado el fichero, debes definir una clase que herede de VTEventHandler.

<?php
class NombreModuloHandler extends VTEventHandler {
/**
* @param $handlerType
* @param $entityData VTEntityData
*/
function handleEvent($handlerType, $entityData){
$moduleName = $entityData->getModuleName();
if ($moduleName=='NombreModulo'){
switch($handlerType) {
case 'vtiger.entity.beforesave':
$this->beforeSave($entityData);
break;
case 'vtiger.entity.aftersave':
$this->afterSave($entityData);
break;
}
}
}
/**
* @param $entityData
*/
function beforeSave($entityData){
       }

/**
* @param $entityData
*/
function afterSave($entityData) {
}
}
?>

3. Ahora le indicamos al sistema coreBOS que queremos activar los eventos aftersave y beforesave para ese módulo en cuestión. Para ello creamos un fichero de actualización coreBOS o un fix directo. Lo que te vaya mejor. En mi caso siempre utilizo el modelo de coreBOSUpdate para centralizar todas las modificaciones.

Vtiger_Event::register(
'NombreModulo', 'vtiger.entity.beforesave',
'NombreModuloHandler', 'modules/NombreModulo/NombreModuloHandler.php'
);

Vtiger_Event::register(
'NombreModulo', 'vtiger.entity.aftersave',
'NombreModuloHandler', 'modules/NombreModulo/NombreModuloHandler.php'
);

4. Una vez registrado los eventos, ya puedes implementar la modificación que necesites. A raíz de estos cambios, cada vez que guardes un registro en el módulo indicado el sistema llamará a estos eventos. Con lo cual lo único que debes hacer es recoger los datos de la variable $entityData y hacer lo que necesites.

- Actualizar una serie de campos.
- Obtener datos de otra entidad y cargarlos sobre el módulo en cuestión
etc...

Si necesitas más ayuda pregunta.

Saludos


Hola @kapsule y gracias.
Que currada de respuesta. Le doy dos vueltas y te comento.

Hola.
Y en esto no se puede hacer con Business Mappings?
Estoy empezando a entrar en este mundo y me parece mas asequible.
Saludos.
Reply


Messages In This Thread
RE: Heredar mas información de la cuenta - julioval - 12-01-2016, 12:30 PM

Forum Jump:


Users browsing this thread: 2 Guest(s)