Modelo
Código PHP:
Ver original
public function nueva_busqueda($campos) { //definimos si descripción viene vacio o no para utilizar el operador and or $and_or = $this->input->get('sucursal') != '' ? ' AND ' : ' OR '; //recorremos los campos del formulario foreach($campos as $campo){ //si llegan las variables y no están vacias if($this->input->get($campo) && $this->input->get($campo) != '') { //definimos la condición para hacer la búsqueda de los campos y de //esta forma podemos hacer uso del array condiciones fuera del loop $condiciones[] = "$campo LIKE '%" . $this->input->get($campo) . "%'"; } } //la consulta base a la que concatenaremos la búsqueda $sql = "SELECT * FROM cartera "; //si existen condiciones entramos { //aquí creamos la condición y la concatenamos a $query $sql .= "order by qDiasMora desc" ; } //asignamos a $query la consulta final $query = $this->db->query($sql); //con la siguiente línea podéis ver lo que arroja la //consulta escogiendo varios campos, es bueno entenderlo //var_dump($sql); exit; //si se ha encontrado algo if($query->num_rows() > 0) { return $query->result(); }else{ return FALSE; } }
modelo 2
Código PHP:
Ver original
function getcall2() { $sql = "SELECT c.Nombre,a.Fecha_Llamado,a.CompromisoPago,a.Estado,a.Ejecutivo FROM deta_call_gestion a INNER JOIN cartera c ON a.rut = c.rut where id = (SELECT max(id) FROM deta_call_gestion b where a.rut = b.rut) order by c.Nombre asc"; $query = $this->db->query($sql); if($query->num_rows() > 0) { return $query; } }
Controlador
Código PHP:
Ver original
public function Agenda() { if($this->session->userdata('nombre_usuario')) { $data['results'] = $this->prejud_model->getsucursal(); $data['result1'] = $this->callcenter_model->getcall2(); $datos_pag["titulo"]= "Call Center"; $datos_pag["submenu"]= "1"; $datos_pag["contenido"]= "Call Center/agenda"; $this->load->view("plantillas/front_end/sidebar"); $this->load->view("callcenter/agenda",$data); $this->load->view("plantillas/front_end/footer"); } else { redirect('index/index'); } } public function busqueda() { if($this->input->get('buscar')) { //los campos del formulario deben tener el mismo nombre //que los de la base de datos a buscar, esto luego lo //recorremos para comprobar como vienen //envíamos los datos al modelo para hacer la búsqueda $resultados = $this->buscador_model->Estado_busqueda($campos); if($resultados !== FALSE) { return $resultados; } } }
Vista
Código PHP:
Ver original
<table class="table table-condensed"> <?php //si hay resultados los mostramos { ?> <thead> <tr> <th>ESTADO</th> <th>ACCION</th> <th>TIPO DE GESTION</th> <th>MONTO INSOLUTO</th> <th>SUPERVISOR</TH> <th>NOMBRE</th> <th>RUT</th> <th>DV</th> <th>SUCURSAL</th> <th>DIAS MORA</th> <th>ESTADO SOCIO EN GAC</th> <th>Fecha Llamado</th> <th>Compromiso Pago</th> <?php foreach($resultados as $fila){ ?> </tr> </thead> <tbody> <tr class="cuerpo"> <td style="color:green"> <?php foreach($result1->result() as $row){ ?> <?php $interval = date_diff($datetime1, $datetime2); ?> <?php $row->CompromisoPago; $date = date_create_from_format('Y-m-d',$row->Fecha_Llamado); $interval2 = date_diff($datetime3, $datetime4); ?> <?php if($fila->Nombre === $row->Nombre) { ?> <?php if($interval->format('%R%a')<=2 ){ ?> <img src="<?=base_url()?>public/images/check.png" width="20"><?php echo $row->Estado ?> <?php } elseif ($interval2->format('%R%a')<0 ) { ?> <img src="<?=base_url()?>public/images/check.png" width="20"><?php echo $row->Estado ?> <?php } ?> <?php } ?> <?php } ?> </td> <td class=""> <?php if ($fila->ESTADOSOCIO == 'Fallecido') {?> <?php } else {?> <a href="<?php echo base_url() ?>callcenter/guardar/<?php echo $fila->iPersona ?>" ><img src="<?=base_url()?>public/images/call2.ico" width="20" /><p><b class="b">GESTION TELEFONICA</b></p> </a> <?php } ?> </td> <td><?php print $fila->TipoGestion?></td> <TD><?php print $fila->supervisor?></TD> <td> <?php print $fila->Nombre ?> </td> <td><?php print $fila->Rut ?></td> <td><?php print $fila->cDv ?></td> <td><?php print $fila->Sucursal ?></td> <td><?php print $fila->qDiasMora ?></td> <td> <?php print $fila->ESTADOSOCIO ?> </td> <td class="info"> <?php foreach($result1->result() as $row){ ?> <?php $interval = date_diff($datetime1, $datetime2); ?> <?php $row->CompromisoPago; $date = date_create_from_format('Y-m-d',$row->Fecha_Llamado); $interval2 = date_diff($datetime3, $datetime4); ?> <?php if($fila->Nombre === $row->Nombre) {?> <?php if(($interval->format('%R%a')<=2)) { ?> Hace menos de dos dias <?php } elseif (($interval->format('%R%a')>2)) { ?> hace <p><?php echo $interval->format('%R%a'); ?></p>dias <?php } ?> <?php } ?> <?php } ?> </td> <td class="info"> <?php foreach($result1->result() as $row){ ?> <?php $interval = date_diff($datetime1, $datetime2); ?> <?php $row->CompromisoPago; $date = date_create_from_format('Y-m-d',$row->Fecha_Llamado); $interval2 = date_diff($datetime3, $datetime4); ?> <?php if($fila->Nombre === $row->Nombre) {?> <?php if(($interval2->format('%R%a')>0 )) { ?> hace <p><?php echo $interval2->format('%R%a'); ?></p>dias <?php } elseif( $interval2->format('%R%a')<=0 ) { ?> Compromiso Pago <?php } ?> <?php } ?> <?php } ?> </td> </tr> </tbody> <?php } ?> <?php } ?> </table>
que es lo que esto hace, les cuento.. tengo una en la cual realizo una busqueda, ya sea por sucursal, por rut o por tipogestion ( la cual se maneja segun rangos de dias).
bueno una vez se realiza el filtro se muestran los datos en la tabla que viene de la tabla A, esta tabla tiene un campo llamado estado y ese lo traigo desde una tabla b.
el tema es que al tener que recorrer 2 arreglos el sistema se esta relentizando.