Conectado como invitado | [ Registrarse | Entrar ] Buscar | Contacto
INICIO | NOTICIAS 22 May, 2012 - 07:15

SugarCRM

Tutoriales

Colabora

Menú Principal

Entrar en Tu Cuenta




 


 ¿Has perdido tu contraseña?
 ¿Nuevo usuario? ¡Registrate!



Buscar Ultimos mensajes Nota: Los usuarios registrados pueden participar en el foro activamente, subscribirse a foros o temas, recibir notificaciones sobre nuevos mensajes y mucho más... Nota: Los usuarios registrados pueden participar en el foro activamente, subscribirse a foros o temas, recibir notificaciones sobre nuevos mensajes y mucho más...

Asignar valor por defecto a un campo
Autor Mensaje
Bajar a respuesta rápidaTop
 
Hola a tod@s, soy nuevo en el foro, así que si me he equivocado de cadena o este mensaje no está bien escrito o no es muy entendible, disculpadme.
La cosa es que estoy modificando SugarCRM la versión 5.2.0, y hay una cosa que me trae loco!! He buscado por internet pero no encuentro nada...
Tengo un módulo llamado "Fichas", y tengo una ficha que tiene entre otros campos un campo nombre con el valor name ... en la Vista Detallada de una ficha hay un único Subpanel llamado "Seguimiento":
1.Desde ese Subpanel le doy a Nuevo para crear un Seguimiento.
2.Quiero que en la Vista de Edición de Seguimiento un campo llamado id aparezca por defecto con el valor name

El campo id tiene un boton Select para seleccionar un id y otro boton limpiar

Espero vuestras respuestas,
Saludos!
Daniel








editado por: garciasanchezdaniel, 02 Ago, 2011 - 01:53

Perfil del usuario Enviar MP
Bajar a respuesta rápidaTop
 
Buenos Dias, garciasanchezdaniel

Cuando se da click en el botón Nuevo de un subpanel, Sugar pasa el id y el nombre del modulo relacionado al EditView mediante un par de campos hidden llamados return_id y return_module respectivamente esto con el fin de saber a que registro en especifico regresar por ejemplo al dar Cancelar o para crear la relación al dar Guardar.

Dicho esto el paso siguiente es crear un vista personalizada del EditView y trabajar con estos datos, es decir en la carpeta /custom/modules/Seguimiento crear una carpeta llamada "views" y hay crear un archivo llamado view.edit.php. y escribir el siguiente código:

Code
    <li style="color: blue; font-weight: bold;">
    <span style="color: #b1b100;">require_once</span><span style="color: #66cc66;">(</span><span style="color: #ff0000;">'include/json_config.php'</span><span style="color: #66cc66;">)</span>;
    <li style="color: blue; font-weight: bold;">
    <span style="color: #b1b100;">require_once</span><span style="color: #66cc66;">(</span><span style="color: #ff0000;">'include/MVC/View/views/view.edit.php'</span><span style="color: #66cc66;">)</span>;
    <li style="color: blue; font-weight: bold;">
     
    <li style="color: blue; font-weight: bold;">
    <span style="color: #000000; font-weight: bold;">class</span> SeguimientoViewEdit <span style="color: #000000; font-weight: bold;">extends</span> ViewEdit <span style="color: #66cc66;">{</span>
    <li style="color: blue; font-weight: bold;">
     
    <li style="color: blue; font-weight: bold;">
        <span style="color: #000000; font-weight: bold;">function</span> SeguimientoViewEdit<span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
    <li style="color: blue; font-weight: bold;">
            parent::<span style="color: #006600;">ViewEdit</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
    <li style="color: blue; font-weight: bold;">
        <span style="color: #66cc66;">}</span>
    <li style="color: blue; font-weight: bold;">
     
    <li style="color: blue; font-weight: bold;">
        <span style="color: #000000; font-weight: bold;">function</span> display<span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span> <span style="color: #66cc66;">{</span>
    <li style="color: blue; font-weight: bold;">
            <span style="color: #0000ff;">$id</span> = <span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'return_id'</span><span style="color: #66cc66;">]</span>;
    <li style="color: blue; font-weight: bold;">
            <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'return_id'</span><span style="color: #66cc66;">]</span> != <span style="color: #ff0000;">""</span> && <span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'return_module'</span><span style="color: #66cc66;">]</span> == <span style="color: #ff0000;">'lab_prestamo_herramienta'</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
    <li style="color: blue; font-weight: bold;">
                <span style="color: #0000ff;">$db</span> = DBManagerFactory::<span style="color: #006600;">getInstance</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
    <li style="color: blue; font-weight: bold;">
                <span style="color: #0000ff;">$query</span> = <span style="color: #ff0000;">"SELECT name FROM Fichas WHERE id = '{$id}' and deleted = 0"</span>;
    <li style="color: blue; font-weight: bold;">
                <span style="color: #0000ff;">$result</span> = <span style="color: #0000ff;">$db</span>-><span style="color: #006600;">query</span><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$query</span>,<span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">)</span>;
    <li style="color: blue; font-weight: bold;">
                <span style="color: #b1b100;">while</span> <span style="color: #66cc66;">(</span><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$row</span> = <span style="color: #0000ff;">$db</span>-><span style="color: #006600;">fetchByAssoc</span><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$result</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span> != <span style="color: #000000; font-weight: bold;">null</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
    <li style="color: blue; font-weight: bold;">
                    <span style="color: #0000ff;">$name</span> = <span style="color: #ff0000;">"var name = '"</span> .  <span style="color: #0000ff;">$row</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'name'</span><span style="color: #66cc66;">]</span> . <span style="color: #ff0000;">"';"</span>;
    <li style="color: blue; font-weight: bold;">
                <span style="color: #66cc66;">}</span>
    <li style="color: blue; font-weight: bold;">
     
    <li style="color: blue; font-weight: bold;">
            <span style="color: #66cc66;">}</span>
    <li style="color: blue; font-weight: bold;">
    <span style="color: #0000ff;">$js</span>=<<<EOQ
    <li style="color: blue; font-weight: bold;">
       
    <li style="color: blue; font-weight: bold;">
     
    <li style="color: blue; font-weight: bold;">
        <span style="color: #0000ff;">$name</span>
    <li style="color: blue; font-weight: bold;">
        document.getElementById<span style="color: #66cc66;">(</span><span style="color: #ff0000;">'name'</span><span style="color: #66cc66;">)</span>.value = name;   
    <li style="color: blue; font-weight: bold;">
       
    <li style="color: blue; font-weight: bold;">
     
    <li style="color: blue; font-weight: bold;">
       
    <li style="color: blue; font-weight: bold;">
    EOQ;
    <li style="color: blue; font-weight: bold;">
     
    <li style="color: blue; font-weight: bold;">
        parent::<span style="color: #006600;">display</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
    <li style="color: blue; font-weight: bold;">
        <span style="color: #000066;">echo</span> <span style="color: #0000ff;">$js</span>;
    <li style="color: blue; font-weight: bold;">
        <span style="color: #66cc66;">}</span>
    <li style="color: blue; font-weight: bold;">
    <span style="color: #66cc66;">}</span>


Debe haber soluciones más optimas pero esta es como las más rápida espero haberlo ayudado

Perfil del usuario Enviar MP
Bajar a respuesta rápidaTop
 
Para ver el código adecuadamente
http://www.flickr.com/photos/66018239@N06/6009405750/


Perfil del usuario Enviar MP
Bajar a respuesta rápidaTop
 
Hola hgonzalez, muy buena la solución, el único detalle que cambiaría es que no te conviene usar el acceso a la DDBB, sino usar la API que provee Sugar, incluso para nuevos módulos.

Por ejemplo, si tienes el ID de una Cuenta y quieres recuperar los datos de ella, puede hacer lo siguiente:

$acc_tmp=new Account();
$acc_tmp->retrieve($ID_DE_LA_CUENTA);
print "
";
print_r($acc_tmp);
print "
";
die();

Todo esta está en la Developer Guide.
Saludos.

Cualquier inquietud, no dejes de contactarme.
Saludos,

Esteban Schmirman
GrowIT - SugarCRM
* Gold Partners *

Buenos Aires, Arg
+54(11) 4856-7780

Santiago, Chile
+56 (2) 495-7314

Skype: eschmirman

Perfil del usuario Enviar MP
Bajar a respuesta rápidaTop
 
Ok, muchas gracias por el dato de esa manera se optimizar el código y hacerlo más comprensible.

Perfil del usuario Enviar MP
Bajar a respuesta rápidaTop
 
Buenos días!! En primer lugar muchas gracias por su ayuda.
Como dicen, he ido a \custom\modules\ pero no existe la carpeta de mi módulo "Seguimiento", ¿dónde puede estar sino?

NOTA: Estoy viendo que otros módulos tienen creados sus archivos: view.edit.php en la carpeta \modules\NOMBRE_DEL_MODULO\views\
¿Quizás tenga que crear mi archivo view.edit.php en esa ruta?
--------------------------------------------------------------------------------------------
Perdonen pero tengo que hacer una ACLARACIÓN IMPORTANTE: en realidad el módulo "FICHAS" no es un módulo, sino que son 10 módulos (térmicas,fotovoltaica,biomasa,mantenimiento...) que en conjunto esos módulos son "FICHAS", pero cada uno es un módulo por separado.

Entonces cuando estoy en la "vista detallada" de una ficha, por ejemplo, en la vista detallada de "Térmica", tengo un subpanel llamado "Seguimiento" y cuando le doy a "Nuevo Seguimiento" necesito que un campo llamado "Num_aviso" tenga que el valor por defecto de "Num_aviso" de Térmica , y num_aviso es un campo que se genera sólo, de manera automática.
Y necesito que num_aviso se rellene por defecto para las 10 fichas
--------------------------------------------------------------------------------------------
Perdonen pero puse otros nombres a los campos a modo de ejemplo porque no quería crear confusiones
Espero sus respuestas!



editado por: garciasanchezdaniel, 08 Ago, 2011 - 11:05

Perfil del usuario Enviar MP
Bajar a respuesta rápidaTop
 
Si no existe solo hay que crearla siendo fiel al nombre del módulo y después hacer un 'Reparar y Reconstruir' solo del módulo en cuestión y en dado caso que esto no funcione puede probar crearlo en la ruta que menciono (\modules\NOMBRE_DEL_MODULO\views\); con respecto a la otra duda el cambio le tocaría efectuarlo en cada uno de los diez módulos. Tenga en cuenta también que cada vez que haga un cambio en el view.edit hay que reparar para que se borre el cache y se efectúen los cambios.

Perfil del usuario Enviar MP


Usuarios online:
crustydemons - RestForAll - nubjonjusia - inetryconydot y 0 invitado

Esta lista muestra los usuarios activos de los últimos 10 minutos