Hola Richard, agradezco tu ayuda.
El método ejecutado en el ci_navegacion.php
<?php
62
63 function evt__ejecutado()
64 {
65
66 $this->dependencia('editor')->disparar_limpieza_memoria();
67 $this->get_relacion()->sincronizar();
68
69 $id = $this->get_relacion()->tabla('solicitudes')->get_columna('id');
70 $sql = "
71 UPDATE solicitudes SET fecha_ejecucion = now()::date, estado = 4, certificado_num = s.max+1, firma_asesor=c.firma
72 FROM (SELECT MAX(u.certificado_num),u.asesor FROM solicitudes u GROUP BY u.asesor) AS s LEFT JOIN contactos c ON c.id=s.asesor
73 WHERE solicitudes.id = " . $id . " AND s.asesor = solicitudes.asesor"
74 ;
75 if(consultar_fuente($sql)){
76 toba::notificacion()->agregar('Solicitud: '.$id_solicitud.'. El proceso ha sido actualizado', 'inf');
77 }
78 $sql = "UPDATE solicitudes SET firma_lider=c.firma FROM contactos c WHERE solicitudes.id = " . $id . " AND solicitudes.lider = c.id";
79 consultar_fuente($sql);
80
81 }
?>
el codigo del CI
<?
1 <?php
2 php_referencia::instancia()->agregar(__FILE__);
3 require_once('consultas.php'); ^M
4
5 class ci_edicion extends toba_ci
6 {
7 protected $s__equipo_d;
8 protected $s__id_solicitud;
9 /*
10 function ini()
11 {
12 }
13 */
14 function get_relacion()
15 {
16 return $this->controlador->get_relacion();
17 }
18
19 //-------------------------------------------------------------------
20 //--- Pantalla 'solicitud'
21 //-------------------------------------------------------------------
22
23
24 function conf__form_solicitud()
25 {
26 $datos = $this->get_relacion()->tabla('solicitudes')->get();
27 $id_solicitud = $this->get_relacion()->tabla('solicitudes')->get_columna('id');
28 $this->s__id_solicitud = $this->get_relacion()->tabla('solicitudes')->get_columna('id');
29 $certificado = $this->get_relacion()->tabla('solicitudes')->get_columna('certificado_num');
30 $sql='SELECT b.d,c.prefijo FROM datos_equipo b LEFT JOIN solicitudes s ON s.id=b.solicitud LEFT JOIN contactos c ON c.id=s.asesor WHERE s.id=' .$id_solicitud;
31 $asesor = consultar_fuente($sql);
32 foreach($asesor AS $key => $fila){
33 foreach($fila AS $key => $val){
34 $att[$key]=$val;
35 }
36 }
37 $this->s__equipo_d = $att['d']; // Esto es necesario para el cálculo de error.
38 $documento = str_replace(' ','',$att['prefijo'].'-'.$certificado);
39 $solicitud = array('id' => $id_solicitud);
40 $fp_imagen_asesor = $this->get_relacion()->tabla('solicitudes')->get_blob('firma_asesor');
41 if (isset($fp_imagen_asesor)) {
42 $temp_nombre = md5(uniqid(time()));
43 $temp_nombre = $documento.'.jpg';
44 $temp_archivo = toba::proyecto()->get_www_temp($temp_nombre);
45 $temp_fp = fopen($temp_archivo['path'], 'w');
46 stream_copy_to_stream($fp_imagen_asesor, $temp_fp);
47 fclose($temp_fp);
48 $tamaño = round(filesize($temp_archivo['path']) / 1024);
49 $datos['firma_asesor_imagen'] = "<img src='{$temp_archivo['url']}' alt=''>";
50 $datos['firma_asesor'] = 'Tamaño: '.$tamaño. ' KB';
51 $solicitud['fa'] = 1;
52 } else {
53 toba::notificacion()->agregar('Falta firma del metrólogo');
54 }
55
56 $fp_imagen_lider = $this->get_relacion()->tabla('solicitudes')->get_blob('firma_lider');
57 if (isset($fp_imagen_lider)) {
58 $temp_nombre = md5(uniqid(time()));
59 $temp_nombre = $documento.'_c.jpg';
60 $temp_archivo = toba::proyecto()->get_www_temp($temp_nombre);
61 $temp_fp = fopen($temp_archivo['path'], 'w');
62 stream_copy_to_stream($fp_imagen_lider, $temp_fp);
63 fclose($temp_fp);
64 $tamaño = round(filesize($temp_archivo['path']) / 1024);
65 $datos['firma_lider_imagen'] = "<img src='{$temp_archivo['url']}' alt=''>";
66 $datos['firma_lider'] = 'Tamaño: '.$tamaño. ' KB';
67 $solicitud['fc'] = 1;
68 } else {
69 toba::notificacion()->agregar('Falta firma del coordinador');
70 }
71
72 $url_inf = toba::vinculador()->get_url(null, 3612, $solicitud);
73 $html = "<a href='".$url_inf."'>Generar protocolo</a>";
74 $datos['vinculo_protocolo'] = $html;
75
76 $url_cert = toba::vinculador()->get_url(null, 3572, $solicitud);
77 $html = "<a href='".$url_cert."'>Generar certificado</a>";
78 $solicitud['enviar'] = 1;
79 $url_cert_enviar = toba::vinculador()->get_url(null, 3572, $solicitud);
80 $html .= " <a href='".$url_cert_enviar."'>Enviar certificado</a>";
81 $datos['vinculo_certificado'] = $html;
82 /*
83 toba::notificacion()->agregar($documento);
84 */
85 return $datos;
86 }
87
88 function evt__form_solicitud__modificacion($registro)
89 {
90 $this->get_relacion()->tabla('solicitudes')->set($registro);
91 }
92
93 //-------------------------------------------------------------------
94 //--- Pantalla 'equipo'
95 //-------------------------------------------------------------------
96
97 //-- Cuadro --
98
99 function conf__cuadro_equipo($cuadro)
100 {
101 return $this->get_relacion()->tabla('equipo')->get_filas();
102 }
103
104 function evt__cuadro_equipo__seleccion($seleccion)
105 {
106 $this->get_relacion()->tabla('equipo')->set_cursor($seleccion);
107
108 }
109
110 //-- Formulario --
111
112 function conf__form_equipo()
113 {
114 if ($this->get_relacion()->tabla('equipo')->hay_cursor())
115 {
116 $datos = $this->get_relacion()->tabla('equipo')->get();
117 return $datos;
118 }
119 }
120
121 function evt__form_equipo__alta($registro)
122 {
123 $this->get_relacion()->tabla('equipo')->nueva_fila($registro);
124 //generar_formularios($id_solicitud);
125 $id_solicitud = $this->get_relacion()->tabla('solicitudes')->get_columna('id');
126 $sql = 'SELECT * FROM condiciones_ambiente WHERE solicitud = ' . $id_solicitud;
127 $results = consultar_fuente($sql);
128 if(empty($results))
129 {
130 $form = array('variable' => 'TEMPERATURA °C'); $this->get_relacion()->tabla('ambiente')->nueva_fila($form);
131 $form = array('variable' => 'HUMEDAD RELATIVA %HR'); $this->get_relacion()->tabla('ambiente')->nueva_fila($form);
132
133 $form = array('hora_inicio' => '00:00:00','carga' => 0);
134 $this->get_relacion()->tabla('constancia_cero')->nueva_fila($form);
135 $form = array('hora_inicio' => '00:00:00','carga' => 0);
136 $this->get_relacion()->tabla('constancia_cero')->nueva_fila($form);
137 $form = array('hora_inicio' => '00:30:00','carga' => $registro['maxima']);
138 $this->get_relacion()->tabla('constancia_cero')->nueva_fila($form);
139 $form = array('hora_inicio' => '00:30:00','carga' => $registro['maxima']);
140 $this->get_relacion()->tabla('constancia_cero')->nueva_fila($form);
141
142 for($i=1;$i<=8;$i++)
143 {
144 $form = array('nombre' => 'U pesa '.$i); $this->get_relacion()->tabla('u_pesa')->nueva_fila($form);
145 }
146
147 for($i=1;$i<6;$i++)
148 {
149 $form = array('lado' => $i,'carga' => $registro['carga_excentricidad']); $this->get_relacion()->tabla('excentricidad')->nueva_fila($form);
150 }
151 $form = array('lado' => 1,'carga' => $registro['carga_excentricidad']); $this->get_relacion()->tabla('excentricidad')->nueva_fila($form);
152
153 $form = array('nombre_registro' => 'Carga', 'bajo' => $registro['carga_baja'], 'medio' => $registro['carga_media'], 'alto' => $registro['carga_ alta']);
154 $this->get_relacion()->tabla('movilidad')->nueva_fila($form);
155 $form = array('nombre_registro' => 'Indicación');
156 $this->get_relacion()->tabla('movilidad')->nueva_fila($form);
157 $form = array('nombre_registro' => 'Aumento 1.4d', 'bajo' => 1.4*$registro['d'], 'medio' => 1.4*$registro['d'], 'alto' => 1.4*$registro['d']);
158 $this->get_relacion()->tabla('movilidad')->nueva_fila($form);
159 $form = array('nombre_registro' => 'Indicación 2');
160 $this->get_relacion()->tabla('movilidad')->nueva_fila($form);
161
162 for($i=0;$i<10;$i++)
163 {
164 $form = array('carga_baja' => $registro['carga_baja'], 'carga_media' => $registro['carga_media'], 'carga_alta' => $registro['carga_alta']);
165 $this->get_relacion()->tabla('invariabilidad')->nueva_fila($form);
166 }
167
168 for($i=0;$i<18;$i++)
169 {
170 // $form = array('carga_baja' => $registro['carga_baja'], 'carga_media' => $registro['carga_media'], 'carga_alta' => $registro['carga_alta']);
171 $this->get_relacion()->tabla('exactitud')->nueva_fila($form);
172 }
173 toba::notificacion()->agregar('Se han generado los formularios correctamente');
174 }
175 foreach($registro AS $key => $val){
176 if($key == "d"){
177 $this->s__equipo_d = $val;
178 }
179 }
180 }
181
182 function evt__form_equipo__modificacion($registro)
183 {
184 $this->get_relacion()->tabla('equipo')->set($registro);
185 foreach($registro AS $key => $val){
186 if($key == "d"){
187 $this->s__equipo_d = $val;
188 }
189 }
190 $this->evt__form_equipo__cancelar();
191 }
192
193 function evt__form_equipo__baja()
194 {
195 $this->get_relacion()->tabla('equipo')->set(null);
196 }
197
198
199 function evt__form_equipo__cancelar()
200 {
201 $this->get_relacion()->tabla('equipo')->resetear_cursor();
202 }
203
204
205 //-------------------------------------------------------------------
206 //--- Pantallas 'formulario multilinea'
207 //-------------------------------------------------------------------
208
209 function conf__form_ambiente()
210 {
211 return $this->get_relacion()->tabla('ambiente')->get_filas(null, true);
212 }
213
214 function evt__form_ambiente__modificacion($datos)
215 {
216 $this->get_relacion()->tabla('ambiente')->procesar_filas($datos);
217 }
218 //----------------------------------
219 function conf__form_pesas()
220 {
221 return $this->get_relacion()->tabla('u_pesa')->get_filas(null, true);
222 }
223
224 function evt__form_pesas__modificacion($datos)
225 {
226 $this->get_relacion()->tabla('u_pesa')->procesar_filas($datos);
227 }
228 //----------------------------------
229 function conf__form_err_max()
230 {
231 return $this->get_relacion()->tabla('err_max')->get_filas(null, true);
232 }
233
234 function evt__form_err_max__modificacion($datos)
235 {
236 $this->get_relacion()->tabla('err_max')->procesar_filas($datos);
237 }
238 //----------------------------------
239 function conf__form_excentricidad()
240 {
241 return $this->get_relacion()->tabla('excentricidad')->get_filas(null, true);
242 }
243
244 function evt__form_excentricidad__modificacion($datos)
245 {
246 $this->get_relacion()->tabla('excentricidad')->procesar_filas($datos);
247 }
248 //----------------------------------
249 function conf__form_movilidad()
250 {
251 return $this->get_relacion()->tabla('movilidad')->get_filas(null, true);
252 }
253
254 function evt__form_movilidad__modificacion($datos)
255 {
256 $this->get_relacion()->tabla('movilidad')->procesar_filas($datos);
257 }
258 //----------------------------------
259 function conf__form_const_cero()
260 {
261 return $this->get_relacion()->tabla('constancia_cero')->get_filas(null, true);
262 }
263
264 function evt__form_const_cero__modificacion($datos)
265 {
266 $this->get_relacion()->tabla('constancia_cero')->procesar_filas($datos);
267 }
268 //----------------------------------
269 function conf__form_exactitud()
270 {
271 return $this->get_relacion()->tabla('exactitud')->get_filas(null, true);
272 }
273
274 function evt__form_exactitud__modificacion($datos)
275 {
276 if($this->s__equipo_d == '')
277 toba::notificacion()->agregar('No esta cargada la variable \'(d)\. Por favor vaya a datos equipo y actualice la información (Click en Aceptar) .','error');
278 $this->get_relacion()->tabla('exactitud')->procesar_filas($datos); $d = $this->s__equipo_d/2;
279 $sql = 'UPDATE exactitud SET error_creciente=(creciente-carga)+'.$d.'-delta_creciente WHERE solicitud='.$this->s__id_solicitud;
280 consultar_fuente($sql);
281 $sql = 'UPDATE exactitud SET error_decreciente=(decreciente-carga)+'.$d.'-delta_decreciente WHERE solicitud='.$this->s__id_solicitud;
282 consultar_fuente($sql);
283 }
284 //----------------------------------
285 function conf__form_invariabilidad()
286 {
287 return $this->get_relacion()->tabla('invariabilidad')->get_filas(null, true);
288 }
289
290 function evt__form_invariabilidad__modificacion($datos)
291 {
292 $this->get_relacion()->tabla('invariabilidad')->procesar_filas($datos);
293 }
294
295 function generar_formularios($id)
296 {
297 $sql = "SELECT * FROM condiciones_ambiente WHERE solicitud = $id";
298 if($results = toba::db('vx')->consultar($sql))
299 {
300 toba::notificacion()->agregar($results);
301 }
302 }
303
304 }
?>