[Vtigercrm-developers] Error trying to save a new Record of a new Custom module
Juan Pablo Botero
juanpabloboterolopez at gmail.com
Wed Aug 22 08:08:35 PDT 2012
2012/8/22 Adam Heinz <amh at metricwise.net>
> On Tue, Aug 21, 2012 at 5:39 PM, Juan Pablo Botero
> <juanpabloboterolopez at gmail.com> wrote:
> > I added before the two die statement, i think is more comfortable that i
> > attach a document with the output.
>
> The stack trace definitely has some problems.
>
> #0 checkFileAccessForInclusion(modules//.php) called at [<root of
> vtiger>/data/CRMEntity.php:54]
> #1 CRMEntity::getInstance() called at [<root of
> vtiger>/include/events/VTEntityData.inc:37]
> #2 VTEntityData::fromEntityId(<db>, 17)
>
> It looks to me like either crmid 17 does not exist in the database, or
> has no setype (which is the name of the governing module). You
> created this module with vtlib? Would you be opposed to posting that
> code?
>
No problem:
include_once('./vtlib/Vtiger/Module.php');
include_once('./vtlib/Vtiger/Menu.php');
$modulo = new Vtiger_module();
$modulo->name = 'Beneficiarios';
$modulo->save();
$modulo->initWebService();
// Init tables in database
$modulo->initTables();
// Add new module in menu Sales
$menu = Vtiger_Menu :: getInstance('Sales');
$menu->addModule($modulo);
/**
* BASIC DATA BLOCK
*/
$bloqueDatosBasicos = new Vtiger_Block();
$bloqueDatosBasicos->label = 'LBL_BENEFICIARIO_INFORMATION';
$modulo->addBlock($bloqueDatosBasicos);
/**
* EXTRA DATA BLOCK
*/
$bloqueDatosExtra = new Vtiger_Block();
$bloqueDatosExtra->label = 'LBL_CUSTOM_INFORMATION';
$modulo->addBlock($bloqueDatosExtra);
/**
* CREATING MODULE FIELDS
*/
$campoNombre = new Vtiger_Field();
$campoNombre->name = 'nombreBeneficiario';
$campoNombre->label = 'Nombre';
// database fields
$campoNombre->table = $modulo->basetable;
$campoNombre->column = 'nombreBeneficiario';
$campoNombre->columntype = 'VARCHAR(100)';
$campoNombre->uitype = 2;
$campoNombre->typeofdata = 'V~M';
$bloqueDatosBasicos->addField($campoNombre);
$modulo->setEntityIdentifier($campoNombre)
$campoTelfijo = new Vtiger_Field();
$campoTelfijo->name = 'telefonoFijoBeneficiario';
$campoTelfijo->label = 'Telefono Fijo';
$campoTelfijo->table = $modulo->basetable;
$campoTelfijo->column = 'telefonoFijoBeneficiario';
$campoTelfijo->uitype = 2;
$campoTelfijo->typeofdata = 'V~O';
$bloqueDatosBasicos->addField($campoTelfijo);
$modulo->setEntityIdentifier($campoTelfijo);
$campoTelMovil = new Vtiger_Field();
$campoTelMovil->name = 'telefonoMovilBeneficiario';
$campoTelMovil->label = 'Telefono movil';
$campoTelMovil->table = $modulo->basetable;
$campoTelMovil->column = 'telefonoMovilBeneficiario';
$campoTelMovil->uitype = 2;
$campoTelMovil->typeofdata = 'V~O';
$bloqueDatosBasicos->addField($campoTelMovil);
$modulo->setEntityIdentifier($campoTelMovil);
$campoCedula = new Vtiger_Field();
$campoCedula->name = 'cedulaBeneficiario';
$campoCedula->label = 'Cedúla';
$campoCedula->table = $modulo->basetable;
$campoCedula->column = 'cedulaBeneficiario';
$campoCedula->uitype = 2;
$campoCedula->typeofdata = 'V~O';
$bloqueDatosBasicos->addField($campoCedula);
$modulo->setEntityIdentifier($campoCedula);
$campoNacimiento= new Vtiger_Field();
$campoNacimiento->name = 'nacimientoBeneficiario';
$campoNacimiento->label = 'Fecha de nacimiento';
$campoNacimiento->table = 'vtiger_crmentity';
$campoNacimiento->column = 'nacimientoBeneficiario';
$campoNacimiento->uitype = 70;
$campoNacimiento->typeofdata = 'T~O';
$bloqueDatosBasicos->addField($campoNacimiento);
// el nombre del campo como identificador de campo
$modulo->setEntityIdentifier($campoNacimiento);
$campoCiudad= new Vtiger_Field();
$campoCiudad->name = 'ciudadBeneficiario';
$campoCiudad->label = 'Ciudad';
$campoCiudad->table = $modulo->basetable;
$campoCiudad->column = 'ciudadBeneficiario';
$campoCiudad->columntype = 'VARCHAR(255)';
$campoCiudad->uitype = 2;
$campoCiudad->typeofdata = 'V~O';
$bloqueDatosBasicos->addField($campoCiudad);
// el nombre del campo como identificador de campo
$modulo->setEntityIdentifier($campoCiudad);
$campoDepartamento= new Vtiger_Field();
$campoDepartamento->name = 'departamentoBeneficiario';
$campoDepartamento->label = 'Departamento';
$campoDepartamento->table = $modulo->basetable;
$campoDepartamento->column = 'departamentoBeneficiario';
$campoDepartamento->columntype = 'VARCHAR(255)';
$campoDepartamento->uitype = 2;
$campoDepartamento->typeofdata = 'V~O';
$bloqueDatosBasicos->addField($campoDepartamento);
// el nombre del campo como identificador de campo
$modulo->setEntityIdentifier($campoDepartamento);
$campoDireccion= new Vtiger_Field();
$campoDireccion->name = 'direccionBeneficiario';
$campoDireccion->label = 'Dirección Domicilio';
$campoDireccion->table = $modulo->basetable;
$campoDireccion->column = 'direccionBeneficiario';
$campoDireccion->columntype = 'VARCHAR(255)';
$campoDireccion->uitype = 2;
$campoDireccion->typeofdata = 'D~O';
$bloqueDatosBasicos->addField($campoDireccion);
$modulo->setEntityIdentifier($campoDireccion);
$campoIndicacion= new Vtiger_Field();
$campoIndicacion->name = 'indicacionesDireccionBeneficiario';
$campoIndicacion->label = 'Indicación Dirección';
$campoIndicacion->table = $modulo->basetable;
$campoIndicacion->column = 'indicacionDireccionBeneficiario';
$campoIndicacion->columntype = 'VARCHAR(255)';
$campoIndicacion->uitype = 19;
$campoIndicacion->typeofdata = 'D~O';
$bloqueDatosBasicos->addField($campoIndicacion);
// el nombre del campo como identificador de campo
$modulo->setEntityIdentifier($campoIndicacion);
/*
* RELATED FIELDS
*/
// ACCOUNTS
$campoCuenta= new Vtiger_Field();
$campoCuenta->name = 'cuentaRelacionada';
$campoCuenta->label = 'Cuenta';
$campoCuenta->column = 'cuentaRelacionada';
$campoCuenta->columntype = 'VARCHAR(100)';
$campoCuenta->uitype = 10;
$campoCuenta->typeofdata = 'V~O';
$campoCuenta->helpinfo = 'Relaciona con una cuenta existente';
$bloqueDatosBasicos->addField($campoCuenta);
$campoCuenta->unsetRelatedModules(Array('Accounts', 'Contacts'));
$campoCuenta->setRelatedModules(Array('Accounts')) ;
//$modulo->setRelatedModules(Array('Accounts'));
/**
* ASSIGNED TO
*/
$campoAsignado = new Vtiger_Field();
$campoAsignado->name = 'id_usuario_asignado';
$campoAsignado->label = 'Asignado a';
$campoAsignado->table = 'vtiger_crmentity';
$campoAsignado->column = 'smownerid';
$campoAsignado->uitype = 53;
$campoAsignado->typeofdata = 'V~O';
$bloqueDatosExtra->addField($campoAsignado);
/*
* FILTER
*/
$filtro1 = new Vtiger_Filter();
$filtro1->name = 'Todo';
$filtro1->isdefault = true;
$modulo->addFilter($filtro1);
// Campos del filtro1
$filtro1->addField($campoNombre);
//$filtro1->addField($campoApellido);
$filtro1->addField($campoTelfijo);
$filtro1->addField($campoDireccion);
// Cambiar vista del módulo a privada
$modulo->setDefaultSharing('Private');
/**
* RELATED LISTS
*/
$moduloCuentas = Vtiger_Module::getInstance('Accounts');
$etiquetaRelacion = 'Accounts';
$modulo->setRelatedList($moduloCuentas, $etiquetaRelacion, Array('ADD',
'SELECT'));
$modulo->enableTools(Array('Import', 'Export'));
$modulo->disableTools('Merge');
Some of the fields doesn't create in database.
_______________________________________________
> http://www.vtiger.com/
>
--
Cordialmente:
Juan Pablo Botero
Administrador de Sistemas informáticos
Fedora Ambassador for Colombia
http://www.jpilldev.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.vtigercrm.com/pipermail/vtigercrm-developers/attachments/20120822/1cf9fa4d/attachment.html
More information about the vtigercrm-developers
mailing list