03-15-2018, 02:49 PM
:-)
Joe
TSolucio
TSolucio
crear nuevo módulo
|
07-03-2021, 07:17 PM
Hola.
¿Como relaciono un modulo nuevo con uno ya existente? Entiendo que debo hacerlo en el manifest.xml dentro de <relatedlist> pero no tengo clara la sintaxis Gracias
07-03-2021, 09:40 PM
Aqui tienes un ejemplo de ese tipo de campo:
https://github.com/tsolucio/corebos/blob/master/modules/CobroPago/manifest.xml#L161-L196 Es solo una lista de nombre de módulos dentro de la directiva <relatedmodule>
Joe
TSolucio
07-03-2021, 09:55 PM
acabo de fijarme que dices "related_list". entiendo que quieres establecer una relación 1:m o m:m entre los módulos
si es 1 (nuevo) m (existente), tienes que crear un campo de tipo uitype 10 en el módulo existente y una lista relacionada en el nuevo. El campo se crea en el métido vtlib_handler del módulo nuevo (https://github.com/tsolucio/corebos/blob/master/modules/cbMap/cbMap.php#L134-L151) si es 1 (existente) m (nuevo) o m:m, tienes que utilizar setRelatedList también en el vtlib_handler: https://corebos.com/documentation/doku.php?id=en:devel:relatedlists Tal como me lo imagino yo cuando un módulo nuevo se instala en la aplicación, se presenta a la misma, el fichero manifest dice "mira este es quien soy, mis campos y relaciones", y el método vtlib_handler, hace las presentaciones particulares a cada módulo con quien necestia relacionarse "hola, acabo de llegar y tengo una relación contigo, aqui tienes un campo para que puedan seleccionar registros", o "aqui tienes una lista relacionada conmigo" Finalmente, comentarte que estas relaciones se pueden hacer en el editor de disposición: puedes añadir un campo de tipo relación (uitype 10) que establecerá las listas relacionadas o un lista relacionada de tipo m:m Ya me dices
Joe
TSolucio
07-04-2021, 05:36 AM
(This post was last modified: 07-04-2021, 06:43 AM by inspectorflint.)
Gracias, Joe, por tu rápida respuesta...
Exacto, lo que quiero es establener una relación 1:m. Un elemento del nuevo modulo debe estar relacionado con m Cuentas. En un primer momento, lo intenté a traves del editor de disposición, creando un campo Relacion asociado a Cuentas, y en Cuentas otro campo relación relacionado con en nuevo módulo, pero la relación es 1:1. Ahora mismo, si intento desde Cuentas asociar a un registro de este modulo un elemento del módulo nuevo, en el popup no me aparece la lista de elementos del nuevo modulo, aunque indica elementos que hay elementos (1 de 1)... Si embargo, desde el modulo nuevo, al hacer lo mismo sí muestra los elementos existentes de Cuentas Es posible solucionarlo desde el editor? Gracias Saludos
07-04-2021, 09:12 PM
Hay una variable global para enseñarte la consulta que está haciendo en ese popup, probablemente DEBUG_POPUP_QUERY, activala y comparte la consulta
Joe
TSolucio
07-05-2021, 09:00 AM
(This post was last modified: 07-05-2021, 09:42 AM by inspectorflint.)
Joe:
la consulta es: SELECT SQL_CALC_FOUND_ROWS vtiger_crmentity.*, vtiger_rutas.*, vtiger_rutascf.* FROM vtiger_rutas INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_rutas.rutasid INNER JOIN vtiger_rutascf ON vtiger_rutascf.rutasid = vtiger_rutas.rutasid LEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid LEFT JOIN vtiger_account ON vtiger_account.accountid = vtiger_rutascf.cf_1178 WHERE vtiger_rutas.rutasid>0 AND vtiger_crmentity.deleted=0 and vtiger_rutas.rutasid not in (8427) LIMIT 0,20 Devuelve datos
07-05-2021, 02:16 PM
vale, eso está todo bien. Esto significa que debes tener mal los arrays de las columnas a mostrar.
Abre el fichero Rutas.php, encontrarás estos 4 arrays: $list_fields, $list_fields_name, $search_fields, $search_fields_name Ahí tienes que configurar las columnas que quieres que se muestren en el popup (y en las listas relacionadas)
Joe
TSolucio
07-06-2021, 07:45 AM
Perfecto, ya funciona. Una ultima duda. Que campo debo incluir para poder seleccionar un registro desde el popup? he modificado la linea:
// Make the field link to detail view from list view (Fieldname) public $list_link_field = 'rutas_no'; Pero no funciona... Gracias
07-06-2021, 08:20 AM
es esa variable junto con la entrada en la tabla vtiger_entityname. la entrada en esa tabla se crea utilizando el campo marcado como "entityidfield" en el manifest.xml
https://github.com/tsolucio/corebos/blob/master/vtlib/ModuleDir/manifest.xml#L56-L59 si no lo has hecho así o no tienes una fila en la base de datos para tu módulo, intenta insertar una a mano a ver
Joe
TSolucio |
« Next Oldest | Next Newest »
|