<?php
/**
 * @property OrdenesReparacion $OrdenesReparacion
 */

class OrdenesReparacionesController extends AppController {

    public $name = 'OrdenesReparaciones';
    public $helpers = array('Html', 'Form', 'Js');
    public $components = array('RequestHandler', 'Talon', 'Presupuesto');

    public $imprimotalon = 0;  // pm agrega 22.7

    public $uses = array('OrdenesReparacion', 'OrdenesReparacionDetalle', 'Articulo', 'Movimiento', 'Cliente',
        'Marca', 'CategoriasArticulo', 'Empleado', 'Area', 'Proveedor', 'OrdenesServicioInterior',
        'OrdenesServicioBitacora', 'OrdenesServicioReclamo', 'OrdenesSubtaller', 
        'Familia','Ordcomp','Repuesto','OrdenesCompraDetalle',  
        'Estado','AjustesDetalle','Moneda' );  // pm agrega ord comp detalle 21.6.2015 y esado el 23/6
    public $scaffold;

    var $paginate = array('limit' => 50000, 'maxLimit' => 50000);

    function beforeFilter() {
        parent::beforeFilter();
    }

    function afterSave() {
        parent::afterSave();

        if ($this->action == 'add') {
            $this->OrdenesReparacion->read(null, $this->data['OrdenesReparacion']['id']);
            $this->OrdenesReparacion->set('recibido_por', $this->data['OrdenesReparacion']['recibido_por']);
            $this->OrdenesReparacion->set('nro_remito', $this->data['OrdenesReparacion']['nro_remito']);
            $this->OrdenesReparacion->set('interior', $this->data['OrdenesReparacion']['interior']);
            $this->OrdenesReparacion->set('vino_por', $this->data['OrdenesReparacion']['vino_por']);
            $this->OrdenesReparacion->set('cant_llamados', $this->data['OrdenesReparacion']['cant_llamados']);
            $this->OrdenesReparacion->set('aplicapresup', $this->data['OrdenesReparacion']['aplicapresup']); // pm 22.4.2016
            $this->OrdenesReparacion->save();    
            
        }

        
        if (! empty($this->OrdenesReparacion->session)) {
                $this->Session->setFlash($this->OrdenesReparacion->session, $this->OrdenesReparacion->typeMessage);        
                  
        }

        $this->Session->setFlash("Orden #".$this->data['OrdenesReparacion']['numero'] ." almacenada correctamente", "messages/green");

      

    }

    function addprecio() {
        $this->layout = "ajax";
    }

    function repuesto(){
        $data=$this->Repuesto->find('all');
        $this->set('data',$data);
    }

    function imprimiroserv($fech1, $fech2, $numeross, $clientess, $maquinass, $recibidoss, $envioss, $tiposs, $areass, $estadoss) {
        if (strpos('Rechazada', $estadoss) !== false || strpos('rechazada',$estadoss) !== false || strlen($estadoss) == 0) {
            $this->set('rech', true);                           
        } else {
            $this->set('rech', false);               
        }
      $this->set('data',$this->OrdenesReparacion->getImpresionInterior($fech1, $fech2, $numeross, $clientess, $maquinass, $recibidoss, $envioss, $tiposs, $areass, $estadoss));              
    }

    function imprimirreclamadas($fech1, $fech2, $numeross, $clientess, $maquinass,  $areass, $reclamoss) {
           $this->set('data',$this->OrdenesReparacion->getImpresionReclamadas($fech1, $fech2, $numeross, $clientess, $maquinass,  $areass, $reclamoss));              
    }


  function imprimirprontasportec () {      
        $data = $this->OrdenesReparacion->query($this->data['html']); 
           $this->set('data', $data);              
    }

   function imprimirSinOC($fech1, $fech2, $numeross, $clientess, $maquinass,  $areass, $presupuestoss) {
           $this->set('data',$this->OrdenesReparacion->getImpresionSinOC($fech1, $fech2, $numeross, $clientess, $maquinass,  $areass, $presupuestoss));              
    }


    function setPresup($id, $vars)
    {
        $params = array();
        parse_str($vars, $params);                                                                
        /*$actualice = "update ordenes_reparaciones set presup_cliente = '" 
                . addslashes($params['data']['OrdenesReparacion']['presup_cliente']) 
                . "' where id = " . $id;
                $this->OrdenesReparacion->query($actualice);*/                
        $usuario = CakeSession::read('Usuario');        
        $valor = $this->OrdenesReparacion->guardarCambios($params, $id, $usuario['Usuario']['id']);                              
        App::import('Model', 'ContactosOrden');
        $corden = new ContactosOrden();
        $lemails = $corden->getListaEmails($id);

        if ($this->request->is('get')) {             
            $data= $this->OrdenesReparacion->getDataOrdenMail($id);            
            $marca = $data[0]['m']['marca'];

            if (strlen($data[0]['orep']['detalle_marca']) > 0 && ! is_numeric($data[0]['orep']['detalle_marca'])) {
                $marca = $data[0]['orep']['detalle_marca'];
            }

            $mail = new $this->Presupuesto;
            $mail->setAsunto('NOTIFICACION DE PRESUPUESTO ' . $data[0]['orep']['ser'] . ' ' . $data[0]['orep']['numero']);
            $listacorreos = array();
            if (strlen($data[0]['cli']['email']) > 0) {
                $listacorreos[$data[0]['cli']['email']] = "";
            }
             
            if (strlen($data[0]['c']['email']) > 0 || strlen($data[0]['c2']['email']) > 0) {                                                  
                if (strlen($data[0]['c2']['email']) > 0) {
                    $listacorreos[$data[0]['c2']['email']] = "";
                } else {
                    $listacorreos[$data[0]['c']['email']] = "";
                } 
            }       
            foreach ($lemails as $l) {
                $listacorreos[$l['c']['email']] = 0;
            } 
            Debugger::log('talon x mail');
            Debugger::log($listacorreos);                
            $mail->setParaVarios($listacorreos);
            
            if (strlen(trim($params['data']['OrdenesReparacion']['precio_asignado'])) > 0) {
                $el_precio = $params['data']['OrdenesReparacion']['precio_asignado'];
            } else {
                $el_precio = 0;
            }
            
            
 
            $mail->setCuerpo('<div style="border-color: #ceced0; border-style: solid; border-width: 3px;"><p>Estimados ,</p>'.
            '<p>Mediante la presente detallamos a continuación el presupuesto del service solicitado</p>'.
            '<table><thead>'.
            '<tr><th style="text-align: left; text-decoration: underline;">Orden Número:</th>'.
            '<th style="font-weight:bold; text-align: left;">' . strtoupper($data[0]['orep']['ser'] . ' ' . $data[0]['orep']['numero']) . '</th></tr>'.
            '<tr><th style="text-align: left; text-decoration: underline;">Tipo de Orden:</th>'.
            '<th style="font-weight:bold; text-align: left;">' . strtoupper($data[0]['orep']['tipo']) . '</th></tr>'.
            '<tr><th style="text-align: left; text-decoration: underline;">Máquina:</th>'.
            '<th style="font-weight:bold; text-align: left;">' . strtoupper($data[0]['orep']['articulo']) . ' ' . $marca
            . ' ' . strtoupper($data[0]['orep']['modelo']) . '</th></tr>'.            
            '<tr><th style="text-align: left; text-decoration: underline;">Referencia:</th>'.
            '<th style="font-weight:bold; text-align: left;">' . strtoupper($data[0]['orep']['serie']) . '</th></tr>'.
            '<tr><th style="text-align: left; text-decoration: underline;">Presupuesto: </th>'.
            '<th style="text-align: left;">' . strtoupper(addslashes($params['data']['OrdenesReparacion']['presup_cliente'])) . '</th></tr>'.
            '<tr><th style="text-align: left; text-decoration: underline;">Precio:</th>'.
            '<th style="font-weight:bold; text-align: left;">' . strtoupper(addslashes($el_precio)) . ' IVA inc.</th></tr>'.            
            '</thead></table><p>Estamos a la órdenes.</p><p>Visite nuestro catálogo de productos on line: <a href="http://talleresgonzalez.com.uy/productos/">www.talleresgonzalez.com.uy/productos/</a></p></div>');
            $mail->adjuntarImagenComoFirma('gonzalez2.jpg');

            $respuesta = $mail->enviarCorreo(date('d/m/Y') . ' Correo enviado correctamente Presupuesto de orden ' . $data[0]['orep']['ser'] . ' ' . $data[0]['orep']['numero']);            
            $this->Session->setFlash($respuesta['texto'], $respuesta['plantilla']);
            if ($respuesta['enviado']) {
                $this->presupenviado($id);
            }

            $this->redirect('/OrdenesReparaciones/edit/' . $id . '/0');

            
        }

        }

        function setMailAvisoPronta($id)
    {

                  
            $data= $this->OrdenesReparacion->getDataOrdenMail($id);            
            $marca = $data[0]['m']['marca'];
            if (strlen($data[0]['orep']['detalle_marca']) > 0 && ! is_numeric($data[0]['orep']['detalle_marca'])) {
                $marca = $data[0]['orep']['detalle_marca'];
            }
            App::import('Model', 'ContactosOrden');
            $corden = new ContactosOrden();
            $lemails = $corden->getListaEmails($id);

            $mail = new $this->Presupuesto;
            $mail->setAsunto('NOTIFICACION DE ORDEN PRONTA ' . $data[0]['orep']['ser'] . ' ' . $data[0]['orep']['numero']);
            /*if (strlen($data[0]['c']['email']) > 0 || strlen($data[0]['c2']['email']) > 0) {*/
            $listacorreos = array();
            if (strlen($data[0]['cli']['email']) > 0) {
                $listacorreos[$data[0]['cli']['email']] = "";  
            }
            if (strlen($data[0]['c']['email']) > 0 || strlen($data[0]['c2']['email']) > 0) {                                                               
                if (strlen($data[0]['c2']['email']) > 0) {
                    $listacorreos[$data[0]['c2']['email']] = "";
                } else {
                    $listacorreos[$data[0]['c']['email']] = "";
                } 
            }       
            foreach ($lemails as $l) {
                $listacorreos[$l['c']['email']] = 0;
            }                 
            $mail->setParaVarios($listacorreos);
            
            if (strlen(trim($data[0]['orep']['precio_asignado'])) > 0) {
                $el_precio = $data[0]['orep']['precio_asignado'];
            } else {
                $el_precio = 0;
            }
            
            
 
            $mail->setCuerpo('<div style="border-color: #ceced0; border-style: solid; border-width: 3px;"><p>Estimados ,</p>'.
            '<p>Mediante la presente les informamos que la siguiente ORDEN ya quedó PRONTA.</p>'.
            '<table><thead>'.
            '<tr><th style="text-align: left; text-decoration: underline;">Orden Número:</th>'.
            '<th style="font-weight:bold; text-align: left;">' . strtoupper($data[0]['orep']['ser'] . ' ' . $data[0]['orep']['numero']) . '</th></tr>'.
            '<tr><th style="text-align: left; text-decoration: underline;">Tipo de Orden:</th>'.
            '<th style="font-weight:bold; text-align: left;">' . strtoupper($data[0]['orep']['tipo']) . '</th></tr>'.
            '<tr><th style="text-align: left; text-decoration: underline;">Máquina:</th>'.
            '<th style="font-weight:bold; text-align: left;">' . strtoupper($data[0]['orep']['articulo']) . ' ' . $marca
            . ' ' . strtoupper($data[0]['orep']['modelo']) . '</th></tr>'.            
            '<tr><th style="text-align: left; text-decoration: underline;">Referencia:</th>'.
            '<th style="font-weight:bold; text-align: left;">' . strtoupper($data[0]['orep']['serie']) . '</th></tr>'.
            '<tr><th style="text-align: left; text-decoration: underline;">Presupuesto: </th>'.
            '<th style="text-align: left;">' . strtoupper(addslashes($data[0]['orep']['presup_cliente'])) . '</th></tr>'.
            '<tr><th style="text-align: left; text-decoration: underline;">Precio:</th>'.
            '<th style="font-weight:bold; text-align: left;">' . strtoupper(addslashes($el_precio)) . ' IVA inc.</th></tr>'.            
            '</thead></table><p>Estamos a las órdenes.</p> <p>Visite nuestro catálogo de productos on line: <a href="http://talleresgonzalez.com.uy/productos/">www.talleresgonzalez.com.uy/productos/</a></p> </div>');
            $mail->adjuntarImagenComoFirma('gonzalez2.jpg');

            $respuesta = $mail->enviarCorreo(date('d/m/Y') . ' Correo enviado correctamente Notificacion de aviso de pronta orden ' . $data[0]['orep']['ser'] . ' ' . $data[0]['orep']['numero']);            
            $this->Session->setFlash($respuesta['texto'], $respuesta['plantilla']);        

        }



        function talonxmail($id) 
        {        
            if ($this->request->is('get')) {             
                $data = $this->OrdenesReparacion->getDataOrdenMail($id);
                $mail = new $this->Talon;   
                App::import('Model', 'ContactosOrden');
                $corden = new ContactosOrden();
                $lemails = $corden->getListaEmails($id);         
                $marca = $data[0]['m']['marca'];
                if (strlen($data[0]['orep']['detalle_marca'])> 0 
                && ! is_numeric($data[0]['orep']['detalle_marca'])) {
                    $marca = $data[0]['orep']['detalle_marca'];
                }
                $mail->setAsunto('AVISO DE INGRESO ' . $data[0]['orep']['ser'] . ' ' . $data[0]['orep']['numero']);
                $listacorreos = array();
                if (strlen() > 0) {
                    $listacorreos[$data[0]['cli']['email']] = "";  
                }
                if (strlen($data[0]['c']['email']) > 0 || strlen($data[0]['c2']['email']) > 0) {                                    
                    if (strlen($data[0]['c2']['email']) > 0) {
                        $listacorreos[$data[0]['c2']['email']] = "";
                    } else {
                        $listacorreos[$data[0]['c']['email']] = "";
                    } 
                }       
                foreach ($lemails as $l) {
                    $listacorreos[$l['c']['email']] = 0;
                }         
                Debugger::log('talon x mail');
                Debugger::log($listacorreos);        
                $mail->setParaVarios($listacorreos);
            

                $mail->setCuerpo('<p>Estimados, les informamos que hemos recibido una máquina para service.</p>'.
                '<table><thead>' .
                '<tr><th style="text-align: left;">Orden Número: </th>'.
                '<th style="color: blue; text-align: left;">' . strtoupper($data[0]['orep']['ser'] . 
                ' ' . $data[0]['orep']['numero']) . '</th></tr>'.
                '<tr><th style="text-align: left;">Tipo de Orden: </th>'.
                '<th style="color: blue; text-align: left;">' . strtoupper($data[0]['orep']['tipo']) . '</th></tr>'.
                '<tr><th style="text-align: left;">Máquina: </th>'.
                '<th style="color: blue; text-align: left;">' . strtoupper($data[0]['orep']['articulo']) . ' ' .
                $marca . ' ' . strtoupper($data[0]['orep']['modelo']) . '</th></tr>'.
                '<tr><th style="text-align: left;">Referencia: </th>'.
                '<th style="color: blue; text-align: left;">' . strtoupper($data[0]['orep']['serie']) . '</th></tr>'.
                '<tr><th style="text-align: left;">Accesorios: </th>'.
                '<th style="color: blue; text-align: left;">' . strtoupper($data[0]['orep']['accesorios']) . '</th></tr>'.                
                '</thead></table><p>Estamos a la órdenes.</p> <p>Visite nuestro catálogo de productos on line: <a href="http://talleresgonzalez.com.uy/productos/">www.talleresgonzalez.com.uy/productos/</a></p> ');
                $mail->adjuntarImagenComoFirma('gonzalez.jpg');
                $respuesta = $mail->enviarCorreo(date('d/m/Y') 
                . ' Correo enviado correctamente Talon de orden ' 
                . $data[0]['orep']['ser'] . ' ' . $data[0]['orep']['numero']);
                if ($respuesta['enviado']) {
                    $this->talonenviado($id);
                }
                $this->Session->setFlash($respuesta['texto'], $respuesta['plantilla']);
                $this->redirect('/OrdenesReparaciones/edit/' . $id . '/0');            
            }

        }

       function mail($id) {
           if ($this->request->is('get')) {

               $consulta = "select orep.ser, orep.tipo, orep.articulo, orep.modelo, orep.accesorios, orep.observaciones,  
                orep.numero, cli.email from ordenes_reparaciones orep, clientes cli where orep.id = " 
                . $id . " and cli.id = orep.cliente_id";
                if (is_string($id)) {
                    $this->set('id', $id);
                }        
                
                $data = $this->OrdenesReparacion->query($consulta);
                
                $this->set('data', $data);               
                $retira = "";            
                $orden = $this->OrdenesReparacion->findById($id);
                $consulta = "select cli.nombre_apellido from clientes cli where cli.id = " 
                . $orden['OrdenesReparacion']['cliente_id'];
                $cliente = $this->OrdenesReparacion->query($consulta);
                $orden['OrdenesReparacion']['fecha'] = implode('/', array_reverse(explode('-', $orden['OrdenesReparacion']['fecha'])));
                if ($orden['OrdenesReparacion']['tipo'] == 'Garantia' || $orden['OrdenesReparacion']['tipo'] == 'GarantiaPropia' 
                || $orden['OrdenesReparacion']['tipo'] == 'GarantiaTramontina')
                    $retira = "";    
                $this->set('orden', $orden);
                $this->set('cliente', $cliente);
                //App::import('Vendor', 'swiftmailer/lib/swift_required');                    
                $this->set('retira', $retira); //asi se los paso al view
           }
           
    }


    function imprimirp2($ids) {
        $this->set('data', $this->OrdenesReparacion->getListadoPorIdsp($ids));
    }


   function imprimirp2ns($ids) {  // pm agrega 21.9.17
        $this->set('data', $this->OrdenesReparacion->getListadoPorIdsp($ids));
    }




    function excelp($fech1="",$fech2="",$areass="",$numeross="",$tiposs="",$clientess,$maquinass="",$desperfectoss=""){
    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );
        $this->set('result',$this->OrdenesServicioBitacora->lista());
        $data=NULL;
    
         
     if(strlen($fech1)>1 && strlen($fech2)>1){
       if( strlen($maquinass)>1 ){
       $condiciones=array(
                'OrdenesReparacion.fecha between ? and ?' => array($fech1, $fech2), //'OrdenesReparacion.fecha_prometido between ? and ?' => array($fech1, $fech2), 
                'OrdenesReparacion.estado not like "%Confirmada%"',
                'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
                'OrdenesReparacion.tipo not like "%Garantia%"',
                'OrdenesReparacion.tipo not like "%Reparacion%"',
                'OrdenesReparacion.tipo not like "%Anulada%"',
                'OrdenesReparacion.estado not like "%Cancelada%"',
                'OrdenesReparacion.estado not like "%Pronta%"',
                'OrdenesReparacion.estado not like "%Retirada%"',
                'OrdenesReparacion.estado not like "%Retirada%"',
                'OrdenesReparacion.anulada <> 1',
                'OrdenesReparacion.cancelada <> 1',
            'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 
              'OrdenesReparacion.presupuesto is null'),       
            "OR"=>array(
            'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
            'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
            'Marca.marca like "%'.$maquinass.'%"'
            )
            );
      debug($condiciones);
       }
       else{
        $condiciones=array(
                'OrdenesReparacion.fecha between ? and ?' => array($fech1, $fech2), //'OrdenesReparacion.fecha_prometido between ? and ?' => array($fech1, $fech2), 
                'OrdenesReparacion.estado not like "%Confirmada%"',
                'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
                'OrdenesReparacion.tipo not like "%Garantia%"',
                'OrdenesReparacion.tipo not like "%Reparacion%"',
                'OrdenesReparacion.tipo not like "%Anulada%"',
                'OrdenesReparacion.estado not like "%Cancelada%"',
                'OrdenesReparacion.estado not like "%Pronta%"',
                'OrdenesReparacion.estado not like "%Retirada%"',
                'OrdenesReparacion.estado not like "%Retirada%"',
                'OrdenesReparacion.anulada <> 1',
                'OrdenesReparacion.cancelada <> 1',
                'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 
                  'OrdenesReparacion.presupuesto is null')
            ); 
      debug($condiciones);
       }
       }else{
       
       if( strlen($maquinass)>1 ){
       $condiciones=array(                
            'OrdenesReparacion.estado not like "%Confirmada%"',
            'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
            'OrdenesReparacion.tipo not like "%Garantia%"',
            'OrdenesReparacion.tipo not like "%Reparacion%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
            'OrdenesReparacion.estado not like "%Cancelada%"',
            'OrdenesReparacion.estado not like "%Pronta%"',
            'OrdenesReparacion.estado not like "%Retirada%"',
            'OrdenesReparacion.estado not like "%Retirada%"',
            'OrdenesReparacion.anulada <> 1',
            'OrdenesReparacion.cancelada <> 1',
            'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 
              'OrdenesReparacion.presupuesto is null'),
            "OR"=>array(
            'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
            'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
            'Marca.marca like "%'.$maquinass.'%"'
            )
            );
      debug($condiciones);
       }
       else{
        $condiciones=array(            
            'OrdenesReparacion.estado not like "%Confirmada%"',
            'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
            'OrdenesReparacion.tipo not like "%Garantia%"',
            'OrdenesReparacion.tipo not like "%Reparacion%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
            'OrdenesReparacion.estado not like "%Cancelada%"',
            'OrdenesReparacion.estado not like "%Pronta%"',
            'OrdenesReparacion.estado not like "%Retirada%"',
            'OrdenesReparacion.estado not like "%Retirada%"',
            'OrdenesReparacion.anulada <> 1',
            'OrdenesReparacion.cancelada <> 1',
            'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 
              'OrdenesReparacion.presupuesto is null')
            ); 
      debug($condiciones);
       }
     }
     
       if(strlen($areass)>1){
           array_push($condiciones,'Area.area like "'.$areass.'"');
       }
     
     if(strlen($numeross)>1){
       array_push($condiciones, 'OrdenesReparacion.numero like "%'.$numeross.'%"');
     }
     if(strlen($tiposs)>1){
       array_push($condiciones,'OrdenesReparacion.tipo like "%'.$tiposs.'%"');
     }
     if(strlen($clientess)>1){
       array_push($condiciones,'Cliente.nombre_apellido like "%'.$clientess.'%"');
     }
     if(strlen($desperfectoss)>1){
       array_push($condiciones,'OrdenesReparacion.desperfecto like "%'.desperfecto.'%"');
     }
     
debug($condiciones);       
       //fijarseee
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => $condiciones,
            'recursive' => 2,
            'fields' =>
    array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_prometido',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC', 'OrdenesReparacion.tipo' => 'DESC',
                  'OrdenesReparacion.fecha_asignado' => 'ASC')                
                )
        );

          App::import('Vendor', 'PHPExcel/Classes/PHPExcel');
        
    // Create new PHPExcel object
    $objPHPExcel = new PHPExcel();

    // Set document properties
    $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
                                ->setLastModifiedBy("Maarten Balliauw")
                                ->setTitle("Reporte de Trabajos de Ordenes Reparaciones")
                                ->setSubject("Garantias")
                                ->setDescription("Reporte de Trabajos en formato excel")
                                ->setKeywords("office 2007 openxml php")
                                ->setCategory("Archivo de salida de prueba");

    


    // Add some data
    $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue('A1', 'Orden')
                ->setCellValue('B1', 'Tipo')
                ->setCellValue('C1', 'Cliente')
                ->setCellValue('D1', 'Maquina Marca Modelo')
                ->setCellValue('E1', 'Desperfecto')
                ->setCellValue('F1', 'P.P.')
                ->setCellValue('G1', 'Tecnico');
    $objPHPExcel->getActiveSheet()->getStyle("A1:G1")->getFont()->setBold(true);
                
    $i = 2;
                
    foreach ($data as $d) {     
        if (strlen($d['OrdenesReparacion']['articulo'])>0 && strlen($d['OrdenesReparacion']['tipo'])>0){           
        
        $maquina = "";
        if ($d['Marca']['marca'] == 'OTRA MARCA'){
            $maquina =  $d['OrdenesReparacion']['articulo'] ." ". $d['OrdenesReparacion']['detalle_marca']  ."  ". $d['OrdenesReparacion']['modelo'];
        } else {
            $maquina = $d['OrdenesReparacion']['articulo'] . " " . $d['Marca']['marca']  . "  " . $d['OrdenesReparacion']['modelo'];
        } 
       

        $tecnico = $d['Usuario']['nombre'] . ' ' . $d['Usuario']['apellido'];

        $fecha = "";
        if (strlen($d['OrdenesReparacion']['fecha_prometido']) > 0 && $d['OrdenesReparacion']['fecha_prometido'] != "0000-00-00") {
            $t_year   = substr($d['OrdenesReparacion']['fecha_prometido'],0,4);
            $t_month  = substr($d['OrdenesReparacion']['fecha_prometido'],5,2);// Fixed problems with offsets
            $t_day    = substr($d['OrdenesReparacion']['fecha_prometido'],8,2);
            $fecha    = PHPExcel_Shared_Date::FormattedPHPToExcel($t_year, $t_month, $t_day);                        
        }        
        $numeroord = $d['OrdenesReparacion']['ser']. ' '. $d['OrdenesReparacion']['numero'];
        $presuptaller = $d['OrdenesReparacion']['desperfecto'];
        
        $objPHPExcel->setActiveSheetIndex(0)
                    ->setCellValue('A' . $i, $numeroord)
                    ->setCellValue('B' . $i, $d['OrdenesReparacion']['tipo'])
                    ->setCellValue('C' . $i, $d['Cliente']['nombre_apellido'])
                    ->setCellValue('D' . $i, $maquina)
                    ->setCellValue('E' . $i, $presuptaller)
                    ->setCellValue('F' . $i, $fecha)
                    ->setCellValue('G' . $i, $tecnico);
        $objPHPExcel->getActiveSheet()
                    ->getStyle('F' . $i)
                    ->getNumberFormat()
                    ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);
        $i++;             
        }                                
    }

    foreach(range('A','G') as $columnID) {
        $objPHPExcel->getActiveSheet()
                    ->getColumnDimension($columnID)
                    ->setAutoSize(true);
    }
    // Set active sheet index to the first sheet, so Excel opens this as the first sheet
    $objPHPExcel->setActiveSheetIndex(0);   
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');            
    $objWriter->save('files/presupuestos_' . date('d_m_Y') . '.xlsx');
	$this->redirect('/files/presupuestos_' . date('d_m_Y') . '.xlsx');
       
   }



     function imprimirp($fech1="",$fech2="",$areass="",$numeross="",$tiposs="",$clientess,$maquinass="",$desperfectoss="", $tecnicoss=""){
    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );


/*
        $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Usuario' => array(
                        'className' => 'Usuario',
                        'type' => 'RIGHT',
                        'foreignKey' => 'empleado_id')
            )
            )

  );
  */      

        $this->set('result',$this->OrdenesServicioBitacora->lista());
        $data=NULL;
    
         
     if(strlen($fech1)>1 && strlen($fech2)>1){
       if( strlen($maquinass)>1 ){
       $condiciones=array(
                'OrdenesReparacion.fecha between ? and ?' => array($fech1, $fech2), //'OrdenesReparacion.fecha_prometido between ? and ?' => array($fech1, $fech2), 
                'OrdenesReparacion.estado not like "%Confirmada%"',
                'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
                'OrdenesReparacion.tipo not like "%Garantia%"',
                'OrdenesReparacion.tipo not like "%Reparacion%"',
                'OrdenesReparacion.tipo not like "%Anulada%"',
                'OrdenesReparacion.estado not like "%Cancelada%"',
                'OrdenesReparacion.estado not like "%Pronta%"',
                'OrdenesReparacion.estado not like "%Retirada%"',
                'OrdenesReparacion.estado not like "%Retirada%"',
                'OrdenesReparacion.anulada <> 1',
                'OrdenesReparacion.cancelada <> 1',
            'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 
              'OrdenesReparacion.presupuesto is null'),       
            "OR"=>array(
            'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
            'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
            'Marca.marca like "%'.$maquinass.'%"'
            )
            );
      debug($condiciones);
       }
       else{
        $condiciones=array(
                'OrdenesReparacion.fecha between ? and ?' => array($fech1, $fech2), //'OrdenesReparacion.fecha_prometido between ? and ?' => array($fech1, $fech2), 
                'OrdenesReparacion.estado not like "%Confirmada%"',
                'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
                'OrdenesReparacion.tipo not like "%Garantia%"',
                'OrdenesReparacion.tipo not like "%Reparacion%"',
                'OrdenesReparacion.tipo not like "%Anulada%"',
                'OrdenesReparacion.estado not like "%Cancelada%"',
                'OrdenesReparacion.estado not like "%Pronta%"',
                'OrdenesReparacion.estado not like "%Retirada%"',
                'OrdenesReparacion.estado not like "%Retirada%"',
                'OrdenesReparacion.anulada <> 1',
                'OrdenesReparacion.cancelada <> 1',
                'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 
                  'OrdenesReparacion.presupuesto is null')
            ); 
      debug($condiciones);
       }
       }else{
       
       if( strlen($maquinass)>1 ){
       $condiciones=array(                
            'OrdenesReparacion.estado not like "%Confirmada%"',
            'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
            'OrdenesReparacion.tipo not like "%Garantia%"',
            'OrdenesReparacion.tipo not like "%Reparacion%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
            'OrdenesReparacion.estado not like "%Cancelada%"',
            'OrdenesReparacion.estado not like "%Pronta%"',
            'OrdenesReparacion.estado not like "%Retirada%"',
            'OrdenesReparacion.estado not like "%Retirada%"',
            'OrdenesReparacion.anulada <> 1',
            'OrdenesReparacion.cancelada <> 1',
            'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 
              'OrdenesReparacion.presupuesto is null'),
            "OR"=>array(
            'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
            'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
            'Marca.marca like "%'.$maquinass.'%"'
            )
            );
      debug($condiciones);
       }
       else{
        $condiciones=array(            
            'OrdenesReparacion.estado not like "%Confirmada%"',
            'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
            'OrdenesReparacion.tipo not like "%Garantia%"',
            'OrdenesReparacion.tipo not like "%Reparacion%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
            'OrdenesReparacion.estado not like "%Cancelada%"',
            'OrdenesReparacion.estado not like "%Pronta%"',
            'OrdenesReparacion.estado not like "%Retirada%"',
            'OrdenesReparacion.estado not like "%Retirada%"',
            'OrdenesReparacion.anulada <> 1',
            'OrdenesReparacion.cancelada <> 1',
            'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 
              'OrdenesReparacion.presupuesto is null')
            ); 
      debug($condiciones);
       }
     }
     
       if(strlen($areass)>1){
           array_push($condiciones,'Area.area like "'.$areass.'"');
       }
     
     if(strlen($numeross)>1){
       array_push($condiciones, 'OrdenesReparacion.numero like "%'.$numeross.'%"');
     }
     if(strlen($tiposs)>1){
       array_push($condiciones,'OrdenesReparacion.tipo like "%'.$tiposs.'%"');
     }
     if(strlen($clientess)>1){
       array_push($condiciones,'Cliente.nombre_apellido like "%'.$clientess.'%"');
     }
     if(strlen($desperfectoss)>1){
       array_push($condiciones,'OrdenesReparacion.desperfecto like "%'.desperfecto.'%"');
     }


    /*   if ($tecnicoss != '0') {
           array_push($condiciones, 'concat(Usuario.nombre, " ", Usuario.apellido) like "%' . $tecnicoss . '%"');
            }
*/

debug($condiciones);       
       //fijarseee
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => $condiciones,
            'recursive' => 2,
            'fields' =>
    array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.cant_llamados',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_prometido',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC', 'OrdenesReparacion.tipo' => 'DESC',
                  'OrdenesReparacion.fecha_prometido' => 'ASC')                
                )
        );
       
        debug($condiciones);
    $this->set(compact('data','fech2'));  
   }

  function imprimirpns($fech1="",$fech2="",$areass="",$numeross="",$tiposs="",$clientess,$maquinass="",$desperfectoss="", $tecnicoss=""){
    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',

                        'foreignKey' => 'cliente_id')
            )
            )
        );


/*
        $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Usuario' => array(
                        'className' => 'Usuario',
                        'type' => 'RIGHT',
                        'foreignKey' => 'empleado_id')
            )
            )

  );
  */

        $this->set('result',$this->OrdenesServicioBitacora->lista());
        $data=NULL;
    
         
     if(strlen($fech1)>1 && strlen($fech2)>1){
       if( strlen($maquinass)>1 ){
       $condiciones=array(
                'OrdenesReparacion.fecha between ? and ?' => array($fech1, $fech2), //'OrdenesReparacion.fecha_prometido between ? and ?' => array($fech1, $fech2), 
                'OrdenesReparacion.estado not like "%Confirmada%"',
                'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
                'OrdenesReparacion.tipo not like "%Garantia%"',
                'OrdenesReparacion.tipo not like "%Reparacion%"',
                'OrdenesReparacion.tipo not like "%Anulada%"',
                'OrdenesReparacion.estado not like "%Cancelada%"',
                'OrdenesReparacion.estado not like "%Pronta%"',
                'OrdenesReparacion.estado not like "%Retirada%"',
                'OrdenesReparacion.estado not like "%Retirada%"',
                'OrdenesReparacion.anulada <> 1',
                'OrdenesReparacion.cancelada <> 1',
            'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 
              'OrdenesReparacion.presupuesto is null'),       
            "OR"=>array(
            'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
            'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
            'Marca.marca like "%'.$maquinass.'%"'
            )
            );
      debug($condiciones);
       }
       else{
        $condiciones=array(
                'OrdenesReparacion.fecha between ? and ?' => array($fech1, $fech2), //'OrdenesReparacion.fecha_prometido between ? and ?' => array($fech1, $fech2), 
                'OrdenesReparacion.estado not like "%Confirmada%"',
                'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
                'OrdenesReparacion.tipo not like "%Garantia%"',
                'OrdenesReparacion.tipo not like "%Reparacion%"',
                'OrdenesReparacion.tipo not like "%Anulada%"',
                'OrdenesReparacion.estado not like "%Cancelada%"',
                'OrdenesReparacion.estado not like "%Pronta%"',
                'OrdenesReparacion.estado not like "%Retirada%"',
                'OrdenesReparacion.estado not like "%Retirada%"',
                'OrdenesReparacion.anulada <> 1',
                'OrdenesReparacion.cancelada <> 1',
                'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 
                  'OrdenesReparacion.presupuesto is null')
            ); 
      debug($condiciones);
       }
       }else{
       
       if( strlen($maquinass)>1 ){
       $condiciones=array(                
            'OrdenesReparacion.estado not like "%Confirmada%"',
            'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
            'OrdenesReparacion.tipo not like "%Garantia%"',
            'OrdenesReparacion.tipo not like "%Reparacion%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
            'OrdenesReparacion.estado not like "%Cancelada%"',
            'OrdenesReparacion.estado not like "%Pronta%"',
            'OrdenesReparacion.estado not like "%Retirada%"',
            'OrdenesReparacion.estado not like "%Retirada%"',
            'OrdenesReparacion.anulada <> 1',
            'OrdenesReparacion.cancelada <> 1',
            'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 
              'OrdenesReparacion.presupuesto is null'),
            "OR"=>array(
            'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
            'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
            'Marca.marca like "%'.$maquinass.'%"'
            )
            );
      debug($condiciones);
       }
       else{
        $condiciones=array(            
            'OrdenesReparacion.estado not like "%Confirmada%"',
            'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
            'OrdenesReparacion.tipo not like "%Garantia%"',
            'OrdenesReparacion.tipo not like "%Reparacion%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
            'OrdenesReparacion.estado not like "%Cancelada%"',
            'OrdenesReparacion.estado not like "%Pronta%"',
            'OrdenesReparacion.estado not like "%Retirada%"',
            'OrdenesReparacion.estado not like "%Retirada%"',
            'OrdenesReparacion.anulada <> 1',
            'OrdenesReparacion.cancelada <> 1',
            'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 
              'OrdenesReparacion.presupuesto is null')
            ); 
      debug($condiciones);
       }
     }
     
       if(strlen($areass)>1){
           array_push($condiciones,'Area.area like "'.$areass.'"');
       }
     
     if(strlen($numeross)>1){
       array_push($condiciones, 'OrdenesReparacion.numero like "%'.$numeross.'%"');
     }
     if(strlen($tiposs)>1){
       array_push($condiciones,'OrdenesReparacion.tipo like "%'.$tiposs.'%"');
     }
     if(strlen($clientess)>1){
       array_push($condiciones,'Cliente.nombre_apellido like "%'.$clientess.'%"');
     }
     if(strlen($desperfectoss)>1){
       array_push($condiciones,'OrdenesReparacion.desperfecto like "%'.desperfecto.'%"');
     }

/*
       if ($tecnicoss != '0') {
           array_push($condiciones, 'concat(Usuario.nombre, " ", Usuario.apellido) like "%' . $tecnicoss . '%"');
            }
*/

debug($condiciones);       
       //fijarseee
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => $condiciones,
            'recursive' => 2,
            'fields' =>
    array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_prometido',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC', 'OrdenesReparacion.tipo' => 'DESC',
                  'OrdenesReparacion.fecha_prometido' => 'ASC')                
                )
        );
       
        debug($condiciones);
    $this->set(compact('data','fech2'));  
   }


function imprimirpnsfiltrotecnico ($fech1="",$fech2="",$areass="",$numeross="",$tiposs="",$clientess,$maquinass="",$desperfectoss="", $tecnicoss=""){
    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',

                        'foreignKey' => 'cliente_id')
            )
            )
        );

        $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Usuario' => array(
                        'className' => 'Usuario',
                        'foreignKey' => 'empleado_id')
            )
            )

  );

        $this->set('result',$this->OrdenesServicioBitacora->lista());
        $data=NULL;
    
         
     if(strlen($fech1)>1 && strlen($fech2)>1){
       if( strlen($maquinass)>1 ){
       $condiciones=array(
                'OrdenesReparacion.fecha between ? and ?' => array($fech1, $fech2), //'OrdenesReparacion.fecha_prometido between ? and ?' => array($fech1, $fech2), 
                'OrdenesReparacion.estado not like "%Confirmada%"',
                'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
                'OrdenesReparacion.tipo not like "%Garantia%"',
                'OrdenesReparacion.tipo not like "%Reparacion%"',
                'OrdenesReparacion.tipo not like "%Anulada%"',
                'OrdenesReparacion.estado not like "%Cancelada%"',
                'OrdenesReparacion.estado not like "%Pronta%"',
                'OrdenesReparacion.estado not like "%Retirada%"',
                'OrdenesReparacion.estado not like "%Retirada%"',
                'OrdenesReparacion.anulada <> 1',
                'OrdenesReparacion.cancelada <> 1',
            'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 
              'OrdenesReparacion.presupuesto is null'),       
            "OR"=>array(
            'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
            'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
            'Marca.marca like "%'.$maquinass.'%"'
            )
            );
      debug($condiciones);
       }
       else{
        $condiciones=array(
                'OrdenesReparacion.fecha between ? and ?' => array($fech1, $fech2), //'OrdenesReparacion.fecha_prometido between ? and ?' => array($fech1, $fech2), 
                'OrdenesReparacion.estado not like "%Confirmada%"',
                'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
                'OrdenesReparacion.tipo not like "%Garantia%"',
                'OrdenesReparacion.tipo not like "%Reparacion%"',
                'OrdenesReparacion.tipo not like "%Anulada%"',
                'OrdenesReparacion.estado not like "%Cancelada%"',
                'OrdenesReparacion.estado not like "%Pronta%"',
                'OrdenesReparacion.estado not like "%Retirada%"',
                'OrdenesReparacion.estado not like "%Retirada%"',
                'OrdenesReparacion.anulada <> 1',
                'OrdenesReparacion.cancelada <> 1',
                'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 
                  'OrdenesReparacion.presupuesto is null')
            ); 
      debug($condiciones);
       }
       }else{
       
       if( strlen($maquinass)>1 ){
       $condiciones=array(                
            'OrdenesReparacion.estado not like "%Confirmada%"',
            'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
            'OrdenesReparacion.tipo not like "%Garantia%"',
            'OrdenesReparacion.tipo not like "%Reparacion%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
            'OrdenesReparacion.estado not like "%Cancelada%"',
            'OrdenesReparacion.estado not like "%Pronta%"',
            'OrdenesReparacion.estado not like "%Retirada%"',
            'OrdenesReparacion.estado not like "%Retirada%"',
            'OrdenesReparacion.anulada <> 1',
            'OrdenesReparacion.cancelada <> 1',
            'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 
              'OrdenesReparacion.presupuesto is null'),
            "OR"=>array(
            'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
            'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
            'Marca.marca like "%'.$maquinass.'%"'
            )
            );
      debug($condiciones);
       }
       else{
        $condiciones=array(            
            'OrdenesReparacion.estado not like "%Confirmada%"',
            'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
            'OrdenesReparacion.tipo not like "%Garantia%"',
            'OrdenesReparacion.tipo not like "%Reparacion%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
            'OrdenesReparacion.estado not like "%Cancelada%"',
            'OrdenesReparacion.estado not like "%Pronta%"',
            'OrdenesReparacion.estado not like "%Retirada%"',
            'OrdenesReparacion.estado not like "%Retirada%"',
            'OrdenesReparacion.anulada <> 1',
            'OrdenesReparacion.cancelada <> 1',
            'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 
              'OrdenesReparacion.presupuesto is null')
            ); 
      debug($condiciones);
       }
     }
     
       if(strlen($areass)>1){
           array_push($condiciones,'Area.area like "'.$areass.'"');
       }
     
     if(strlen($numeross)>1){
       array_push($condiciones, 'OrdenesReparacion.numero like "%'.$numeross.'%"');
     }
     if(strlen($tiposs)>1){
       array_push($condiciones,'OrdenesReparacion.tipo like "%'.$tiposs.'%"');
     }
     if(strlen($clientess)>1){
       array_push($condiciones,'Cliente.nombre_apellido like "%'.$clientess.'%"');
     }
     if(strlen($desperfectoss)>1){
       array_push($condiciones,'OrdenesReparacion.desperfecto like "%'.desperfecto.'%"');
     }

       if ($tecnicoss != '0') {
           array_push($condiciones, 'concat(Usuario.nombre, " ", Usuario.apellido) like "%' . $tecnicoss . '%"');
            }


debug($condiciones);       
       //fijarseee
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => $condiciones,
            'recursive' => 2,
            'fields' =>
    array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_prometido',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC', 'OrdenesReparacion.tipo' => 'DESC',
                  'OrdenesReparacion.fecha_prometido' => 'ASC')                
                )
        );
       
        debug($condiciones);
    $this->set(compact('data','fech2'));  
   }




























     function imprimirpp($fech1="",$fech2="",$areass="",$numeross="",$tiposs="",$clientess,$maquinass="",$desperfectoss=""){
    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );

$this->OrdenesReparacion->bindModel(
    array('belongsTo' => array(
             'Usuario' => array(
                        'className' => 'Usuario',
                        'foreignKey' => 'empleado_id')
             )
            )            
        );

            $this->set('result',$this->OrdenesServicioBitacora->lista());
        $data=NULL;
    
         
     if(strlen($fech1)>1 && strlen($fech2)>1){
       if( strlen($maquinass)>1 ){
       $condiciones=array(
                'OrdenesReparacion.fecha between ? and ?' => array($fech1, $fech2), //'OrdenesReparacion.fecha_prometido between ? and ?' => array($fech1, $fech2), 
                'OrdenesReparacion.estado not like "%Confirmada%"',
                'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
                'OrdenesReparacion.tipo not like "%Garantia%"',
                'OrdenesReparacion.tipo not like "%Reparacion%"',
                'OrdenesReparacion.tipo not like "%Anulada%"',
                'OrdenesReparacion.estado not like "%Cancelada%"',
                'OrdenesReparacion.estado not like "%Pronta%"',
                'OrdenesReparacion.estado not like "%Retirada%"',
                'OrdenesReparacion.estado not like "%Retirada%"',
                'OrdenesReparacion.anulada <> 1',
                'OrdenesReparacion.cancelada <> 1',
            'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 
              'OrdenesReparacion.presupuesto is null'),       
            "OR"=>array(
            'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
            'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
            'Marca.marca like "%'.$maquinass.'%"'
            )
            );
      debug($condiciones);
       }
       else{
        $condiciones=array(
                'OrdenesReparacion.fecha between ? and ?' => array($fech1, $fech2), //'OrdenesReparacion.fecha_prometido between ? and ?' => array($fech1, $fech2), 
                'OrdenesReparacion.estado not like "%Confirmada%"',
                'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
                'OrdenesReparacion.tipo not like "%Garantia%"',
                'OrdenesReparacion.tipo not like "%Reparacion%"',
                'OrdenesReparacion.tipo not like "%Anulada%"',
                'OrdenesReparacion.estado not like "%Cancelada%"',
                'OrdenesReparacion.estado not like "%Pronta%"',
                'OrdenesReparacion.estado not like "%Retirada%"',
                'OrdenesReparacion.estado not like "%Retirada%"',
                'OrdenesReparacion.anulada <> 1',
                'OrdenesReparacion.cancelada <> 1',
                'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 
                  'OrdenesReparacion.presupuesto is null')
            ); 
      debug($condiciones);
       }
       }else{
       
       if( strlen($maquinass)>1 ){
       $condiciones=array(                
            'OrdenesReparacion.estado not like "%Confirmada%"',
            'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
            'OrdenesReparacion.tipo not like "%Garantia%"',
            'OrdenesReparacion.tipo not like "%Reparacion%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
            'OrdenesReparacion.estado not like "%Cancelada%"',
            'OrdenesReparacion.estado not like "%Pronta%"',
            'OrdenesReparacion.estado not like "%Retirada%"',
            'OrdenesReparacion.estado not like "%Retirada%"',
            'OrdenesReparacion.anulada <> 1',
            'OrdenesReparacion.cancelada <> 1',
            'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 
              'OrdenesReparacion.presupuesto is null'),
            "OR"=>array(
            'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
            'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
            'Marca.marca like "%'.$maquinass.'%"'
            )
            );
      debug($condiciones);
       }
       else{
        $condiciones=array(            
            'OrdenesReparacion.estado not like "%Confirmada%"',
            'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
            'OrdenesReparacion.tipo not like "%Garantia%"',
            'OrdenesReparacion.tipo not like "%Reparacion%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
            'OrdenesReparacion.estado not like "%Cancelada%"',
            'OrdenesReparacion.estado not like "%Pronta%"',
            'OrdenesReparacion.estado not like "%Retirada%"',
            'OrdenesReparacion.estado not like "%Retirada%"',
            'OrdenesReparacion.anulada <> 1',
            'OrdenesReparacion.cancelada <> 1',
            'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 
              'OrdenesReparacion.presupuesto is null')
            ); 
      debug($condiciones);
       }
     }
     
       if(strlen($areass)>1){
           array_push($condiciones,'Area.area like "'.$areass.'"');
       }
     
     if(strlen($numeross)>1){
       array_push($condiciones, 'OrdenesReparacion.numero like "%'.$numeross.'%"');
     }
     if(strlen($tiposs)>1){
       array_push($condiciones,'OrdenesReparacion.tipo like "%'.$tiposs.'%"');
     }
     if(strlen($clientess)>1){
       array_push($condiciones,'Cliente.nombre_apellido like "%'.$clientess.'%"');
     }
     if(strlen($desperfectoss)>1){
       array_push($condiciones,'OrdenesReparacion.desperfecto like "%'.$desperfecto.'%"');
     }
     
debug($condiciones);       
       //fijarseee
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => $condiciones,
            'recursive' => 2,
            'fields' =>
    array('OrdenesReparacion.id',
               'Usuario.nombre',
                'Usuario.apellido',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_prometido',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Usuario.nombre' => 'DESC', 'OrdenesReparacion.tipo' => 'DESC',
                  'OrdenesReparacion.fecha_prometido' => 'ASC')                
                )
        );
       
        debug($condiciones);
    $this->set(compact('data','fech2'));  
   }

   function imprimirt2($ids) {
       if (strlen($ids) > 0) {
            $this->set('data', $this->OrdenesReparacion->getListadoPorIds($ids));
       }
       
   }

   function imprimirt2ns($ids) {
       if (strlen($ids) > 0) {
            $this->set('data', $this->OrdenesReparacion->getListadoPorIds($ids));
       }
       
   }

   function excelt($fech1="",$fech2="",$areass="",$numeross="",$tiposs="",
    $clientess,$maquinass="",$presupuestoss="", $tecnicoss){
		$this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );
        $this->set('result',$this->OrdenesServicioBitacora->lista());
        $data=NULL;
		
	   	   
	   if(strlen($fech1)>1 && strlen($fech2)>1){
		   if( strlen($maquinass)>1 ){
       $condiciones=array(
                'OrdenesReparacion.fecha between ? and ?' => array($fech1, $fech2),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
					  'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',					                        
					  "OR"=>array(
					  'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
					  'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
					  'Marca.marca like "%'.$maquinass.'%"'
					  )
            );
			debug($condiciones);
		   }
		   else{
			  $condiciones=array(
                'OrdenesReparacion.fecha between ? and ?' => array($fech1, $fech2),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
					  'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',					                        
            ); 
			debug($condiciones);
		   }
       }else{
		   
		   if( strlen($maquinass)>1 ){
       $condiciones=array(                
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
					  'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',					                        
					  "OR"=>array(
					  'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
					  'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
					  'Marca.marca like "%'.$maquinass.'%"'
					  )
            );
			debug($condiciones);
		   }
		   else{
			  $condiciones=array(            
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
					  'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',					                        
            ); 
			debug($condiciones);
		   }
	   }
	   
       if(strlen($areass)>1){
           array_push($condiciones,'Area.area like "'.$areass.'"');
       }
       if ($tecnicoss > 0) {
           array_push($condiciones, 'OrdenesReparacion.empleado_id = ' . $tecnicoss . ' ');
       }
	   
	   if(strlen($numeross)>1){
		   array_push($condiciones, 'OrdenesReparacion.numero like "%'.$numeross.'%"');
	   }
	   if(strlen($tiposs)>1){
		   array_push($condiciones,'OrdenesReparacion.tipo like "%'.$tiposs.'%"');
	   }
	   if(strlen($clientess)>1){
		   array_push($condiciones,'Cliente.nombre_apellido like "%'.$clientess.'%"');
	   }
	   if(strlen($presupuestoss)>1){
		   array_push($condiciones,'OrdenesReparacion.presupuesto_taller like "%'.$presupuestoss.'%"');
	   }
	   
debug($condiciones);       
       //fijarseee
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => $condiciones,
            'recursive' => 2,
            'fields' =>
    array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC', 'OrdenesReparacion.tipo' => 'DESC','OrdenesReparacion.fecha_asignado' => 'ASC')
                
                )
        );

        App::import('Vendor', 'PHPExcel/Classes/PHPExcel');
        
    // Create new PHPExcel object
    $objPHPExcel = new PHPExcel();

    // Set document properties
    $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
                                ->setLastModifiedBy("Maarten Balliauw")
                                ->setTitle("Reporte de Trabajos de Ordenes Reparaciones")
                                ->setSubject("Garantias")
                                ->setDescription("Reporte de Trabajos en formato excel")
                                ->setKeywords("office 2007 openxml php")
                                ->setCategory("Archivo de salida de prueba");

    


    // Add some data
    $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue('A1', 'Orden')
                ->setCellValue('B1', 'Tipo')
                ->setCellValue('C1', 'Cliente')
                ->setCellValue('D1', 'Maquina Marca Modelo')
                ->setCellValue('E1', 'Presupuesto Taller')
                ->setCellValue('F1', 'P.E.')
                ->setCellValue('G1', 'Tecnico');
    $objPHPExcel->getActiveSheet()->getStyle("A1:G1")->getFont()->setBold(true);
                
    $i = 2;
                
    foreach ($data as $d) {                
        
        $maquina = "";
        if ($d['Marca']['marca'] == 'OTRA MARCA'){
            $maquina =  $d['OrdenesReparacion']['articulo'] ." ". $d['OrdenesReparacion']['detalle_marca']  ."  ". $d['OrdenesReparacion']['modelo'];
        } else {
            $maquina = $d['OrdenesReparacion']['articulo'] . " " . $d['Marca']['marca']  . "  " . $d['OrdenesReparacion']['modelo'];
        } 
        $interior = "";
        if ($d['OrdenesReparacion']['interior'] == 1) {
            $interior = "Interior";
        }

        $tecnico = $d['Usuario']['nombre'] . ' ' . $d['Usuario']['apellido'];

        $fecha = "";
        if (strlen($d['OrdenesReparacion']['fecha_asignado']) > 0 && $d['OrdenesReparacion']['fecha_asignado'] != "0000-00-00") {
            $t_year   = substr($d['OrdenesReparacion']['fecha_asignado'],0,4);
            $t_month  = substr($d['OrdenesReparacion']['fecha_asignado'],5,2);// Fixed problems with offsets
            $t_day    = substr($d['OrdenesReparacion']['fecha_asignado'],8,2);
            $fecha    = PHPExcel_Shared_Date::FormattedPHPToExcel($t_year, $t_month, $t_day);                        
        }        
        $numeroord = $d['OrdenesReparacion']['ser']. ' '. $d['OrdenesReparacion']['numero'];
        $presuptaller = $d['OrdenesReparacion']['desperfecto'] ." ** ". $d['OrdenesReparacion']['presupuesto_taller'];
        
        $objPHPExcel->setActiveSheetIndex(0)
                    ->setCellValue('A' . $i, $numeroord)
                    ->setCellValue('B' . $i, $d['OrdenesReparacion']['tipo'])
                    ->setCellValue('C' . $i, $d['Cliente']['nombre_apellido'])
                    ->setCellValue('D' . $i, $maquina . ' ' . $interior)
                    ->setCellValue('E' . $i, $presuptaller)
                    ->setCellValue('F' . $i, $fecha)
                    ->setCellValue('G' . $i, $tecnico);
                    $objPHPExcel->getActiveSheet()
                                ->getStyle('F' . $i)
                                ->getNumberFormat()
                                ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);
        $i++;                                             
    }

    foreach(range('A','G') as $columnID) {
        $objPHPExcel->getActiveSheet()
                    ->getColumnDimension($columnID)
                    ->setAutoSize(true);
    }
    // Set active sheet index to the first sheet, so Excel opens this as the first sheet
    $objPHPExcel->setActiveSheetIndex(0);   
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');            
    $objWriter->save('files/trabajos_' . date('d_m_Y') . '.xlsx');
	$this->redirect('/files/trabajos_' . date('d_m_Y') . '.xlsx');

       
   }

    function imprimirt($fech1="",$fech2="",$areass="",$numeross="",$tiposs="",
    $clientess,$maquinass="",$presupuestoss="", $tecnicoss=""){
		$this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );


        $this->set('result',$this->OrdenesServicioBitacora->lista());
        $data=NULL;
		
	   	   
	   if(strlen($fech1)>1 && strlen($fech2)>1){
		   if( strlen($maquinass)>1 ){
       $condiciones=array(
                'OrdenesReparacion.fecha between ? and ?' => array($fech1, $fech2),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
					  'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',					                        
					  "OR"=>array(
					  'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
					  'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
					  'Marca.marca like "%'.$maquinass.'%"'
					  )
            );
			debug($condiciones);
		   }
		   else{
			  $condiciones=array(
                'OrdenesReparacion.fecha between ? and ?' => array($fech1, $fech2),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
					  'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',					                        
            ); 
			debug($condiciones);
		   }
       }else{
		   
		   if( strlen($maquinass)>1 ){
       $condiciones=array(        
           'OrdenesReparacion.fecha between ? and ?' => array('2015-09-25', date('Y-m-d')),        
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
					  'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',					                        
					  "OR"=>array(
					  'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
					  'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
					  'Marca.marca like "%'.$maquinass.'%"'
					  )
            );
			debug($condiciones);
		   }
		   else{
			  $condiciones=array(     
                  'OrdenesReparacion.fecha between ? and ?' => array('2015-09-25', date('Y-m-d')),       
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
					  'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',					                        
            ); 
			debug($condiciones);
		   }
	   }
	   
       if(strlen($areass)>1){
           array_push($condiciones,'Area.area like "'.$areass.'"');
       }
       if ($tecnicoss > 0) {
           array_push($condiciones, 'OrdenesReparacion.empleado_id = ' . $tecnicoss . ' ');
       }
	   
	   if(strlen($numeross)>1){
		   array_push($condiciones, 'OrdenesReparacion.numero like "%'.$numeross.'%"');
	   }
	   if(strlen($tiposs)>1){
		   array_push($condiciones,'OrdenesReparacion.tipo like "%'.$tiposs.'%"');
	   }
	   if(strlen($clientess)>1){
		   array_push($condiciones,'Cliente.nombre_apellido like "%'.$clientess.'%"');
	   }
	   if(strlen($presupuestoss)>1){
		   array_push($condiciones,'OrdenesReparacion.presupuesto_taller like "%'.$presupuestoss.'%"');
	   }
	  
      

debug($condiciones);       
       //fijarseee
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => $condiciones,
            'recursive' => 2,
            'fields' =>
    array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.cant_llamados',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC', 'OrdenesReparacion.tipo' => 'DESC','OrdenesReparacion.fecha_asignado' => 'ASC')
                
                )
        );
       
       	debug($condiciones);
		$this->set(compact('data','fech2'));	
   }


 function imprimirtfiltrotecnico ($fech1="",$fech2="",$areass="",$numeross="",$tiposs="",
    $clientess,$maquinass="",$presupuestoss="", $tecnicoss=""){
        $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );

         $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Usuario' => array(
                        'className' => 'Usuario',
                        'foreignKey' => 'empleado_id')
            )
            )

  );



        $this->set('result',$this->OrdenesServicioBitacora->lista());
        $data=NULL;
        
           
       if(strlen($fech1)>1 && strlen($fech2)>1){
           if( strlen($maquinass)>1 ){
       $condiciones=array(
                'OrdenesReparacion.fecha between ? and ?' => array($fech1, $fech2),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
                      'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',                                           
                      "OR"=>array(
                      'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
                      'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
                      'Marca.marca like "%'.$maquinass.'%"'
                      )
            );
            debug($condiciones);
           }
           else{
              $condiciones=array(
                'OrdenesReparacion.fecha between ? and ?' => array($fech1, $fech2),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
                      'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',                                           
            ); 
            debug($condiciones);
           }
       }else{
           
           if( strlen($maquinass)>1 ){
       $condiciones=array(                
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
                      'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',                                           
                      "OR"=>array(
                      'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
                      'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
                      'Marca.marca like "%'.$maquinass.'%"'
                      )
            );
            debug($condiciones);
           }
           else{
              $condiciones=array(            
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
                      'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',                                           
            ); 
            debug($condiciones);
           }
       }
       
       if(strlen($areass)>1){
           array_push($condiciones,'Area.area like "'.$areass.'"');
       }
       if ($tecnicoss > 0) {
           array_push($condiciones, 'OrdenesReparacion.empleado_id = ' . $tecnicoss . ' ');
       }
       
       if(strlen($numeross)>1){
           array_push($condiciones, 'OrdenesReparacion.numero like "%'.$numeross.'%"');
       }
       if(strlen($tiposs)>1){
           array_push($condiciones,'OrdenesReparacion.tipo like "%'.$tiposs.'%"');
       }
       if(strlen($clientess)>1){
           array_push($condiciones,'Cliente.nombre_apellido like "%'.$clientess.'%"');
       }
       if(strlen($presupuestoss)>1){
           array_push($condiciones,'OrdenesReparacion.presupuesto_taller like "%'.$presupuestoss.'%"');
       }
      
       if ($tecnicoss != '0') {
           array_push($condiciones, 'concat(Usuario.nombre, " ", Usuario.apellido) like "%' . $tecnicoss . '%"');
            }


debug($condiciones);       
       //fijarseee
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => $condiciones,
            'recursive' => 2,
            'fields' =>
    array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC', 'OrdenesReparacion.tipo' => 'DESC','OrdenesReparacion.fecha_asignado' => 'ASC')
                
                )
        );
       
        debug($condiciones);
        $this->set(compact('data','fech2'));    
   }



 function imprimirtconsep($fech1="",$fech2="",$areass="",$numeross="",$tiposs="",     // pm agrega 7/9/17
    $clientess,$maquinass="",$presupuestoss="", $tecnicoss){
        $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );
        $this->set('result',$this->OrdenesServicioBitacora->lista());
        $data=NULL;
        
           
       if(strlen($fech1)>1 && strlen($fech2)>1){
           if( strlen($maquinass)>1 ){
       $condiciones=array(
                'OrdenesReparacion.fecha between ? and ?' => array($fech1, $fech2),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
                      'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',                                           
                      "OR"=>array(
                      'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
                      'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
                      'Marca.marca like "%'.$maquinass.'%"'
                      )
            );
            debug($condiciones);
           }
           else{
              $condiciones=array(
                'OrdenesReparacion.fecha between ? and ?' => array($fech1, $fech2),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
                      'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',                                           
            ); 
            debug($condiciones);
           }
       }else{
           
           if( strlen($maquinass)>1 ){
       $condiciones=array(                
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
                      'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',                                           
                      "OR"=>array(
                      'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
                      'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
                      'Marca.marca like "%'.$maquinass.'%"'
                      )
            );
            debug($condiciones);
           }
           else{
              $condiciones=array(            
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
                      'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',                                           
            ); 
            //debug($condiciones);
           }
       }
       
       if(strlen($areass)>1){
           array_push($condiciones,'Area.area like "'.$areass.'"');
       }
       if ($tecnicoss > 0) {
           array_push($condiciones, 'OrdenesReparacion.empleado_id = ' . $tecnicoss . ' ');
       }
       
       if(strlen($numeross)>1){
           array_push($condiciones, 'OrdenesReparacion.numero like "%'.$numeross.'%"');
       }
       if(strlen($tiposs)>1){
           array_push($condiciones,'OrdenesReparacion.tipo like "%'.$tiposs.'%"');
       }
       if(strlen($clientess)>1){
           array_push($condiciones,'Cliente.nombre_apellido like "%'.$clientess.'%"');
       }
       if(strlen($presupuestoss)>1){
           array_push($condiciones,'OrdenesReparacion.presupuesto_taller like "%'.$presupuestoss.'%"');
       }


         if ($tecnicoss != '0') {
           array_push($condiciones, 'concat(Usuario.nombre, " ", Usuario.apellido) like "%' . $tecnicoss . '%"');
            }
       
//debug($condiciones);       
       //fijarseee
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => $condiciones,
            'recursive' => 2,
            'fields' =>
    array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC', 'OrdenesReparacion.tipo' => 'DESC','OrdenesReparacion.fecha_asignado' => 'ASC')
                
                )
        );
       
        //debug($condiciones);
        $this->set(compact('data','fech2'));    
   }


 function imprimirtns($fech1="",$fech2="",$areass="",$numeross="",$tiposs="",
    $clientess,$maquinass="",$presupuestoss="", $tecnicoss){
		$this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );
        $this->set('result',$this->OrdenesServicioBitacora->lista());
        $data=NULL;
		
	   	   
	   if(strlen($fech1)>1 && strlen($fech2)>1){
		   if( strlen($maquinass)>1 ){
       $condiciones=array(
                'OrdenesReparacion.fecha between ? and ?' => array($fech1, $fech2),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
					  'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',					                        
					  "OR"=>array(
					  'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
					  'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
					  'Marca.marca like "%'.$maquinass.'%"'
					  )
            );
			debug($condiciones);
		   }
		   else{
			  $condiciones=array(
                'OrdenesReparacion.fecha between ? and ?' => array($fech1, $fech2),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
					  'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',					                        
            ); 
			debug($condiciones);
		   }
       }else{
		   
		   if( strlen($maquinass)>1 ){
       $condiciones=array(                
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
					  'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',					                        
					  "OR"=>array(
					  'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
					  'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
					  'Marca.marca like "%'.$maquinass.'%"'
					  )
            );
			debug($condiciones);
		   }
		   else{
			  $condiciones=array(            
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
					  'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',					                        
            ); 
			debug($condiciones);
		   }
	   }
	   
       if(strlen($areass)>1){
           array_push($condiciones,'Area.area like "'.$areass.'"');
       }
       if ($tecnicoss > 0) {
           array_push($condiciones, 'OrdenesReparacion.empleado_id = ' . $tecnicoss . ' ');
       }
	   
	   if(strlen($numeross)>1){
		   array_push($condiciones, 'OrdenesReparacion.numero like "%'.$numeross.'%"');
	   }
	   if(strlen($tiposs)>1){
		   array_push($condiciones,'OrdenesReparacion.tipo like "%'.$tiposs.'%"');
	   }
	   if(strlen($clientess)>1){
		   array_push($condiciones,'Cliente.nombre_apellido like "%'.$clientess.'%"');
	   }
	   if(strlen($presupuestoss)>1){
		   array_push($condiciones,'OrdenesReparacion.presupuesto_taller like "%'.$presupuestoss.'%"');
	   }
	   
debug($condiciones);       
       //fijarseee
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => $condiciones,
            'recursive' => 2,
            'fields' =>
    array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC', 'OrdenesReparacion.tipo' => 'DESC','OrdenesReparacion.fecha_asignado' => 'ASC')
                
                )
        );
       
       	debug($condiciones);
		$this->set(compact('data','fech2'));	
   }


function imprimirtpp($fech1="",$fech2="",$areass="",$numeross="",$tiposs="",$clientess,$maquinass="",$presupuestoss=""){
    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );
 $this->OrdenesReparacion->bindModel(
    array('belongsTo' => array(
             'Usuario' => array(
                        'className' => 'Usuario',
                        'foreignKey' => 'empleado_id')
             )
            )            
        );
 $data=NULL;
   $consulta = "select OrdenesReparacion.id,OrdenesReparacion.fecha, OrdenesReparacion.numero, OrdenesReparacion.articulo, OrdenesReparacion.modelo, OrdenesReparacion.estado, OrdenesReparacion.desperfecto, OrdenesReparacion.cant_llamados, OrdenesReparacion.tipo, OrdenesReparacion.ser, OrdenesReparacion.presupuesto_taller, OrdenesReparacion.observaciones, OrdenesReparacion.detalle_marca, OrdenesReparacion.fecha_asignado, OrdenesReparacion.alerta, OrdenesReparacion.fecha_prometido,Usuario.*, Marca.*, Cliente.*, Area.*  
        from ordenes_reparaciones OrdenesReparacion left join 
        usuarios Usuario on OrdenesReparacion.empleado_id = Usuario.id 
        join clientes Cliente on OrdenesReparacion.cliente_id = Cliente.id  
        join areas Area on (OrdenesReparacion.area_id = Area.id) 
        join marcas Marca on (OrdenesReparacion.marca_id = Marca.id)
        where OrdenesReparacion.fecha >= '2015-09-25' 
        and  OrdenesReparacion.estado not in ('Pronta', 'Retirada', 'Cancelada', 'Anulada') 
        and OrdenesReparacion.tipo not in ('Anulada') and OrdenesReparacion.anulada <> 1 
        and OrdenesReparacion.cancelada <> 1 and (OrdenesReparacion.estado in ('Confirmada') or (OrdenesReparacion.tipo 
        not in ('Confirmada', 'GarantiaPendiente', 'Garantia', 'Reparacion') 
        and (OrdenesReparacion.presupuesto like '0000-00-00' or OrdenesReparacion.presupuesto is null))) 
        order by Usuario.nombre desc" ;
        
        $data = $this->OrdenesReparacion->query($consulta);


        $consulta="select u.id, u.nombre, u.apellido from usuarios u where u.area_id=18";
        $res=$this->OrdenesReparacion->query($consulta);
        $tmp=array();
        //debug($res);
        
    $this->set(compact('data','fech2'));  
   }

    function imprimirc($fech1="",$fech2="",$areass="",$numeross="",$tiposs="",$clientess,$maquinass="",$presupuestoss="",$areass2="",$tiposs2=""){
    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );
        $this->set('result',$this->OrdenesServicioBitacora->lista());
        $data=NULL;
    
         
     if(strlen($fech1)>1 && strlen($fech2)>1){
       if( strlen($maquinass)>1 ){
        if($tiposs2=="0"){
       $condiciones=array(
                'OrdenesReparacion.confirmada between ? and ?' => array($fech1, $fech2),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',                                 
                      'OrdenesReparacion.presupuesto_taller <> ""',                                 
            "OR"=>array(
            'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
            'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
            'Marca.marca like "%'.$maquinass.'%"'
            )
            );
     }
     if($tiposs2=="1"){
       $condiciones=array(
                'OrdenesReparacion.confirmada between ? and ?' => array($fech1, $fech2),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',                                 
                      'OrdenesReparacion.presupuesto_taller = ""',                                 
            "OR"=>array(
            'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
            'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
            'Marca.marca like "%'.$maquinass.'%"'
            )
            );
     }
     if($tiposs2=="2"){
       $condiciones=array(
                'OrdenesReparacion.confirmada between ? and ?' => array($fech1, $fech2),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',                                               
            "OR"=>array(
            'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
            'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
            'Marca.marca like "%'.$maquinass.'%"'
            )
            );
     }
      debug($condiciones);
       }
       else{
        if($tiposs2=="0"){
        $condiciones=array(
                'OrdenesReparacion.confirmada between ? and ?' => array($fech1, $fech2),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',                                 
                      'OrdenesReparacion.presupuesto_taller <> ""',                                 
            ); 
    }
    if($tiposs2=="1"){
$condiciones=array(
                'OrdenesReparacion.confirmada between ? and ?' => array($fech1, $fech2),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',                                 
                      'OrdenesReparacion.presupuesto_taller = ""',                                 
            ); 
    }
    if($tiposs2=="2"){
     $condiciones=array(
                'OrdenesReparacion.confirmada between ? and ?' => array($fech1, $fech2),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',                                               
            );  
    }
      debug($condiciones);
       }
       }else{
       
       if( strlen($maquinass)>1 ){
        if($tiposs2=="0"){
       $condiciones=array(                
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',                                 
                      'OrdenesReparacion.presupuesto_taller <> ""',                                 
            "OR"=>array(
            'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
            'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
            'Marca.marca like "%'.$maquinass.'%"'
            )
            );
     }
     if($tiposs2=="1"){
       $condiciones=array(                
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',                                 
                      'OrdenesReparacion.presupuesto_taller = ""',                                 
            "OR"=>array(
            'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
            'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
            'Marca.marca like "%'.$maquinass.'%"'
            )
            );
     }
     if($tiposs2=="2"){
       $condiciones=array(                
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',                                                       
            "OR"=>array(
            'OrdenesReparacion.modelo like "%'.$maquinass.'%"',
            'OrdenesReparacion.articulo like "%'.$maquinass.'%"',
            'Marca.marca like "%'.$maquinass.'%"'
            )
            );
     }
      debug($condiciones);
       }
       else{
        if($tiposs2=="0"){
        $condiciones=array(            
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',                                 
                      'OrdenesReparacion.presupuesto_taller <> ""',                                 
            ); 
      }
      if($tiposs2=="1"){
       $condiciones=array(            
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',                                 
                      'OrdenesReparacion.presupuesto_taller = ""',                                 
            );  
      }
      if($tiposs2=="2"){
       $condiciones=array(            
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',                                                      
            );  
      }
      debug($condiciones);
       }
     }
     
       if(strlen($areass)>1){
           array_push($condiciones,'Area.area like "'.$areass.'"');
       }
     
     if(strlen($numeross)>1){
       array_push($condiciones, 'OrdenesReparacion.numero like "%'.$numeross.'%"');
     }
     if(strlen($tiposs)>1){
       array_push($condiciones,'OrdenesReparacion.tipo like "%'.$tiposs.'%"');
     }
     if(strlen($clientess)>1){
       array_push($condiciones,'Cliente.nombre_apellido like "%'.$clientess.'%"');
     }
     if(strlen($presupuestoss)>1){
       array_push($condiciones,'OrdenesReparacion.presupuesto_taller like "%'.$presupuestoss.'%"');
     }
     if(strlen($areass2)>1){
      array_push($condiciones,'Area.area like "%'.$areass2.'%"');
     }
     
debug($condiciones);       
       //fijarseee
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => $condiciones,
            'recursive' => 2,
            'fields' =>
    array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('OrdenesReparacion.tipo' => 'DESC','OrdenesReparacion.fecha_asignado' => 'ASC')
                
                )
        );
       
        debug($condiciones);
    $this->set(compact('data','fech2'));  
   }
    
    
    
    function preciocero($textobuscar = "") {

        if (isset($_POST["data"]) && $_POST["data"] !== "") {
            $textobuscar = $_POST["data"]["textobuscar"];
            $this->set(compact('textobuscar'));
        }
        $desde = date('d/m/Y',strtotime('-2 months')); // pm cambia 9.5.2015
        $hasta = date('d/m/Y');


	$this->OrdenesReparacion->bindModel(
		array('belongsTo' => array(
			 'Cliente' => array(
            			'className' => 'Cliente',
            			'foreignKey' => 'cliente_id')
			)
			)
		);


        $data = $this->OrdenesReparacion->find('all', array('conditions' => array('OrdenesReparacion.fecha between ? and ?' => array($desde, $hasta),
        'OrdenesReparacion.estado in ("Confirmada","Pronta")',
        "OR"=>
        array('OrdenesReparacion.precio_asignado = 0 ','OrdenesReparacion.precio_asignado is NULL')),
            'order' => 'OrdenesReparacion.fecha DESC',
            'fields' => array('OrdenesReparacion.id', 'OrdenesReparacion.fecha','OrdenesReparacion.detalle_marca', 'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo', 'OrdenesReparacion.estado', 'OrdenesReparacion.desperfecto', 'OrdenesReparacion.tipo', 'Cliente.nombre_apellido')));
       
        $this->set(compact('data'));
        $this->set(compact('imprimir'));

        $this->set(compact('desde', 'hasta'));       
    }
    
/*function presupuestos() {


    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );


$consulta="select a.id, a.area from areas a where a.Derivar=1";
        $res=$this->OrdenesReparacion->query($consulta);
        $tmp=array();
        //debug($res);
        foreach($res as $r){            
        $tmp[$r['a']['id']]=$r['a']['area'];
        }

        //$this->layout = 'ajax';
        $data = $this->OrdenesReparacion->find('all', array(
            'conditions' => array(
'OrdenesReparacion.estado not like "%Confirmada%"',
'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
'OrdenesReparacion.tipo not like "%Garantia%"',
'OrdenesReparacion.tipo not like "%Reparacion%"',
'OrdenesReparacion.tipo not like "%Anulada%"',
'OrdenesReparacion.estado not like "%Cancelada%"',
'OrdenesReparacion.estado not like "%Pronta%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.anulada <> 1',
'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 'OrdenesReparacion.presupuesto is null'),
),
            'recursive' => 2,
            'fields' => array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.fecha_prometido',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC' )
                ));


        $this->set(compact('data','tmp'));
    }*/
    
    
	 function buscar2()
        {
            $this->layout = 'ajax';
            $this->set('resultados',$this->OrdenesReparacion->_buscar2($this->request->query['term']));
        }	

        function getFechaRecep($orden_compra_id) {
            $recep=$this->OrdenesReparacion->query("select a.fecha from 
            ordenes_recepciones a where a.orden_compra_id=" . $orden_compra_id);
            if (! empty($recep[0]['a']['fecha'])) {
                return $recep[0]['a']['fecha'];
            }
            return "&nbsp;";


        }

    function beforeRender() {
        
        parent::beforeRender();
        if ($this->action == "edit") {
            $this->set('empleados',$this->OrdenesReparacion->getEmpleados());
        } else if($this->action == "add") {
            $this->set('empleados', $this->OrdenesReparacion->getEmpleadosVigentes());
        }
        
$this->set('result2',$this->OrdenesServicioBitacora->lista());


        if (($this->action == 'add') or ( $this->action == 'edit')) {
            $this->set('tiene17', false);
            $this->set('tiene18', false);
            $this->set('tiene19', false);

            if ($this->action == 'edit') {
                $this->set('tiene17', $this->OrdenesReparacion->tieneAccion($this->data['OrdenesReparacion']['id'], 17));
                $this->set('tiene18', $this->OrdenesReparacion->tieneAccion($this->data['OrdenesReparacion']['id'], 18));
                if ($this->OrdenesReparacion->tieneAccion($this->data['OrdenesReparacion']['id'], 19) 
                || $this->OrdenesReparacion->tieneAccion($this->data['OrdenesReparacion']['id'], 20)) {
                    $this->set('tiene19', true);
                }
                

                /*
                $this->set("repuestos", $this->OrdenesReparacionDetalle->query("SELECT rep.id, 
                rep.orden_reparacion_id, rep.palabra_id, rep.cantidad, 
                pal.palabra FROM ordenes_reparaciones_detalles rep 
                INNER JOIN palabras pal WHERE rep.orden_reparacion_id='" 
                . $this->data['OrdenesReparacion']['id'] . "' AND rep.palabra_id = pal.id"));
                */
                        $this->AjustesDetalle->bindModel(
		array('belongsTo' => array(
			 'Articulo' => array(
            			'className' => 'Articulo',
            			'foreignKey' => 'articulo_id')
			)
			)
		);
                
                $data5 = $this->AjustesDetalle->find('all', array(
              'fields' => array('AjustesDetalle.id',
                                'AjustesDetalle.ajuste_id',                                
                                'AjustesDetalle.articulo_id',
                                'AjustesDetalle.cantidad',
                                'AjustesDetalle.orden_id',
                                'AjustesDetalle.observaciones',                                
                                ),  
                    'order' => array('AjustesDetalle.id' => 'DESC' ),
              'recursive' => 2,
              'conditions' => array('AjustesDetalle.orden_id' => 
              $this->data['OrdenesReparacion']['numero'] )));
		
		
            $this->set('data5',$data5);   
$provs=$this->OrdenesReparacion->query("select a.id,a.nombre from proveedores a");
$temps=array();

foreach ($provs as $p) {
  $temps[$p['a']['id']]=$p['a']['nombre'];
}


$this->set('temps',$temps);
             

$mon=$this->Moneda->find('all');
        $data4 = $this->OrdenesCompraDetalle->find('all', array(
              'fields' => array('OrdenesCompraDetalle.id',
                                'OrdenesCompraDetalle.orden_compra_id',
                                'OrdenesCompraDetalle.tipo_documento',
                                'OrdenesCompraDetalle.articulo_id',
                                'OrdenesCompraDetalle.cantidad',
                                'OrdenesCompraDetalle.monto',
                                'OrdenesCompraDetalle.descuento',
                                'OrdenesCompraDetalle.documento_numero'
                                ),
              'order' => array( 'OrdenesCompraDetalle.id' => 'DESC'),
              'recursive' => 2,
              'conditions' => array('OrdenesCompraDetalle.tipo_documento' => 'OR', 
              'OrdenesCompraDetalle.documento_numero'=> $this->data['OrdenesReparacion']['numero'] )));

              

	$this->set('mon',$mon);
        $this->set('data4',$data4);
            
            }

            $this->set('estados', $this->OrdenesReparacion->ESTADOS_ORDENES_REPARACION);
            $this->set('tipos', $this->OrdenesReparacion->TIPO_ORDENES_REPARACION);            
            $this->set('derivadas', $this->Area->derivadas());
            $this->set('tiposenvio', $this->OrdenesReparacion->getTipo_Envio());
            $this->set('tiposentrega', $this->OrdenesReparacion->getEntrega()); // pm agrega 29.7
            $this->set('subtalleres', $this->Proveedor->getSubtalleres());            
            $this->set('marcas', $this->Marca->todas());
            $this->set('importadas', $this->Marca->importadas());
            $this->set('tramontina', $this->Marca->tramontina());
            if (!(isset($this->data['OrdenesReparacion']['empleado_id']))) {
                if (!(isset($this->data['OrdenesReparacion']['area_id']))) {
                    $area = 1;
                } else {
                    $area = $this->data['OrdenesReparacion']['area_id'];
                }
                //     $empleados = $this->Empleado->lista($area); //pm 5.5
            } else {
                $loc = $this->Empleado->findById($this->data['OrdenesReparacion']['area_id']);
                $area = $loc['Empleado']['area_id'];
                //  $empleados = $this->Empleado->lista($area); 5.5
            }
            
            if(isset($this->data['OrdenesReparacion']['cliente_id'])){
            $cli = $this->Cliente->find('first', array('conditions' => 
            array('Cliente.id' => $this->data['OrdenesReparacion']['cliente_id']),
                    'fields' => array('Cliente.id, Cliente.nombre_apellido, Cliente.direccion, 
                    Cliente.email,  Cliente.telefono_particular, 
                    Localidad.localidad, Cliente.celular ')));
                    
                $this->set('cliente', array("nombre" => $cli['Cliente']['nombre_apellido'],
                    "id" => $cli['Cliente']['id'],
                    "direccion" => $cli['Cliente']['direccion'],
                    "tel" => $cli['Cliente']['telefono_particular'],
                    "cel" => $cli['Cliente']['celular'],
                    "correo" => $cli['Cliente']['email']));
            }

            $this->set('area', $area);

        }

        if ($this->action == 'add') {

            $this->set('estado', 'Ingresada');
            $this->set('mitipo', '');
            $this->set('interior', 0);
            if(!isset($this->data['OrdenesReparacion']['cliente_id'])){
            $this->set('cliente', "");
            }
            $this->set('marca', "");
			$numero = $this->OrdenesReparacion->getNumerador("numerador_reparaciones");
			$this->OrdenesReparacion->setNumerador("numerador_reparaciones", $numero);
            $this->set('numero', $numero);
            
            

            $impri = true;  // pm 26.2.2015
            if (isset($this->request->params['pass'][0])) {
                $cli = $this->Cliente->find('first', array('conditions' => array('Cliente.id' => $this->request->params['pass'][0]),
                    'fields' => array('Cliente.id, Cliente.nombre_apellido,Cliente.direccion, Cliente.email,  Cliente.telefono_particular, Localidad.localidad, Cliente.celular ')));
                    
                $this->set('cliente', array("nombre" => $cli['Cliente']['nombre_apellido'],
                    "id" => $cli['Cliente']['id'],
                    "direccion" => $cli['Cliente']['direccion'],
                    "tel" => $cli['Cliente']['telefono_particular'],
                    "cel" => $cli['Cliente']['celular'],
                    "correo" => $cli['Cliente']['email']));
            }
            
            if (isset($this->request->params['pass'][0]) && $this->request->params['pass'][0] == "0" && isset($this->request->params['pass'][1])){
                $ord = $this->OrdenesReparacion->find('first', 
                array('conditions' => array('OrdenesReparacion.id' => $this->request->params['pass'][1]),
                'fields' => array(
                    'OrdenesReparacion.cliente_id', 
                    'OrdenesReparacion.articulo',
                    'OrdenesReparacion.modelo', 
                    'OrdenesReparacion.marca_id', 
                    'OrdenesReparacion.detalle_marca',
                    'OrdenesReparacion.fecha_compra',
                    'OrdenesReparacion.lugar_compra',
                    'OrdenesReparacion.nro_comprobante',
                    'OrdenesReparacion.importador',
                    'OrdenesReparacion.area_id',
                    'OrdenesReparacion.empleado_id'                                        
                                )
                    )
                );
                    $cli = $this->Cliente->find('first', array('conditions' => array('Cliente.id' => 
                    $ord['OrdenesReparacion']['cliente_id']),
                    'fields' => array('Cliente.id, Cliente.nombre_apellido, 
                    Cliente.direccion, Cliente.email, Cliente.telefono_particular, 
                    Localidad.localidad, Cliente.celular ')));
                    if (strlen($ord['OrdenesReparacion']['nro_comprobante']) > 0) {

                        $this->set('cliente', array(
                        "nombre" =>    $cli['Cliente']['nombre_apellido'],
                        "id" =>        $cli['Cliente']['id'],
                        "direccion" => $cli['Cliente']['direccion'],
                        "tel" =>       $cli['Cliente']['telefono_particular'],
                        "cel" =>       $cli['Cliente']['celular'],
                        "correo" =>    $cli['Cliente']['email']
                                                    )
                        );
                        $this->set('mitipo', 'Garantia');
                        $valor_aux = 'AG';      
                        if ($ord['OrdenesReparacion']['empleado_id'] > 0) {
                            $this->set('ordenes', 
                            array(
                            'articulo' =>    $ord['OrdenesReparacion']['articulo'],
                            'marca' =>       $ord['OrdenesReparacion']['marca_id'],
                            'modelo' =>      $ord['OrdenesReparacion']['modelo'],
                            'detalle' =>     $ord['OrdenesReparacion']['detalle_marca'],
                            'fecha' =>       $ord['OrdenesReparacion']['fecha_compra'],
                            'lugar' =>       $ord['OrdenesReparacion']['lugar_compra'],
                            'comprobante' => $ord['OrdenesReparacion']['nro_comprobante'],
                            'importador' =>  $ord['OrdenesReparacion']['importador'],
                            'derivada' =>    $ord['OrdenesReparacion']['area_id'],
                            'destino' =>     $valor_aux,
                            'empleado_id' => $ord['OrdenesReparacion']['empleado_id']                                             
                            ));
                        } else {
                            $this->set('ordenes', 
                            array(
                            'articulo' =>    $ord['OrdenesReparacion']['articulo'],
                            'marca' =>       $ord['OrdenesReparacion']['marca_id'],
                            'modelo' =>      $ord['OrdenesReparacion']['modelo'],
                            'detalle' =>     $ord['OrdenesReparacion']['detalle_marca'],
                            'fecha' =>       $ord['OrdenesReparacion']['fecha_compra'],
                            'lugar' =>       $ord['OrdenesReparacion']['lugar_compra'],
                            'comprobante' => $ord['OrdenesReparacion']['nro_comprobante'],
                            'importador' =>  $ord['OrdenesReparacion']['importador'],
                            'derivada' =>    $ord['OrdenesReparacion']['area_id'],
                            'destino' =>     $valor_aux,
                            'empleado_id' => 48                                                                               
                            ));
                        }                                                         
                                            
                        $this->OrdenesReparacion->setReingreso($this->request->params['pass'][1], $ord['OrdenesReparacion']['nro_comprobante']);
                        $this->Session->write('reingreso',1);
                    }
            }
// pm agrega
            $sql_ultimo = " SELECT id "   // pm agrega esto del utlimo 20.5.2015 estaba solo ene l edit sino
                    . " FROM ordenes_reparaciones "
                    . " ORDER BY id DESC LIMIT 0,1 ";
            $ultimoID = $this->OrdenesReparacion->query($sql_ultimo);
            $this->set("ultimo_id", $ultimoID[0]["ordenes_reparaciones"]["id"]);
        } else
        if ($this->action == 'edit') {
            $this->set('asign',$this->data['OrdenesReparacion']['fecha_asignado']);
            $this->set('numero', $this->data['OrdenesReparacion']['numero']);		
            $this->set('empleado',$this->data['OrdenesReparacion']['empleado_id']);
            App::import('Model', 'OrdenesServicioBitacora');
            
            $val = new OrdenesServicioBitacora();
            $valores=$val->find('all',array('fields'=>array('id_orden','fecha','id_usuario'), 'conditions'=>array('id_orden'=>$this->data['OrdenesReparacion']['id']),'order'=>array( 'fecha desc'),'limit'=>1));
            $fechas=date("Y-m-d H:i:s");
           /* if ($fechas < date('Y-m-d H:i:s',strtotime( $valores['0']['OrdenesServicioBitacora']['fecha']." +3 minutes" )) && $fechas> $valores['0']['OrdenesServicioBitacora']['fecha'] ){
                if(!$this->Session->check('estados')){
            App::import('Model','Usuario');
            $usu=new Usuario();
            $login=$usu->find('all',array('conditions'=>array('Usuario.id'=>$valores['0']['OrdenesServicioBitacora']['id_usuario']),'fields'=>array('usuario'),'limit'=>1));    
                $this->Session->setFlash('el usuario '.$login['0']['Usuario']['usuario'].' ya esta usando la orden #'.$this->data['OrdenesReparacion']['numero'] ,'messages/red');                                
                $this->redirect('neutro');
                }
                $this->Session->delete('estados');                
            }*/  
            $this->set('valores',$valores);
            if (!isset($this->request->params['pass'][1])) {
                $usuario = CakeSession::read('Usuario');
                if ($usuario['Usuario']['id'] != 1) {
                    $aud = new OrdenesServicioBitacora();
                    $aud->create();
                    $datosAud = array();
                    $datosAud['fecha'] = date("Y-m-d H:i:s");
                    $datosAud['id_usuario'] = $usuario['Usuario']['id'];
                    $datosAud['id_accion'] = 10;
                    $datosAud['comentarios'] = 'SE CONSULTÓ LA ORDEN ';
                    $datosAud['id_orden'] = $this->data['OrdenesReparacion']['id'];           
                    $aud->save($datosAud);    
                }             
              
            }
            

            // Added Diego.
            // Consultar Ordenres IDS: proximo y anterior
            $sql_proximo = " SELECT id "
                    . " FROM ordenes_reparaciones "
                    . " WHERE numero = "
                    . " (select MIN(numero) FROM ordenes_reparaciones WHERE numero >  "
                    . " (select numero FROM ordenes_reparaciones WHERE id = '" . $this->data['OrdenesReparacion']['id'] . "') "
                    . " )  ";
            $proximo = $this->OrdenesReparacion->query($sql_proximo);
            $this->set("proximo_id", $proximo[0]["ordenes_reparaciones"]["id"]);

            $sql_anterior = " SELECT id "
                    . " FROM ordenes_reparaciones "
                    . " WHERE numero = "
                    . " (select MAX(numero) FROM ordenes_reparaciones WHERE numero <  "
                    . " (select numero FROM ordenes_reparaciones WHERE id = '" . $this->data['OrdenesReparacion']['id'] . "') "
                    . " )  ";

            $anterior = $this->OrdenesReparacion->query($sql_anterior);
            $this->set("anterior_id", $anterior[0]["ordenes_reparaciones"]["id"]);
            $sql_ultimo = " SELECT id "
                    . " FROM ordenes_reparaciones "
                    . " ORDER BY id DESC LIMIT 0,1 ";
            $ultimoID = $this->OrdenesReparacion->query($sql_ultimo);
            $this->set("ultimo_id", $ultimoID[0]["ordenes_reparaciones"]["id"]);




            $this->set("familia", $this->Articulo->query("SELECT * FROM articulos art WHERE art.nombre='" . $this->data["OrdenesReparacion"]["articulo"] . "'"));
            $this->set("fam", $this->data["OrdenesReparacion"]["articulo"]);
            // Se almacena el id en un lugar mas azequible
            $id = $this->data['OrdenesReparacion']['id'];
            /*               SE CARGAN LOS DATOS PARA los envios de interior.       */
            //if ($this->data['OrdenesReparacion']['interior']) {
            $osi = $this->OrdenesServicioInterior->find('first', array('fields' => '*',
                'conditions' => array('OrdenesServicioInterior.orden_reparacion_id' => $id),
                'order' => 'OrdenesServicioInterior.orden_reparacion_id'
            ));
            $this->set('datosInterior', $osi);
            //}
            //if ($this->data['OrdenesReparacion']['area_id'] == 10) {
// pm consigo la info de usuario de alta 22.4.2015
            $usualt = $this->OrdenesServicioBitacora->getUsuarioAlta($this->data['OrdenesReparacion']['id']);
            $this->set('usualta', $usualt);

// pm consigo la info de usuario de alta 22.4.2015

            $sub = $this->OrdenesSubtaller->getIdSubtaller($this->data['OrdenesReparacion']['id']);
            if (! empty($sub[0]['ordenes_subtaller']['id_subtaller'])) {
                $this->set('id_subtaller', $sub[0]['ordenes_subtaller']['id_subtaller']);
            }
            //}

            $this->set('mitipo', $this->data['OrdenesReparacion']['tipo']);
            if (in_array($this->data['OrdenesReparacion']['tipo'], array("Garantia", "GarantiaPropia", "GarantiaTramontina"))  
            && strlen($this->data['OrdenesReparacion']['nro_comprobante']) > 0) {                
                $reingresos = $this->OrdenesReparacion->getReingresos($this->data['OrdenesReparacion']['id'], $this->data['OrdenesReparacion']['nro_comprobante']);
                debug($reingresos);
                if ($reingresos != false) {
                    //si tiene reingresos mandamos la variable al scaffold
                    $this->set('reingresos', $reingresos);
                }
            }
            /* seteo de interior */
            $this->set('interior', $this->data['OrdenesReparacion']['interior']);
            $this->set('aplicapresup', $this->data['OrdenesReparacion']['aplicapresup']);  // pm agrega hoy 21.04.2016

            /* Se buscan os datos del cliente. */
            $c = $this->Cliente->find('first', array('conditions' => array('Cliente.id' => $this->data['OrdenesReparacion']['cliente_id']),
                'fields' => array('Cliente.id, Cliente.nombre_apellido,Cliente.direccion, Cliente.email,  Cliente.telefono_particular, Localidad.localidad, Cliente.celular ')));

            /* lo que sea esto.. */
            $aviso = $this->Cliente->getAviso($this->data['OrdenesReparacion']['cliente_id']);

            // $avisoord = $this->data['OrdenesReparacion']['observaciones'];
            $avisoord = $this->data['OrdenesReparacion']['alerta']; // pm 19.5.2015 en vez de observaciones pongo alerta
            $alerta   = $this->data['OrdenesReparacion']['alerta'];

            $aplicapresup = $this->data['OrdenesReparacion']['aplicapresup']; // pm 21.4.2016
            $presupc = $this->data['OrdenesReparacion']['aplicapresup']; // pm 21.4.2016

            //$this->set('cliente', $c['Cliente']['nombre_apellido'] . "*     " . $c['Cliente']['telefono_particular'] . "*     " . $c['Cliente']['email'] . "*     " . $c['Cliente']['direccion'] . "*     " . $c['Localidad']['localidad']);
            $this->set('cliente', array("nombre" => $c['Cliente']['nombre_apellido'],
                "direccion" => $c['Cliente']['direccion'],
                "tel" => $c['Cliente']['telefono_particular'],
                "cel" => $c['Cliente']['celular'],
                "correo" => $c['Cliente']['email']));
            $m = $this->Marca->find('first', array('conditions' => array('Marca.id' => $this->data['OrdenesReparacion']['marca_id']), 'fields' => array('Marca.marca')));
            $this->set('marca', $m['Marca']['marca']);
            $this->set("marca_id", $this->data['OrdenesReparacion']['marca_id']);
            //$this->data['OrdenesReparacion']['marcass']=$m['Marca']['marca'];
            // se cargan los registros de las auditorias.
            $this->set('bitacora', $this->OrdenesServicioBitacora->getBitacorasPorServicio($this->data['OrdenesReparacion']['id']));

            // pm agrega 13.4.2015
            $this->set('estado_orden', $this->data['OrdenesReparacion']['estado']);
            $this->set('presup_cliente', $this->data['OrdenesReparacion']['presup_cliente']);
            // pm agrega 13.4.2015

            $this->set('historial', $this->OrdenesServicioBitacora->getBitacorasPorServicioOrdenInverso($this->data['OrdenesReparacion']['id']));
            //$this->set('auditorias', $this->OrdenesReparacion->getAuditorias($this->data['OrdenesReparacion']['id']));
            // $this->set('articulos_taller', $this->articulos_taller()); pm 5.5

            $this->set('aviso', $aviso);
            $this->set('avisoord', $avisoord);
            $this->set('alerta', $alerta); // added Diego
            $this->set('presupc', $presupc); // pm 21.4.2016
        }

        $this->OrdenesReparacion->session = $this->session;
        return true;
    }

    function afterScaffoldSave($metodo) {
        
        if(isset($this->data['OrdenesReparacion']['guardando'])){
            if( $this->data['OrdenesReparacion']['guardando']==10) {
                $this->Session->setFlash('Se actualizo correctamente la orden.', 'messages/green');
                $this->redirect('/ComprobantesVentas/add/1112/'.$this->data['OrdenesReparacion']['id']);
            }
            if( $this->data['OrdenesReparacion']['guardando']==30) {
                $this->Session->setFlash('Se actualizo correctamente la orden.', 'messages/green');
                $this->redirect('/ComprobantesVentas/add/1111/'.$this->data['OrdenesReparacion']['id']);
            }
        }
  if ($this->action == "add") {
            if(isset($this->data['OrdenesReparacion']['guardando']) && $this->data['OrdenesReparacion']['guardando']==1){
                
                if ($this->Session->check('reingreso') && strlen($this->data['OrdenesReparacion']['nro_comprobante']) > 0) {                                        
                    $this->OrdenesReparacion->setReingreso($this->OrdenesReparacion->getInsertID(), $this->data['OrdenesReparacion']['nro_comprobante']);
                    $this->Session->delete('reingreso');                    
                }
                if (strlen($this->OrdenesReparacion->mensaje) > 0) {
                    $this->Session->setFlash($this->OrdenesReparacion->mensaje, 'messages/green');
                } else {


        /*pm 16.3.2018*/
            $datac=$this->data['OrdenesReparacion']['cliente_id'];
      
        //para el cliente fivisa, que tiene el mail mchaves se envia automaticmane talon x mail al guardar orden  {

        if (in_array($datac, array(64343,59587,19009,19011,19012,19014,19015,19016,19018,62443,19019,19013,19017,66097))) {

            $this->redirect('/OrdenesReparaciones/talonxmail/' . $this->OrdenesReparacion->getInsertID());
                
        }

        /*pm 16.3.2018*/

                    $this->Session->setFlash("Orden #".$this->data['OrdenesReparacion']['numero'] ." almacenada correctamente", "messages/green");
                  
     
                }   
                
                                
                //
            $this->redirect('/OrdenesReparaciones/edit/'.$this->OrdenesReparacion->getInsertID());    


                     
            }else{

            if ($this->data['OrdenesReparacion']['aplicapresup'] == 1 ) {
               $this->redirect('/OrdenesReparaciones/indexedit2talones/'.$this->OrdenesReparacion->getInsertID());  // pm agrega 26.2.2015  este es el imprimir que sirve///////////////////////////////////
            }

            if ($this->data['OrdenesReparacion']['aplicapresup'] == 0 ) {
               $this->redirect('/OrdenesReparaciones/indexedit/'.$this->OrdenesReparacion->getInsertID());  // pm agrega 26.2.2015  este es el imprimir que sirve///////////////////////////////////
            }

           
            }

            return false ;
            } 


// pm agrega 22.7
      /*  echo $imprimotalon;
        if($imprimotalon == 1){
                $orden = $this->OrdenesReparacion->findById($this->data['OrdenesReparacion']['id']);
                $this->redirect('/OrdenesReparaciones/indexretirogarantia/'.$this->data['OrdenesReparacion']['id']);
                }*/
// pm agrega 22.7

        if ($this->action == "edit") {

          /*
            if (($this->data['OrdenesReparacion']['tipo'] == 'Garantia' || $this->data['OrdenesReparacion']['tipo'] == 'Alquiler')  && $this->data['OrdenesReparacion']['estado']!=='Retirada' 
            && $this->data['OrdenesReparacion']['estado']!=='Pronta') {
                $this->OrdenesReparacion->read(null, $this->data['OrdenesReparacion']['id']);
                if ($this->OrdenesReparacion->data['OrdenesReparacion']['estado'] !== 'Retirada' && $this->OrdenesReparacion->data['OrdenesReparacion']['estado'] !== 'Pronta') {                 
                    $this->OrdenesReparacion->set('estado', 'Confirmada');
                    $this->OrdenesReparacion->set('idusuarioa',1);//no importa quien haga este update es logica de negocio.                
                    $this->OrdenesReparacion->save();
                }
            }*/


	    $this->Session->setFlash('Se actualizo correctamente la orden #'.$this->data['OrdenesReparacion']['numero'], 'messages/green');
	   /* if ($this->Session->check('talong')) {
	      if ($this->Session->read('talong') == 1) {
                $orden = $this->OrdenesReparacion->findById($this->data['OrdenesReparacion']['id']);
                $this->Session->write('talong',0);
                $this->Session->delete('talong');
                $usuario = CakeSession::read('Usuario');
                if ($usuario['Usuario']['id'] != 6) {
                    $this->redirect('/OrdenesReparaciones/indexretirogarantia/'.$this->data['OrdenesReparacion']['id']);    
                }                
          }
        }*/
	    
            // $this->redirect('/OrdenesReparaciones/edit/' . $this->data['OrdenesReparacion']['id'] . '#taller');
            $this->redirect('/OrdenesReparaciones/neutro/');  // pm lleva al neutro 19.5.2015
              
        } else {
            return true;
        }
    }
  function neutro($imprimir = 0, $id = 0) {  // pm agrega 23.6.2015


            $sql_ultimo = " SELECT id "
                    . " FROM ordenes_reparaciones "
                    . " ORDER BY id DESC LIMIT 0,1 ";
            $ultimoID = $this->OrdenesReparacion->query($sql_ultimo);
            
          $sql_ultimos= "SELECT a.id, a.fecha, a.ser, a.numero, c.nombre_apellido, a.estado, a.tipo, a.articulo, a.precio_asignado, a.retirada, a.pronta, a.precio, a.confirmada, d.marca, a.modelo, a.fecha_prometido, a.fecha_asignado, a.presupuesto, a.cant_llamados
FROM (
(
(
(

SELECT DISTINCT id_orden
FROM (

SELECT * 
FROM `ordenes_servicio_bitacora` 
ORDER BY id_bitacora DESC 
)e
LIMIT 10 
)b
LEFT JOIN ordenes_reparaciones a ON b.id_orden = a.id
)
LEFT JOIN clientes c ON a.cliente_id = c.id
)
LEFT JOIN marcas d ON a.marca_id = d.id
)

";


            $this->set("ultimos",$this->OrdenesReparacion->query($sql_ultimos));
            $this->set("ultimo_id", $ultimoID[0]["ordenes_reparaciones"]["id"]);
            $this->set("imprimir", $imprimir);
            $this->set("id", $id);

$this->set('result2',$this->OrdenesServicioBitacora->lista());
    }
    
    
    function oserv(){ 
        $this->set('data',$this->OrdenesReparacion->getInterior());
    }


       function reclamadas(){   // ordenes reclamadas por el cliente PM 27.3.17
        $this->set('data',$this->OrdenesReparacion->getReclamadas());
    }


    function sinoc(){   // ordenes sin ordenes de compra asociadas PM 3.4.2017
        $this->set('data',$this->OrdenesReparacion->getSinOCompra());
    }


    function otrosDatos() {
        $this->OrdenesReparacion->read(null, $this->data['OrdenesReparacion']['id']);
        $this->OrdenesReparacion->set('destino', $this->data['OrdenesReparacion']['destino']);
        $this->OrdenesReparacion->save();
        $this->Session->setFlash('El destino se guard&oacute; satisfactoriamente', 'messages/green');
        $this->redirect('/OrdenesReparaciones/edit/' . $this->data['OrdenesReparacion']['id'] . '#&otros');
    }

    function interior() {
        $this->OrdenesReparacion->read(null, $this->data['OrdenesReparacion']['id']);
        $this->OrdenesReparacion->set('tipo_envio', $this->data['OrdenesReparacion']['tipo_envio']);

        if ($this->data['OrdenesReparacion']['tipo_envio'] == "") {
            $this->OrdenesReparacion->set('fecha_envio', "");
        } else {
            $this->OrdenesReparacion->set('fecha_envio', $this->OrdenesReparacion->formatoFechaBeforeSave($this->data['OrdenesReparacion']['fecha_envio']));
        }

        $this->OrdenesReparacion->set('nro_remito', $this->data['OrdenesReparacion']['nro_remito']);
        $this->OrdenesReparacion->set('recibido_por', $this->data['OrdenesReparacion']['recibido_por']);
        $this->OrdenesReparacion->set('interior', $this->data['OrdenesReparacion']['interior']);  //pm agrega  23.6
        $this->OrdenesReparacion->set('vino_por', $this->data['OrdenesReparacion']['vino_por']);   //pm agrega  23.6
        $this->OrdenesReparacion->set('tipo_envio', $this->data['OrdenesReparacion']['tipo_envio']);  //pm agrega  23.6
        $this->OrdenesReparacion->set('cant_llamados', $this->data['OrdenesReparacion']['cant_llamados']);  //pm agrega  23.6
        $this->OrdenesReparacion->set('observaciones_envio', $this->data['OrdenesReparacion']['observaciones_envio']);
        $this->OrdenesReparacion->set('alerta', $this->data['OrdenesReparacion']['alerta']); // added Diego
        $this->OrdenesReparacion->save();
        $this->Session->setFlash('El env&iacute;o se guard&oacute; satisfactoriamente', 'messages/green');

        $this->redirect('/OrdenesReparaciones/edit/' . $this->data['OrdenesReparacion']['id'] . '#&interior');
    }

    function presupuesto() {

        $this->OrdenesReparacion->read(null, $this->data['OrdenesReparacion']['id']);

        $this->OrdenesReparacion->set('area _id', $this->data['OrdenesReparacion']['area_id']);
        $this->OrdenesReparacion->set('empleado_id', null);
        $this->OrdenesReparacion->set('empleado_nombre', null);
        if ($this->data['OrdenesReparacion']['area_id'] == 5) {
            $this->OrdenesReparacion->set('empleado_id', $this->data['OrdenesReparacion']['empleado_id']);
        } else {
            $this->OrdenesReparacion->set('empleado_nombre', $this->data['OrdenesReparacion']['empleado_nombre']);
        }
        $this->OrdenesReparacion->set('fecha_asignado', implode('-', array_reverse(explode('/', $this->data['OrdenesReparacion']['fecha_asignado']))));
        $this->OrdenesReparacion->set('comentarios', $this->data['OrdenesReparacion']['comentarios']);
        $this->OrdenesReparacion->set('tipo_mano_obras_id', $this->data['OrdenesReparacion']['tipo_mano_obras_id']);
        $this->OrdenesReparacion->set('cantidad_horas', $this->data['OrdenesReparacion']['cantidad_horas']);
        $this->OrdenesReparacion->set('otros_costos_id', $this->data['OrdenesReparacion']['otros_costos_id']);
        $this->OrdenesReparacion->set('porcentaje_ganancia', str_replace("%", "", $this->data['OrdenesReparacion']['porcentaje_ganancia']));
        $this->OrdenesReparacion->set('monto', $this->data['OrdenesReparacion']['monto']);

        // COMIENZO CON EL DETALLE DE ARTICULOS
        $cantidad = sizeof($this->data['OrdenesReparacionDetalle']) / 4;
        $i = 0;
        $aux = array();
        $articulos = array();
        while ($i < sizeof($this->data['OrdenesReparacionDetalle'])) {
            $aux[] = array('id' => $this->data['OrdenesReparacionDetalle'][$i]['id'],
                'orden_reparacion_id' => $this->data['OrdenesReparacion']['id'],
                'articulo_id' => $this->data['OrdenesReparacionDetalle'][$i + 1]['articulo'],
                'cantidad' => $this->data['OrdenesReparacionDetalle'][$i + 2]['cantidad'],
                'monto' => $this->data['OrdenesReparacionDetalle'][$i + 3]['monto'],
                'subtotal' => $this->data['OrdenesReparacionDetalle'][$i + 3]['monto'] * $this->data['OrdenesReparacionDetalle'][$i + 2]['cantidad']
            );

            if ($this->data['OrdenesReparacionDetalle'][$i + 2]['cantidad'] != -1)
                $articulos[] = $this->data['OrdenesReparacionDetalle'][$i + 1]['articulo'];
            $i = $i + 4;
        }

        // articulos repetidos
        if (sizeof($articulos) == sizeof(array_count_values($articulos))) {
            //Transaction
            $this->OrdenesReparacion->begin();
            $save = true;

            if (!$this->OrdenesReparacion->save())
                $save = false;

            //Detalle
            foreach ($aux as $detalle) {
                if ($detalle['cantidad'] == -1) {
                    if (!$this->OrdenesReparacionDetalle->delete($detalle['id']))
                        $save = false;
                }
                else {
                    $this->OrdenesReparacionDetalle->id = ($detalle['id'] == "") ? null : $detalle['id'];
                    unset($detalle['id']);
                    if (!$this->OrdenesReparacionDetalle->save($detalle))
                        $save = false;
                }
            }

            if ($save) {
                $this->OrdenesReparacion->commit();
                $this->Session->setFlash('El presupuesto se guard&oacute; satisfactoriamente', 'messages/green');
            } else {
                $this->OrdenesReparacion->rollback();
                $this->Session->setFlash('Complete los campos.', 'messages/red');
            }
        } else
            $this->Session->setFlash('Existen art&iacute;culos repetidos.', 'messages/red');


        $this->redirect('/OrdenesReparaciones/edit/' . $this->data['OrdenesReparacion']['id'] . '#&taller');
    }

    function index($textobuscar = "") {
        

        //    $desde = date('01/03/2015');
        // Si se llama a index con un parametro para buscar, (desde el scafold)
        // definimos esa busqueda en una variable para que javascript la cargue al form
        // y haga un trigger de ajax con la busqueda
        if (isset($_POST["data"]) && $_POST["data"] !== "") {
            $textobuscar = $_POST["data"]["textobuscar"];
            $this->set(compact('textobuscar'));
        }
        $desde = date('d/m/Y'); // pm cambia 9.5.2015
        $hasta = date('d/m/Y');

$this->set('result',$this->OrdenesServicioBitacora->lista());
	$this->OrdenesReparacion->bindModel(
		array('belongsTo' => array(
			 'Cliente' => array(
            			'className' => 'Cliente',
            			'foreignKey' => 'cliente_id')
			)
			)
		);


        $data = $this->OrdenesReparacion->find('all', array('conditions' => array('OrdenesReparacion.fecha between ? and ?' => array($desde, $hasta)),
            'order' => 'OrdenesReparacion.fecha DESC',
            'fields' => array('OrdenesReparacion.id','OrdenesReparacion.cancelada', 'OrdenesReparacion.factura_id','OrdenesReparacion.fecha','OrdenesReparacion.detalle_marca', 'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo', 'OrdenesReparacion.interior', 'OrdenesReparacion.estado', 'OrdenesReparacion.desperfecto', 'OrdenesReparacion.tipo', 'Cliente.nombre_apellido')));

        // $data = $this->paginate('OrdenesReparacion');  pm comenta 5.5.2015
        $this->set(compact('data'));
        $this->set(compact('imprimir'));

        $this->set(compact('desde', 'hasta'));
        // pm agrega 02.04.2015
        //    $ordenpendiente = $this->OrdenesReparacion->Find('first', array('conditions' => array('OrdenesReparacion.estado' => "ingresada"), 'fields' => array('OrdenesReparacion.fecha'),'order'=>'OrdenesReparacion.fecha ASC',));
        //    $desde = $ordenpendiente['OrdenesReparacion']['fecha'];
        // pm agrega 02.04.2015
    }                

    function getMarcas($tipo, $id, $accion) {
        $this->set('marcas', $this->Marca->todas());
        $this->set('importadas', $this->Marca->importadas());
        $this->set('tramontina', $this->Marca->tramontina());
        $this->set('tipo', $tipo);
        $this->set('id', $id);
        $this->set('accion', $accion);
    }   
        
     function general($textobuscar = "",$dashboard="") {
if ($textobuscar == 0) {
    $textobuscar = "";
}
         if(! empty($dashboard)) {
             $this->set('dashboard', $dashboard);
         }
        $excluido = array();        
        $excluido['0'] = "Ninguno";
        $excluido['1'] = "Fundicion";
        $excluido['2'] = "AG";
        $excluido['3'] = "FG";
        $this->set('excluido', $excluido);
        $this->set('usuarios', $this->OrdenesReparacion->getEmpleados());  
        $this->set('usuarios2', $this->OrdenesReparacion->getEmpleadosCompletos());        // pm agrega 8/11/16
        //    $desde = date('01/03/2015');
        // Si se llama a index con un parametro para buscar, (desde el scafold)
        // definimos esa busqueda en una variable para que javascript la cargue al form
        // y haga un trigger de ajax con la busqueda
        if (isset($_POST["data"]) && $_POST["data"] !== "") {
            $textobuscar = $_POST["data"]["textobuscar"];
            $this->set(compact('textobuscar'));
        }
        $presup=array();
        $presup['0']="Todos";
        $presup['1']="Con Presupuesto";
        $presup['2']="Sin Presupuesto";

        $costopresup=array();
        $costopresup['0']="Todos";
        $costopresup['1']="Con Costo";
        $costopresup['2']="Sin Costo";

            $fechass=array();
        /*Fecha Entrada
Fecha Confirmada
Fecha Pronta
Fecha Retirada
Fecha Prometida Entrega
        */
  $consulta = ' select id,marca from marcas order by marca';
        $res = $this->Marca->query($consulta);

$consulta5="select a.id, a.area from areas a where a.Derivar=1";
        $res5=$this->OrdenesReparacion->query($consulta5);
        $tmp5=array();
        //debug($res);
        $tmp5['0'] = "Todas";
        foreach($res5 as $r){            
        $tmp5[$r['a']['id']]=$r['a']['area'];
        }

     
$marcass=array();
$marcass['0']="Todas";
foreach ($res as $r) {
  $marcass[$r['marcas']['id']] = $r['marcas']['marca'];
}
		$estadoss=array();
		$estadoss['0']="Todos";
		$estadoss['1']="Ingresada";
		$estadoss['2']="Presupuesto";
		$estadoss['3']="Confirmada";
		$estadoss['4']="Cancelada";
		$estadoss['5']="Pronta";
		$estadoss['6']="Retirada";
		
        $fechass['0']="Entrada";
        $fechass['1']="Confirmada";
		$fechass['2']="Pronta";		
        $fechass['3']="Retirada";
        $fechass['4']="Prometida Entrega";
        $fechass['5']="Presupuesto";
        $fechass['6']="Prometido Presupuesto";
        $consultat="select distinct a.tipo from ordenes_reparaciones a where a.tipo<>''";
        $tipos2=$this->OrdenesReparacion->TIPO_ORDENES_REPARACION;
        $tiposs=array();
        $tiposs['0']="Todos";
        $indicet=1;

foreach($tipos2 as $t2 => $d){
    $tiposs[$indicet] = $t2;
    $indicet++;
}

$precioss=array();
$precioss['0']="Todas";
$precioss['1']="Sin Precio";
$precioss['2']="Con Precio";
$precioss['3']="Con Precio 0";
$confirmadass=array();
$confirmadass['0']="Todas";
$confirmadass['1']="Sin Confirmar";
$confirmadass['2']="Confirmadas";
$confirmadass['3']="Rechazadas";
$prontass=array();
$prontass['0']="Todas";
$prontass['1']="Prontas";
$prontass['2']="No Prontas";
$retiradass=array();
$retiradass['0']="Todas";
$retiradass['1']="Retiradas";
$retiradass['2']="No Retiradas";
$interiores=array();
$interiores['0']="Todas";
$interiores['1']="Capital";
$interiores['2']="Interior";
$facturass=array();
$facturass['0']="Todas";
$facturass['1']="No Facturadas";
$facturass['2']="Facturadas";
    
        
        $desde = date('d/m/Y'); // pm cambia 9.5.2015
        $hasta = date('d/m/Y');
        if(! empty($dashboard)) {
            if ($dashboard == "ordeneshoy") {
                $desde = date('d/m/Y'); // pm cambia 9.5.2015
                $hasta = date('d/m/Y');
            } elseif ($dashboard == "ordenesmes") {
                $desde = date('01/m/Y'); // pm cambia 9.5.2015
                $hasta = date('d/m/Y');
            } elseif ($dashboard == "confirmadas") {
                $desde = date('d/m/Y'); // pm cambia 9.5.2015
                $hasta = date('d/m/Y');
                $this->set('tipo_fecha', 1);
                $this->set('conf', 2);
                $this->set('pront', 2);  // pm 3.10.17
                $this->set('reti', 2);   // pm 3.10.17


            } elseif ($dashboard == "prontas") {
                $desde = date('d/m/Y'); // pm cambia 9.5.2015
                $hasta = date('d/m/Y');
                $this->set('tipo_fecha', 2);
                $this->set('conf', 2);
 
            } elseif ($dashboard == "presupuestosprontos") {   // pm agrega 24.10.17
                $desde = date('d/m/Y'); 
                $hasta = date('d/m/Y');
                $this->set('tipo_fecha', 5);
                $this->set('conf', 0);

            } elseif ($dashboard == "prontassr") {
                //$desde = date('25/09/2015'); // pm cambia 9.5.2015
                
                $desde = date('d/m/Y', strtotime('-3 months')); // pm cambia  18.5.2019
                $hasta = date('d/m/Y');
                $this->set('pront', 1);
                $this->set('reti', 2);
                $this->set('conf', 2);
                $this->set('factu',1);

            } elseif ($dashboard == "garantiapendiente")  {
                $desde = date('25/09/2015'); // pm cambia 9.5.2015
                $hasta = date('d/m/Y');
                $this->set('pront', 2);
                $this->set('tipoesp', 2);
            } elseif ($dashboard == "trabajosp") {
                $desde = date('d/m/Y'); // pm cambia 9.5.2015
                $hasta = date('d/m/Y');                
                $this->set('tipo_fecha', 4);
                $this->set('conf', 2);
            } elseif ($dashboard == "presupuestosp") {
                $desde = date('d/m/Y'); // pm cambia 9.5.2015
                $hasta = date('d/m/Y');      

                $this->set('tipo_fecha', 6);
            } elseif ($dashboard == "atrasadot") {
                $this->set('conf', 2);
                $this->set('pront', 2);
                $this->set('reti', 2);
                $desde = date('d/m/Y', strtotime('-6 months')); // pm cambia 9.5.2015  // pm cambia el 24.10.17
                $hasta = date('d/m/Y', strtotime('-1 days'));
                $this->set('tipo_fecha', 4);   

            } elseif ($dashboard == "sinprecio") {
                $this->set('conf', 1);
                $this->set('tipoesp', 0);
                $this->set('presupu', 1);
                $this->set('reti', 2);
                $this->set('preci', 1);
                $this->set('factu', 1);
                $desde = date('d/m/Y', strtotime('-3 MONTH'));
                $hasta = date('d/m/Y');
               
            } elseif ($dashboard == "atrasadop") {                
                $desde = date('d/m/Y', strtotime('-6 months')); // pm cambia 9.5.2015 //pm cambia 24.10.17
                $hasta = date('d/m/Y', strtotime('-1 day'));
                $this->set('tipo_fecha', 6);
                $this->set('pront', 2);
                $this->set('reti', 2);
                $this->set('conf', 1);
                $this->set('presupu', 2);
                $this->set('preci', 1);
            }
        }
        

$this->set('result',$this->OrdenesServicioBitacora->lista());
	$this->OrdenesReparacion->bindModel(
		array('belongsTo' => array(
			 'Cliente' => array(
            			'className' => 'Cliente',
            			'foreignKey' => 'cliente_id')
			)
			)
		);


        $data = $this->OrdenesReparacion->find('all', array('conditions' => array('OrdenesReparacion.fecha between ? and ?' => array($desde, $hasta),'OrdenesReparacion.estado not like "%Retirada%"',
        'OrdenesReparacion.cancelada <>1','OrdenesReparacion.anulada <> 1'),
            'order' => 'OrdenesReparacion.numero ASC',
            'fields' => array('OrdenesReparacion.id','OrdenesReparacion.cancelada', 'OrdenesReparacion.factura_id','OrdenesReparacion.fecha','OrdenesReparacion.detalle_marca', 'OrdenesReparacion.articulo','Area.area',
                'OrdenesReparacion.modelo', 'OrdenesReparacion.interior', 'OrdenesReparacion.estado', 'OrdenesReparacion.desperfecto', 'OrdenesReparacion.tipo', 'Cliente.nombre_apellido','OrdenesReparacion.lugar_compra')));

        // $data = $this->paginate('OrdenesReparacion');  pm comenta 5.5.2015
        $this->set(compact('data'));
        $this->set(compact('imprimir','tipos2'));

        $this->set(compact('desde', 'hasta','fechass','precioss','confirmadass','prontass','retiradass','interiores','facturass','tiposs','estadoss','presup','costopresup','marcass','tmp5'));
        // pm agrega 02.04.2015
        //    $ordenpendiente = $this->OrdenesReparacion->Find('first', array('conditions' => array('OrdenesReparacion.estado' => "ingresada"), 'fields' => array('OrdenesReparacion.fecha'),'order'=>'OrdenesReparacion.fecha ASC',));
        //    $desde = $ordenpendiente['OrdenesReparacion']['fecha'];
        // pm agrega 02.04.2015
    } 
    
     function garantia($textobuscar = "") {

        //    $desde = date('01/03/2015');
        // Si se llama a index con un parametro para buscar, (desde el scafold)
        // definimos esa busqueda en una variable para que javascript la cargue al form
        // y haga un trigger de ajax con la busqueda
        if (isset($_POST["data"]) && $_POST["data"] !== "") {
            $textobuscar = $_POST["data"]["textobuscar"];
            $this->set(compact('textobuscar'));
        }
        $presup=array();
        $presup['0']="Todos";
        $presup['1']="Con Presupuesto";
        $presup['2']="Sin Presupuesto";
            $fechass=array();
        /*Fecha Entrada
Fecha Confirmada
Fecha Pronta
Fecha Retirada
Fecha Prometida Entrega
        */
  $consulta = ' select id,marca from marcas order by marca';
        $res = $this->Marca->query($consulta);
     
$marcass=array();
$marcass['0']="Todas";
foreach ($res as $r) {
  $marcass[$r['marcas']['id']] = $r['marcas']['marca'];
}
    $estadoss=array();
    $estadoss['0']="Todos";
    $estadoss['1']="Ingresada";
    $estadoss['2']="Presupuesto";
    $estadoss['3']="Confirmada";
    $estadoss['4']="Cancelada";
    $estadoss['5']="Pronta";
    $estadoss['6']="Retirada";
    
        $fechass['0']="Entrada";
        $fechass['1']="Confirmada";
    $fechass['2']="Pronta";   
        $fechass['3']="Retirada";
        $fechass['4']="Prometida Entrega";
        $fechass['5']="Presupuesto";
        $consultat="select distinct a.tipo from ordenes_reparaciones a where a.tipo<>''";
        $tipos2=$this->OrdenesReparacion->query($consultat);
        $tiposs=array();
        $tiposs['0']="Todos";
        $indicet=1;
    //$tiposs['1']=$tipos2['0']['a']['tipo'];
foreach($tipos2 as $t2){
    $tiposs[$indicet]=$t2['a']['tipo'];
    $indicet++;
}
$precioss=array();
$precioss['0']="Todas";
$precioss['1']="Sin Precio";
$precioss['2']="Con Precio";
$precioss['3']="Con Precio 0";
$confirmadass=array();
$confirmadass['0']="Todas";
$confirmadass['1']="Sin Confirmar";
$confirmadass['2']="Confirmadas";
$confirmadass['3']="Rechazadas";
$prontass=array();
$prontass['0']="Todas";
$prontass['1']="Prontas";
$prontass['2']="No Prontas";
$retiradass=array();
$retiradass['0']="Todas";
$retiradass['1']="Retiradas";
$retiradass['2']="No Retiradas";
$interiores=array();
$interiores['0']="Todas";
$interiores['1']="Capital";
$interiores['2']="Interior";
$facturass=array();
$facturass['0']="Todas";
$facturass['1']="No Facturadas";
$facturass['2']="Facturadas";
    
        
        $desde = date('d/m/Y'); // pm cambia 9.5.2015
        $hasta = date('d/m/Y');

$this->set('result',$this->OrdenesServicioBitacora->lista());
  $this->OrdenesReparacion->bindModel(
    array('belongsTo' => array(
       'Cliente' => array(
                  'className' => 'Cliente',
                  'foreignKey' => 'cliente_id')
      )
      )
    );

        $data = $this->OrdenesReparacion->find('all', array('conditions' => array('OrdenesReparacion.fecha between ? and ?' => array($desde, $hasta),'OrdenesReparacion.estado not like "%Retirada%"',
        'OrdenesReparacion.cancelada <>1','OrdenesReparacion.anulada <> 1'),
            'order' => 'OrdenesReparacion.numero ASC',
            'fields' => array('OrdenesReparacion.id','OrdenesReparacion.cancelada', 'OrdenesReparacion.factura_id','OrdenesReparacion.fecha','OrdenesReparacion.detalle_marca', 'OrdenesReparacion.articulo','Area.area',
                'OrdenesReparacion.modelo', 'OrdenesReparacion.interior', 'OrdenesReparacion.estado', 'OrdenesReparacion.desperfecto', 'OrdenesReparacion.tipo', 'Cliente.nombre_apellido','OrdenesReparacion.lugar_compra','OrdenesReparacion.fecha_compra','OrdenesReparacion.nro_comprobante')));

        // $data = $this->paginate('OrdenesReparacion');  pm comenta 5.5.2015
        $this->set(compact('data'));
        $this->set(compact('imprimir','tipos2'));

        $this->set(compact('desde', 'hasta','fechass','precioss','confirmadass','prontass','retiradass','interiores','facturass','tiposs','estadoss','presup','marcass'));
        // pm agrega 02.04.2015
        //    $ordenpendiente = $this->OrdenesReparacion->Find('first', array('conditions' => array('OrdenesReparacion.estado' => "ingresada"), 'fields' => array('OrdenesReparacion.fecha'),'order'=>'OrdenesReparacion.fecha ASC',));
        //    $desde = $ordenpendiente['OrdenesReparacion']['fecha'];
        // pm agrega 02.04.2015
    } 
    


     function noretiradas($textobuscar = "") {

        //    $desde = date('01/03/2015');
        // Si se llama a index con un parametro para buscar, (desde el scafold)
        // definimos esa busqueda en una variable para que javascript la cargue al form
        // y haga un trigger de ajax con la busqueda
        if (isset($_POST["data"]) && $_POST["data"] !== "") {
            $textobuscar = $_POST["data"]["textobuscar"];
            $this->set(compact('textobuscar'));
        }
        $desde = date('d/m/Y'); // pm cambia 9.5.2015
        $hasta = date('d/m/Y');

$this->set('result',$this->OrdenesServicioBitacora->lista());
	$this->OrdenesReparacion->bindModel(
		array('belongsTo' => array(
			 'Cliente' => array(
            			'className' => 'Cliente',
            			'foreignKey' => 'cliente_id')
			)
			)
		);


        $data = $this->OrdenesReparacion->find('all', array('conditions' => array('OrdenesReparacion.fecha between ? and ?' => array($desde, $hasta),'OrdenesReparacion.estado not like "%Retirada%"',
        'OrdenesReparacion.cancelada <>1','OrdenesReparacion.anulada <> 1'),
            'order' => 'OrdenesReparacion.numero ASC',
            'fields' => array('OrdenesReparacion.id','OrdenesReparacion.cancelada', 'OrdenesReparacion.factura_id','OrdenesReparacion.fecha','OrdenesReparacion.detalle_marca', 'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo', 'OrdenesReparacion.interior', 'OrdenesReparacion.estado', 'OrdenesReparacion.desperfecto', 'OrdenesReparacion.tipo', 'Cliente.nombre_apellido')));

        // $data = $this->paginate('OrdenesReparacion');  pm comenta 5.5.2015
        $this->set(compact('data'));
        $this->set(compact('imprimir'));

        $this->set(compact('desde', 'hasta'));
        // pm agrega 02.04.2015
        //    $ordenpendiente = $this->OrdenesReparacion->Find('first', array('conditions' => array('OrdenesReparacion.estado' => "ingresada"), 'fields' => array('OrdenesReparacion.fecha'),'order'=>'OrdenesReparacion.fecha ASC',));
        //    $desde = $ordenpendiente['OrdenesReparacion']['fecha'];
        // pm agrega 02.04.2015
    }
    
    function prontasportecnico ($textobuscar = "") {

    if (isset($_POST["data"]) && $_POST["data"] !== "") {
            $textobuscar = $_POST["data"]["textobuscar"];
            $this->set(compact('textobuscar'));
        }
        $desde = date('d/m/Y'); 
        $hasta = date('d/m/Y');

//   $this->set('result',$this->OrdenesServicioBitacora->lista());
  /*  $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );

            $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Usuario' => array(
                        'className' => 'Usuario',
                        'foreignKey' => 'empleado_id')
            )
            )
        );

   //     $condiciones = array('OrdenesReparacion.cancelada <>1','OrdenesReparacion.anulada <> 1');

        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'joins' => array(
                array(
                    'table' => 'ordenes_servicio_bitacora',
                    'alias' => 'Oserv',
                    'type' => 'INNER',
                    'conditions' => array(

                        'Oserv.fecha between ? and ?' => array('%$desde%' , '%$hasta%' ),

                        'Oserv.id_orden = OrdenesReparacion.id',                        
                        'Oserv.id_accion in (2,6)',
                    )
                )
            ),
       //     'group' => array('OrdenesReparacion.id'),
      //      'conditions' => $condiciones,
            'fields' =>
            array('OrdenesReparacion.id',
       
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
            
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
            
                'OrdenesReparacion.presupuesto_taller',
              
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.detalle_marca',
          
                'OrdenesReparacion.precio_asignado',
           
                 'OrdenesReparacion.precio',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'Area.area',
                 'OrdenesReparacion.presupuesto',
                
                 'OrdenesReparacion.pronta',
              
                'OrdenesReparacion.fecha_prometido',              
               

                  'Usuario.nombre',           
'Oserv.fecha',           
'Oserv.id_usuario',   
'Oserv.id_accion',           

                'Cliente.nombre_apellido',
             
                'Cliente.otro_telefono'),
                )
        );


        $this->set(compact('data'));
        */
        //$this->set(compact('desde', 'hasta'));
              $this->set(compact('desde'));
        }
    
     function ordenespe($textobuscar = "") {

        //    $desde = date('01/03/2015');
        // Si se llama a index con un parametro para buscar, (desde el scafold)
        // definimos esa busqueda en una variable para que javascript la cargue al form
        // y haga un trigger de ajax con la busqueda
        if (isset($_POST["data"]) && $_POST["data"] !== "") {
            $textobuscar = $_POST["data"]["textobuscar"];
            $this->set(compact('textobuscar'));
        }
        $desde = date('d/m/Y'); // pm cambia 9.5.2015
        $hasta = date('d/m/Y');

$this->set('result',$this->OrdenesServicioBitacora->lista());
	$this->OrdenesReparacion->bindModel(
		array('belongsTo' => array(
			 'Cliente' => array(
            			'className' => 'Cliente',
            			'foreignKey' => 'cliente_id')
			)
			)
		);


        $data = $this->OrdenesReparacion->find('all', array('conditions' => array('OrdenesReparacion.fecha between ? and ?' => array($desde, $hasta)),
            'order' => 'OrdenesReparacion.numero ASC',
            'fields' => array('OrdenesReparacion.id','OrdenesReparacion.cancelada', 'OrdenesReparacion.factura_id','OrdenesReparacion.fecha','OrdenesReparacion.detalle_marca', 'OrdenesReparacion.articulo',
                              'OrdenesReparacion.precio',
                'OrdenesReparacion.modelo', 'OrdenesReparacion.interior', 'OrdenesReparacion.estado', 'OrdenesReparacion.desperfecto', 'OrdenesReparacion.tipo', 'Cliente.nombre_apellido')));

        // $data = $this->paginate('OrdenesReparacion');  pm comenta 5.5.2015
        $this->set(compact('data'));
        $this->set(compact('imprimir'));

        $this->set(compact('desde', 'hasta'));
        // pm agrega 02.04.2015
        //    $ordenpendiente = $this->OrdenesReparacion->Find('first', array('conditions' => array('OrdenesReparacion.estado' => "ingresada"), 'fields' => array('OrdenesReparacion.fecha'),'order'=>'OrdenesReparacion.fecha ASC',));
        //    $desde = $ordenpendiente['OrdenesReparacion']['fecha'];
        // pm agrega 02.04.2015
    }
    
    function ordenessf($textobuscar = "") {

        //    $desde = date('01/03/2015');
        // Si se llama a index con un parametro para buscar, (desde el scafold)
        // definimos esa busqueda en una variable para que javascript la cargue al form
        // y haga un trigger de ajax con la busqueda
        if (isset($_POST["data"]) && $_POST["data"] !== "") {
            $textobuscar = $_POST["data"]["textobuscar"];
            $this->set(compact('textobuscar'));
        }
        $desde = date('d/m/Y'); // pm cambia 9.5.2015
        $hasta = date('d/m/Y');


	$this->OrdenesReparacion->bindModel(
		array('belongsTo' => array(
			 'Cliente' => array(
            			'className' => 'Cliente',
            			'foreignKey' => 'cliente_id')
			)
			)
		);


        $data = $this->OrdenesReparacion->find('all', array('conditions' => array(
        'OrdenesReparacion.anulada <> 1',      
         'OrdenesReparacion.cancelada <> 1',       
                'OrdenesReparacion.estado not like "%Cancelada%"',
                 'OrdenesReparacion.estado not like "%Anulada%"',
                 'length(OrdenesReparacion.pronta) > 0',
                 
                'length(OrdenesReparacion.factura_id) = 0'
        ),
            'order' => 'OrdenesReparacion.numero ASC',
            'fields' => array('OrdenesReparacion.id', 'OrdenesReparacion.fecha','OrdenesReparacion.detalle_marca', 'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo', 'OrdenesReparacion.interior', 'OrdenesReparacion.estado', 'OrdenesReparacion.desperfecto', 'OrdenesReparacion.tipo', 'Cliente.nombre_apellido')));

        // $data = $this->paginate('OrdenesReparacion');  pm comenta 5.5.2015
        $this->set(compact('data'));
        $this->set(compact('imprimir'));

        $this->set(compact('desde', 'hasta'));
        // pm agrega 02.04.2015
        //    $ordenpendiente = $this->OrdenesReparacion->Find('first', array('conditions' => array('OrdenesReparacion.estado' => "ingresada"), 'fields' => array('OrdenesReparacion.fecha'),'order'=>'OrdenesReparacion.fecha ASC',));
        //    $desde = $ordenpendiente['OrdenesReparacion']['fecha'];
        // pm agrega 02.04.2015
    }

    function indexedit($imprimir = 0) {   // agreguÃ© esto pm 27.2.2015
        $this->set(compact('imprimir'));
    }


     function indexedit2talones($imprimir = 0) {   // agreguÃ© esto pm 21.4.2016
        $this->set(compact('imprimir'));
    }

    // pm agrega 10.2.2015
    function Taller() {

    }

    function delete() {
        $id = $this->data['OrdenesReparacion']['id'];
        $this->OrdenesReparacion->delete($id);
        $this->redirect('/OrdenesReparaciones/index');
    }

    function listar() {
        $dep = $this->getDepositoReparaciones();
        if (!empty($this->data)) {
            foreach ($this->data['OrdenesReparacion']['stockOK'] as $id_orden => $orden) {
                $marcados = 0;
                $pendiente = false;
                foreach ($orden as $id_detalle => $detalle) {
                    if ($detalle == 1) {
                        $marcados++;
                        $ord = $this->OrdenesReparacionDetalle->findById($id_detalle);
                        $ord['OrdenesReparacionDetalle']['pendiente'] = 0;
                        $this->OrdenesReparacionDetalle->save($ord);
                        //CREACION DE MOVIMIENTO
                        //if ($dep != "")
                        // $this->Movimiento->nuevo($ord['OrdenesReparacionDetalle']['fecha'], 'Reparacion', $id_orden,  $dep , $ord['OrdenesReparacionDetalle']['articulo_id'], $ord['OrdenesReparacionDetalle']['cantidad'], '-' );
                    } else { // si el stock no esta OK, me fijo si mando cantidad a pedir
                        if (isset($this->data['OrdenesReparacion']['cantidad'][$id_orden][$id_detalle]) && $this->data['OrdenesReparacion']['cantidad'][$id_orden][$id_detalle] != "" && $this->data['OrdenesReparacion']['cantidad'][$id_orden][$id_detalle] != "0") {
                            $this->OrdenesReparacionDetalle->read('OrdenesReparacionDetalle.id', $id_detalle);
                            $this->OrdenesReparacionDetalle->set('pendiente', 1);
                            $this->OrdenesReparacionDetalle->set('cantidad_solicitada', $this->data['OrdenesReparacion']['cantidad'][$id_orden][$id_detalle]);
                            $this->OrdenesReparacionDetalle->save();
                            $pendiente = true;
                        } else
                            $pendiente = false;
                    }
                }

                //if ($marcados != 0)
                //{
                if ($marcados == sizeof($orden)) {
                    $this->OrdenesReparacion->read(null, $id_orden);
                    $this->OrdenesReparacion->set('estado', 'Confirmada');
                    $this->OrdenesReparacion->save();
                }

                if (($marcados != sizeof($orden)) or $pendiente) {
                    $this->OrdenesReparacion->read(null, $id_orden);
                    $this->OrdenesReparacion->set('estado', 'Pendiente');
                    $this->OrdenesReparacion->save();
                }
                //}
            }
            $this->Session->setFlash('Se proces&oacute; correctamente la orden de reparaci&oacute;n', 'messages/green');
        }
        $data = $this->paginate('OrdenesReparacion');
        $i = 0;
        foreach ($data as $a) {
            $j = 0;
            foreach ($a['OrdenesReparacionDetalle'] as $b) {
                $data[$i]['OrdenesReparacionDetalle'][$j]['Articulo'] = $this->Articulo->query('select Articulo.nombre, Articulo.codigo , sum(Inventario.cantidad) Stock
																													from articulos Articulo
																													left outer join  inventarios Inventario on (Articulo.id = Inventario.articulo_id)
																													where Articulo.id = ' . $data[$i]['OrdenesReparacionDetalle'][$j]['articulo_id'] .
                        ' group by Articulo.nombre, Articulo.codigo');

                if ($dep != "")
                    $data[$i]['OrdenesReparacionDetalle'][$j]['Articulo1'] = $this->Articulo->query('select sum(Inventario.cantidad) Stock
																													from inventarios Inventario
																													where articulo_id = ' . $data[$i]['OrdenesReparacionDetalle'][$j]['articulo_id'] .
                            ' and deposito_id = ' . $dep);

                ++$j;
            }
            ++$i;
        }
        $this->set(compact('data'));
    }

    function costoordenes() {
        $this->OrdenesReparacion->query('call actualizarCostoOrdenesDia();');
        $desde = date('01/m/Y');
        $hasta = date('d/m/Y');
        $this->set('desde', $desde);
        $this->set('hasta', $hasta);
    }

    function autocomplete() {
        $sql = '
		SELECT Cliente.id ,Cliente.nombre_apellido, Cliente.telefono_particular, Cliente.contacto_orden, 
        Cliente.celular, Cliente.email, Cliente.direccion, Localidad.localidad, MAX(contact.id) as contacto
		FROM clientes Cliente left join localidades Localidad
		on Localidad.id = Cliente.localidad_id 
        left join contactos contact on (contact.cliente_id = Cliente.id and contact.ordenes = 1)
        where ';
 $terminos = split(' ', strtoupper($this->params['url']['term']));      
$i=1;
      foreach ($terminos as $t)
      {
        if( $i==1){
      $sql .= ' (CONCAT(Cliente.telefono_particular, "  ",UPPER(Cliente.nombre_apellido), "  ", Cliente.celular ) like ("%'. strtoupper($t).'%")) ';
    }else{
      $sql .= '  AND (CONCAT(Cliente.telefono_particular, "  ",UPPER(Cliente.nombre_apellido), "  ", Cliente.celular ) like ("%'. strtoupper($t).'%")) ';
    }
    $i++;
      }


		$sql.= 'group by Cliente.id ORDER BY  Cliente.nombre_apellido
		';
        $clientes = $this->Cliente->query($sql);
        //$clientes = Set::Extract($clientes, '{n}.0.lista');
        $this->set('clientes', $clientes);
        $this->layout = 'ajax';
    }

    /**
     * Autocomplete para el campo telefono - solo filtra por telefono
     */
     
    public function autocompletePhone() {
        $sql = '
		SELECT Cliente.id ,Cliente.nombre_apellido, Cliente.telefono_particular,  Cliente.celular,Cliente.email, Cliente.direccion, Localidad.localidad
		FROM clientes Cliente , localidades Localidad
		WHERE Localidad.id = Cliente.localidad_id ';
//          Consulta anterior, buscaba en todos los campos
//          $sql.= ' AND (CONCAT(Cliente.id, "  ",UPPER(Cliente.nombre_apellido), "  ", UPPER(Cliente.telefono_particular), "  ", UPPER(Cliente.email), "  ", UPPER(Cliente.direccion), "  ", UPPER(Localidad.localidad)) ';

        $sql.= ' AND (  Cliente.telefono_particular
		LIKE ("%' . strtoupper($this->params['url']['term']) . '%") or Cliente.celular
		LIKE ("%' . strtoupper($this->params['url']['term']) . '%") )
		ORDER BY  Cliente.nombre_apellido
		LIMIT 30';

        $clientes = $this->Cliente->query($sql);

        $this->set('clientes', $clientes);
        $this->layout = 'ajax';
    }

    function get_clientes() {
        //$sql = "SELECT * FROM clientes WHERE clientes.id='".$this->params['url']['term']."'";
        $sql = '
		SELECT Cliente.id ,Cliente.nombre_apellido, Cliente.telefono_particular, Cliente.email, Cliente.direccion, Localidad.localidad, Cliente.celular
		FROM clientes Cliente , localidades Localidad
		WHERE Localidad.id = Cliente.localidad_id
		AND  Cliente.nombre_apellido
		like "' . $this->params['url']['term'] . '%"

		ORDER BY  Cliente.nombre_apellido DESC
		LIMIT 15';

        $clientes = $this->Cliente->query($sql);
        //$clientes = Set::Extract($clientes, '{n}.0.lista');
        $this->set('clientes', $clientes);
        $this->layout = 'ajax';
    }

    /*    function articulos_taller() {

      if ((!isset($this->data['OrdenesReparacionDetalle'])) || (empty($this->data['OrdenesReparacionDetalle']))) {
      $cantidad = 1;
      $detalle = array('0' => array('id' => '', 'articulo_id' => '', 'cantidad' => '1', 'monto' => '', 'subtotal' => ''));
      } else {
      $cantidad = sizeof($this->data['OrdenesReparacionDetalle']);
      $detalle = $this->data['OrdenesReparacionDetalle'];
      }

      $this->set('cantidad', $cantidad);
      $this->set('detalle', $detalle);
      return $this->Articulo->lista();
      }
     */ // pm comento 5.5

    function totalesCostos() {
        $this->layout = 'ajax';
        $this->autoRender = false;
        $consulta = $this->data['consulta'];
        $datos = array();
        $data = $this->OrdenesReparacion->query($consulta);
                
        $datos['costoPesos'] = number_format($data['0']['0']['pesos'],2,',','.');
        $datos['costoUSD']   = number_format($data['0']['0']['usd'],2,',','.');
        $datos['precio']     = number_format($data['0']['0']['precio'],2,',','.');
        return json_encode($datos);

    }

    function imprimircostos() {
        if (isset($this->data['html'])) {
            $data = $this->OrdenesReparacion->query($this->data['html']);
            $this->set('data', $data);
        }
    }


     function excelprontasportec() {
         if (isset($this->data['html'])) {
            $data = $this->OrdenesReparacion->query($this->data['html']); 
            App::import('Vendor', 'PHPExcel/Classes/PHPExcel');        
            // Create new PHPExcel object
            $objPHPExcel = new PHPExcel();

            // Set document properties
            $objPHPExcel->getProperties()->setCreator("P. Morales")
                                        ->setLastModifiedBy("P. Morales")
                                        ->setTitle("Reporte de Costos de ordenes")
                                        ->setSubject("Ordenes")
                                        ->setDescription("Reporte de costos de ordenes excel")
                                        ->setKeywords("office 2007 openxml php")
                                        ->setCategory("Archivo de salida de prueba");
            
            // Add some data
            $objPHPExcel->setActiveSheetIndex(0)
                        ->setCellValue('A1', 'Numero')
                        ->setCellValue('B1', 'Ingreso')
                        ->setCellValue('C1', 'P. Presup')
                        ->setCellValue('D1', 'P. Entrega')
                        ->setCellValue('E1', 'Tipo Orden')
                        ->setCellValue('F1', 'Cliente')
                        ->setCellValue('G1', 'Maquina')
                        ->setCellValue('H1', 'Precio')
                        ->setCellValue('I1', 'Accion')
                        ->setCellValue('J1', 'Tecnico')
                        ->setCellValue('K1', 'Fecha');
            $objPHPExcel->getActiveSheet()->getStyle("A1:K1")->getFont()->setBold(true);
                        
            $i = 2;
                
                $totalord = 0;
                $precio = 0;


            foreach ($data as $d) {      
                   
                $totalord++;                                                                      
                $precio += $d['o']['precio_asignado'];
                $accion = "";
                if ($d['ob']['id_accion'] == 2) {
                    $accion = "PRESUPUESTO";
                } else {
                    $accion = "PRONTA";
                }
                
         // nombre de los  tecnicos       
         $usuario = "";       
              if($d['ob']['id_usuario'] == 28){
                $usuario = "Beto";
              }  
              else if($d['ob']['id_usuario'] == 60){
                $usuario = "Carlos E.";
              }  
              else if($d['ob']['id_usuario'] == 24){
                $usuario = "Diego DS";
              }  
              else if($d['ob']['id_usuario'] == 45){
                $usuario = "Guzman A.";
              }  
              else if($d['ob']['id_usuario'] == 34){
                $usuario = "Mario C.";
              }  
              else if($d['ob']['id_usuario'] == 50){
                $usuario = "Mathias M.";
              }  
              else if($d['ob']['id_usuario'] == 63){
                $usuario = "Maxi B.";
              }  
              else if($d['ob']['id_usuario'] == 29){
                $usuario = "Pablo P.";
              }  
              else if($d['ob']['id_usuario'] == 39){
                $usuario = "Rodrigo A.";
              }  
              else if($d['ob']['id_usuario'] == 43){
                $usuario = "Ruben R.";
              }

              $bitacora = date_format(date_create($d['ob']['fechaob']), "Y-m-d");


                $fecha = '';
                if (strlen($d['o']['fecha']) > 1 && $d['o']['fecha'] != "0000-00-00") {
                    $t_year   = substr($d['o']['fecha'],0,4);
                    $t_month  = substr($d['o']['fecha'],5,2);// Fixed problems with offsets
                    $t_day    = substr($d['o']['fecha'],8,2);
                    $fecha   = PHPExcel_Shared_Date::FormattedPHPToExcel($t_year, $t_month, $t_day);                        
                }                           

                $fechaprometido = '';
                if (strlen($d['o']['fecha_prometido']) > 1 && $d['o']['fecha_prometido'] != "0000-00-00") {
                    $t_year   = substr($d['o']['fecha_prometido'],0,4);
                    $t_month  = substr($d['o']['fecha_prometido'],5,2);// Fixed problems with offsets
                    $t_day    = substr($d['o']['fecha_prometido'],8,2);
                    $fechaprometido   = PHPExcel_Shared_Date::FormattedPHPToExcel($t_year, $t_month, $t_day);                        
                }                                              

                $fechaasignado = '';
                if (strlen($d['o']['fecha_asignado']) > 1 && $d['o']['fecha_asignado'] != "0000-00-00") {
                    $t_year   = substr($d['o']['fecha_asignado'],0,4);
                    $t_month  = substr($d['o']['fecha_asignado'],5,2);// Fixed problems with offsets
                    $t_day    = substr($d['o']['fecha_asignado'],8,2);
                    $fechaasignado = PHPExcel_Shared_Date::FormattedPHPToExcel($t_year, $t_month, $t_day);                        
                }     

                $fechabitacora = '';
                if (strlen($bitacora) > 1 && $bitacora != "0000-00-00") {
                    $t_year   = substr($bitacora,0,4);
                    $t_month  = substr($bitacora,5,2);// Fixed problems with offsets
                    $t_day    = substr($bitacora,8,2);
                    $fechabitacora = PHPExcel_Shared_Date::FormattedPHPToExcel($t_year, $t_month, $t_day);                        
                }                                                                        


                
                $objPHPExcel->setActiveSheetIndex(0)
                            ->setCellValue('A' . $i, $d['o']['ser'] . " " . $d['o']['numero'])
                            ->setCellValue('B' . $i, $fecha)
                            ->setCellValue('C' . $i, $fechaprometido)
                            ->setCellValue('D' . $i, $fechaasignado)
                            ->setCellValue('E' . $i, $d['o']['tipo'])
                            ->setCellValue('F' . $i, $d['c']['nombre_apellido'])
                            ->setCellValue('G' . $i, $d['o']['articulo'] ." ". $d['o']['detalle_marca']  ."  ". $d['o']['modelo'])
                            ->setCellValue('H' . $i, $d['o']['precio_asignado'])
                            ->setCellValue('I' . $i, $accion)
                            ->setCellValue('J' . $i, $usuario)
                            ->setCellValue('K' . $i, $fechabitacora);
                            $objPHPExcel->getActiveSheet()
                                        ->getStyle('B' . $i)
                                        ->getNumberFormat()
                                        ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);                                                                                            
                            $objPHPExcel->getActiveSheet()
                                        ->getStyle('C' . $i)
                                        ->getNumberFormat()
                                        ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);                                                                                            
                            $objPHPExcel->getActiveSheet()
                                        ->getStyle('D' . $i)
                                        ->getNumberFormat()
                                        ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);                                                                                            
                            $objPHPExcel->getActiveSheet()
                                        ->getStyle('K' . $i)
                                        ->getNumberFormat()
                                        ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);                                                                                            
                            $i++;
            }

            $objPHPExcel->setActiveSheetIndex(0)
                            ->setCellValue('A' . $i, "Total")
                            ->setCellValue('H' . $i, $precio)                            
                            ->setCellValue('J' . $i, "Ordenes " . $totalord);
            $objPHPExcel->getActiveSheet()->getStyle("A" . $i . ":K" . $i)->getFont()->setBold(true);
            $i++;
                            
            foreach(range('A','K') as $columnID) {
                $objPHPExcel->getActiveSheet()->getColumnDimension($columnID)
                    ->setAutoSize(true);
            }
                
            // Set active sheet index to the first sheet, so Excel opens this as the first sheet
            $objPHPExcel->setActiveSheetIndex(0);   
            $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');            
            $objWriter->save('files/prontas_por_tecnico_' . date('d_m_Y') . '.xlsx');
            $this->redirect('/files/prontas_por_tecnico_' . date('d_m_Y') . '.xlsx');		
        }
     }


    function excelcostos() {
         if (isset($this->data['html'])) {
            $data = $this->OrdenesReparacion->query($this->data['html']); 
            App::import('Vendor', 'PHPExcel/Classes/PHPExcel');        
            // Create new PHPExcel object
            $objPHPExcel = new PHPExcel();

            // Set document properties
            $objPHPExcel->getProperties()->setCreator("P. Morales")
                                        ->setLastModifiedBy("P. Morales")
                                        ->setTitle("Reporte de Costos de ordenes")
                                        ->setSubject("Ordenes")
                                        ->setDescription("Reporte de costos de ordenes excel")
                                        ->setKeywords("office 2007 openxml php")
                                        ->setCategory("Archivo de salida de prueba");
            
            // Add some data
            $objPHPExcel->setActiveSheetIndex(0)
                        ->setCellValue('A1', 'Fecha')
                        ->setCellValue('B1', 'Numero')
                        ->setCellValue('C1', 'Cliente')
                        ->setCellValue('D1', 'Maquina')
                        ->setCellValue('E1', 'Estado')
                        ->setCellValue('F1', 'Costo Pesos')
                        ->setCellValue('G1', 'Costo USD')
                        ->setCellValue('H1', 'Precio')
                          ->setCellValue('I1', 'TECNICO')
                        ->setCellValue('J1', 'AREA');
            $objPHPExcel->getActiveSheet()->getStyle("A1:J1")->getFont()->setBold(true);
                        
            $i = 2;
                
                $costoPesos = 0;
                $costoUSD = 0;
                $precio = 0;


            foreach ($data as $d) {                                            
                $fecha = '';
                if (strlen($d['v_costos_ordenes22']['fecha']) > 1 && $d['v_costos_ordenes2']['fecha'] != "0000-00-00") {
                    $t_year   = substr($d['v_costos_ordenes2']['fecha'],0,4);
                    $t_month  = substr($d['v_costos_ordenes2']['fecha'],5,2);// Fixed problems with offsets
                    $t_day    = substr($d['v_costos_ordenes2']['fecha'],8,2);
                    $fecha   = PHPExcel_Shared_Date::FormattedPHPToExcel($t_year, $t_month, $t_day);                        
                }                                                                        

                $costoPesos += $d['v_costos_ordenes2']['costo_pesos'];
                $costoUSD   += $d['v_costos_ordenes2']['costo_usd'];
                $precio     += $d['v_costos_ordenes2']['precio'];



                
                $objPHPExcel->setActiveSheetIndex(0)
                            ->setCellValue('A' . $i,  $d['v_costos_ordenes2']['fecha'])
                            ->setCellValue('B' . $i, $d['v_costos_ordenes2']['numero'])
                            ->setCellValue('C' . $i, $d['v_costos_ordenes2']['cliente'])
                            ->setCellValue('D' . $i, $d['v_costos_ordenes2']['maquina'])
                            ->setCellValue('E' . $i, $d['v_costos_ordenes2']['estado'])
                            ->setCellValue('F' . $i, $d['v_costos_ordenes2']['costo_pesos'])
                            ->setCellValue('G' . $i, $d['v_costos_ordenes2']['costo_usd'])
                            ->setCellValue('H' . $i, $d['v_costos_ordenes2']['precio'])

                            ->setCellValue('I' . $i, $d['v_costos_ordenes2']['tecnico'])
                            ->setCellValue('J' . $i, $d['v_costos_ordenes2']['area']);


                            $objPHPExcel->getActiveSheet()
                                        ->getStyle('A' . $i)
                                        ->getNumberFormat()
                                        ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);


                                                                                                                      
                            $i++;
            }

            $objPHPExcel->setActiveSheetIndex(0)
                            ->setCellValue('A' . $i, "Total")
                            ->setCellValue('F' . $i, "$ " . $costoPesos)
                            ->setCellValue('G' . $i, "USD " . $costoUSD)
                            ->setCellValue('H' . $i, "$ " . $precio);
            $objPHPExcel->getActiveSheet()->getStyle("A" . $i . ":J" . $i)->getFont()->setBold(true);
            $i++;
                            
            foreach(range('A','J') as $columnID) {
                $objPHPExcel->getActiveSheet()->getColumnDimension($columnID)
                    ->setAutoSize(true);
            }
                
            // Set active sheet index to the first sheet, so Excel opens this as the first sheet
            $objPHPExcel->setActiveSheetIndex(0);   
            $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');            
            $objWriter->save('files/costo_ordenes_' . date('d_m_Y') . '.xlsx');
            $this->redirect('/files/costo_ordenes_' . date('d_m_Y') . '.xlsx');		
        }
     }
    

    function autocomplete2() {
        $sql = '
		SELECT marca
		FROM marcas
		WHERE marca like ("%' . strtoupper($this->params['url']['term']) . '%")
		ORDER BY  marca
		LIMIT 15';

        $marcas = $this->Marca->query($sql);
        $marcas = Set::Extract($marcas, '{n}.marcas.marca');
        $this->layout = 'ajax';
        $this->set('marcas', $marcas);
    }

    function getBitacora() {
        $data = $this->request->query["term"];
        $sql = "SELECT * FROM palabras pal WHERE pal.bitacora=1 AND pal.palabra LIKE '" . $data . "%'";
        $result = $this->Marca->query($sql);
        $this->layout = 'ajax';
        $this->set('result', $result);
    }

    function getRepuestos() {
        $data = $this->request->query["term"];
        $sql = "SELECT * FROM palabras pal WHERE pal.repuestos=1 AND pal.palabra LIKE '%" . $data . "%'";
        $result = $this->Marca->query($sql);

        $this->layout = 'ajax';
        $this->set('result', $result);
    }

    function setRepuestos(){
        $data = $this->request->query["term"];
        $sql = "SELECT * FROM palabras pal WHERE pal.repuestos=1 AND pal.palabra LIKE '%" . $data . "%'";
        $result = $this->Marca->query($sql);
        if(!$result){

            $sql2="SELECT MAX(id)+1 as valor FROM palabras ";
            $result3=$this->Marca->query($sql2);
            $aux=$result3[0][0]['valor'];
$sql3="insert into palabras values(".$aux.",'".strtoupper($data)."',1,1)";
            $this->Marca->query($sql3);
            $this->layout = 'ajax';

            $this->set('result2', $result3);
        }else{
            $this->layout = 'ajax';
            $this->set('result2', false);
        }


    }

    /*
     * Action que permite realizar una busqueda de una orden de reparaciÃ³n
     * y si existe redirecciona hacia la ediciÃ³n de dicha orden.
     * @id identificador de la orden.
     */

    function buscar($num = 0) {
        $num = $this->data["numeroOrden"];
        if (is_numeric($num)) {
            $id = $this->OrdenesReparacion->find('first', array('fields' => array('id'), 'conditions' => array('numero' => $num)));
            if (!empty($id)) {
                $this->redirect(array('controller' => 'OrdenesReparaciones', 'action' => 'edit/' . $id['OrdenesReparacion']['id']));
            } else {
                $this->Session->setFlash('N&uacute;mero de orden no existe.' . $num, 'messages/red');
                $this->redirect('/OrdenesReparaciones/neutro/');
            }
        } else {
            $this->Session->setFlash('N&uacute;mero de orden invalida.' . $num, 'messages/red');
            $this->redirect('/OrdenesReparaciones/neutro/');
        }
    }

  /*  function buscaros() {   // pm 29.3.2015
        $this->layout = 'ajax';
        $fd = implode('-', array_reverse(explode('/', $this->data['desde'])));
        $fh = implode('-', array_reverse(explode('/', $this->data['hasta'])));
        $palabraBuscar = $this->data['palabra_buscar'];
	$this->OrdenesReparacion->bindModel(
		array('belongsTo' => array(
			 'Cliente' => array(
            			'className' => 'Cliente',
            			'foreignKey' => 'cliente_id')
			)
			)
		);
                if(isset($this->data['desde'])){
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                'OrdenesReparacion.fecha between ? and ?' => array($fd, $fh),
                "OR" => array(
                    'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                     'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                   // 'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            ),
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );
        }
        if(isset($this->data['palabra_buscar'])){
         echo $palabraBuscar;
           $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                "OR" => array(
                     'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
               //     'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            ),
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );
        }
        $this->set(compact('data', 'desde', 'hasta'));
    } */
function buscaros13() {
    $this->layout = "ajax";    
    $fd = implode('-', array_reverse(explode('/', $this->data['desde'])));
    $fh = implode('-', array_reverse(explode('/', $this->data['hasta'])));
    
    $consulta = "select b.fecha, b.tipo_comprobante, b.orden_id, b.id, b.idord, " 
    . " b.serie, b.numero, b.monto, b.otrasref from v_balaguer b " 
    . "where b.fecha between '" . $fd . "' and  '" . $fh . "' ";
    $this->set('data', $this->OrdenesReparacion->query($consulta));
}

function balaguer(){

}

 function buscaros() {   // pm 29.3.2015 // daniel 23.6.2015
        $this->layout = 'ajax';
        $fd = implode('-', array_reverse(explode('/', $this->data['desde'])));
        $fh = implode('-', array_reverse(explode('/', $this->data['hasta'])));
$this->set('result',$this->OrdenesServicioBitacora->lista());
        $est=$this->Estado->find('all');  // pm por daniel 23.6
        $this->set(compact('est')); // pm por daniel 23.6
        $palabraBuscar = $this->data['palabra_buscar'];
    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );
        $data=NULL;
                if (isset($this->data['desde']) && !isset($this->data['palabra_buscar'])) {
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                'OrdenesReparacion.fecha between ? and ?' => array($fd, $fh)
            ),
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.factura_id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                'OrdenesReparacion.interior',
                 'OrdenesReparacion.precio',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada',
                'OrdenesReparacion.fecha_prometido',              
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );
        }
        if(isset($this->data['palabra_buscar']) && !isset($this->data['desde'])){
       // echo "busca palabra";
           $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(

                "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.fax LIKE ' => '%' . $palabraBuscar . '%',    // pm agrega 14.12.2015
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.nro_comprobante LIKE ' => '%' . $palabraBuscar . '%',     // pm agrega 13.1.2016
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            ),
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.factura_id',
                'OrdenesReparacion.interior',
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',  
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                   'OrdenesReparacion.precio',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada', 
                'OrdenesReparacion.fecha_prometido',              
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );

        }

        if(isset($this->data['palabra_buscar']) && isset($this->data['desde'])){

          // echo "busca mixto";
            $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                 'OrdenesReparacion.fecha between ? and ?' => array($fd, $fh),
                "OR" => array(
                     'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',

                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            ),
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.factura_id',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.interior',
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado', 
                'OrdenesReparacion.cant_llamados',  
                'OrdenesReparacion.precio_asignado', 
                   'OrdenesReparacion.precio',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada',
                'OrdenesReparacion.fecha_prometido',              
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );

        }

        $this->set(compact('data', 'desde', 'hasta'));
    }

    function fundiciong() {
        $this->autoRender = false;
        $this->layout = "ajax";
        $this->OrdenesReparacion->fundicionMasiva($this->data['ids'], $this->data['idusuario']);
    }
    
    
      function imprimirg($fech1 = "", $fech2 = "", $fechass = 0, $tiposs = "", $precioss = 0, $confirmadass = 0, 
        $prontass=0, $retiradass=0, $interiores=0, $facturass=0, $palabraBuscar = "0", $estadoss = "0", 
        $numeross = "0", $tiposs2 = "0", $clientess = "0", $maquinass = "0", $areass = "0", $presup = "0", 
        $marcass="0", $modeloss = "0", $ids="0", $areass2 = "0", $destinoss = "0", $tecnicoss = '0', $prontatec = 0, $destexc = 0, $reclamos =0){
		$this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );

        $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Usuario' => array(
                        'className' => 'Usuario',
                        'foreignKey' => 'empleado_id')
            )
            )
        );

         $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'AvisosBitacora' => array(
                        'className' => 'AvisosBitacora',
                        'foreignKey' => 'id')
            )
            )
        );
    $texto_ids="";
    if (strlen($ids) > 1) {
      $valores_id = split('-', $ids);
      $texto_ids= " (";
      foreach ($valores_id as $v) {    
        if (strlen($v) > 0) {
            $texto_ids .= $v.", ";                    
        }               
                        
      }
      $texto_ids = substr($texto_ids, 0, strlen($texto_ids) - 2) . ') ';      
    }



        $this->set('result',$this->OrdenesServicioBitacora->lista());
        $data=NULL;
		eregi('^([a-z]+)([0-9]+)$', $modeloss, $arreglo);
	   if(strlen($palabraBuscar)>1){
		   if(strlen($maquinass)>1){

if(strlen($marcass)>1){
       $marcass = trim($marcass); //se hace el trabajo de cadenas
          $marcass = preg_replace('/(\s+)/',"%",$marcass);
          if (strlen($texto_ids) > 0) {
$condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
                'OrdenesReparacion.id in '.$texto_ids.' ',
        "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',                                        
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',                    
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.lugar_compra LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%',                
            'Marca.marca LIKE ' => '%' . $maquinass . '%',
            'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
            'OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
            'Marca.marca LIKE ' => '%' . $marcass . '%',
          'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
        )
            ); 

          } else  {
$condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
				"OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',                                        
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',       
                    'OrdenesReparacion.lugar_compra LIKE ' => '%' . $palabraBuscar . '%',             
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%',                
				    'Marca.marca LIKE ' => '%' . $maquinass . '%',
            'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
            'OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
            'Marca.marca LIKE ' => '%' . $marcass . '%',
					'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
					'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
				)
            ); 
      }
}else{
  if (strlen($texto_ids) > 0) {
$condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
                 'OrdenesReparacion.id in '.$texto_ids.' ',
        "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',                                        
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',                    
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%',                
                    'Marca.marca LIKE ' => '%' . $maquinass . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
        )
            ); 
  } else {
  $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
        "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',                                        
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',                    
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%',                
            'Marca.marca LIKE ' => '%' . $maquinass . '%',
            'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
        )
            ); 
  }

}
			debug($palabraBuscar);   
		   }else{
if(strlen($marcass)>1){
     $marcass = trim($marcass); //se hace el trabajo de cadenas
          $marcass = preg_replace('/(\s+)/',"%",$marcass);
            if (strlen($texto_ids) > 0) {
              $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
                'OrdenesReparacion.id in '.$texto_ids.' ',
        "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
                    'Marca.marca LIKE ' => '%' . $marcass . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            );

            } else {
                    $condiciones=array(                           
                    'OrdenesReparacion.anulada<>1',
				            "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
                    'Marca.marca LIKE ' => '%' . $marcass . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                    )
                    );
            }
}else{
                    if (strlen($texto_ids) > 0) {
                      $condiciones=array(                           
                    'OrdenesReparacion.anulada<>1',
                    'OrdenesReparacion.id in '.$texto_ids.' ',
                    "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            );
                    } else {
                    $condiciones=array(                           
                    'OrdenesReparacion.anulada<>1',
                    "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                    )
                    );
                    }
              
}
            debug($palabraBuscar); 
			    debug($areass); 
		   }
	   }
	   else{
		   
		     if(strlen($maquinass)>1){
          if(strlen($marcass)>1){
                 $marcass = trim($marcass); //se hace el trabajo de cadenas
          $marcass = preg_replace('/(\s+)/',"%",$marcass);
                 debug($palabraBuscar);
                 if (strlen($texto_ids) > 0) {
                  $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
                'OrdenesReparacion.id in '.$texto_ids.' ',
                "OR" => array(
               'Marca.marca LIKE ' => '%' . $maquinass . '%',
               'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
               'OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
               'Marca.marca LIKE ' => '%' . $marcass . '%',
               'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
               'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
                )
                );
                 } else {
                $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
				        "OR" => array(
				       'Marca.marca LIKE ' => '%' . $maquinass . '%',
               'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
               'OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
               'Marca.marca LIKE ' => '%' . $marcass . '%',
					     'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
					     'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
				        )
		            );
                }
}else{
  if (strlen($texto_ids) > 0) {
          $condiciones=array(                           
          'OrdenesReparacion.anulada<>1',
          'OrdenesReparacion.id in '.$texto_ids.' ',
          "OR" => array(
          'Marca.marca LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
          )
          );
        } else {
          $condiciones=array(                           
          'OrdenesReparacion.anulada<>1',
          "OR" => array(
          'Marca.marca LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
          )
          );
        }
}
				 
				 
			 }else{
        if(strlen($marcass)>1){
               $marcass = trim($marcass); //se hace el trabajo de cadenas
          $marcass = preg_replace('/(\s+)/',"%",$marcass);
              if (strlen($texto_ids) > 0) {
                $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
                'OrdenesReparacion.id in '.$texto_ids.' ',
                'OR'=>array('OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
                   'Marca.marca LIKE ' => '%' . $marcass . '%',)
		              );
              } else {
                $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
                'OR'=>array('OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
                   'Marca.marca LIKE ' => '%' . $marcass . '%',)
                  );
              }
}
else{
  if (strlen($texto_ids) > 0) {
    $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
                'OrdenesReparacion.id in '.$texto_ids.' ',
       ); 
  } else {
    $condiciones=array(                           
                'OrdenesReparacion.anulada<>1'
       );    
  }
 
}
			 }
	   }	   
	   
	   if(strlen($fech1)>2 && strlen($fech2)>2 ){
		   if($fechass=='0'){				
                array_push($condiciones, 'OrdenesReparacion.fecha between "'.$fech1.'" and "'.$fech2.'"');				               
            }else{
                if($fechass=='1'){
                    array_push($condiciones, 'OrdenesReparacion.confirmada between "'.$fech1.'" and "'.$fech2.'"');
                }
                if($fechass=='2'){
                    array_push($condiciones, 'OrdenesReparacion.pronta between "'.$fech1.'" and "'.$fech2.'"');
                }
                if($fechass=='3'){
                    array_push($condiciones, 'OrdenesReparacion.retirada between "'.$fech1.'" and "'.$fech2.'"');
                }
                if($fechass=='4'){
                    array_push($condiciones, 'OrdenesReparacion.fecha_asignado between "'.$fech1.'" and "'.$fech2.'"');
                }
                if($fechass=='5'){
                    array_push($condiciones, 'OrdenesReparacion.presupuesto between "'.$fech1.'" and "'.$fech2.'"');
                }
                if($fechass=='6'){
                    array_push($condiciones, 'OrdenesReparacion.fecha_prometido between "'.$fech1.'" and "'.$fech2.'"');
                }
            }
	   }	  
            if ($destexc != "0") {
                if ($destexc == "1") {
                    array_push($condiciones, 'OrdenesReparacion.destino not like "%FUNDICION%" ');
                } else if ($destexc == "2") {
                    array_push($condiciones, 'OrdenesReparacion.destino not like "%AG%" ');
                } else {
                    array_push($condiciones, 'OrdenesReparacion.destino not like "%FG%" ');
                }
            }

       if (strlen($destinoss) > 1) {
            array_push($condiciones, 'OrdenesReparacion.destino like "%' . $destinoss . '%" ');           
       }
if (strlen($modeloss) > 1) {
     if (strlen($arreglo[1]) > 0) {
array_push($condiciones, 'OrdenesReparacion.modelo like "%'.$arreglo[1].'%'.$arreglo[2].'%"');
}else{
array_push($condiciones, 'OrdenesReparacion.modelo like "%'.$modeloss.'%"');  
}
}


	   debug($condiciones);
	   if(strlen($clientess)>1){
		   	    array_push($condiciones, 'UPPER(Cliente.nombre_apellido)  LIKE "%' . strtoupper($clientess) . '%"');
	   }
debug($condiciones);
if(strlen($areass)>1){
	array_push($condiciones, 'UPPER(Area.area) like "%'.strtoupper($areass).'%"');
}	
if ($areass2!="Todas") {
  array_push($condiciones, 'UPPER(Area.area) like "%'.strtoupper($areass2).'%"');
}
   debug($condiciones);
	   if($estadoss!="Todos"){
		   	    array_push($condiciones, 'OrdenesReparacion.estado like "%'.$estadoss.'%"');
	   }
 debug($condiciones);
		if(strlen($numeross)>1){
				    array_push($condiciones, 'OrdenesReparacion.numero like "%'.$numeross.'%"');
		}	   
	   if($tiposs!="Todos"){
				    array_push($condiciones, 'OrdenesReparacion.tipo like "'.$tiposs.'"');
			}else{
				if(strlen($tiposs2)>1){
					array_push($condiciones, 'OrdenesReparacion.tipo like "%'.$tiposs2.'%"');
				}
			}			
            if ($tecnicoss != '0') {
                    array_push($condiciones, 'concat(Usuario.nombre, " ", Usuario.apellido) like "%' . $tecnicoss . '%"');
            }
			if($precioss!='0'){
				if($precioss=='1')
				    array_push($condiciones, 'OrdenesReparacion.precio_asignado is null');
				if($precioss=='2')
				    array_push($condiciones, 'OrdenesReparacion.precio_asignado>0');
				if($precioss=='3')
				    array_push($condiciones, 'OrdenesReparacion.precio_asignado=0');							
			}			
			
			if($confirmadass!='0'){
				if($confirmadass=='1')
				    array_push($condiciones, 'OrdenesReparacion.confirmada is null','OrdenesReparacion.cancelada<>1');											
				if($confirmadass=='2')
				    array_push($condiciones, 'OrdenesReparacion.confirmada is not null','OrdenesReparacion.cancelada<>1');				
				if($confirmadass=='3')
				    array_push($condiciones, 'OrdenesReparacion.cancelada=1');				
			}
			if($prontass!='0'){
				if($prontass=='1')
				    array_push($condiciones, 'OrdenesReparacion.pronta is not null');											
				if($prontass=='2')
				    array_push($condiciones, 'OrdenesReparacion.pronta is null');									
			}
			
			if($retiradass!='0'){
				if($retiradass=='1')
				    array_push($condiciones, 'OrdenesReparacion.retirada is not null');											
				if($retiradass=='2')
				    array_push($condiciones, 'OrdenesReparacion.retirada is null');									
			}
			
			if($interiores!='0'){
				if($interiores=='1')
				    array_push($condiciones, 'OrdenesReparacion.interior=0');											
				if($interiores=='2')
				    array_push($condiciones, 'OrdenesReparacion.interior=1');									
			}
			
			if($facturass!='0'){
				if($facturass=='1')
				    array_push($condiciones, 'length(OrdenesReparacion.factura_id) < 2 ');											
				if($facturass=='2')
				    array_push($condiciones, 'length(OrdenesReparacion.factura_id) > 1');									
			}
			
			if($presup!='0'){
  if($presup=='1'){
                    array_push($condiciones, 'OrdenesReparacion.fecha_prometido is not null ','OrdenesReparacion.presupuesto_taller <> "" ');
  }
  if($presup=='2'){
                   array_push($condiciones, 'OrdenesReparacion.Presupuesto is null '); 
  }
}
if ($prontatec > 0) {
    
		    $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'joins' => array(
                array(
                    'table' => 'ordenes_servicio_bitacora',
                    'alias' => 'Oserv',
                    'type' => 'INNER',
                    'conditions' => array(
                        'Oserv.id_orden = OrdenesReparacion.id',
                        'Oserv.id_usuario = ' . $prontatec,
                        'Oserv.id_accion = 6',
                    )
                )
            ),
            'group' => array('OrdenesReparacion.id'),
            'conditions' => $condiciones,
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.factura_id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                'OrdenesReparacion.interior',
                 'OrdenesReparacion.precio',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'Area.area',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada',
                 'OrdenesReparacion.lugar_compra',
                 'OrdenesReparacion.fecha_compra',
                 'OrdenesReparacion.destino',
                'OrdenesReparacion.fecha_prometido', 
                'AvisosBitacora.pronta_date',
                'AvisosBitacora.precio_date',             
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );            
} else {
		 if ($reclamos == 1) {

              $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'joins' => array(
                array(
                    'table' => 'ordenes_servicio_bitacora',
                    'alias' => 'Oserv',
                    'type' => 'INNER',
                    'conditions' => array(
                        'Oserv.id_orden = OrdenesReparacion.id',                        
                        'Oserv.id_accion in (19,20)',
                    )
                )
            ),
            'group' => array('OrdenesReparacion.id'),
            'conditions' => $condiciones,
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.factura_id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                'OrdenesReparacion.interior',
                 'OrdenesReparacion.precio',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'Area.area',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada',
                 'OrdenesReparacion.lugar_compra',
                 'OrdenesReparacion.fecha_compra',
                 'OrdenesReparacion.destino',
                'OrdenesReparacion.fecha_prometido',              
                'AvisosBitacora.pronta_date',
                'AvisosBitacora.precio_date',
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );

    } else {


			    $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => $condiciones,
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.factura_id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                'OrdenesReparacion.interior',
                 'OrdenesReparacion.precio',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'Area.area',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada',
                 'OrdenesReparacion.lugar_compra',
                 'OrdenesReparacion.fecha_compra',
                 'OrdenesReparacion.destino',
                'OrdenesReparacion.fecha_prometido',              
                'AvisosBitacora.pronta_date',
                'AvisosBitacora.precio_date',
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );

    }

}
	
			debug($condiciones);
		$this->set(compact('data'));	
   }
   
     function excelg($fech1 = "", $fech2 = "", $fechass = 0, $tiposs = "", $precioss = 0, $confirmadass = 0, 
        $prontass=0, $retiradass=0, $interiores=0, $facturass=0, $palabraBuscar = "0", $estadoss = "0", 
        $numeross = "0", $tiposs2 = "0", $clientess = "0", $maquinass = "0", $areass = "0", $presup = "0", 
        $marcass="0", $modeloss = "0", $ids="0", $areass2 = "0", $destinoss = "0", $tecnicoss = '0', $prontatec = 0, $destexc = 0,
        $reclamos = 0){
		$this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );
        $this->OrdenesReparacion->bindModel( 
        array('belongsTo' => array(
             'Usuario' => array(
                        'className' => 'Usuario',
                        'foreignKey' => 'empleado_id')
            )
            )
        );

        $this->OrdenesReparacion->bindModel( 
        array('belongsTo' => array(
             'AvisosBitacora' => array(
                        'className' => 'AvisosBitacora',
                        'foreignKey' => 'id')
            )
            )
        );
    $texto_ids="";
    if (strlen($ids) > 1) {
      $valores_id = split('-', $ids);
      $texto_ids= " (";
      foreach ($valores_id as $v) {    
        if (strlen($v) > 0) {
            $texto_ids .= $v.", ";                    
        }               
                        
      }
      $texto_ids = substr($texto_ids, 0, strlen($texto_ids) - 2) . ') ';      
    }



        $this->set('result',$this->OrdenesServicioBitacora->lista());
        $data=NULL;
		eregi('^([a-z]+)([0-9]+)$', $modeloss, $arreglo);
	   if(strlen($palabraBuscar)>1){
		   if(strlen($maquinass)>1){

if(strlen($marcass)>1){
       $marcass = trim($marcass); //se hace el trabajo de cadenas
          $marcass = preg_replace('/(\s+)/',"%",$marcass);
          if (strlen($texto_ids) > 0) {
$condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
                'OrdenesReparacion.id in '.$texto_ids.' ',
        "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',                                        
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',                    
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.lugar_compra LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%',                
            'Marca.marca LIKE ' => '%' . $maquinass . '%',
            'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
            'OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
            'Marca.marca LIKE ' => '%' . $marcass . '%',
          'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
        )
            ); 

          } else  {
$condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
				"OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',                                        
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',       
                    'OrdenesReparacion.lugar_compra LIKE ' => '%' . $palabraBuscar . '%',             
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%',                
				    'Marca.marca LIKE ' => '%' . $maquinass . '%',
            'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
            'OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
            'Marca.marca LIKE ' => '%' . $marcass . '%',
					'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
					'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
				)
            ); 
      }
}else{
  if (strlen($texto_ids) > 0) {
$condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
                 'OrdenesReparacion.id in '.$texto_ids.' ',
        "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',                                        
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',                    
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%',                
                    'Marca.marca LIKE ' => '%' . $maquinass . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
        )
            ); 
  } else {
  $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
        "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',                                        
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',                    
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%',                
            'Marca.marca LIKE ' => '%' . $maquinass . '%',
            'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
        )
            ); 
  }

}
	//		debug($palabraBuscar);   
		   }else{
if(strlen($marcass)>1){
     $marcass = trim($marcass); //se hace el trabajo de cadenas
          $marcass = preg_replace('/(\s+)/',"%",$marcass);
            if (strlen($texto_ids) > 0) {
              $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
                'OrdenesReparacion.id in '.$texto_ids.' ',
        "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
                    'Marca.marca LIKE ' => '%' . $marcass . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            );

            } else {
                    $condiciones=array(                           
                    'OrdenesReparacion.anulada<>1',
				            "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
                    'Marca.marca LIKE ' => '%' . $marcass . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                    )
                    );
            }
}else{
                    if (strlen($texto_ids) > 0) {
                      $condiciones=array(                           
                    'OrdenesReparacion.anulada<>1',
                    'OrdenesReparacion.id in '.$texto_ids.' ',
                    "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            );
                    } else {
                    $condiciones=array(                           
                    'OrdenesReparacion.anulada<>1',
                    "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                    )
                    );
                    }
              
}
       //     debug($palabraBuscar); 
	//		    debug($areass); 
		   }
	   }
	   else{
		   
		     if(strlen($maquinass)>1){
          if(strlen($marcass)>1){
                 $marcass = trim($marcass); //se hace el trabajo de cadenas
          $marcass = preg_replace('/(\s+)/',"%",$marcass);
      //           debug($palabraBuscar);
                 if (strlen($texto_ids) > 0) {
                  $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
                'OrdenesReparacion.id in '.$texto_ids.' ',
                "OR" => array(
               'Marca.marca LIKE ' => '%' . $maquinass . '%',
               'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
               'OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
               'Marca.marca LIKE ' => '%' . $marcass . '%',
               'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
               'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
                )
                );
                 } else {
                $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
				        "OR" => array(
				       'Marca.marca LIKE ' => '%' . $maquinass . '%',
               'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
               'OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
               'Marca.marca LIKE ' => '%' . $marcass . '%',
					     'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
					     'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
				        )
		            );
                }
}else{
  if (strlen($texto_ids) > 0) {
          $condiciones=array(                           
          'OrdenesReparacion.anulada<>1',
          'OrdenesReparacion.id in '.$texto_ids.' ',
          "OR" => array(
          'Marca.marca LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
          )
          );
        } else {
          $condiciones=array(                           
          'OrdenesReparacion.anulada<>1',
          "OR" => array(
          'Marca.marca LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
          )
          );
        }
}
				 
				 
			 }else{
        if(strlen($marcass)>1){
               $marcass = trim($marcass); //se hace el trabajo de cadenas
          $marcass = preg_replace('/(\s+)/',"%",$marcass);
              if (strlen($texto_ids) > 0) {
                $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
                'OrdenesReparacion.id in '.$texto_ids.' ',
                'OR'=>array('OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
                   'Marca.marca LIKE ' => '%' . $marcass . '%',)
		              );
              } else {
                $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
                'OR'=>array('OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
                   'Marca.marca LIKE ' => '%' . $marcass . '%',)
                  );
              }
}
else{
  if (strlen($texto_ids) > 0) {
    $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
                'OrdenesReparacion.id in '.$texto_ids.' ',
       ); 
  } else {
    $condiciones=array(                           
                'OrdenesReparacion.anulada<>1'
       );    
  }
 
}
			 }
	   }

        if ($destexc != "0") {
            if ($destexc == "1") {
                array_push($condiciones, 'OrdenesReparacion.destino not like "%FUNDICION%" ');
            } else if ($destexc == "2") {
                array_push($condiciones, 'OrdenesReparacion.destino not like "%AG%" ');
            } else {
                array_push($condiciones, 'OrdenesReparacion.destino not like "%FG%" ');
            }
        }	   
	   
	   if(strlen($fech1)>2 && strlen($fech2)>2 ){
		   if($fechass=='0'){				
                array_push($condiciones, 'OrdenesReparacion.fecha between "'.$fech1.'" and "'.$fech2.'"');				               
            }else{
                if($fechass=='1'){
                    array_push($condiciones, 'OrdenesReparacion.confirmada between "'.$fech1.'" and "'.$fech2.'"');
                }
                if($fechass=='2'){
                    array_push($condiciones, 'OrdenesReparacion.pronta between "'.$fech1.'" and "'.$fech2.'"');
                }
                if($fechass=='3'){
                    array_push($condiciones, 'OrdenesReparacion.retirada between "'.$fech1.'" and "'.$fech2.'"');
                }
                if($fechass=='4'){
                    array_push($condiciones, 'OrdenesReparacion.fecha_asignado between "'.$fech1.'" and "'.$fech2.'"');
                }
                if($fechass=='5'){
                    array_push($condiciones, 'OrdenesReparacion.presupuesto between "'.$fech1.'" and "'.$fech2.'"');
                }
                if($fechass=='6'){
                    array_push($condiciones, 'OrdenesReparacion.fecha_prometido between "'.$fech1.'" and "'.$fech2.'"');
                }
            }
	   }	  
       if (strlen($destinoss) > 1) {
            array_push($condiciones, 'OrdenesReparacion.destino like "%' . $destinoss . '%" ');           
       }
if (strlen($modeloss) > 1) {
     if (strlen($arreglo[1]) > 0) {
array_push($condiciones, 'OrdenesReparacion.modelo like "%'.$arreglo[1].'%'.$arreglo[2].'%"');
}else{
array_push($condiciones, 'OrdenesReparacion.modelo like "%'.$modeloss.'%"');  
}
}


	   debug($condiciones);
	   if(strlen($clientess)>1){
		   	    array_push($condiciones, 'UPPER(Cliente.nombre_apellido)  LIKE "%' . strtoupper($clientess) . '%"');
	   }
debug($condiciones);
if(strlen($areass)>1){
	array_push($condiciones, 'UPPER(Area.area) like "%'.strtoupper($areass).'%"');
}	
if ($areass2!="Todas") {
  array_push($condiciones, 'UPPER(Area.area) like "%'.strtoupper($areass2).'%"');
}
   debug($condiciones);
	   if($estadoss!="Todos"){
		   	    array_push($condiciones, 'OrdenesReparacion.estado like "%'.$estadoss.'%"');
	   }
 debug($condiciones);
		if(strlen($numeross)>1){
				    array_push($condiciones, 'OrdenesReparacion.numero like "%'.$numeross.'%"');
		}	
        if ($tecnicoss != '0') {
            array_push($condiciones, 'concat(Usuario.nombre, " ", Usuario.apellido) like "%' . $tecnicoss . '%"');			
        }  
	   if($tiposs!="Todos"){
				    array_push($condiciones, 'OrdenesReparacion.tipo like "'.$tiposs.'"');
			}else{
				if(strlen($tiposs2)>1){
					array_push($condiciones, 'OrdenesReparacion.tipo like "%'.$tiposs2.'%"');
				}
			}			
			if($precioss!='0'){
				if($precioss=='1')
				    array_push($condiciones, 'OrdenesReparacion.precio_asignado is null');
				if($precioss=='2')
				    array_push($condiciones, 'OrdenesReparacion.precio_asignado>0');
				if($precioss=='3')
				    array_push($condiciones, 'OrdenesReparacion.precio_asignado=0');							
			}			
			
			if($confirmadass!='0'){
				if($confirmadass=='1')
				    array_push($condiciones, 'OrdenesReparacion.confirmada is null','OrdenesReparacion.cancelada<>1');											
				if($confirmadass=='2')
				    array_push($condiciones, 'OrdenesReparacion.confirmada is not null','OrdenesReparacion.cancelada<>1');				
				if($confirmadass=='3')
				    array_push($condiciones, 'OrdenesReparacion.cancelada=1');				
			}
			if($prontass!='0'){
				if($prontass=='1')
				    array_push($condiciones, 'OrdenesReparacion.pronta is not null');											
				if($prontass=='2')
				    array_push($condiciones, 'OrdenesReparacion.pronta is null');									
			}
			
			if($retiradass!='0'){
				if($retiradass=='1')
				    array_push($condiciones, 'OrdenesReparacion.retirada is not null');											
				if($retiradass=='2')
				    array_push($condiciones, 'OrdenesReparacion.retirada is null');									
			}
			
			if($interiores!='0'){
				if($interiores=='1')
				    array_push($condiciones, 'OrdenesReparacion.interior=0');											
				if($interiores=='2')
				    array_push($condiciones, 'OrdenesReparacion.interior=1');									
			}
			
			if($facturass!='0'){
				if($facturass=='1')
				    array_push($condiciones, 'length(OrdenesReparacion.factura_id) < 2 ');											
				if($facturass=='2')
				    array_push($condiciones, 'length(OrdenesReparacion.factura_id) > 1');									
			}
			
			if($presup!='0'){
  if($presup=='1'){
                    array_push($condiciones, 'OrdenesReparacion.fecha_prometido is not null ','OrdenesReparacion.presupuesto_taller <> "" ');
  }
  if($presup=='2'){
                   array_push($condiciones, 'OrdenesReparacion.Presupuesto is null '); 
  }
}

if ($prontatec > 0) {
      

            $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'joins' => array(
                array(
                    'table' => 'ordenes_servicio_bitacora',
                    'alias' => 'Oserv',
                    'type' => 'INNER',
                    'conditions' => array(
                        'Oserv.id_orden = OrdenesReparacion.id',
                        'Oserv.id_usuario = ' . $prontatec,
                        'Oserv.id_accion = 6',
                    )
                )
            ),
            'group' => array('OrdenesReparacion.id'),
            'conditions' => $condiciones,
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.factura_id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                'OrdenesReparacion.interior',
                 'OrdenesReparacion.precio',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'Area.area',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada',
                 'OrdenesReparacion.lugar_compra',
                 'OrdenesReparacion.fecha_compra',
                 'OrdenesReparacion.destino',
                'OrdenesReparacion.fecha_prometido', 
                'AvisosBitacora.pronta_date',
                'AvisosBitacora.precio_date',             
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );
} else {

    if ($reclamos == 1) {

              $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'joins' => array(
                array(
                    'table' => 'ordenes_servicio_bitacora',
                    'alias' => 'Oserv',
                    'type' => 'INNER',
                    'conditions' => array(
                        'Oserv.id_orden = OrdenesReparacion.id',                        
                        'Oserv.id_accion in (19,20)',
                    )
                )
            ),
            'group' => array('OrdenesReparacion.id'),
            'conditions' => $condiciones,
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.factura_id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                'OrdenesReparacion.interior',
                 'OrdenesReparacion.precio',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'Area.area',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada',
                 'OrdenesReparacion.lugar_compra',
                 'OrdenesReparacion.fecha_compra',
                 'OrdenesReparacion.destino',
                'OrdenesReparacion.fecha_prometido', 
                'AvisosBitacora.pronta_date',
                'AvisosBitacora.precio_date',             
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );

    } else {


			    $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => $condiciones,
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.factura_id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                'OrdenesReparacion.interior',
                 'OrdenesReparacion.precio',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'Area.area',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada',
                 'OrdenesReparacion.lugar_compra',
                 'OrdenesReparacion.fecha_compra',
                 'OrdenesReparacion.destino',
                'OrdenesReparacion.fecha_prometido',   
                'AvisosBitacora.pronta_date',
                'AvisosBitacora.precio_date',           
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );

    }


}

        App::import('Vendor', 'PHPExcel/Classes/PHPExcel');
        // Create new PHPExcel object
    $objPHPExcel = new PHPExcel();
    //PHPExcel_Shared_Font::setAutoSizeMethod(PHPExcel_Shared_Font::AUTOSIZE_METHOD_EXACT);

    // Set document properties
    $objPHPExcel->getProperties()->setCreator("Patricial")
                                ->setLastModifiedBy("Patricia Morales")
                                ->setTitle("Reporte General de Ordenes Reparaciones")
                                ->setSubject("Interior")
                                ->setDescription("Reporte General en formato excel")
                                ->setKeywords("office 2007 openxml php")
                                ->setCategory("Archivo de salida de prueba");
    	        
    
	 $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue('C1', 'Reporte General')
                ->setCellValue('A3', 'Numero')
                ->setCellValue('B3', 'Ingreso')
                ->setCellValue('C3', 'P. Presupp')
                ->setCellValue('D3', 'P. Entrega')
                ->setCellValue('E3', 'Tipo Orden')
                ->setCellValue('F3', 'Cliente')
                ->setCellValue('G3', 'Maquina')
                ->setCellValue('H3', 'Precio')
                ->setCellValue('I3', 'Interior')
                ->setCellValue('J3', 'Facturado')
                ->setCellValue('K3', 'Estado')
                ->setCellValue('L3', 'Area')
                ->setCellValue('M3', 'Destino')
                ->setCellValue('N3', 'Fecha Compra')
                ->setCellValue('O3', 'Aviso Precio')
                ->setCellValue('P3', 'Aviso Pronta')
                ->setCellValue('Q3', 'Nro. de Referencia')
                ->setCellValue('R3', 'Nro. de Teléfono');
              
    $objPHPExcel->getActiveSheet()->getStyle("A3:S3")->getFont()->setBold(true);
    $i = 4;
    foreach ($data as $d) {
        $ingreso  = ""; 
        $presup = ""; 
        $entrega = ""; 
        $numero = $d['OrdenesReparacion']['ser']. ' '. $d['OrdenesReparacion']['numero'];
        $compra  = "";
        $avprecio = "";
        $avpronta = "";
        $numref = $d['OrdenesReparacion']['serie'];

           
        if (strlen($d['AvisosBitacora']['precio_date']) > 0 && $d['AvisosBitacora']['precio_date'] != "0000-00-00") {
            $t_year   = substr($d['AvisosBitacora']['precio_date'],0,4);
            $t_month  = substr($d['AvisosBitacora']['precio_date'],5,2);// Fixed problems with offsets
            $t_day    = substr($d['AvisosBitacora']['precio_date'],8,2);
            $avprecio   = PHPExcel_Shared_Date::FormattedPHPToExcel($t_year, $t_month, $t_day);                        
        }

        if (strlen($d['AvisosBitacora']['pronta_date']) > 0 && $d['AvisosBitacora']['pronta_date'] != "0000-00-00") {
            $t_year   = substr($d['AvisosBitacora']['pronta_date'],0,4);
            $t_month  = substr($d['AvisosBitacora']['pronta_date'],5,2);// Fixed problems with offsets
            $t_day    = substr($d['AvisosBitacora']['pronta_date'],8,2);
            $avpronta   = PHPExcel_Shared_Date::FormattedPHPToExcel($t_year, $t_month, $t_day);                        
        }
                          
        if (strlen($d['OrdenesReparacion']['fecha']) > 0 && $d['OrdenesReparacion']['fecha'] != "0000-00-00") {
            $t_year   = substr($d['OrdenesReparacion']['fecha'],0,4);
            $t_month  = substr($d['OrdenesReparacion']['fecha'],5,2);// Fixed problems with offsets
            $t_day    = substr($d['OrdenesReparacion']['fecha'],8,2);
            $ingreso   = PHPExcel_Shared_Date::FormattedPHPToExcel($t_year, $t_month, $t_day);                        
        }
        
        if (strlen($d['OrdenesReparacion']['fecha_prometido']) > 0 && $d['OrdenesReparacion']['fecha_prometido'] != "0000-00-00") {
            $t_year   = substr($d['OrdenesReparacion']['fecha_prometido'],0,4);
            $t_month  = substr($d['OrdenesReparacion']['fecha_prometido'],5,2);// Fixed problems with offsets
            $t_day    = substr($d['OrdenesReparacion']['fecha_prometido'],8,2);
            $presup   = PHPExcel_Shared_Date::FormattedPHPToExcel($t_year, $t_month, $t_day);                        
        }
        
        if (strlen($d['OrdenesReparacion']['fecha_asignado']) > 0 && $d['OrdenesReparacion']['fecha_asignado'] != "0000-00-00") {
            $t_year   = substr($d['OrdenesReparacion']['fecha_asignado'],0,4);
            $t_month  = substr($d['OrdenesReparacion']['fecha_asignado'],5,2);// Fixed problems with offsets
            $t_day    = substr($d['OrdenesReparacion']['fecha_asignado'],8,2);
            $entrega   = PHPExcel_Shared_Date::FormattedPHPToExcel($t_year, $t_month, $t_day);                        
        }
        
        if (strlen($d['OrdenesReparacion']['fecha_compra']) > 0 && $d['OrdenesReparacion']['fecha_compra'] != "0000-00-00") {
            $t_year   = substr($d['OrdenesReparacion']['fecha_compra'],0,4);
            $t_month  = substr($d['OrdenesReparacion']['fecha_compra'],5,2);// Fixed problems with offsets
            $t_day    = substr($d['OrdenesReparacion']['fecha_compra'],8,2);
            $compra   = PHPExcel_Shared_Date::FormattedPHPToExcel($t_year, $t_month, $t_day);                        
        }
        
        $precio = $d['OrdenesReparacion']['precio_asignado'];                                
        $interior = ($d['OrdenesReparacion']['interior']=='1') ?"Interior" : "";
        $factura = ($d['OrdenesReparacion']['factura_id']===NULL || $d['OrdenesReparacion']['factura_id']=="")?"" :"FACTURADO";                            
        $art = $d['OrdenesReparacion']['articulo'] ." ". $d['Marca']['marca']  ."  ". $d['OrdenesReparacion']['modelo'];
        $estado  = "";
        if ($d['OrdenesReparacion']['estado'] == '') {
            $estado = "Ingresada";
        } else {
            if ($d['OrdenesReparacion']['estado'] == 'Cancelada') {
                $estado = "Rechazada";
            }else{
                $estado = $d['OrdenesReparacion']['estado'];
            }
        }
        
      
   $objPHPExcel->setActiveSheetIndex(0)
                    ->setCellValue('A' . $i, $numero)
                    ->setCellValue('B' . $i, $ingreso)
                    ->setCellValue('C' . $i, $presup)
                    ->setCellValue('D' . $i, $entrega)
                    ->setCellValue('E' . $i, $d['OrdenesReparacion']['tipo'])
                    ->setCellValue('F' . $i, $d['Cliente']['nombre_apellido'])
                    ->setCellValue('G' . $i, $art)
                    ->setCellValue('H' . $i, $precio)
                    ->setCellValue('I' . $i, $interior)
                    ->setCellValue('J' . $i, $factura)
                    ->setCellValue('K' . $i, $estado)
                    ->setCellValue('L' . $i, $d['Area']['area'])
                    ->setCellValue('M' . $i, $d['OrdenesReparacion']['destino'])
                    ->setCellValue('N' . $i, $compra)
                    ->setCellValue('O' . $i, $avprecio)
                    ->setCellValue('P' . $i, $avpronta)
                    ->setCellValue('Q' . $i, $numref)
                    ->setCellValue('R' . $i, $d['Cliente']['celular']);
                     
                    $objPHPExcel->getActiveSheet()
                                ->getStyle('B' . $i)
                                ->getNumberFormat()
                                ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);
                    $objPHPExcel->getActiveSheet()
                                ->getStyle('C' . $i)
                                ->getNumberFormat()
                                ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);                                   
                    $objPHPExcel->getActiveSheet()
                                ->getStyle('D' . $i)
                                ->getNumberFormat()
                                ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);                                
                    $objPHPExcel->getActiveSheet()
                                ->getStyle('N' . $i)
                                ->getNumberFormat()
                                ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);                                
                    $objPHPExcel->getActiveSheet()
                                ->getStyle('O' . $i)
                                ->getNumberFormat()
                                ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);                                
                    $objPHPExcel->getActiveSheet()
                                ->getStyle('P' . $i)
                                ->getNumberFormat()
                                ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);                                

        $i++;                  
                                                      
    }
    
    foreach(range('A','R') as $columnID) {
        $objPHPExcel->getActiveSheet()
                    ->getColumnDimension($columnID)
                    ->setAutoSize(true);
    }
    // Set active sheet index to the first sheet, so Excel opens this as the first sheet
    $objPHPExcel->setActiveSheetIndex(0);   
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');  
    $valexcel = date('d_m_Y_H_i_s');
    $objWriter->save('files/general_' . $valexcel . '.xlsx');
	$this->redirect('/files/general_' . $valexcel . '.xlsx');
   }
   
   
      function excelinterior($fech1, $fech2, $numeross, $clientess, $maquinass, $recibidoss, $envioss, $tiposs, $areass, $estadoss) {
        if (strpos('Rechazada', $estadoss) !== false || strpos('rechazada',$estadoss) !== false || strlen($estadoss) == 0) {
            $rech = true;                           
        } else {
            $rech = false;               
        }
      $data = $this->OrdenesReparacion->getImpresionInterior($fech1, $fech2, $numeross, $clientess, $maquinass, $recibidoss, $envioss, $tiposs, $areass, $estadoss);
        
    App::import('Vendor', 'PHPExcel/Classes/PHPExcel');
        
    // Create new PHPExcel object
    $objPHPExcel = new PHPExcel();
    //PHPExcel_Shared_Font::setAutoSizeMethod(PHPExcel_Shared_Font::AUTOSIZE_METHOD_EXACT);

    // Set document properties
    $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
                                ->setLastModifiedBy("Maarten Balliauw")
                                ->setTitle("Reporte de Interior de Ordenes Reparaciones")
                                ->setSubject("Interior")
                                ->setDescription("Reporte de Interior en formato excel")
                                ->setKeywords("office 2007 openxml php")
                                ->setCategory("Archivo de salida de prueba");



    // Add some data
    $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue('C1', 'Reporte de Interior')
                ->setCellValue('A3', 'Fecha')
                ->setCellValue('B3', 'Numero')
                ->setCellValue('C3', 'Cliente')
                ->setCellValue('D3', 'Maquina')
                ->setCellValue('E3', 'Tipo')
                ->setCellValue('F3', 'Area')
                ->setCellValue('G3', 'Estado');
    $objPHPExcel->getActiveSheet()->getStyle("A3:G3")->getFont()->setBold(true);
                
    $i = 4;
                
    foreach ($data as $d) {                
                
        $fecha = "";
        
        if (strlen($d['a']['fecha']) > 0 && $d['a']['fecha'] != "0000-00-00") {
            $t_year   = substr($d['a']['fecha'],0,4);
            $t_month  = substr($d['a']['fecha'],5,2);// Fixed problems with offsets
            $t_day    = substr($d['a']['fecha'],8,2);
            $fecha   = PHPExcel_Shared_Date::FormattedPHPToExcel($t_year, $t_month, $t_day);                        
        }
        
        $art = $d['a']['articulo'].' '.$d['d']['marca'].' '.$d['a']['modelo'];
            
        if ($d['a']['marca_id'] == 120) {
            $art = $d['a']['articulo'].' '.$d['a']['detalle_marca'].' '.$d['a']['modelo'];
        }
             
        $recha = $d['a']['estado']; 
        
        if ($d['a']['cancelada'] == 1 && $rech) {
           $recha = "Rechazada";
        }
        
        $objPHPExcel->setActiveSheetIndex(0)
                    ->setCellValue('A' . $i, $fecha)
                    ->setCellValue('B' . $i, $d['a']['numero'])
                    ->setCellValue('C' . $i, $d['c']['nombre_apellido'])
                    ->setCellValue('D' . $i, $art)
                    ->setCellValue('E' . $i, $d['a']['tipo'])
                    ->setCellValue('F' . $i, $d['b']['area'])
                    ->setCellValue('G' . $i, $recha);
                    $objPHPExcel->getActiveSheet()
                                ->getStyle('A' . $i)
                                ->getNumberFormat()
                                ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);                                   
        $i++;                  
                                                      
    }
    
    foreach(range('A','G') as $columnID) {
        $objPHPExcel->getActiveSheet()
                    ->getColumnDimension($columnID)
                    ->setAutoSize(true);
    }
    // Set active sheet index to the first sheet, so Excel opens this as the first sheet
    $objPHPExcel->setActiveSheetIndex(0);   
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');            
    $objWriter->save('files/interior_' . date('d_m_Y') . '.xlsx');
	$this->redirect('/files/interior_' . date('d_m_Y') . '.xlsx');

     
 }


   function excelreclamadas($fech1, $fech2, $numeross, $clientess, $maquinass, $areass, $reclamoss) {   // PM 27.3.2017
         
      $data = $this->OrdenesReparacion->getImpresionReclamadas($fech1, $fech2, $numeross, $clientess, $maquinass, $areass, $reclamoss);
        
    App::import('Vendor', 'PHPExcel/Classes/PHPExcel');
        
    // Create new PHPExcel object
    $objPHPExcel = new PHPExcel();
    //PHPExcel_Shared_Font::setAutoSizeMethod(PHPExcel_Shared_Font::AUTOSIZE_METHOD_EXACT);

    // Set document properties
    $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
                                ->setLastModifiedBy("Maarten Balliauw")
                                ->setTitle("Reporte de ORDENES RECLAMADAS")
                                ->setSubject("Reclamadas")
                                ->setDescription("Reporte de Reclamadas en formato excel")
                                ->setKeywords("office 2007 openxml php")
                                ->setCategory("Archivo de salida");



    // Add some data
    $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue('C1', 'Reporte de ORDENES RECLAMADAS')
                ->setCellValue('A3', 'Fecha')
                ->setCellValue('B3', 'Numero')
                ->setCellValue('C3', 'Cliente')
                ->setCellValue('D3', 'Maquina')
                ->setCellValue('E3', 'Area')
                ->setCellValue('F3', 'Reclamo');
    $objPHPExcel->getActiveSheet()->getStyle("A3:F3")->getFont()->setBold(true);
                
    $i = 4;
                
    foreach ($data as $d) {                
                
        $fecha = "";
        
        if (strlen($d['a']['fecha']) > 0 && $d['a']['fecha'] != "0000-00-00") {
            $t_year   = substr($d['a']['fecha'],0,4);
            $t_month  = substr($d['a']['fecha'],5,2);// Fixed problems with offsets
            $t_day    = substr($d['a']['fecha'],8,2);
            $fecha   = PHPExcel_Shared_Date::FormattedPHPToExcel($t_year, $t_month, $t_day);                        
        }
        
        $art = $d['a']['articulo'].' '.$d['d']['marca'].' '.$d['a']['modelo'];
            
        if ($d['a']['marca_id'] == 120) {
            $art = $d['a']['articulo'].' '.$d['a']['detalle_marca'].' '.$d['a']['modelo'];
        }
             
      
        $objPHPExcel->setActiveSheetIndex(0)
                    ->setCellValue('A' . $i, $fecha)
                    ->setCellValue('B' . $i, $d['a']['numero'])
                    ->setCellValue('C' . $i, $d['c']['nombre_apellido'])
                    ->setCellValue('D' . $i, $art)
                    ->setCellValue('E' . $i, $d['b']['area'])
                    ->setCellValue('F' . $i, $d['i']['comentarios']);
                    $objPHPExcel->getActiveSheet()
                                ->getStyle('A' . $i)
                                ->getNumberFormat()
                                ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);                                   
        $i++;                  
                                                      
    }
    
    foreach(range('A','F') as $columnID) {
        $objPHPExcel->getActiveSheet()
                    ->getColumnDimension($columnID)
                    ->setAutoSize(true);
    }
    // Set active sheet index to the first sheet, so Excel opens this as the first sheet
    $objPHPExcel->setActiveSheetIndex(0);   
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');            
    $objWriter->save('files/reclamadas_' . date('d_m_Y') . '.xlsx');
    $this->redirect('/files/reclamadas_' . date('d_m_Y') . '.xlsx');

     
 }

 function excelSinOC($fech1, $fech2, $numeross, $clientess, $maquinass, $areass, $presupuestoss) {   // PM 03..2017 sin o. de compra asociada
         
      $data = $this->OrdenesReparacion->getImpresionSinOC($fech1, $fech2, $numeross, $clientess, $maquinass, $areass, $presupuestoss);
        
    App::import('Vendor', 'PHPExcel/Classes/PHPExcel');
        
    // Create new PHPExcel object
    $objPHPExcel = new PHPExcel();
    //PHPExcel_Shared_Font::setAutoSizeMethod(PHPExcel_Shared_Font::AUTOSIZE_METHOD_EXACT);

    // Set document properties
    $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
                                ->setLastModifiedBy("Maarten Balliauw")
                                ->setTitle("Reporte de ORDENES Sin O. de Compra asociada")
                                ->setSubject("Sin OC")
                                ->setDescription("Reporte de Ordenes sin compra asociada en formato excel")
                                ->setKeywords("office 2007 openxml php")
                                ->setCategory("Archivo de salida");



    // Add some data
    $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue('C1', 'Reporte de ORDENES sin O. de Compra asociada')
                ->setCellValue('A3', 'Fecha')
                ->setCellValue('B3', 'Numero')
                ->setCellValue('C3', 'Cliente')
                ->setCellValue('D3', 'Maquina')
                ->setCellValue('E3', 'Area')
                ->setCellValue('F3', 'Presupuesto');
    $objPHPExcel->getActiveSheet()->getStyle("A3:F3")->getFont()->setBold(true);
                
    $i = 4;
                
    foreach ($data as $d) {                
                
        $fecha = "";
        
        if (strlen($d['a']['fecha']) > 0 && $d['a']['fecha'] != "0000-00-00") {
            $t_year   = substr($d['a']['fecha'],0,4);
            $t_month  = substr($d['a']['fecha'],5,2);// Fixed problems with offsets
            $t_day    = substr($d['a']['fecha'],8,2);
            $fecha   = PHPExcel_Shared_Date::FormattedPHPToExcel($t_year, $t_month, $t_day);                        
        }
        
        $art = $d['a']['articulo'].' '.$d['d']['marca'].' '.$d['a']['modelo'];
            
        if ($d['a']['marca_id'] == 120) {
            $art = $d['a']['articulo'].' '.$d['a']['detalle_marca'].' '.$d['a']['modelo'];
        }
             
      
        $objPHPExcel->setActiveSheetIndex(0)
                    ->setCellValue('A' . $i, $fecha)
                    ->setCellValue('B' . $i, $d['a']['numero'])
                    ->setCellValue('C' . $i, $d['c']['nombre_apellido'])
                    ->setCellValue('D' . $i, $art)
                    ->setCellValue('E' . $i, $d['b']['area'])
                    ->setCellValue('F' . $i, $d['a']['presupuesto_taller']);
                    $objPHPExcel->getActiveSheet()
                                ->getStyle('A' . $i)
                                ->getNumberFormat()
                                ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);                                   
        $i++;                  
                                                      
    }
    
    foreach(range('A','F') as $columnID) {
        $objPHPExcel->getActiveSheet()
                    ->getColumnDimension($columnID)
                    ->setAutoSize(true);
    }
    // Set active sheet index to the first sheet, so Excel opens this as the first sheet
    $objPHPExcel->setActiveSheetIndex(0);   
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');            
    $objWriter->save('files/Sin OC_' . date('d_m_Y') . '.xlsx');
    $this->redirect('/files/Sin OC_' . date('d_m_Y') . '.xlsx');

     
 }




 function talonenviado($id) {
     $texto = 'Talon enviado el ' . date('d/m/Y');
     $actualiza = "update ordenes_reparaciones set email = '" 
     . $texto . "' where id = " . $id;
     
     $this->OrdenesReparacion->query($actualiza);     
 }

 function presupenviado($id) {     
     $actualiza = "update ordenes_reparaciones set mailpresupuesto = '" 
     . date('Y-m-d') . "' where id = " . $id;
     
    Debugger::log('esta entrando aca ');
    $profile = $this->Session->read('Usuario');
    Debugger::log($profile['Usuario']['id']);
    $datosAud = array();
    $datosAud['fecha'] = date("Y-m-d H:i:s");
    $datosAud['id_usuario'] = $profile['Usuario']['id'];
    $datosAud['id_accion'] = 17;
    $datosAud['id_orden'] = $id;
    $datosAud['comentarios']= "SE COMUNICA PRESUPUESTO Y PRECIO";        
    App::import('Model', 'OrdenesServicioBitacora');
    $aud = new OrdenesServicioBitacora();
    $aud->create();
    $aud->save($datosAud);

    
    $this->OrdenesReparacion->query($actualiza); 
    App::import('Model', 'AvisosBitacora');
    $avisos = new AvisosBitacora();
    $avisos->avisarPrecio($id);     
 }
   
   function excelgarant($fech1="", $fech2="", $fechass=0, $tiposs="", $precioss=0, $confirmadass=0, $prontass=0, 
 $retiradass=0, $interiores=0, $facturass=0, $palabraBuscar="0", $estadoss="0", $numeross="0", $tiposs2="0", 
 $clientess="0", $maquinass="0", $areass="0", $presup="0", $marcass="0", $modeloss="0", $destinoss="0") {
     
     
     $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );
        $this->set('result',$this->OrdenesServicioBitacora->lista());
        $data=NULL;
    eregi('^([a-z]+)([0-9]+)$', $modeloss, $arreglo);
     if(strlen($palabraBuscar)>1){
       if(strlen($maquinass)>1){

if(strlen($marcass)>1){
$condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
        "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',                                        
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',                    
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%',                
            'Marca.marca LIKE ' => '%' . $maquinass . '%',
            'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
            'OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
            'Marca.marca LIKE ' => '%' . $marcass . '%',
          'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
        )
            ); 
}else{
  $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
        "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',                                        
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',                    
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%',                
            'Marca.marca LIKE ' => '%' . $maquinass . '%',
            'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
        )
            ); 

}
      debug($palabraBuscar);   
       }else{
if(strlen($marcass)>1){

$condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
        "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
                    'Marca.marca LIKE ' => '%' . $marcass . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            );
}else{
  $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
        "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            );
}
            debug($palabraBuscar); 
          debug($areass); 
       }
     }
     else{
       
         if(strlen($maquinass)>1){
          if(strlen($marcass)>1){
                 debug($palabraBuscar);
$condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
        "OR" => array(
            'Marca.marca LIKE ' => '%' . $maquinass . '%',
            'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
               'OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
               'Marca.marca LIKE ' => '%' . $marcass . '%',
          'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
        )
       );
}else{
  $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
        "OR" => array(
            'Marca.marca LIKE ' => '%' . $maquinass . '%',
            'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
        )
       );
}
         
         
       }else{
        if(strlen($marcass)>1){
$condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
                'OR'=>array('OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
                   'Marca.marca LIKE ' => '%' . $marcass . '%',)
                   
       );
}
else{
 $condiciones=array(                           
                'OrdenesReparacion.anulada<>1'
       ); 
}
       }
     }     
     
     if(strlen($fech1)>2 && strlen($fech2)>2 ){
       if($fechass=='0'){       
                array_push($condiciones, 'OrdenesReparacion.fecha between "'.$fech1.'" and "'.$fech2.'"');                       
            }else{
                if($fechass=='1'){
                    array_push($condiciones, 'OrdenesReparacion.confirmada between "'.$fech1.'" and "'.$fech2.'"');
                }
                if($fechass=='2'){
                    array_push($condiciones, 'OrdenesReparacion.pronta between "'.$fech1.'" and "'.$fech2.'"');
                }
                if($fechass=='3'){
                    array_push($condiciones, 'OrdenesReparacion.retirada between "'.$fech1.'" and "'.$fech2.'"');
                }
                if($fechass=='4'){
                    array_push($condiciones, 'OrdenesReparacion.fecha_asignado between "'.$fech1.'" and "'.$fech2.'"');
                }
                if($fechass=='5'){
                    array_push($condiciones, 'OrdenesReparacion.presupuesto between "'.$fech1.'" and "'.$fech2.'"');
                }
            }
     }
     
     if (strlen($destinoss) > 1) {
         array_push($condiciones, 'OrdenesReparacion.destino like "%' . $destinoss . '%"');
     }    
if( strlen($modeloss)>1){
     if(strlen($arreglo[1])>0 ){
array_push($condiciones, 'OrdenesReparacion.modelo like "%'.$arreglo[1].'%'.$arreglo[2].'%"');
}else{
array_push($condiciones, 'OrdenesReparacion.modelo like "%'.$modeloss.'%"');  
}
}


     debug($condiciones);
     if(strlen($clientess)>1){
            array_push($condiciones, 'UPPER(Cliente.nombre_apellido)  LIKE "%' . strtoupper($clientess) . '%"');
     }
debug($condiciones);
if(strlen($areass)>1){
  array_push($condiciones, 'UPPER(Area.area) like "%'.strtoupper($areass).'%"');
} 
   debug($condiciones);
     if($estadoss!="Todos"){
            array_push($condiciones, 'OrdenesReparacion.estado like "%'.$estadoss.'%"');
     }
 debug($condiciones);
    if(strlen($numeross)>1){
            array_push($condiciones, 'OrdenesReparacion.numero like "%'.$numeross.'%"');
    }    
     if($tiposs!="Todos"){
            array_push($condiciones, 'OrdenesReparacion.tipo like "%'.$tiposs.'%"');
      }else{
        if(strlen($tiposs2)>1){
          array_push($condiciones, 'OrdenesReparacion.tipo like "%'.$tiposs2.'%"');
        }
      }     
      if($precioss!='0'){
        if($precioss=='1')
            array_push($condiciones, 'OrdenesReparacion.precio_asignado is null');
        if($precioss=='2')
            array_push($condiciones, 'OrdenesReparacion.precio_asignado>0');
        if($precioss=='3')
            array_push($condiciones, 'OrdenesReparacion.precio_asignado=0');              
      }     
      
      if($confirmadass!='0'){
        if($confirmadass=='1')
            array_push($condiciones, 'OrdenesReparacion.confirmada is null');                     
        if($confirmadass=='2')
            array_push($condiciones, 'OrdenesReparacion.confirmada is not null','OrdenesReparacion.cancelada<>1');        
        if($confirmadass=='3')
            array_push($condiciones, 'OrdenesReparacion.cancelada=1');        
      }
      if($prontass!='0'){
        if($prontass=='1')
            array_push($condiciones, 'OrdenesReparacion.pronta is not null');                     
        if($prontass=='2')
            array_push($condiciones, 'OrdenesReparacion.pronta is null');                 
      }
      
      if($retiradass!='0'){
        if($retiradass=='1')
            array_push($condiciones, 'OrdenesReparacion.retirada is not null');                     
        if($retiradass=='2')
            array_push($condiciones, 'OrdenesReparacion.retirada is null');                 
      }
      
      if($interiores!='0'){
        if($interiores=='1')
            array_push($condiciones, 'OrdenesReparacion.interior=0');                     
        if($interiores=='2')
            array_push($condiciones, 'OrdenesReparacion.interior=1');                 
      }
      
      if($facturass!='0'){
        if($facturass=='1')
            array_push($condiciones, 'length(OrdenesReparacion.factura_id) < 2 ');                     
        if($facturass=='2')
            array_push($condiciones, 'length(OrdenesReparacion.factura_id) > 1');                  
      }
      
      if($presup!='0'){
  if($presup=='1'){
                    array_push($condiciones, 'OrdenesReparacion.fecha_prometido is not null ','OrdenesReparacion.presupuesto_taller <> "" ');
  }
  if($presup=='2'){
                   array_push($condiciones, 'OrdenesReparacion.Presupuesto is null '); 
  }
}

          $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => $condiciones,
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.factura_id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                'OrdenesReparacion.interior',
                 'OrdenesReparacion.precio',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'Area.area',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada',
                 'OrdenesReparacion.lugar_compra',
                 'OrdenesReparacion.fecha_compra',
                 'OrdenesReparacion.destino',
                 'OrdenesReparacion.nro_comprobante',
                'OrdenesReparacion.fecha_prometido',              
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );
        
    App::import('Vendor', 'PHPExcel/Classes/PHPExcel');
        
    // Create new PHPExcel object
    $objPHPExcel = new PHPExcel();

    // Set document properties
    $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
                                ->setLastModifiedBy("Maarten Balliauw")
                                ->setTitle("Reporte de Garantias de Ordenes Reparaciones")
                                ->setSubject("Garantias")
                                ->setDescription("Reporte de Garantias en formato excel")
                                ->setKeywords("office 2007 openxml php")
                                ->setCategory("Archivo de salida de prueba");

    


    // Add some data
    $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue('C1', 'Reporte de Garantias de ordenes reparaciones')
                ->setCellValue('A3', 'Numero')
                ->setCellValue('B3', 'Ingreso')
                ->setCellValue('C3', 'Cliente')
                ->setCellValue('D3', 'Maquina')
                ->setCellValue('E3', 'Distribuidor')
                ->setCellValue('F3', 'Fecha compra')
                ->setCellValue('G3', 'Factura Compra')
                ->setCellValue('H3', 'Destino');
    $objPHPExcel->getActiveSheet()->getStyle("A3:H3")->getFont()->setBold(true);
                
    $i = 4;
                
    foreach ($data as $d) {                
        
        $maquina = "";
        if ($d['Marca']['marca'] != 'OTRA MARCA'){
            $maquina =  $d['OrdenesReparacion']['articulo'] . " " . $d['Orde']['marca']  . "  " . $d['OrdenesReparacion']['modelo'];
        } else {
            $maquina = $d['OrdenesReparacion']['articulo'] . " " . $d['OrdenesReparacion']['detalle_marca']  . "  " . $d['OrdenesReparacion']['modelo'];
        } 
        
        $compra = "";
        
        if (strlen($d['OrdenesReparacion']['fecha_compra']) > 0 && $d['OrdenesReparacion']['fecha_compra'] != "0000-00-00") {
            $t_year   = substr($d['OrdenesReparacion']['fecha_compra'],0,4);
            $t_month  = substr($d['OrdenesReparacion']['fecha_compra'],5,2);// Fixed problems with offsets
            $t_day    = substr($d['OrdenesReparacion']['fecha_compra'],8,2);
            $compra   = PHPExcel_Shared_Date::FormattedPHPToExcel($t_year, $t_month, $t_day);                        
        }
        
        $fecha = "";
        if (strlen($d['OrdenesReparacion']['fecha']) > 0 && $d['OrdenesReparacion']['fecha'] != "0000-00-00") {
            $t_year   = substr($d['OrdenesReparacion']['fecha'],0,4);
            $t_month  = substr($d['OrdenesReparacion']['fecha'],5,2);// Fixed problems with offsets
            $t_day    = substr($d['OrdenesReparacion']['fecha'],8,2);
            $fecha   = PHPExcel_Shared_Date::FormattedPHPToExcel($t_year, $t_month, $t_day);
        }
            
        
        
        $objPHPExcel->setActiveSheetIndex(0)
                    ->setCellValue('A' . $i, $d['OrdenesReparacion']['ser']. ' '. $d['OrdenesReparacion']['numero'])
                    ->setCellValue('B' . $i, $fecha)
                    ->setCellValue('C' . $i, $d['Cliente']['nombre_apellido'])
                    ->setCellValue('D' . $i, $maquina)
                    ->setCellValue('E' . $i, $d['OrdenesReparacion']['lugar_compra'])
                    ->setCellValue('F' . $i, $compra)
                    ->setCellValue('G' . $i, $d['OrdenesReparacion']['nro_comprobante'])
                    ->setCellValue('H' . $i, $d['OrdenesReparacion']['destino']);
                    $objPHPExcel->getActiveSheet()
                                ->getStyle('B' . $i)
                                ->getNumberFormat()
                                ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);
                    $objPHPExcel->getActiveSheet()
                                ->getStyle('F' . $i)
                                ->getNumberFormat()
                                ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);
        /*$objPHPExcel->getActiveSheet()
                    ->getStyleByColumnAndRow(2, $i)
                    ->getNumberFormat()->setFormatCode(
                    PHPExcel_Style_NumberFormat::FORMAT_DATE_DDMMYYYY
                    );
        $objPHPExcel->getActiveSheet()
                    ->getStyleByColumnAndRow(6, $i)
                    ->getNumberFormat()->setFormatCode(
                    PHPExcel_Style_NumberFormat::FORMAT_DATE_DDMMYYYY
                    );
          */          
        $i++;  
        
        
                                                      
    }
    // Set active sheet index to the first sheet, so Excel opens this as the first sheet
    $objPHPExcel->setActiveSheetIndex(0);   
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');            
    $objWriter->save('files/garantia_' . date('d_m_Y') . '.xlsx');
	$this->redirect('/files/garantia_' . date('d_m_Y') . '.xlsx');

     
 }
   
 function imprimirgarant($fech1="", $fech2="", $fechass=0, $tiposs="", $precioss=0, $confirmadass=0, $prontass=0, 
 $retiradass=0, $interiores=0, $facturass=0, $palabraBuscar="0", $estadoss="0", $numeross="0", $tiposs2="0", 
 $clientess="0", $maquinass="0", $areass="0", $presup="0", $marcass="0", $modeloss="0", $destinoss="0"){
    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );
        $this->set('result',$this->OrdenesServicioBitacora->lista());
        $data=NULL;
    eregi('^([a-z]+)([0-9]+)$', $modeloss, $arreglo);
     if(strlen($palabraBuscar)>1){
       if(strlen($maquinass)>1){

if(strlen($marcass)>1){
$condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
        "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',                                        
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',                    
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%',                
            'Marca.marca LIKE ' => '%' . $maquinass . '%',
            'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
            'OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
            'Marca.marca LIKE ' => '%' . $marcass . '%',
          'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
        )
            ); 
}else{
  $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
        "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',                                        
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',                    
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%',                
            'Marca.marca LIKE ' => '%' . $maquinass . '%',
            'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
        )
            ); 

}
      debug($palabraBuscar);   
       }else{
if(strlen($marcass)>1){

$condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
        "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
                    'Marca.marca LIKE ' => '%' . $marcass . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            );
}else{
  $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
        "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            );
}
            debug($palabraBuscar); 
          debug($areass); 
       }
     }
     else{
       
         if(strlen($maquinass)>1){
          if(strlen($marcass)>1){
                 debug($palabraBuscar);
$condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
        "OR" => array(
            'Marca.marca LIKE ' => '%' . $maquinass . '%',
            'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
               'OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
               'Marca.marca LIKE ' => '%' . $marcass . '%',
          'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
        )
       );
}else{
  $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
        "OR" => array(
            'Marca.marca LIKE ' => '%' . $maquinass . '%',
            'OrdenesReparacion.detalle_marca LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.modelo LIKE ' => '%' . $maquinass . '%',
          'OrdenesReparacion.articulo LIKE ' => '%' . $maquinass . '%',
        )
       );
}
         
         
       }else{
        if(strlen($marcass)>1){
$condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
                'OR'=>array('OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
                   'Marca.marca LIKE ' => '%' . $marcass . '%',)
                   
       );
}
else{
 $condiciones=array(                           
                'OrdenesReparacion.anulada<>1'
       ); 
}
       }
     }     
     
     if(strlen($fech1)>2 && strlen($fech2)>2 ){
       if($fechass=='0'){       
                array_push($condiciones, 'OrdenesReparacion.fecha between "'.$fech1.'" and "'.$fech2.'"');                       
            }else{
                if($fechass=='1'){
                    array_push($condiciones, 'OrdenesReparacion.confirmada between "'.$fech1.'" and "'.$fech2.'"');
                }
                if($fechass=='2'){
                    array_push($condiciones, 'OrdenesReparacion.pronta between "'.$fech1.'" and "'.$fech2.'"');
                }
                if($fechass=='3'){
                    array_push($condiciones, 'OrdenesReparacion.retirada between "'.$fech1.'" and "'.$fech2.'"');
                }
                if($fechass=='4'){
                    array_push($condiciones, 'OrdenesReparacion.fecha_asignado between "'.$fech1.'" and "'.$fech2.'"');
                }
                if($fechass=='5'){
                    array_push($condiciones, 'OrdenesReparacion.presupuesto between "'.$fech1.'" and "'.$fech2.'"');
                }
            }
     }
     
     if (strlen($destinoss) > 1) {
         array_push($condiciones, 'OrdenesReparacion.destino like "%' . $destinoss . '%"');
     }    
if( strlen($modeloss)>1){
     if(strlen($arreglo[1])>0 ){
array_push($condiciones, 'OrdenesReparacion.modelo like "%'.$arreglo[1].'%'.$arreglo[2].'%"');
}else{
array_push($condiciones, 'OrdenesReparacion.modelo like "%'.$modeloss.'%"');  
}
}


     debug($condiciones);
     if(strlen($clientess)>1){
            array_push($condiciones, 'UPPER(Cliente.nombre_apellido)  LIKE "%' . strtoupper($clientess) . '%"');
     }
debug($condiciones);
if(strlen($areass)>1){
  array_push($condiciones, 'UPPER(Area.area) like "%'.strtoupper($areass).'%"');
} 
   debug($condiciones);
     if($estadoss!="Todos"){
            array_push($condiciones, 'OrdenesReparacion.estado like "%'.$estadoss.'%"');
     }
 debug($condiciones);
    if(strlen($numeross)>1){
            array_push($condiciones, 'OrdenesReparacion.numero like "%'.$numeross.'%"');
    }    
     if($tiposs!="Todos"){
            array_push($condiciones, 'OrdenesReparacion.tipo like "%'.$tiposs.'%"');
      }else{
        if(strlen($tiposs2)>1){
          array_push($condiciones, 'OrdenesReparacion.tipo like "%'.$tiposs2.'%"');
        }
      }     
      if($precioss!='0'){
        if($precioss=='1')
            array_push($condiciones, 'OrdenesReparacion.precio_asignado is null');
        if($precioss=='2')
            array_push($condiciones, 'OrdenesReparacion.precio_asignado>0');
        if($precioss=='3')
            array_push($condiciones, 'OrdenesReparacion.precio_asignado=0');              
      }     
      
      if($confirmadass!='0'){
        if($confirmadass=='1')
            array_push($condiciones, 'OrdenesReparacion.confirmada is null');                     
        if($confirmadass=='2')
            array_push($condiciones, 'OrdenesReparacion.confirmada is not null','OrdenesReparacion.cancelada<>1');        
        if($confirmadass=='3')
            array_push($condiciones, 'OrdenesReparacion.cancelada=1');        
      }
      if($prontass!='0'){
        if($prontass=='1')
            array_push($condiciones, 'OrdenesReparacion.pronta is not null');                     
        if($prontass=='2')
            array_push($condiciones, 'OrdenesReparacion.pronta is null');                 
      }
      
      if($retiradass!='0'){
        if($retiradass=='1')
            array_push($condiciones, 'OrdenesReparacion.retirada is not null');                     
        if($retiradass=='2')
            array_push($condiciones, 'OrdenesReparacion.retirada is null');                 
      }
      
      if($interiores!='0'){
        if($interiores=='1')
            array_push($condiciones, 'OrdenesReparacion.interior=0');                     
        if($interiores=='2')
            array_push($condiciones, 'OrdenesReparacion.interior=1');                 
      }
      
      if($facturass!='0'){
        if($facturass=='1')
            array_push($condiciones, 'length(OrdenesReparacion.factura_id) < 2 ');                     
        if($facturass=='2')
            array_push($condiciones, 'length(OrdenesReparacion.factura_id) > 1');                  
      }
      
      if($presup!='0'){
  if($presup=='1'){
                    array_push($condiciones, 'OrdenesReparacion.fecha_prometido is not null ','OrdenesReparacion.presupuesto_taller <> "" ');
  }
  if($presup=='2'){
                   array_push($condiciones, 'OrdenesReparacion.Presupuesto is null '); 
  }
}

          $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => $condiciones,
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.factura_id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                'OrdenesReparacion.interior',
                 'OrdenesReparacion.precio',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'Area.area',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada',
                 'OrdenesReparacion.lugar_compra',
                 'OrdenesReparacion.fecha_compra',
                 'OrdenesReparacion.destino',
                 'OrdenesReparacion.nro_comprobante',
                'OrdenesReparacion.fecha_prometido',              
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );
      debug($condiciones);
    $this->set(compact('data'));  
   }
   
    function buscaros9() {   // pm 29.3.2015 // daniel 23.6.2015
        $this->layout = 'ajax';
        $this->set('usuarios', $this->OrdenesReparacion->getEmpleados());
 //       Debugger::log($dashboard);
// $this->set('result',$this->OrdenesServicioBitacora->lista());
        $fd = implode('-', array_reverse(explode('/', $this->data['desde'])));
        $fh = implode('-', array_reverse(explode('/', $this->data['hasta'])));
       
$this->set('result',$this->OrdenesServicioBitacora->lista());
        $est=$this->Estado->find('all');  // pm por daniel 23.6
        $this->set(compact('est')); // pm por daniel 23.6

        $palabraBuscar = $this->data['palabra_buscar'];
$modeloss=$this->data['modeloss'];
    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );

    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'AvisosBitacora' => array(
                        'className' => 'AvisosBitacora',
                        'foreignKey' => 'id')
            )
            )
        );

// pm agrega  3.10.17
// $this->Cliente->bindModel(array('belongsTo' => array('Contacto' => array('className' => 'Contacto', 'type'=>'LEFT',   'foreignKey' => 'cliente_id'))) );
// pm agrega  3.10.17  


    $areass = $this->data['areass'];

$marcass=$this->data['marcass'];
        $data=NULL;
        if(strlen($marcass)>1){
               $marcass = trim($marcass); //se hace el trabajo de cadenas
          $marcass = preg_replace('/(\s+)/',"%",$marcass);
$condiciones=array(                           
                'OrdenesReparacion.anulada<>1',                
                'OR'=>array(
                'Marca.marca LIKE ' => '%' . $marcass . '%',
                'OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%')
            );
}else{
  $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',              
            );
}


eregi('^([a-z]+)([0-9]+)$', $modeloss, $arreglo);
/*echo $arreglo[1] . '<br />';
echo $arreglo[2] . '<br />';*/
if (strlen($palabraBuscar) > 2) {
  if (strlen($marcass) > 1) {
$condiciones = array(                           
                'OrdenesReparacion.anulada<>1',                
                 "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                       'Cliente.email LIKE ' => '%' . $palabraBuscar . '%',    // pm agrega 03.10.17
            //           'Contacto.email LIKE ' => '%' . $palabraBuscar . '%',    // pm agrega 03.10.17

                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                //    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.lugar_compra LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                          'Marca.marca LIKE ' => '%' . $marcass . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            );
}else{
  $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
                
                 "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',

                            'Cliente.email LIKE ' => '%' . $palabraBuscar . '%',    // pm agrega 03.10.17

                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.lugar_compra LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                  //  'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            );
}
}

if (strlen($this->data['dashboard']) > 0) {
    
    if ($dashboard == "prontas") {
        array_push($condiciones, 'OrdenesReparacion.pronta = curdate()');
    } elseif ($dashboard == "confirmadas") {
        array_push($condiciones, 'OrdenesReparacion.confirmada = curdate()');
        array_push($condiciones, 'OrdenesReparacion.anulada <> 1 ');
        array_push($condiciones, 'OrdenesReparacion.cancelada <> 1 ');
    }
}

            if ($this->data['destexc'] != "0") {
                if ($this->data['destexc'] == "1") {
                    array_push($condiciones, 'OrdenesReparacion.destino not like "%FUNDICION%" ');
                } else if ($this->data['destexc'] == "2") {
                    array_push($condiciones, 'OrdenesReparacion.destino not like "%AG%" ');
                } else {
                    array_push($condiciones, 'OrdenesReparacion.destino not like "%FG%" ');
                }
            }
			if(strlen($fd)>1)
            if($this->data['fechass']=='0'){
				debug($condiciones);
                array_push($condiciones, 'OrdenesReparacion.fecha between "'.$fd.'" and "'.$fh.'"');
				debug($condiciones);
                
            }else{
                if($this->data['fechass']=='1'){
                    array_push($condiciones, 'OrdenesReparacion.confirmada between "'.$fd.'" and "'.$fh.'"');
                }
                if($this->data['fechass']=='2'){
                    array_push($condiciones, 'OrdenesReparacion.pronta between "'.$fd.'" and "'.$fh.'"');
                }
                if($this->data['fechass']=='3'){
                    array_push($condiciones, 'OrdenesReparacion.retirada between "'.$fd.'" and "'.$fh.'"');
                }
                if($this->data['fechass']=='4'){
                    array_push($condiciones, 'OrdenesReparacion.fecha_asignado between "'.$fd.'" and "'.$fh.'"');
                }
                if($this->data['fechass']=='5'){
                    array_push($condiciones, 'OrdenesReparacion.presupuesto between "'.$fd.'" and "'.$fh.'"');
                }
                if($this->data['fechass']=='6'){
                    array_push($condiciones, 'OrdenesReparacion.fecha_prometido between "'.$fd.'" and "'.$fh.'"');
                }
            }

			if (strlen($this->data['tecnicoss']) > 0) {
                array_push($condiciones, 'OrdenesReparacion.empleado_id = ' . $this->data['tecnicoss'] .' ');
            }

			if ($this->data['estadoss'] != "Todos") {
				    array_push($condiciones, 'OrdenesReparacion.estado like "%'.$this->data['estadoss'].'%"');
			}
      if ($areass!="Todas") {
        array_push($condiciones, 'UPPER(Area.area) like "%'.strtoupper($areass).'%"');  
      }
      
			
if($this->data['presup']!='0'){
  if($this->data['presup']=='1'){
                    //array_push($condiciones, 'OrdenesReparacion.fecha_prometido is not null ','OrdenesReparacion.presupuesto_taller <> "" ');
                    array_push($condiciones, 'OrdenesReparacion.presupuesto is not null '); // pm 18.12.2018
  }
  if($this->data['presup']=='2'){
                   array_push($condiciones, 'OrdenesReparacion.presupuesto is null '); 
  }
}




if (strlen($arreglo[1]) > 0) {
  array_push($condiciones, 'OrdenesReparacion.modelo like "%'.strtoupper($arreglo[1]).'%'.strtoupper($arreglo[2]).'%"');
  //array_push($condiciones, 'OrdenesReparacion.modelo like "%'.$modeloss.'%"');
} else {
  array_push($condiciones, 'OrdenesReparacion.modelo like "%'.$modeloss.'%"');  
}


			if($this->data['tiposs']!="Todos"){
				    array_push($condiciones, 'OrdenesReparacion.tipo like "'.$this->data['tiposs'].'"');
			}
			debug($condiciones);
			if($this->data['precioss']!='0'){
				if($this->data['precioss']=='1')
				    array_push($condiciones, 'OrdenesReparacion.precio_asignado is null');
				if($this->data['precioss']=='2')
				    array_push($condiciones, 'OrdenesReparacion.precio_asignado>0');
				if($this->data['precioss']=='3')
				    array_push($condiciones, 'OrdenesReparacion.precio_asignado=0');							
			}
			if($this->data['confirmadass']!='0'){
				if($this->data['confirmadass']=='1')
				    array_push($condiciones, 'OrdenesReparacion.confirmada is null','OrdenesReparacion.cancelada<>1');											
				if($this->data['confirmadass']=='2')
				    array_push($condiciones, 'OrdenesReparacion.confirmada is not null','OrdenesReparacion.cancelada<>1');				
								if($this->data['confirmadass']=='3')
				    array_push($condiciones, 'OrdenesReparacion.cancelada=1');				
          
			}
				debug($condiciones);		
			if($this->data['prontass']!='0'){
				if($this->data['prontass']=='1')
				    array_push($condiciones, 'OrdenesReparacion.pronta is not null');											
				if($this->data['prontass']=='2')
				    array_push($condiciones, 'OrdenesReparacion.pronta is null');									
			}
						
			if($this->data['retiradass']!='0'){
				if($this->data['retiradass']=='1')
				    array_push($condiciones, 'OrdenesReparacion.retirada is not null');											
				if($this->data['retiradass']=='2')
				    array_push($condiciones, 'OrdenesReparacion.retirada is null');									
			}
			
			if($this->data['interiores']!='0'){
				if($this->data['interiores']=='1')
				    array_push($condiciones, 'OrdenesReparacion.interior=0');											
				if($this->data['interiores']=='2')
				    array_push($condiciones, 'OrdenesReparacion.interior=1');									
			}

      if($this->data['costopresup']!='0'){
  if($this->data['costopresup']=='1'){
                    array_push($condiciones, 'OrdenesReparacion.aplicapresup = 1');
  }
  if($this->data['presup']=='2'){
                   array_push($condiciones, 'OrdenesReparacion.aplicapresup = 0'); 
  }
}

			
			if($this->data['facturass']!='0'){
				if($this->data['facturass']=='1')
				    array_push($condiciones, 'length(OrdenesReparacion.factura_id) < 2 ');											
				if($this->data['facturass']=='2')
				    array_push($condiciones, 'length(OrdenesReparacion.factura_id) > 1');									
			}
// DebuggeR::log($condiciones);
				
              if (strlen($this->data['prontatec']) > 0) {


        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
        'joins' => array(
        array(
            'table' => 'ordenes_servicio_bitacora',
            'alias' => 'Oserv',
            'type' => 'INNER',
            'conditions' => array(
                'Oserv.id_orden = OrdenesReparacion.id',
                'Oserv.id_usuario = ' . $this->data['prontatec'],
                'Oserv.id_accion = 6',
            )
        )
    ),
            'group' => array('OrdenesReparacion.id'),

            'conditions' => $condiciones,
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.factura_id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                'OrdenesReparacion.interior',
                'OrdenesReparacion.empleado_id',
                'OrdenesReparacion.aplicapresup',
                'OrdenesReparacion.precio',
                'OrdenesReparacion.marca_id',
                'OrdenesReparacion.destino',
                'OrdenesReparacion.fecha_compra',
                'Marca.marca',
                'Area.area',
                'OrdenesReparacion.presupuesto',
                'OrdenesReparacion.confirmada',
                'OrdenesReparacion.pronta',
                'OrdenesReparacion.retirada',
                'OrdenesReparacion.lugar_compra',
                'OrdenesReparacion.fecha_prometido',  
                'AvisosBitacora.pronta_date',
                'AvisosBitacora.precio_date',            
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );
              } else {
                  if ($this->data['reclamos'] == 1) {
                       $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
        'joins' => array(
        array(
            'table' => 'ordenes_servicio_bitacora',
            'alias' => 'Oserv',
            'type' => 'INNER',
            'conditions' => array(
                'Oserv.id_orden = OrdenesReparacion.id',
                'Oserv.id_accion in (19,20)',
            )
        )
    ),
            'group' => array('OrdenesReparacion.id'),

            'conditions' => $condiciones,
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.factura_id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                'OrdenesReparacion.interior',
                'OrdenesReparacion.empleado_id',
                'OrdenesReparacion.aplicapresup',
                'OrdenesReparacion.precio',
                'OrdenesReparacion.marca_id',
                'OrdenesReparacion.destino',
                'OrdenesReparacion.fecha_compra',
                'Marca.marca',
                'Area.area',
                'OrdenesReparacion.presupuesto',
                'OrdenesReparacion.confirmada',
                'OrdenesReparacion.pronta',
                'OrdenesReparacion.retirada',
                'OrdenesReparacion.lugar_compra',
                'OrdenesReparacion.fecha_prometido',   
                'AvisosBitacora.pronta_date',
                'AvisosBitacora.precio_date',           
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );

                  } else {

                  

      
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => $condiciones,
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.factura_id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                'OrdenesReparacion.interior',
                'OrdenesReparacion.empleado_id',
                'OrdenesReparacion.aplicapresup',
                'OrdenesReparacion.precio',
                'OrdenesReparacion.marca_id',
                'OrdenesReparacion.destino',
                'OrdenesReparacion.fecha_compra',
                'Marca.marca',
                'Area.area',
                'OrdenesReparacion.presupuesto',
                'OrdenesReparacion.confirmada',
                'OrdenesReparacion.pronta',
                'OrdenesReparacion.retirada',
                'OrdenesReparacion.lugar_compra',
                'OrdenesReparacion.fecha_prometido',  
                'AvisosBitacora.pronta_date',
                'AvisosBitacora.precio_date',            
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );
        }
                }

        
$this->set('interiores',$this->data['interiores']);
$this->set('facturass',$this->data['facturass']);
$this->set('estadoss',$this->data['estadoss']);
$this->set('precioss',$this->data['precioss']);
$this->set('tiposs',$this->data['tiposs']);
$this->set('prontass',$this->data['prontass']);
$this->set('retiradass',$this->data['retiradass']);
$this->set('confirmadass',$this->data['confirmadass']);
$this->set('fechass',$this->data['fechass']);
$this->set('presup',$this->data['presup']);

$this->set('costopresup',$this->data['costopresup']);


$this->set('desde',$fd);
$this->set('hasta',$fh);
$this->set('condiciones',$condiciones);
$this->set('areass',$areass);
debug($condiciones);
        $this->set(compact('data','palabraBuscar'));
    }
  
/*  function buscaros12() {
        $this->layout = 'ajax';
        $fd = implode('-', array_reverse(explode('/', $this->data['desde'])));
        $fh = implode('-', array_reverse(explode('/', $this->data['hasta'])));

        $est=$this->Estado->find('all');  // pm por daniel 23.6
        $this->set(compact('est')); // pm por daniel 23.6

        $palabraBuscar = $this->data['palabra_buscar'];



    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Usuario' => array(
                        'className' => 'Usuario',
                        'foreignKey' => 'empleado_id'),
            'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );
        
        $consulta="select u.id, u.nombre, u.apellido from usuarios u where u.area_id=18";
        $res=$this->OrdenesReparacion->query($consulta);
        $tmp=array();
        //debug($res);
        foreach($res as $r){            
          $tmp[$r['u']['id']]=$r['u']['nombre'].' '.$r['u']['apellido'];
        }
        
        $data=NULL;

                if(isset($this->data['desde']) && !isset($this->data['palabra_buscar'])){
          $data = $this->OrdenesReparacion->find('all', array(
            'conditions' => array(
            'OR' => array(

                      'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
                      'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',           
                      
                     ),
            array(
'OrdenesReparacion.estado not like "%Confirmada%"',
'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
'OrdenesReparacion.tipo not like "%Garantia%"',
'OrdenesReparacion.tipo not like "%Reparacion%"',
'OrdenesReparacion.tipo not like "%Anulada%"',
'OrdenesReparacion.estado not like "%Cancelada%"',
'OrdenesReparacion.estado not like "%Pronta%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.anulada <> 1',
'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 'OrdenesReparacion.presupuesto is null'),
            )
                      ),

            'recursive' => 2,            
            'fields' =>
    array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.fecha_prometido', 
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Usuario.nombre' => 'DESC' )                
                )
        );
        }
        if(isset($this->data['palabra_buscar']) && !isset($this->data['desde']) && strlen($this->data['palabra_buscar']) > 0){
       // echo "busca palabra";
       //   debug($this->data['palabra_buscar']);
           $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
             'conditions' => array(
            'OR' => array(

                      'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
                      'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',           
                      
                     ),
            array(
'OrdenesReparacion.estado not like "%Confirmada%"',
'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
'OrdenesReparacion.tipo not like "%Garantia%"',
'OrdenesReparacion.tipo not like "%Reparacion%"',
'OrdenesReparacion.tipo not like "%Anulada%"',
'OrdenesReparacion.estado not like "%Cancelada%"',
'OrdenesReparacion.estado not like "%Pronta%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.anulada <> 1',
'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 'OrdenesReparacion.presupuesto is null'),
            )
                      ),

            'recursive' => 2,            
            'fields' =>
           array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.fecha_prometido', 
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Usuario.nombre' => 'DESC' )                                
                )
        );

        }

        if(isset($this->data['palabra_buscar']) && isset($this->data['desde'])){
          if(strlen($this->data['palabra_buscar']) == 0){
            
          $data = $this->OrdenesReparacion->find('all', array(
            'conditions' => array(
            'OR' => array(

                      'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
                      'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',           
                      
                     ),
            array(
'OrdenesReparacion.estado not like "%Confirmada%"',
'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
'OrdenesReparacion.tipo not like "%Garantia%"',
'OrdenesReparacion.tipo not like "%Reparacion%"',
'OrdenesReparacion.tipo not like "%Anulada%"',
'OrdenesReparacion.estado not like "%Cancelada%"',
'OrdenesReparacion.estado not like "%Pronta%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.anulada <> 1',
'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 'OrdenesReparacion.presupuesto is null'),
            )
                      ),
            'recursive' => 2,            
            'fields' =>
          array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.fecha_prometido', 
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Usuario.nombre' => 'DESC' )                
                )
        );

          } else {

        
          $data = $this->OrdenesReparacion->find('all', array(
            'conditions' => array(
            'OR' => array(

                      'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
                      'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',           
                      
                     ),
            array(
'OrdenesReparacion.estado not like "%Confirmada%"',
'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
'OrdenesReparacion.tipo not like "%Garantia%"',
'OrdenesReparacion.tipo not like "%Reparacion%"',
'OrdenesReparacion.tipo not like "%Anulada%"',
'OrdenesReparacion.estado not like "%Cancelada%"',
'OrdenesReparacion.estado not like "%Pronta%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.anulada <> 1',
'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 'OrdenesReparacion.presupuesto is null'),
            )
                      ),

            'recursive' => 2,            
            'fields' =>
          array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.fecha_prometido', 
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Usuario.nombre' => 'DESC' )                
                )
        );

          }
          // echo "busca mixto";

        }

        $this->set(compact('data', 'desde', 'hasta','tmp')); 
  }
*/

function buscaros12() {
        $this->layout = 'ajax';
        $fd = implode('-', array_reverse(explode('/', $this->data['desde'])));
        $fh = implode('-', array_reverse(explode('/', $this->data['hasta'])));

        $est=$this->Estado->find('all');  // pm por daniel 23.6
        $this->set(compact('est')); // pm por daniel 23.6

        $palabraBuscar = $this->data['palabra_buscar'];

        $consulta = "select OrdenesReparacion.id,OrdenesReparacion.fecha, OrdenesReparacion.numero, OrdenesReparacion.articulo, OrdenesReparacion.modelo, OrdenesReparacion.estado, OrdenesReparacion.desperfecto, OrdenesReparacion.cant_llamados, OrdenesReparacion.tipo, OrdenesReparacion.ser, OrdenesReparacion.presupuesto_taller, OrdenesReparacion.observaciones, OrdenesReparacion.detalle_marca, OrdenesReparacion.fecha_asignado, OrdenesReparacion.alerta, OrdenesReparacion.fecha_prometido,Usuario.*, Marca.*, Cliente.*, Area.*  
        from ordenes_reparaciones OrdenesReparacion left join 
        usuarios Usuario on OrdenesReparacion.empleado_id = Usuario.id 
        join clientes Cliente on OrdenesReparacion.cliente_id = Cliente.id  
        join areas Area on (OrdenesReparacion.area_id = Area.id) 
        join marcas Marca on (OrdenesReparacion.marca_id = Marca.id)
        where OrdenesReparacion.fecha >= '2015-09-25' 
        and  OrdenesReparacion.estado not in ('Pronta', 'Retirada', 'Cancelada', 'Anulada') 
        and OrdenesReparacion.tipo not in ('Anulada') and OrdenesReparacion.anulada <> 1 
        and OrdenesReparacion.cancelada <> 1 and (OrdenesReparacion.estado in ('Confirmada') or (OrdenesReparacion.tipo 
        not in ('Confirmada', 'GarantiaPendiente', 'Garantia', 'Reparacion') 
        and (OrdenesReparacion.presupuesto like '0000-00-00' or OrdenesReparacion.presupuesto is null))) 
        order by Usuario.nombre desc" ;
        
        $data = $this->OrdenesReparacion->query($consulta);


        $consulta="select u.id, u.nombre, u.apellido from usuarios u where u.area_id=18";
        $res=$this->OrdenesReparacion->query($consulta);
        $tmp=array();
        //debug($res);
        foreach($res as $r){            
          $tmp[$r['u']['id']]=$r['u']['nombre'].' '.$r['u']['apellido'];
        }

        
           $this->set(compact('data', 'desde', 'hasta','tmp')); 
  }



  function buscaros11() {   // pm 29.3.2015 // daniel 23.6.2015
        $this->layout = 'ajax';
$this->set('result',$this->OrdenesServicioBitacora->lista());
        $fd = implode('-', array_reverse(explode('/', $this->data['desde'])));
        $fh = implode('-', array_reverse(explode('/', $this->data['hasta'])));

$this->set('result',$this->OrdenesServicioBitacora->lista());
        $est=$this->Estado->find('all');  // pm por daniel 23.6
        $this->set(compact('est')); // pm por daniel 23.6

        $palabraBuscar = $this->data['palabra_buscar'];
$modeloss=$this->data['modeloss'];
    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );

$marcass=$this->data['marcass'];
        $data=NULL;
        if(strlen($marcass)>1){
$condiciones=array(                           
                'OrdenesReparacion.anulada<>1',                
                'OR'=>array(
                'Marca.marca LIKE ' => '%' . $marcass . '%',
                'OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%')
            );
}else{
  $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',              
            );
}


eregi('^([a-z]+)([0-9]+)$', $modeloss, $arreglo);
/*echo $arreglo[1] . '<br />';
echo $arreglo[2] . '<br />';*/
if(strlen($palabraBuscar)>2){
  if(strlen($marcass)>1){
$condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
                
                 "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                          'Marca.marca LIKE ' => '%' . $marcass . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $marcass . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            );
}else{
  $condiciones=array(                           
                'OrdenesReparacion.anulada<>1',
                
                 "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            );
}
}
debug($condiciones);
      if(strlen($fd)>1)
            if($this->data['fechass']=='0'){
        debug($condiciones);
                array_push($condiciones, 'OrdenesReparacion.fecha between "'.$fd.'" and "'.$fh.'"');
        debug($condiciones);
                
            }else{
                if($this->data['fechass']=='1'){
                    array_push($condiciones, 'OrdenesReparacion.confirmada between "'.$fd.'" and "'.$fh.'"');
                }
                if($this->data['fechass']=='2'){
                    array_push($condiciones, 'OrdenesReparacion.pronta between "'.$fd.'" and "'.$fh.'"');
                }
                if($this->data['fechass']=='3'){
                    array_push($condiciones, 'OrdenesReparacion.retirada between "'.$fd.'" and "'.$fh.'"');
                }
                if($this->data['fechass']=='4'){
                    array_push($condiciones, 'OrdenesReparacion.fecha_asignado between "'.$fd.'" and "'.$fh.'"');
                }
                if($this->data['fechass']=='5'){
                    array_push($condiciones, 'OrdenesReparacion.presupuesto between "'.$fd.'" and "'.$fh.'"');
                }
            }
      
      if($this->data['estadoss']!="Todos"){
            array_push($condiciones, 'OrdenesReparacion.estado like "%'.$this->data['estadoss'].'%"');
      }
      
if($this->data['presup']!='0'){
  if($this->data['presup']=='1'){
                    array_push($condiciones, 'OrdenesReparacion.fecha_prometido is not null ','OrdenesReparacion.presupuesto_taller <> "" ');
  }
  if($this->data['presup']=='2'){
                   array_push($condiciones, 'OrdenesReparacion.presupuesto is null '); 
  }
}

if(strlen($arreglo[1])>0 ){
array_push($condiciones, 'OrdenesReparacion.modelo like "%'.strtoupper($arreglo[1]).'%'.strtoupper($arreglo[2]).'%"');
//array_push($condiciones, 'OrdenesReparacion.modelo like "%'.$modeloss.'%"');

}else{
array_push($condiciones, 'OrdenesReparacion.modelo like "%'.$modeloss.'%"');  
}


      if($this->data['tiposs']!="Todos"){
            array_push($condiciones, 'OrdenesReparacion.tipo like "%'.$this->data['tiposs'].'%"');
      }
      debug($condiciones);
      if($this->data['precioss']!='0'){
        if($this->data['precioss']=='1')
            array_push($condiciones, 'OrdenesReparacion.precio_asignado is null');
        if($this->data['precioss']=='2')
            array_push($condiciones, 'OrdenesReparacion.precio_asignado>0');
        if($this->data['precioss']=='3')
            array_push($condiciones, 'OrdenesReparacion.precio_asignado=0');              
      }
      if($this->data['confirmadass']!='0'){
        if($this->data['confirmadass']=='1')
            array_push($condiciones, 'OrdenesReparacion.confirmada is null');                     
        if($this->data['confirmadass']=='2')
            array_push($condiciones, 'OrdenesReparacion.confirmada is not null','OrdenesReparacion.cancelada<>1');        
                if($this->data['confirmadass']=='3')
            array_push($condiciones, 'OrdenesReparacion.cancelada=1');        
          
      }
        debug($condiciones);    
      if($this->data['prontass']!='0'){
        if($this->data['prontass']=='1')
            array_push($condiciones, 'OrdenesReparacion.pronta is not null');                     
        if($this->data['prontass']=='2')
            array_push($condiciones, 'OrdenesReparacion.pronta is null');                 
      }
            
      if($this->data['retiradass']!='0'){
        if($this->data['retiradass']=='1')
            array_push($condiciones, 'OrdenesReparacion.retirada is not null');                     
        if($this->data['retiradass']=='2')
            array_push($condiciones, 'OrdenesReparacion.retirada is null');                 
      }
      
      if($this->data['interiores']!='0'){
        if($this->data['interiores']=='1')
            array_push($condiciones, 'OrdenesReparacion.interior=0');                     
        if($this->data['interiores']=='2')
            array_push($condiciones, 'OrdenesReparacion.interior=1');                 
      }
      
      if($this->data['facturass']!='0'){
        if($this->data['facturass']=='1')
            array_push($condiciones, 'length(OrdenesReparacion.factura_id) < 2 ');                     
        if($this->data['facturass']=='2')
            array_push($condiciones, 'length(OrdenesReparacion.factura_id) > 1');                  
      }

        
               
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => $condiciones,
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.factura_id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                'OrdenesReparacion.interior',
                 'OrdenesReparacion.precio',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'Area.area',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada',
                 'OrdenesReparacion.lugar_compra',
                 'OrdenesReparacion.destino',
                 'OrdenesReparacion.fecha_compra',
                 'OrdenesReparacion.nro_comprobante',
                'OrdenesReparacion.fecha_prometido',              
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );
        
$this->set('interiores',$this->data['interiores']);
$this->set('facturass',$this->data['facturass']);
$this->set('estadoss',$this->data['estadoss']);
$this->set('precioss',$this->data['precioss']);
$this->set('tiposs',$this->data['tiposs']);
$this->set('prontass',$this->data['prontass']);
$this->set('retiradass',$this->data['retiradass']);
$this->set('confirmadass',$this->data['confirmadass']);
$this->set('fechass',$this->data['fechass']);
$this->set('presup',$this->data['presup']);
$this->set('desde',$fd);
$this->set('hasta',$fh);
$this->set('condiciones',$condiciones);
debug($condiciones);
        $this->set(compact('data','palabraBuscar'));
    }
    
  

     function buscaros7() {   // pm 29.3.2015 // daniel 23.6.2015
        $this->layout = 'ajax';

        $fd = implode('-', array_reverse(explode('/', $this->data['desde'])));
        $fh = implode('-', array_reverse(explode('/', $this->data['hasta'])));

$this->set('result',$this->OrdenesServicioBitacora->lista());
        $est=$this->Estado->find('all');  // pm por daniel 23.6
        $this->set(compact('est')); // pm por daniel 23.6

        $palabraBuscar = $this->data['palabra_buscar'];

    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );
        $data=NULL;

                if(isset($this->data['desde']) && !isset($this->data['palabra_buscar'])){
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                'OrdenesReparacion.fecha between ? and ?' => array($fd, $fh),
                'OrdenesReparacion.estado not like "%Retirada%"',
                'OrdenesReparacion.cancelada<>1',
                'OrdenesReparacion.anulada<>1'
            ),
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.factura_id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                'OrdenesReparacion.interior',
                 'OrdenesReparacion.precio',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada',
                'OrdenesReparacion.fecha_prometido',              
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );
        }
        if(isset($this->data['palabra_buscar']) && !isset($this->data['desde'])){
       // echo "busca palabra";
       
       
           $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                'OrdenesReparacion.anulada<>1',

                "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            ),
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.factura_id',
                'OrdenesReparacion.interior',
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',  
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                   'OrdenesReparacion.precio',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada', 
                'OrdenesReparacion.fecha_prometido',              
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );

        }

        if(isset($this->data['palabra_buscar']) && isset($this->data['desde'])){

          // echo "busca mixto";
            $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                 'OrdenesReparacion.fecha between ? and ?' => array($fd, $fh),
                 'OrdenesReparacion.estado not like "%Retirada%"',
                'OrdenesReparacion.cancelada<>1',
                'OrdenesReparacion.anulada<>1',
                "OR" => array(
                     'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',

                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            ),
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.factura_id',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.interior',
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado', 
                'OrdenesReparacion.cant_llamados',  
                'OrdenesReparacion.precio_asignado', 
                   'OrdenesReparacion.precio',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada',
                'OrdenesReparacion.fecha_prometido',              
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );

        }

        $this->set(compact('data', 'desde', 'hasta'));
    }
    
// pm agrega 20.11.2017  buscaros17
         function buscaros17() {   
        $this->layout = 'ajax';

        $fd = implode('-', array_reverse(explode('/', $this->data['desde'])));

    $fd = Date($fd);
 //   $fh = Date($fh);

        
       
      
        $est=$this->Estado->find('all');  
        $this->set(compact('est')); 

        $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );

        $this->OrdenesServicioBitacora->bindModel(
        array('belongsTo' => array(
             'Usuario' => array(
                        'className' => 'Usuario',
                        'foreignKey' => 'id_usuario')
            )
            )
        );

        $data=NULL;

        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'joins' => array(
                array(
                    'table' => 'ordenes_servicio_bitacora',
                    'alias' => 'Oserv',
                    'type' => 'INNER',
                    'conditions' => array('Date(Oserv.fecha)' => $fd,
                         //   'Oserv.id_bitacora > 1127644',
                        'Oserv.id_orden = OrdenesReparacion.id',                        
                        'Oserv.id_accion in (2,6)',
                        'Oserv.id_usuario > 20',   // en ppio que no incluya los usuarios de tipo adminstrador
                        'Oserv.id_usuario <> 62',
                        'Oserv.id_usuario <> 61',
                        'OrdenesReparacion.cancelada = 0'
						

                    )
                )
            ),
            'fields' =>
            array('OrdenesReparacion.id',
       
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
            
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
            
                'OrdenesReparacion.presupuesto_taller',
              
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.detalle_marca',
          
                'OrdenesReparacion.precio_asignado',
           
                 'OrdenesReparacion.precio',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'Area.area',
                 'OrdenesReparacion.presupuesto',
                
                 'OrdenesReparacion.pronta',
              
                'OrdenesReparacion.fecha_prometido',    

                'Oserv.fecha',           
                'Oserv.id_usuario',   
                'Oserv.id_accion',           
                //'Usuario.nombre',                          
                'Cliente.nombre_apellido',             
                'Cliente.otro_telefono'),
                )
        );
       
 // Debugger::log($data);

        //$this->set(compact('data', 'desde', 'hasta'));
             $this->set(compact('data', 'desde'));
    }
    

// pm agrega 20.11.2017  termina buscaros17

 function buscaros5(){   // pm 29.3.2015 // daniel 23.6.2015
        $this->layout = 'ajax';

        $fd = implode('-', array_reverse(explode('/', $this->data['desde'])));
        $fh = implode('-', array_reverse(explode('/', $this->data['hasta'])));

        $est=$this->Estado->find('all');  // pm por daniel 23.6
        $this->set(compact('est')); // pm por daniel 23.6
        $textofecha = 'OrdenesReparacion.fecha between ? and ?';

        $palabraBuscar = $this->data['palabra_buscar'];
        if (isset($this->data['tipof'])) {
            if ($this->data['tipof'] == 0) {
                $textofecha = 'OrdenesReparacion.fecha between ? and ?';
            } elseif ($this->data['tipof'] == 1) {
                $textofecha = 'OrdenesReparacion.fecha_asignado between ? and ?';
            } else {
                $textofecha = 'OrdenesReparacion.fecha_prometido between ? and ?';
            }
        }
        

    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id'),
            'Usuario' => array(
                        'className' => 'Usuario',
                        'foreignKey' => 'empleado_id'),
            )
            )
        );
        
        $consulta="select a.id, a.area from areas a where a.Derivar=1";
        $res=$this->OrdenesReparacion->query($consulta);
        $tmp=array();
        //debug($res);
        foreach($res as $r){            
        $tmp[$r['a']['id']]=$r['a']['area'];
        }
        
        $data=NULL;

                if(isset($this->data['desde']) && !isset($this->data['palabra_buscar'])){
                    $this->set('caso', 1);
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                $textofecha => array($fd, $fh),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
					  'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',					  
                      
            ),
             'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),             
            'recursive' => 2,
            'fields' =>
    array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.cant_llamados',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Usuario.nombre',
                'Usuario.apellido',
                'Marca.marca',
                'Cliente.nombre_apellido')
                //'order' => array('Area.area' => 'DESC' )                
                )
        );

        }
        if(isset($this->data['palabra_buscar']) && !isset($this->data['desde'])){
            $this->set('caso', 2);
       // echo "busca palabra";
       if(strlen($this->data['areass22']) > 1){

           $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                $textofecha => array('2015-09-25', date('Y-m-d')),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
					  'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',                           
                      'Area.area like "%'.$this->data['areass22'].'%"',                   					                                        
            ),
            'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),             
            'recursive' => 2,
            'fields' =>
           array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.cant_llamados',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Usuario.nombre',
                'Usuario.apellido',
                'Marca.marca',
                'Cliente.nombre_apellido')
                //'order' => array('Area.area' => 'DESC' )                
                )
        );

       } else {

           $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                $textofecha => array('2015-09-25', date('Y-m-d')),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
					  'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',     
                      'Area.area like "%'.$this->data['palabra_buscar'].'%"',                                    					                                        
            ),
            'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),             
            'recursive' => 2,
            'fields' =>
           array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.cant_llamados',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'Usuario.nombre',
                'Usuario.apellido',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido')
                //'order' => array('Area.area' => 'DESC' )                
                )
        );

       }


        }

        if(isset($this->data['palabra_buscar']) && isset($this->data['desde'])){
            
          if(strlen($this->data['areass22']) > 1){
              $this->set('caso', 3);
            debug($this->data['areass22']);
            $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(                 
                $textofecha => array($fd, $fh),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',
                      'Area.area like "%'.$this->data['areass22'].'%"',                                 
            ),
            'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),             
            'recursive' => 2,
            'fields' =>
          array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.cant_llamados',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'Usuario.nombre',
                'Usuario.apellido',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido')
                //'order' => array('Area.area' => 'DESC' )                
                )
        );
          } else {
                         $this->set('caso', 4);
            $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                 $textofecha => array($fd, $fh),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',
                      'Area.area like "%'.$this->data['palabra_buscar'].'%"',                                 
            ),
            'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),
            'recursive' => 2,
            'fields' =>
          array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.cant_llamados',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'Usuario.nombre',
                'Usuario.apellido',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido')          
                )
        );
          }

        }

$this->set('tecnico', $this->data['tecnico']);
          if (intval($this->data['tecnico']) > 0) {
               $this->OrdenesReparacion->bindModel(
                    array('belongsTo' => array(
                        'Cliente' => array(
                                    'className' => 'Cliente',
                                    'foreignKey' => 'cliente_id'),
                        'Usuario' => array(
                                    'className' => 'Usuario',
                                    'foreignKey' => 'empleado_id'),
                        )
                        )
                    );

                    $data = $this->OrdenesReparacion->find('all', array( 
                    'conditions' => array(       
                        $textofecha => array('2015-09-25', date('Y-m-d')),                 
                        'OrdenesReparacion.estado not like "%Pronta%"',
                            'OrdenesReparacion.estado not like "%Retirada%"',                   
                            'OrdenesReparacion.estado not like "%Cancelada%"',
                            'OrdenesReparacion.estado not like "%Anulada%"',
                    'OrdenesReparacion.tipo not like "%Anulada%"',
                            'OrdenesReparacion.estado in ("Confirmada") ',
                            'OrdenesReparacion.anulada <> 1',
                            'OrdenesReparacion.cancelada <> 1',
                            'OrdenesReparacion.empleado_id ' =>  intval($this->data['tecnico']),                                 
                    ),
                    'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),             
                    'recursive' => 2,
                    'fields' =>
                array('OrdenesReparacion.id',
                        'Area.area',
                        'OrdenesReparacion.fecha',
                        'OrdenesReparacion.numero',
                        'OrdenesReparacion.articulo',
                        'OrdenesReparacion.modelo',
                        'OrdenesReparacion.estado',
                        'OrdenesReparacion.desperfecto',
                        'OrdenesReparacion.tipo',
                        'OrdenesReparacion.ser',
                        'OrdenesReparacion.cant_llamados',
                        'OrdenesReparacion.presupuesto_taller',
                        'OrdenesReparacion.observaciones',
                        'OrdenesReparacion.detalle_marca',
                        'OrdenesReparacion.fecha_asignado',
                        'Usuario.nombre',
                        'Usuario.apellido',
                        'OrdenesReparacion.alerta',
                        'Marca.marca',
                        'Cliente.nombre_apellido')               
                        )
                );
              } 

        $this->set(compact('data', 'desde', 'hasta','tmp'));
    }

function buscaros15(){   // pm 29.3.2015 // daniel 23.6.2015
        $this->layout = 'ajax';

        $fd = implode('-', array_reverse(explode('/', $this->data['desde'])));
        $fh = implode('-', array_reverse(explode('/', $this->data['hasta'])));

        $est=$this->Estado->find('all');  // pm por daniel 23.6
        $this->set(compact('est')); // pm por daniel 23.6
        $textofecha = 'OrdenesReparacion.fecha between ? and ?';

        $palabraBuscar = $this->data['palabra_buscar'];
        if (isset($this->data['tipof'])) {
            if ($this->data['tipof'] == 0) {
                $textofecha = 'OrdenesReparacion.fecha between ? and ?';
            } elseif ($this->data['tipof'] == 1) {
                $textofecha = 'OrdenesReparacion.fecha_asignado between ? and ?';
            } else {
                $textofecha = 'OrdenesReparacion.fecha_prometido between ? and ?';
            }
        }
        

    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id'),
            'Usuario' => array(
                        'className' => 'Usuario',
                        'foreignKey' => 'empleado_id'),
            )
            )
        );
        
        $consulta="select a.id, a.area from areas a where a.Derivar=1";
        $res=$this->OrdenesReparacion->query($consulta);
        $tmp=array();
        //debug($res);
        foreach($res as $r){            
        $tmp[$r['a']['id']]=$r['a']['area'];
        }
        
        $data=NULL;

                if(isset($this->data['desde']) && !isset($this->data['palabra_buscar'])){
                    $this->set('caso', 1);
                    Debugger::log("Caso 1");
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                $textofecha => array($fd, $fh),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
					  'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',	
                      'OrdenesReparacion.empleado_id = 0',					  
                      
            ),
             'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),             
            'recursive' => 2,
            'fields' =>
    array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Usuario.nombre',
                'Usuario.apellido',
                'Marca.marca',
                'Cliente.nombre_apellido')
                //'order' => array('Area.area' => 'DESC' )                
                )
        );

        }
        if(isset($this->data['palabra_buscar']) && !isset($this->data['desde'])){
            Debugger::log("Caso 2");
            $this->set('caso', 2);
       // echo "busca palabra";
       if(strlen($this->data['areass22']) > 1){

           $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                $textofecha => array('2015-09-25', date('Y-m-d')),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
					  'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',    
                      'OrdenesReparacion.empleado_id = 0',					                         
                      'Area.area like "%'.$this->data['areass22'].'%"',                   					                                        
            ),
            'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),             
            'recursive' => 2,
            'fields' =>
           array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Usuario.nombre',
                'Usuario.apellido',
                'Marca.marca',
                'Cliente.nombre_apellido')
                //'order' => array('Area.area' => 'DESC' )                
                )
        );

       } else {

           $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                $textofecha => array('2015-09-25', date('Y-m-d')),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
					  'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',     
                      'OrdenesReparacion.empleado_id = 0',					  
                      'Area.area like "%'.$this->data['palabra_buscar'].'%"',                                    					                                        
            ),
            'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),             
            'recursive' => 2,
            'fields' =>
           array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'Usuario.nombre',
                'Usuario.apellido',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido')
                //'order' => array('Area.area' => 'DESC' )                
                )
        );

       }


        }

        if(isset($this->data['palabra_buscar']) && isset($this->data['desde'])){
            
          if(strlen($this->data['areass22']) > 1){
              Debugger::log("Caso 3");
              $this->set('caso', 3);
            debug($this->data['areass22']);
            $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(                 
                $textofecha => array($fd, $fh),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',
                      'OrdenesReparacion.empleado_id = 0',					  
                      'Area.area like "%'.$this->data['areass22'].'%"',                                 
            ),
            'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),             
            'recursive' => 2,
            'fields' =>
          array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'Usuario.nombre',
                'Usuario.apellido',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido')
                //'order' => array('Area.area' => 'DESC' )                
                )
        );
          } else {
              Debugger::log("Caso 4");
                         $this->set('caso', 4);
            $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                 $textofecha => array($fd, $fh),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',
                      'OrdenesReparacion.empleado_id = 0',					  
                      'Area.area like "%'.$this->data['palabra_buscar'].'%"',                                 
            ),
            'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),
            'recursive' => 2,
            'fields' =>
          array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'Usuario.nombre',
                'Usuario.apellido',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido')          
                )
        );
          }

        }

$this->set('tecnico', $this->data['tecnico']);
          if (intval($this->data['tecnico']) > 0) {
              Debugger::log("selecciona el tecnico");
               $this->OrdenesReparacion->bindModel(
                    array('belongsTo' => array(
                        'Cliente' => array(
                                    'className' => 'Cliente',
                                    'foreignKey' => 'cliente_id'),
                        'Usuario' => array(
                                    'className' => 'Usuario',
                                    'foreignKey' => 'empleado_id'),
                        )
                        )
                    );

                    $data = $this->OrdenesReparacion->find('all', array( 
                    'conditions' => array(       
                        $textofecha => array('2015-09-25', date('Y-m-d')),                 
                        'OrdenesReparacion.estado not like "%Pronta%"',
                            'OrdenesReparacion.estado not like "%Retirada%"',                   
                            'OrdenesReparacion.estado not like "%Cancelada%"',
                            'OrdenesReparacion.estado not like "%Anulada%"',
                    'OrdenesReparacion.tipo not like "%Anulada%"',
                            'OrdenesReparacion.estado in ("Confirmada") ',
                            'OrdenesReparacion.anulada <> 1',
                            'OrdenesReparacion.cancelada <> 1',                            
                            'OrdenesReparacion.empleado_id ' =>  intval($this->data['tecnico']),                                 
                    ),
                    'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),             
                    'recursive' => 2,
                    'fields' =>
                array('OrdenesReparacion.id',
                        'Area.area',
                        'OrdenesReparacion.fecha',
                        'OrdenesReparacion.numero',
                        'OrdenesReparacion.articulo',
                        'OrdenesReparacion.modelo',
                        'OrdenesReparacion.estado',
                        'OrdenesReparacion.desperfecto',
                        'OrdenesReparacion.tipo',
                        'OrdenesReparacion.ser',
                        'OrdenesReparacion.presupuesto_taller',
                        'OrdenesReparacion.observaciones',
                        'OrdenesReparacion.detalle_marca',
                        'OrdenesReparacion.fecha_asignado',
                        'Usuario.nombre',
                        'Usuario.apellido',
                        'OrdenesReparacion.alerta',
                        'Marca.marca',
                        'Cliente.nombre_apellido')               
                        )
                );
              } 

        $this->set(compact('data', 'desde', 'hasta','tmp'));
    }
    
 function buscaros16(){   // pm 29.3.2015 // daniel 23.6.2015
        $this->layout = 'ajax';

        $fd = implode('-', array_reverse(explode('/', $this->data['desde'])));
        $fh = implode('-', array_reverse(explode('/', $this->data['hasta'])));

        $est=$this->Estado->find('all');  // pm por daniel 23.6
        $this->set(compact('est')); // pm por daniel 23.6
        $textofecha = 'OrdenesReparacion.fecha between ? and ?';

        $palabraBuscar = $this->data['palabra_buscar'];
        if (isset($this->data['tipof'])) {
            if ($this->data['tipof'] == 0) {
                $textofecha = 'OrdenesReparacion.fecha between ? and ?';
            } elseif ($this->data['tipof'] == 1) {
                $textofecha = 'OrdenesReparacion.fecha_asignado between ? and ?';
            } else {
                $textofecha = 'OrdenesReparacion.fecha_prometido between ? and ?';
            }
        }
        

    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id'),
            'Usuario' => array(
                        'className' => 'Usuario',
                        'foreignKey' => 'empleado_id'),
            )
            )
        );
        
        $consulta="select a.id, a.area from areas a where a.Derivar=1";
        $res=$this->OrdenesReparacion->query($consulta);
        $tmp=array();
        //debug($res);
        foreach($res as $r){            
        $tmp[$r['a']['id']]=$r['a']['area'];
        }
        
        $data=NULL;

                if(isset($this->data['desde']) && !isset($this->data['palabra_buscar'])){
                    $this->set('caso', 1);
                    Debugger::log("Caso 1");
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                $textofecha => array($fd, $fh),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
					  'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',	
                      'OrdenesReparacion.empleado_id <> 0',					  
                      
            ),
             'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),             
            'recursive' => 2,
            'fields' =>
    array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Usuario.nombre',
                'Usuario.apellido',
                'Marca.marca',
                'Cliente.nombre_apellido')
                //'order' => array('Area.area' => 'DESC' )                
                )
        );

        }
        if(isset($this->data['palabra_buscar']) && !isset($this->data['desde'])){
            Debugger::log("Caso 2");
            $this->set('caso', 2);
       // echo "busca palabra";
       if(strlen($this->data['areass22']) > 1){

           $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                $textofecha => array('2015-09-25', date('Y-m-d')),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
					  'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',    
                      'OrdenesReparacion.empleado_id <> 0',					                         
                      'Area.area like "%'.$this->data['areass22'].'%"',                   					                                        
            ),
            'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),             
            'recursive' => 2,
            'fields' =>
           array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Usuario.nombre',
                'Usuario.apellido',
                'Marca.marca',
                'Cliente.nombre_apellido')
                //'order' => array('Area.area' => 'DESC' )                
                )
        );

       } else {

           $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                $textofecha => array('2015-09-25', date('Y-m-d')),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
					  'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',     
                      'OrdenesReparacion.empleado_id <> 0',					  
                      'Area.area like "%'.$this->data['palabra_buscar'].'%"',                                    					                                        
            ),
            'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),             
            'recursive' => 2,
            'fields' =>
           array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'Usuario.nombre',
                'Usuario.apellido',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido')
                //'order' => array('Area.area' => 'DESC' )                
                )
        );

       }


        }

        if(isset($this->data['palabra_buscar']) && isset($this->data['desde'])){
            
          if(strlen($this->data['areass22']) > 1){
              Debugger::log("Caso 3");
              $this->set('caso', 3);
            debug($this->data['areass22']);
            $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(                 
                $textofecha => array($fd, $fh),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',
                      'OrdenesReparacion.empleado_id <> 0',					  
                      'Area.area like "%'.$this->data['areass22'].'%"',                                 
            ),
            'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),             
            'recursive' => 2,
            'fields' =>
          array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'Usuario.nombre',
                'Usuario.apellido',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido')
                //'order' => array('Area.area' => 'DESC' )                
                )
        );
          } else {
              Debugger::log("Caso 4");
                         $this->set('caso', 4);
            $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                 $textofecha => array($fd, $fh),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',
                      'OrdenesReparacion.empleado_id <> 0',					  
                      'Area.area like "%'.$this->data['palabra_buscar'].'%"',                                 
            ),
            'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),
            'recursive' => 2,
            'fields' =>
          array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'Usuario.nombre',
                'Usuario.apellido',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido')          
                )
        );
          }

        }

$this->set('tecnico', $this->data['tecnico']);
          if (intval($this->data['tecnico']) > 0) {
              Debugger::log("selecciona el tecnico");
               $this->OrdenesReparacion->bindModel(
                    array('belongsTo' => array(
                        'Cliente' => array(
                                    'className' => 'Cliente',
                                    'foreignKey' => 'cliente_id'),
                        'Usuario' => array(
                                    'className' => 'Usuario',
                                    'foreignKey' => 'empleado_id'),
                        )
                        )
                    );

                    $data = $this->OrdenesReparacion->find('all', array( 
                    'conditions' => array(       
                        $textofecha => array('2015-09-25', date('Y-m-d')),                 
                        'OrdenesReparacion.estado not like "%Pronta%"',
                            'OrdenesReparacion.estado not like "%Retirada%"',                   
                            'OrdenesReparacion.estado not like "%Cancelada%"',
                            'OrdenesReparacion.estado not like "%Anulada%"',
                    'OrdenesReparacion.tipo not like "%Anulada%"',
                            'OrdenesReparacion.estado in ("Confirmada") ',
                            'OrdenesReparacion.anulada <> 1',
                            'OrdenesReparacion.cancelada <> 1',                            
                            'OrdenesReparacion.empleado_id ' =>  intval($this->data['tecnico']),                                 
                    ),
                    'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),             
                    'recursive' => 2,
                    'fields' =>
                array('OrdenesReparacion.id',
                        'Area.area',
                        'OrdenesReparacion.fecha',
                        'OrdenesReparacion.numero',
                        'OrdenesReparacion.articulo',
                        'OrdenesReparacion.modelo',
                        'OrdenesReparacion.estado',
                        'OrdenesReparacion.desperfecto',
                        'OrdenesReparacion.tipo',
                        'OrdenesReparacion.ser',
                        'OrdenesReparacion.presupuesto_taller',
                        'OrdenesReparacion.observaciones',
                        'OrdenesReparacion.detalle_marca',
                        'OrdenesReparacion.fecha_asignado',
                        'Usuario.nombre',
                        'Usuario.apellido',
                        'OrdenesReparacion.alerta',
                        'Marca.marca',
                        'Cliente.nombre_apellido')               
                        )
                );
              } 

        $this->set(compact('data', 'desde', 'hasta','tmp'));
    }


    function buscaros10(){   // pm 29.3.2015 // daniel 23.6.2015
        $this->layout = 'ajax';

        $fd = implode('-', array_reverse(explode('/', $this->data['desde'])));
        $fh = implode('-', array_reverse(explode('/', $this->data['hasta'])));

        $est=$this->Estado->find('all');  // pm por daniel 23.6
        $this->set(compact('est')); // pm por daniel 23.6

        $palabraBuscar = $this->data['palabra_buscar'];

    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );
        $tiposs2=$this->data['tipos'];
        $consulta="select a.id, a.area from areas a where a.Derivar=1";
        $res=$this->OrdenesReparacion->query($consulta);
        $tmp=array();
        //debug($res);
        foreach($res as $r){            
        $tmp[$r['a']['id']]=$r['a']['area'];
        }
        
        $data=NULL;

                if(isset($this->data['desde']) && !isset($this->data['palabra_buscar'])){
                  if($tiposs2=="0"){
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                'OrdenesReparacion.confirmada between ? and ?' => array($fd, $fh),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',           
                      'OrdenesReparacion.presupuesto_taller <> ""',    
                      
            ),
            'recursive' => 2,
            'fields' =>
    array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC' )
                
                )
        );
}
                 if($tiposs2=="1"){
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                'OrdenesReparacion.confirmada between ? and ?' => array($fd, $fh),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',           
                      'OrdenesReparacion.presupuesto_taller = ""',    
                      
            ),
            'recursive' => 2,
            'fields' =>
    array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC' )
                
                )
        );
}
                 if($tiposs2=="2"){
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                'OrdenesReparacion.confirmada between ? and ?' => array($fd, $fh),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',                                                       
            ),
            'recursive' => 2,
            'fields' =>
    array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC' )
                
                )
        );
}


        }
        if(isset($this->data['palabra_buscar']) && !isset($this->data['desde'])){
       // echo "busca palabra";
debug($this->data['desde']);
if($tiposs2=="0"){
           $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',     
                      'Area.area like "%'.$this->data['palabra_buscar'].'%"',                                                                     
                      'OrdenesReparacion.presupuesto_taller <> ""',    
            ),
            'recursive' => 2,
            'fields' =>
           array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC' )                
                )
        );
}
if($tiposs2=="1"){
           $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',     
                      'Area.area like "%'.$this->data['palabra_buscar'].'%"',                                                                     
                      'OrdenesReparacion.presupuesto_taller = ""',    
            ),
            'recursive' => 2,
            'fields' =>
           array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC' )
                
                )
        );
}
if($tiposs2=="2"){
           $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',     
                      'Area.area like "%'.$this->data['palabra_buscar'].'%"',                                                                                    
            ),
            'recursive' => 2,
            'fields' =>
           array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC' )
                
                )
        );
}

        }

        if(isset($this->data['palabra_buscar']) && isset($this->data['desde'])){
debug($this->data['desde']);
          // echo "busca mixto";
if($tiposs2=="0"){
            $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                 'OrdenesReparacion.confirmada between ? and ?' => array($fd, $fh),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',
                      'Area.area like "%'.$this->data['palabra_buscar'].'%"',                                 
                      'OrdenesReparacion.presupuesto_taller <> ""',    
            ),
            'recursive' => 2,
            'fields' =>
          array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC' )                
                )
        );
}

if($tiposs2=="1"){
            $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                 'OrdenesReparacion.confirmada between ? and ?' => array($fd, $fh),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',
                      'Area.area like "%'.$this->data['palabra_buscar'].'%"',                                 
                      'OrdenesReparacion.presupuesto_taller = ""',    
            ),
            'recursive' => 2,
            'fields' =>
          array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC' )                
                )
        );
}
if($tiposs2=="1"){
            $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                 'OrdenesReparacion.confirmada between ? and ?' => array($fd, $fh),
                 'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',
                      'Area.area like "%'.$this->data['palabra_buscar'].'%"',                                  
            ),
            'recursive' => 2,
            'fields' =>
          array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC' )                
                )
        );
}
        }

        $this->set(compact('data', 'desde', 'hasta','tmp'));
    }
    
    
     function buscaros14() {   // pm 29.3.2015 // daniel 23.6.2015
        $this->layout = 'ajax';

        $fd = implode('-', array_reverse(explode('/', $this->data['desde'])));
        $fh = implode('-', array_reverse(explode('/', $this->data['hasta'])));

        $est=$this->Estado->find('all');  // pm por daniel 23.6
        $this->set(compact('est')); // pm por daniel 23.6

        $palabraBuscar = $this->data['palabra_buscar'];

    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')            
        )
            )
        );
        
        $consulta="select a.id, a.area from areas a where a.Derivar=1";
        $res=$this->OrdenesReparacion->query($consulta);
        $tmp=array();
        //debug($res);
        foreach($res as $r){            
        $tmp[$r['a']['id']]=$r['a']['area'];
        }
        
        $data=NULL;

                if(isset($this->data['desde']) && !isset($this->data['palabra_buscar'])){
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                'OrdenesReparacion.fecha between ? and ?' => array($fd, $fh), //'OrdenesReparacion.fecha_prometido between ? and ?' => array($fd, $fh), 12/01/2016
                'OrdenesReparacion.estado not like "%Confirmada%"',
'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
'OrdenesReparacion.tipo not like "%Garantia%"',
'OrdenesReparacion.tipo not like "%Reparacion%"',
'OrdenesReparacion.tipo not like "%Anulada%"',
'OrdenesReparacion.estado not like "%Cancelada%"',
'OrdenesReparacion.estado not like "%Pronta%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.anulada <> 1',
'OrdenesReparacion.cancelada <> 1',
'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 'OrdenesReparacion.presupuesto is null'),
                      
            ),
            'recursive' => 2,
            'fields' =>
    array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.fecha_prometido',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC' )
                
                )
        );
        }
        if(isset($this->data['palabra_buscar']) && !isset($this->data['desde'])){
       // echo "busca palabra";
           $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                'OrdenesReparacion.fecha between ? and ?' => array('2015-09-25', date('Y-m-d')),
                      'OrdenesReparacion.empleado_id' => $this->data['palabra_buscar'],                   
					 'OrdenesReparacion.estado not like "%Confirmada%"',
'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
'OrdenesReparacion.tipo not like "%Garantia%"',
'OrdenesReparacion.tipo not like "%Reparacion%"',
'OrdenesReparacion.tipo not like "%Anulada%"',
'OrdenesReparacion.estado not like "%Cancelada%"',
'OrdenesReparacion.estado not like "%Pronta%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.anulada <> 1',
'OrdenesReparacion.cancelada <> 1',
'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 'OrdenesReparacion.presupuesto is null'),                      
                
            ),
            'recursive' => 2,
            'fields' =>
           array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.fecha_prometido',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC' )
                
                )
        );

        }

        if(isset($this->data['palabra_buscar']) && isset($this->data['desde'])){

          // echo "busca mixto";
            $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                'OrdenesReparacion.fecha between ? and ?' => array($fd, $fh), //'OrdenesReparacion.fecha_prometido between ? and ?' => array($fd, $fh), 12/01/2016
                      'OrdenesReparacion.empleado_id' => $this->data['palabra_buscar'],
			'OrdenesReparacion.estado not like "%Confirmada%"',
'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
'OrdenesReparacion.tipo not like "%Garantia%"',
'OrdenesReparacion.tipo not like "%Reparacion%"',
'OrdenesReparacion.tipo not like "%Anulada%"',
'OrdenesReparacion.estado not like "%Cancelada%"',
'OrdenesReparacion.estado not like "%Pronta%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.anulada <> 1',
'OrdenesReparacion.cancelada <> 1',
'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 'OrdenesReparacion.presupuesto is null'),
                      
            ),
            'recursive' => 2,
            'fields' =>
          array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.fecha_prometido',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC' )
                
                )
        );

        }

        $this->set(compact('data', 'desde', 'hasta','tmp'));
    }
    


    function buscaros6() {   // pm 29.3.2015 // daniel 23.6.2015
        $this->layout = 'ajax';

        $fd = implode('-', array_reverse(explode('/', $this->data['desde'])));
        $fh = implode('-', array_reverse(explode('/', $this->data['hasta'])));

        $est=$this->Estado->find('all');  // pm por daniel 23.6
        $this->set(compact('est')); // pm por daniel 23.6
        $textofecha = 'OrdenesReparacion.fecha between ? and ?';
        if (strlen($this->data['tecnicos']) > 0) {
            $textotec = 'Usuario.id = ' . $this->data['tecnicos'];
        } else {
            $textotec = '1=1';
        }

        $palabraBuscar = $this->data['palabra_buscar'];
        if (isset($this->data['tipof'])) {
            if ($this->data['tipof'] == 0) {
                $textofecha = 'OrdenesReparacion.fecha between ? and ?';
            } elseif ($this->data['tipof'] == 1) {
                $textofecha = 'OrdenesReparacion.fecha_asignado between ? and ?';
            } else {
                $textofecha = 'OrdenesReparacion.fecha_prometido between ? and ?';
            }
        }

    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id'),
            'Usuario' => array(
                        'className' => 'Usuario',
                        'foreignKey' => 'empleado_id'),
            )
            )
        );
        
        $consulta="select a.id, a.area from areas a where a.Derivar=1";
        $res=$this->OrdenesReparacion->query($consulta);
        $tmp=array();
        //debug($res);
        foreach($res as $r){            
        $tmp[$r['a']['id']]=$r['a']['area'];
        }
        
        $data=NULL;

                if(isset($this->data['desde']) && !isset($this->data['palabra_buscar'])){
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                $textotec,
                $textofecha => array($fd, $fh), //'OrdenesReparacion.fecha_prometido between ? and ?' => array($fd, $fh), 12/01/2016
                'OrdenesReparacion.estado not like "%Confirmada%"',
'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
'OrdenesReparacion.tipo not like "%Garantia%"',
'OrdenesReparacion.tipo not like "%Reparacion%"',
'OrdenesReparacion.tipo not like "%Anulada%"',
'OrdenesReparacion.estado not like "%Cancelada%"',
'OrdenesReparacion.estado not like "%Pronta%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.anulada <> 1',
'OrdenesReparacion.cancelada <> 1',
'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 'OrdenesReparacion.presupuesto is null'),
                      
            ),
            'recursive' => 2,
            'fields' =>
    array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.cant_llamados',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'Usuario.nombre',
                'Usuario.apellido',
                'OrdenesReparacion.fecha_prometido',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC' )
                
                )
        );
        }
        if(isset($this->data['palabra_buscar']) && !isset($this->data['desde'])){
       // echo "busca palabra";
           $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                $textotec,
                $textofecha => array('2015-09-25', date('Y-m-d')),
                      'Area.area like "%'.$this->data['palabra_buscar'].'%"',                   
           'OrdenesReparacion.estado not like "%Confirmada%"',
'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
'OrdenesReparacion.tipo not like "%Garantia%"',
'OrdenesReparacion.tipo not like "%Reparacion%"',
'OrdenesReparacion.tipo not like "%Anulada%"',
'OrdenesReparacion.estado not like "%Cancelada%"',
'OrdenesReparacion.estado not like "%Pronta%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.anulada <> 1',
'OrdenesReparacion.cancelada <> 1',
'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 'OrdenesReparacion.presupuesto is null'),                      
                
            ),
            'recursive' => 2,
            'fields' =>
           array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.cant_llamados',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.fecha_prometido',
                'Usuario.nombre',
                'Usuario.apellido',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC' )
                
                )
        );

        }

        if(isset($this->data['palabra_buscar']) && isset($this->data['desde'])){

          // echo "busca mixto";
            $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                $textotec,
                $textofecha => array($fd, $fh), //'OrdenesReparacion.fecha_prometido between ? and ?' => array($fd, $fh), 12/01/2016
                      'Area.area like "%'.$this->data['palabra_buscar'].'%"',
      'OrdenesReparacion.estado not like "%Confirmada%"',
'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
'OrdenesReparacion.tipo not like "%Garantia%"',
'OrdenesReparacion.tipo not like "%Reparacion%"',
'OrdenesReparacion.tipo not like "%Anulada%"',
'OrdenesReparacion.estado not like "%Cancelada%"',
'OrdenesReparacion.estado not like "%Pronta%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.anulada <> 1',
'OrdenesReparacion.cancelada <> 1',
'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 'OrdenesReparacion.presupuesto is null'),
                      
            ),
            'recursive' => 2,
            'fields' =>
          array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.cant_llamados',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.fecha_prometido',
                'Usuario.nombre',
                'Usuario.apellido',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC' )
                
                )
        );

        }

        $this->set(compact('data', 'desde', 'hasta','tmp'));
    }


     function buscaros4() {   // pm 29.3.2015 // daniel 23.6.2015
        $this->layout = 'ajax';

        $fd = implode('-', array_reverse(explode('/', $this->data['desde'])));
        $fh = implode('-', array_reverse(explode('/', $this->data['hasta'])));

$this->set('result',$this->OrdenesServicioBitacora->lista());
        $est=$this->Estado->find('all');  // pm por daniel 23.6
        $this->set(compact('est')); // pm por daniel 23.6

        $palabraBuscar = $this->data['palabra_buscar'];

    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );
        $data=NULL;

                if(isset($this->data['desde']) && !isset($this->data['palabra_buscar'])){
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                'OrdenesReparacion.fecha between ? and ?' => array($fd, $fh)
            ),
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.factura_id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                  
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                'OrdenesReparacion.interior',
                 'OrdenesReparacion.precio',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada',
                'OrdenesReparacion.fecha_prometido',              
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );
        }
        if(isset($this->data['palabra_buscar']) && !isset($this->data['desde'])){
       // echo "busca palabra";
           $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(

                "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            ),
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.factura_id',
                'OrdenesReparacion.interior',
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',  
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                   'OrdenesReparacion.precio',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada', 
                'OrdenesReparacion.fecha_prometido',              
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );

        }

        if(isset($this->data['palabra_buscar']) && isset($this->data['desde'])){

          // echo "busca mixto";
            $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                 'OrdenesReparacion.fecha between ? and ?' => array($fd, $fh),
                "OR" => array(
                     'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',

                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            ),
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.factura_id',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.interior',
                'OrdenesReparacion.cancelada',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado', 
                'OrdenesReparacion.cant_llamados',  
                'OrdenesReparacion.precio_asignado', 
                   'OrdenesReparacion.precio',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada',
                'OrdenesReparacion.fecha_prometido',              
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );

        }

        $this->set(compact('data', 'desde', 'hasta'));
    }
    
    function buscaros2() {   // pm 29.3.2015 // daniel 23.6.2015
        $this->layout = 'ajax';

        $fd = implode('-', array_reverse(explode('/', $this->data['desde'])));
        $fh = implode('-', array_reverse(explode('/', $this->data['hasta'])));


        $est=$this->Estado->find('all');  // pm por daniel 23.6
        $this->set(compact('est')); // pm por daniel 23.6

        $palabraBuscar = $this->data['palabra_buscar'];

    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );
        $data=NULL;

                if(isset($this->data['desde']) && !isset($this->data['palabra_buscar'])){
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                'OrdenesReparacion.fecha between ? and ?' => array($fd, $fh),
                'OrdenesReparacion.estado in ("Confirmada","Pronta")',
        "OR"=>
        array('OrdenesReparacion.precio_asignado = 0 ','OrdenesReparacion.precio_asignado is NULL')
            ),
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                 'OrdenesReparacion.precio',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada',
                'OrdenesReparacion.fecha_prometido',              
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );
        }
        if(isset($this->data['palabra_buscar']) && !isset($this->data['desde'])){
      //  echo "busca palabra";
           $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(

                "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            ),
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',  
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                   'OrdenesReparacion.precio',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada', 
                'OrdenesReparacion.fecha_prometido',              
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );

        }

        if(isset($this->data['palabra_buscar']) && isset($this->data['desde'])){

           //echo "busca mixto";
            $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                 'OrdenesReparacion.fecha between ? and ?' => array($fd, $fh),
                "OR" => array(
                     'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',

                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            ),
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado', 
                'OrdenesReparacion.cant_llamados',  
                'OrdenesReparacion.precio_asignado', 
                   'OrdenesReparacion.precio',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada',
                'OrdenesReparacion.fecha_prometido',              
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );

        }

        $this->set(compact('data', 'desde', 'hasta'));
    }


function buscaros3() {   // pm 29.3.2015 // daniel 23.6.2015
        $this->layout = 'ajax';

        $fd = implode('-', array_reverse(explode('/', $this->data['desde'])));
        $fh = implode('-', array_reverse(explode('/', $this->data['hasta'])));


        $est=$this->Estado->find('all');  // pm por daniel 23.6
        $this->set(compact('est')); // pm por daniel 23.6

        $palabraBuscar = $this->data['palabra_buscar'];

    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );
        $data=NULL;

                if(isset($this->data['desde']) && !isset($this->data['palabra_buscar']) && !isset($this->data['primera'])){
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                'OrdenesReparacion.fecha between ? and ?' => array($fd, $fh),
                'OrdenesReparacion.anulada <> 1',     
                  'OrdenesReparacion.cancelada <> 1',              
                'OrdenesReparacion.estado not like "%Cancelada%"',
                 'OrdenesReparacion.estado not like "%Anulada%"',
                      'length(OrdenesReparacion.retirada) > 0',
                'length(OrdenesReparacion.factura_id) = 0'
            ),
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                'OrdenesReparacion.interior',
                 'OrdenesReparacion.precio',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada',
                'OrdenesReparacion.fecha_prometido',              
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );
        }
        
        
        
                if(isset($this->data['primera']) && !isset($this->data['palabra_buscar'])){
        $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(                
                'OrdenesReparacion.anulada <> 1',                
                'OrdenesReparacion.estado not like "%Cancelada%"',
                  'OrdenesReparacion.cancelada <> 1',              
                     'OrdenesReparacion.estado not like "%Anulada%"',
                      'length(OrdenesReparacion.retirada) > 0',


                'length(OrdenesReparacion.factura_id) = 0'
            ),
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                'OrdenesReparacion.interior',
                 'OrdenesReparacion.precio',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada',
                'OrdenesReparacion.fecha_prometido',              
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );
        }
        
        
        
        if(isset($this->data['palabra_buscar']) && !isset($this->data['desde'])){
      //  echo "busca palabra";
           $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                'OrdenesReparacion.anulada <> 1',
                'OrdenesReparacion.estado not like "%Cancelada%"',
                'length(OrdenesReparacion.factura_id) = 0',
    
                  'OrdenesReparacion.cancelada <> 1',              
  
                 'OrdenesReparacion.estado not like "%Anulada%"',
                      'length(OrdenesReparacion.retirada) > 0',


                "OR" => array(
                       'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            ),
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.interior',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.fecha_asignado',  
                'OrdenesReparacion.cant_llamados', 
                'OrdenesReparacion.precio_asignado',
                   'OrdenesReparacion.precio',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada', 
                'OrdenesReparacion.fecha_prometido',              
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );

        }

        if(isset($this->data['palabra_buscar']) && isset($this->data['desde'])){

           //echo "busca mixto";
            $data = $this->OrdenesReparacion->find('all', array(      // pm 12.6.2015 agrega criterios de busuqeda
            'conditions' => array(
                 'OrdenesReparacion.fecha between ? and ?' => array($fd, $fh),
                 'OrdenesReparacion.anulada <> 1',
                'OrdenesReparacion.estado not like "%Cancelada%"',
    
                  'OrdenesReparacion.cancelada <> 1',              

                 'OrdenesReparacion.estado not like "%Anulada%"',
                      'length(OrdenesReparacion.retirada) > 0',

                'length(OrdenesReparacion.factura_id) <  2',
                "OR" => array(
                     'UPPER(Cliente.nombre_apellido)  LIKE ' => '%' . strtoupper($palabraBuscar) . '%',
                    'Cliente.celular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.telefono_particular LIKE ' => '%' . $palabraBuscar . '%',
                    'Cliente.otro_telefono LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.numero LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.modelo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.articulo LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.id LIKE ' => '%' . $palabraBuscar . '%',
                    'Marca.marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.detalle_marca LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.desperfecto LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.observaciones LIKE ' => '%' . $palabraBuscar . '%',

                    'OrdenesReparacion.serie LIKE ' => '%' . $palabraBuscar . '%',
                    'OrdenesReparacion.alerta LIKE ' => '%' . $palabraBuscar . '%'
                )
            ),
            'fields' =>
            array('OrdenesReparacion.id',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.serie',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.interior',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado', 
                'OrdenesReparacion.cant_llamados',  
                'OrdenesReparacion.precio_asignado', 
                   'OrdenesReparacion.precio',
                 'OrdenesReparacion.presupuesto',
                 'OrdenesReparacion.marca_id',
                 'Marca.marca',
                 'OrdenesReparacion.confirmada',
                 'OrdenesReparacion.pronta',
                 'OrdenesReparacion.retirada',
                'OrdenesReparacion.fecha_prometido',              
                'Cliente.nombre_apellido',
                'Cliente.celular', 'Cliente.telefono_particular',
                'Cliente.otro_telefono'),
                )
        );

        }

        $this->set(compact('data', 'desde', 'hasta'));
    }

    function buscarostot($texto) {   // pm 22.5.2015
        $this->layout = 'ajax';

        $data = $this->buscar($texto);

        $this->set(compact('data'));
    }

function trabajossa($areass22 = "0", $tecnicoss = "0") {
      $this->set('usuarios', $this->OrdenesReparacion->getEmpleados()); 
      $tipofecha =  $this->OrdenesReparacion->getTipoFecha();
      unset($tipofecha[2]);
      $this->set('tipofecha', $tipofecha);

/* pm agrega 8.6.2015*/
    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );
/* pm agrega 8.6.2015*/

$consulta="select a.id, a.area from areas a where a.Derivar=1";
        $res=$this->OrdenesReparacion->query($consulta);
        $tmp=array();
        //debug($res);
        foreach($res as $r){            
        $tmp[$r['a']['id']]=$r['a']['area'];
        }
        
        if (isset($_POST["data"]) && $_POST["data"] !== "") {
            $textobuscar = $_POST["data"]["textobuscar"];
            $this->set(compact('textobuscar'));
        }
        // $desde = ''; // pm cambia 9.5.2015 
        $desde = date('25/09/2015'); // pm cambia 8.8.2016
        $hasta = date('d/m/Y');
        
        //$this->layout = 'ajax';
        $this->set('tecnico', $tecnicoss );

        if (strlen($areass) == 1) {
         
            $data = $this->OrdenesReparacion->find('all', array(
            'conditions' => array(                     
                      'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',           
                      
                      ),
            'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),   // PM 9/8/2016
            'recursive' => 2,
            'fields' => array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido')
                //'order' => array('Area.area' => 'DESC' )
                ));
            
            
        } else {
          $data = $this->OrdenesReparacion->find('all', array(
            'conditions' => array(                     
                      'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',
                      'Area.area like "%'.$areass22.'%"'           
                      ),
            'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),  
            'recursive' => 2,
            'fields' => array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido')
                //'order' => array('Area.area' => 'DESC' )
                ));


        }
        
        $this->set('areass22',$areass22);
       

        $this->set(compact('data','tmp','desde','hasta'));
        
        
         
        
    }

    function trabajosa($areass22 = "0", $tecnicoss = "0") {
      $this->set('usuarios', $this->OrdenesReparacion->getEmpleados()); 
      $tipofecha =  $this->OrdenesReparacion->getTipoFecha();
      unset($tipofecha[2]);
      $this->set('tipofecha', $tipofecha);

/* pm agrega 8.6.2015*/
    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );
/* pm agrega 8.6.2015*/

$consulta="select a.id, a.area from areas a where a.Derivar=1";
        $res=$this->OrdenesReparacion->query($consulta);
        $tmp=array();
        //debug($res);
        foreach($res as $r){            
        $tmp[$r['a']['id']]=$r['a']['area'];
        }
        
        if (isset($_POST["data"]) && $_POST["data"] !== "") {
            $textobuscar = $_POST["data"]["textobuscar"];
            $this->set(compact('textobuscar'));
        }
        // $desde = ''; // pm cambia 9.5.2015 
        $desde = date('25/09/2015'); // pm cambia 8.8.2016
        $hasta = date('d/m/Y');
        
        //$this->layout = 'ajax';
        $this->set('tecnico', $tecnicoss );

        if (strlen($areass) == 1) {
         
            $data = $this->OrdenesReparacion->find('all', array(
            'conditions' => array(                     
                      'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',           
                      
                      ),
            'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),   // PM 9/8/2016
            'recursive' => 2,
            'fields' => array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido')
                //'order' => array('Area.area' => 'DESC' )
                ));
            
            
        } else {
          $data = $this->OrdenesReparacion->find('all', array(
            'conditions' => array(                     
                      'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',
                      'Area.area like "%'.$areass22.'%"'           
                      ),
            'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),  
            'recursive' => 2,
            'fields' => array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido')
                //'order' => array('Area.area' => 'DESC' )
                ));


        }
        
        $this->set('areass22',$areass22);
       

        $this->set(compact('data','tmp','desde','hasta'));
        
        
         
        
    }

  function trabajos($areass22 = "0", $tecnicoss = "0") {
      $this->set('usuarios', $this->OrdenesReparacion->getEmpleados()); 
      $tipofecha =  $this->OrdenesReparacion->getTipoFecha();
      unset($tipofecha[2]);
      $this->set('tipofecha', $tipofecha);

/* pm agrega 8.6.2015*/
    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );
/* pm agrega 8.6.2015*/

$consulta="select a.id, a.area from areas a where a.Derivar=1";
        $res=$this->OrdenesReparacion->query($consulta);
        $tmp=array();
        //debug($res);
        foreach($res as $r){            
        $tmp[$r['a']['id']]=$r['a']['area'];
        }
        
        if (isset($_POST["data"]) && $_POST["data"] !== "") {
            $textobuscar = $_POST["data"]["textobuscar"];
            $this->set(compact('textobuscar'));
        }
        // $desde = ''; // pm cambia 9.5.2015 
        $desde = date('25/09/2015'); // pm cambia 8.8.2016
        $hasta = date('d/m/Y');
        
        //$this->layout = 'ajax';
        $this->set('tecnico', $tecnicoss );

        if (strlen($areass) == 1) {
         
            $data = $this->OrdenesReparacion->find('all', array(
            'conditions' => array(                     
                      'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',           
                      
                      ),
            'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),   // PM 9/8/2016
            'recursive' => 2,
            'fields' => array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido')
                //'order' => array('Area.area' => 'DESC' )
                ));
            
            
        } else {
          $data = $this->OrdenesReparacion->find('all', array(
            'conditions' => array(                     
                      'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
            'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',
                      'Area.area like "%'.$areass22.'%"'           
                      ),
            'order' => array('OrdenesReparacion.fecha_asignado' => 'ASC' ),  
            'recursive' => 2,
            'fields' => array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido')
                //'order' => array('Area.area' => 'DESC' )
                ));


        }
        
        $this->set('areass22',$areass22);
       

        $this->set(compact('data','tmp','desde','hasta'));
        
        
         
        
    }


 function trabajospp($areass22="0") {

/* pm agrega 8.6.2015*/
    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );

    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Usuario' => array(
                        'className' => 'Usuario',
                        'foreignKey' => 'empleado_id')
            )
            )
        );
/* pm agrega 8.6.2015*/

      //  $consulta="select u.id, u.nombre, u.apellido from usuarios u where u.area_id=18";
        /*$consulta="select u.id, u.nombre, u.apellido from usuarios u where ((u.area_id=18 or u.id = 48 or u.id = 41 or u.id = 12) and u.id <> 63 and u.id <> 22 ) ";
        $res=$this->OrdenesReparacion->query($consulta);
        $tmp=array();
        //debug($res);
        foreach($res as $r){            
          $tmp[$r['u']['id']]=$r['u']['nombre'].' '.$r['u']['apellido'];
        }*/
        
        if (isset($_POST["data"]) && $_POST["data"] !== "") {
            $textobuscar = $_POST["data"]["textobuscar"];
            $this->set(compact('textobuscar'));
        }
        //$desde = ''; // pm cambia 9.5.2015
        $desde = date('25/09/2015'); // pm cambia 9.8.2016
        $hasta = date('d/m/Y');
        
        //$this->layout = 'ajax';

 $condiciones = array( array(
                      'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
                      'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                        'OrdenesReparacion.fecha > ' . $desde . '',
                      'OrdenesReparacion.cancelada <> 1',           
                      
                     ),'OR' => array(
         
'OrdenesReparacion.estado not like "%Confirmada%"',
'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
'OrdenesReparacion.tipo not like "%Garantia%"',
'OrdenesReparacion.tipo not like "%Reparacion%"',
'OrdenesReparacion.tipo not like "%Anulada%"',
'OrdenesReparacion.estado not like "%Cancelada%"',
'OrdenesReparacion.estado not like "%Pronta%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.estado not like "%Retirada%"',
  'OrdenesReparacion.fecha > ' . $desde . '',
'OrdenesReparacion.anulada <> 1',
'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 'OrdenesReparacion.presupuesto is null',   'OrdenesReparacion.fecha > ' . $desde . ''),
            
                      )
);

$data = $this->OrdenesReparacion->find('all', array(      
            'conditions' => $condiciones,
            'recursive' => 2,    
                              
            'fields' =>
                 array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.fecha_prometido', 
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Usuario.nombre' => 'DESC' )                
                ));
        
   //     debug("voy a ir a buscaros");
   //     debug($condiciones);


        $this->set('tmp', $this->OrdenesReparacion->getEmpleados());         
        $this->set('areass22',$areass22);
        $this->set(compact('data','desde','hasta'));
            
    }

    function confirmadas() {

/* pm agrega 8.6.2015*/
    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );
/* pm agrega 8.6.2015*/

$consulta="select a.id, a.area from areas a where a.Derivar=1";
        $res=$this->OrdenesReparacion->query($consulta);
        $tmp=array();
        //debug($res);
        foreach($res as $r){            
        $tmp[$r['a']['id']]=$r['a']['area'];
        }
        
        $tmp2=array();
        $tmp2[0]="Con presupuesto detallado";
        $tmp2[1]="Sin presupuesto detallado";
        $tmp2[2]="todas";

        if (isset($_POST["data"]) && $_POST["data"] !== "") {
            $textobuscar = $_POST["data"]["textobuscar"];
            $this->set(compact('textobuscar'));
        }
        $desde = ''; // pm cambia 9.5.2015
        $hasta = date('d/m/Y');
        
        //$this->layout = 'ajax';
        $data = $this->OrdenesReparacion->find('all', array(
            'conditions' => array(
                     
                      'OrdenesReparacion.estado not like "%Pronta%"',
                      'OrdenesReparacion.estado not like "%Retirada%"',                   
                      'OrdenesReparacion.estado not like "%Cancelada%"',
                      'OrdenesReparacion.estado not like "%Anulada%"',
                      'OrdenesReparacion.tipo not like "%Anulada%"',
                      'OrdenesReparacion.estado in ("Confirmada") ',
                      'OrdenesReparacion.anulada <> 1',
                      'OrdenesReparacion.cancelada <> 1',           
                   
                      
                      ),
            'recursive' => 2,
            'fields' => array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.fecha_asignado',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC' )
                ));

        $this->set(compact('data','tmp','desde','hasta','tmp2'));
        
        
         
        
    }


function presupuestos() {
    $this->set('usuarios', $this->OrdenesReparacion->getEmpleados()); 
    $tipofecha = $this->OrdenesReparacion->getTipoFecha();
    unset($tipofecha[1]);
    $this->set('tipofecha', $tipofecha);

/* pm agrega 8.6.2015*/
    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id'),
            'Usuario' => array(
                        'className' => 'Usuario',
                        'foreignKey' => 'empleado_id')
            )
            )
        );
/* pm agrega 8.6.2015*/

$consulta="select a.id, a.area from areas a where a.Derivar=1";
        $res=$this->OrdenesReparacion->query($consulta);
        $tmp=array();
        //debug($res);
        foreach($res as $r){            
        $tmp[$r['a']['id']]=$r['a']['area'];
        }
        
        if (isset($_POST["data"]) && $_POST["data"] !== "") {
            $textobuscar = $_POST["data"]["textobuscar"];
            $this->set(compact('textobuscar'));
        }
        //$desde = ''; // pm cambia 9.5.2015
        $desde = date('25/09/2015'); // pm cambia 8.8.16
        $hasta = date('d/m/Y');
        
        //$this->layout = 'ajax';
        
         $data = $this->OrdenesReparacion->find('all', array(
            'conditions' => array(
'OrdenesReparacion.estado not like "%Confirmada%"',
'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
'OrdenesReparacion.tipo not like "%Garantia%"',
'OrdenesReparacion.tipo not like "%Reparacion%"',
'OrdenesReparacion.tipo not like "%Anulada%"',
'OrdenesReparacion.estado not like "%Cancelada%"',
'OrdenesReparacion.estado not like "%Pronta%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.anulada <> 1',
'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 'OrdenesReparacion.presupuesto is null'),
),
            'recursive' => 2,
            'fields' => array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.cant_llamados',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.fecha_prometido', 
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC' )
                ));
        
        

        $this->set(compact('data','tmp','desde','hasta'));                
         
        
    }


    function listadoInterior() {
        //$this->layout = 'ajax';

        $this->OrdenesReparacion->bindModel(
		array('belongsTo' => array(
			 'Cliente' => array(
            			'className' => 'Cliente',
            			'foreignKey' => 'cliente_id')
			)
			)
		);

        $data = $this->OrdenesReparacion->find('all', array(
            'conditions' => array('OrdenesReparacion.interior' => 1, 'OrdenesReparacion.retirada IS NULL'),
            'recursive' => 2,
            'fields' => array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'Marca.marca',
                'Cliente.nombre_apellido')));

        $this->set(compact('data'));
    }

function presupuestospp() {   // presupuestos por tecnico 22.8.2016

/* pm agrega 8.6.2015*/
    $this->OrdenesReparacion->bindModel(
        array('belongsTo' => array(
             'Cliente' => array(
                        'className' => 'Cliente',
                        'foreignKey' => 'cliente_id')
            )
            )
        );
/* pm agrega 8.6.2015*/

//$consulta="select a.id, a.area from areas a where a.Derivar=1";
/*
$consulta="select u.id, u.nombre, u.apellido from usuarios u where ((u.area_id=18 or u.id = 48 or u.id = 41 or u.id = 12) and u.id <> 63 and u.id <> 22 ) ";
  
        $res=$this->OrdenesReparacion->query($consulta);
        $tmp=array();*/
        //debug($res);
     /*   foreach($res as $r){            
        $tmp[$r['a']['id']]=$r['a']['area'];
        }
*/

        /*foreach($res as $r){            
          $tmp[$r['u']['id']]=$r['u']['nombre'].' '.$r['u']['apellido'];
        }*/
        $this->set('tmp', $this->OrdenesReparacion->getEmpleados()); 


        if (isset($_POST["data"]) && $_POST["data"] !== "") {
            $textobuscar = $_POST["data"]["textobuscar"];
            $this->set(compact('textobuscar'));
        }
        //$desde = ''; // pm cambia 9.5.2015
        $desde = date('25/09/2015'); // pm cambia 8.8.16
        $hasta = date('d/m/Y');
        
        //$this->layout = 'ajax';
         $data = $this->OrdenesReparacion->find('all', array(
            'conditions' => array(
'OrdenesReparacion.estado not like "%Confirmada%"',
'OrdenesReparacion.tipo not like "%GarantiaPendiente%"',
'OrdenesReparacion.tipo not like "%Garantia%"',
'OrdenesReparacion.tipo not like "%Reparacion%"',
'OrdenesReparacion.tipo not like "%Anulada%"',
'OrdenesReparacion.estado not like "%Cancelada%"',
'OrdenesReparacion.estado not like "%Pronta%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.estado not like "%Retirada%"',
'OrdenesReparacion.anulada <> 1',
'OR' => array('OrdenesReparacion.presupuesto like ' => "%0000-00-00%", 'OrdenesReparacion.presupuesto is null'),
),
            'recursive' => 2,
            'fields' => array('OrdenesReparacion.id',
                'Area.area',
                'OrdenesReparacion.fecha',
                'OrdenesReparacion.numero',
                'OrdenesReparacion.articulo',
                'OrdenesReparacion.modelo',
                'OrdenesReparacion.estado',
                'OrdenesReparacion.desperfecto',
                'OrdenesReparacion.tipo',
                'OrdenesReparacion.ser',
                'OrdenesReparacion.detalle_marca',
                'OrdenesReparacion.presupuesto_taller',
                'OrdenesReparacion.observaciones',
                'OrdenesReparacion.alerta',
                'OrdenesReparacion.fecha_prometido', 
                'Marca.marca',
                'Cliente.nombre_apellido'),
                'order' => array('Area.area' => 'DESC' )
                ));
        
        

        $this->set(compact('data','tmp','desde','hasta'));                
         
        
    }

    function imprimirsubt()
    {
		$this->layout = false;
		if (isset($this->data['html'])) {
            $val = $this->OrdenesReparacion->query($this->data['html']);
            debug($val);
            $this->set('val',$val);
        }

	}


 function subtalleres() {  // para lisado ordenes que estan en subtaller pm 7.7.2015

        $this->set(compact('subt','temps','est'));
    }

    function addNota($id,$id_usuario,$idcli){
        $datosAud = array();
        $datosAud['fecha'] = date("Y-m-d H:i:s");
        $datosAud['id_usuario'] = $id_usuario;
        $datosAud['id_accion'] = 8;
        $datosAud['id_orden'] = $id;
        $datosAud['comentarios'].="Se agrego alerta al cliente con id #".$idcli;
        App::import('Model', 'OrdenesServicioBitacora');
        $aud = new OrdenesServicioBitacora();
        $aud->create();
        $aud->save($datosAud);
        //echo "guardaaa";
        $this->layout = 'ajax';
        $this->set('result2', false);
    }


    function setAlerta($id, $id_usuario, $vars)
    {
        $params = array();
        parse_str($vars, $params);                                                                
        $actualice = "update ordenes_reparaciones set alerta = '" 
        . addslashes($params['data']['OrdenesReparacion']['alerta']) . "' where id = " . $id;
        $this->OrdenesReparacion->query($actualice);
        $this->redirect('/OrdenesReparaciones/edit/' . $id. '/0');
    }

    function getOrdenesHoy()
    {
        return $this->OrdenesReparacion->getCantidadOrdenesHoy();
    }

    function getOrdenesMes() 
    {
        return $this->OrdenesReparacion->getCantidadOrdenesMes();
    }

    function getTrabajosPendientes()
    {
        return $this->OrdenesReparacion->getCantidadTrabajosPendientes();
    }

    function getPresupuestosPendientes()
    {
        return $this->OrdenesReparacion->getCantidadPresupuestosPendientes();
    }

     function getProntasSinAvisar()
    {
        return $this->OrdenesReparacion->getCantidadProntasSinAvisar();
    }


    function getTrabajosPresupuestosPendientes() /* PM 22.4.2019 */
    {
        $trabp = $this->OrdenesReparacion->getCantidadTrabajosPendientes();
        $presup = $this->OrdenesReparacion->getCantidadPresupuestosPendientes();
        return $typ = $trabp + $presup;
    }


    function getPresupuestosPrometidos()
    {
        return $this->OrdenesReparacion->getCantidadPresupuestosPrometidos();
    }
    
    function getTrabajosPrometidos()
    {
        return $this->OrdenesReparacion->getCantidadTrabajosPrometidos();
    }

    function getConfirmadas()
    {
        return $this->OrdenesReparacion->getCantidadConfirmadas();
    }

    function getProntas()
    {
        return $this->OrdenesReparacion->getCantidadProntas();
    }

      function getPresupuestosProntos()   // pm agrega 24.10.17
    {
        return $this->OrdenesReparacion->getCantidadPresupProntos();
    }


    function getProntassr()
    {
        return $this->OrdenesReparacion->getCantidadProntassr();
    }    

    function getVentasMes()
    {
        return '$ ' . number_format($this->OrdenesReparacion->getTotalVentasMes(),2,',','.');
    }

    function getTrabajosAtrasados()
    {
        return $this->OrdenesReparacion->getCantidadTrabajosAtrasados();
    }

    function getPresupuestosAtrasados()
    {
        return $this->OrdenesReparacion->getCantidadPresupuestosAtrasados();
    }

    function getGarantiasPendientes()
    {
        return $this->OrdenesReparacion->getCantidadGarantiasPendientes();
    }


    function cantreclamadas()
    {
        return $this->OrdenesReparacion->getCantidadReclamadas();
    }


    function getVentasHoy()
    {
        return '$ ' . number_format($this->OrdenesReparacion->getTotalVentasHoy(),2,',','.');
    }

    function getCobrosPendientesPesos()
    {
        return '$ ' . number_format($this->OrdenesReparacion->getTotalCobrosPendientesPesos(),2,',','.');        
    }

    function getCobrosPendientesUSD()
    {
        return 'USD ' . number_format($this->OrdenesReparacion->getTotalCobrosPendientesUSD(),2,',','.');        
    }

    function getVencimientosPesos()
    {
        return '$ ' . number_format($this->OrdenesReparacion->getTotalVencimientosPesos(),2,',','.');
    }

    function getVencimientosUSD()
    {
        return 'USD ' . number_format($this->OrdenesReparacion->getTotalVencimientosUSD(),2,',','.');
    }

// pm agrega esas funciones para dashboard 10/11/16
     function getOrdenesSinPrecio()
    {
        return $this->OrdenesReparacion->getOrdenesSinPrecio();
    }

    function getFactuArticulos()
    {
        
       Debugger::log('$ ' . number_format($this->OrdenesReparacion->getFactuOrdenes(),2,',','.'));
        return '$ ' . number_format($this->OrdenesReparacion->getFactuArticulos(),2,',','.');
    }

    function getFactuOrdenes()
    {
        return '$ ' . number_format($this->OrdenesReparacion->getFactuOrdenes(),2,',','.');
    }

    function getFactuBalaguer()
    {
        return '$ ' . number_format($this->OrdenesReparacion->getFactuBalaguer(),2,',','.');
    }

 function getFactuComprasPesos()
    {
        return '$ ' . number_format($this->OrdenesReparacion->getFactuComprasPesos(),2,',','.');
    }

    function getFactuComprasUSD()
    {
        return 'USD ' . number_format($this->OrdenesReparacion->getFactuComprasUSD(),2,',','.');
    }




    function marchaAtrasComunicacion($id, $id_usuario, $id_accion, $vars) {
        $datosAud = array();
        $cod_accion = "";
        if ($id_accion == 17) {
            $datosAud['comentarios']= "Marcha Atras Presupuesto y Precio";
            $cod_accion = 22;
            App::import('Model', 'AvisosBitacora');
            $avisos = new AvisosBitacora();
            $avisos->marchaAtrasPrecio($id);        
        } else if ($id_accion == 18) {
            $datosAud['comentarios']= "Marcha Atras Aviso Pronta";
            $cod_accion = 21;
            App::import('Model', 'AvisosBitacora');
            $avisos = new AvisosBitacora();
            $avisos->marchaAtrasPronta($id);            
        } else {
            $datosAud['comentarios']= "Marcha Atras Reclamo del Cliente";
            $cod_accion = 23;
        }
        
        $datosAud['fecha'] = date("Y-m-d H:i:s");
        $datosAud['id_usuario'] = $id_usuario;
        $datosAud['id_accion'] = $cod_accion;
        $datosAud['id_orden'] = $id;
        $orden = $this->OrdenesReparacion->findById($id);

        
        App::import('Model', 'OrdenesServicioBitacora');
        $aud = new OrdenesServicioBitacora();
        $aud->query("delete from ordenes_servicio_bitacora where id_accion = " . $id_accion . " and id_orden = " . $id);
        $aud = new OrdenesServicioBitacora();
        $aud->create();
        $aud->save($datosAud);
        $params = array();
        parse_str($vars, $params);
        debug($params);
        $this->OrdenesReparacion->read(null, $id);
        
        if (strlen($params['data']['OrdenesReparacion']['numero']) > 0) {
            $this->OrdenesReparacion->set('numero',$params['data']['OrdenesReparacion']['numero']);            
        } else {
            $this->OrdenesReparacion->set('numero', $orden['OrdenesReparacion']['numero']);            
        }
        if ($params['data']['OrdenesReparacion']['cliente_id'] !== NULL)
$this->OrdenesReparacion->set('cliente_id',$params['data']['OrdenesReparacion']['cliente_id']);
//$this->OrdenesReparacion->set('tipo',$params['data']['OrdenesReparacion']['tipo']);
if($params['data']['OrdenesReparacion']['nro_orden_anterior']!==NULL)
$this->OrdenesReparacion->set('nro_orden_anterior',$params['data']['OrdenesReparacion']['nro_orden_anterior']);
if($params['data']['OrdenesReparacion']['idusuarioa']!==NULL)
$this->OrdenesReparacion->set('idusuarioa',$params['data']['OrdenesReparacion']['idusuarioa']);
if($params['data']['OrdenesReparacion']['articulo']!==NULL)
 $this->OrdenesReparacion->set('articulo',$params['data']['OrdenesReparacion']['articulo']);

 if($params['data']['OrdenesReparacion']['presup_cliente'] !== NULL) {
    $this->OrdenesReparacion->set('presup_cliente', $params['data']['OrdenesReparacion']['presup_cliente']);
 } else {
     $this->OrdenesReparacion->set('presup_cliente', $orden['OrdenesReparacion']['presup_cliente']);
 }

 if($params['data']['OrdenesReparacion']['contacto_id'] !== NULL) {
    $this->OrdenesReparacion->set('contacto_id', $params['data']['OrdenesReparacion']['contacto_id']);
 } else {
     $this->OrdenesReparacion->set('contacto_id', $orden['OrdenesReparacion']['contacto_id']);
 }


       if($params['data']['OrdenesReparacion']['modelo']!==NULL) {
           if ($params['data']['OrdenesReparacion']['modelo'] != "F") {
               $this->OrdenesReparacion->set('modelo',$params['data']['OrdenesReparacion']['modelo']);
           } else {
               $this->OrdenesReparacion->set('modelo',$orden['OrdenesReparacion']['modelo']);
           }
           
       } else {
           $this->OrdenesReparacion->set('modelo',$orden['OrdenesReparacion']['modelo']);
       }


 
        
        if($params['data']['OrdenesReparacion']['marca_id']!==NULL)
        $this->OrdenesReparacion->set('marca_id',$params['data']['OrdenesReparacion']['marca_id']);
        if ($params['data']['OrdenesReparacion']['detalle_marca'] !== NULL)
            $this->OrdenesReparacion->set('detalle_marca',$params['data']['OrdenesReparacion']['detalle_marca']);
        if ($params['data']['OrdenesReparacion']['tipo'] !== NULL) {
            $this->OrdenesReparacion->set('tipo',$params['data']['OrdenesReparacion']['tipo']);
        } 
else {
            $this->OrdenesReparacion->set('tipo',$orden['OrdenesReparacion']['tipo']);
        }
        //$this->OrdenesReparacion->set('Precio_Compra',$params['data']['OrdenesReparacion']['Precio_Compra']);
        if($params['data']['OrdenesReparacion']['desperfecto']!==NULL) {
            $this->OrdenesReparacion->set('desperfecto',$params['data']['OrdenesReparacion']['desperfecto']);
        } 
        
        if($params['data']['OrdenesReparacion']['accesorios']!==NULL)
        $this->OrdenesReparacion->set('accesorios',$params['data']['OrdenesReparacion']['accesorios']);
        if($params['data']['OrdenesReparacion']['area_id']!==NULL)
        $this->OrdenesReparacion->set('area_id',$params['data']['OrdenesReparacion']['area_id']);
        //$this->OrdenesReparacion->set('tipo',$params['data']['OrdenesReparacion']['tipo']);
        if($params['data']['OrdenesReparacion']['sub_taller']!==NULL)
        $this->OrdenesReparacion->set('sub_taller',$params['data']['OrdenesReparacion']['sub_taller']);
        if($params['data']['OrdenesReparacion']['recibo_sena_id']!==NULL)
        $this->OrdenesReparacion->set('recibo_sena_id',$params['data']['OrdenesReparacion']['recibo_sena_id']);
        if($params['data']['OrdenesReparacion']['subtaller_id']!==NULL)
        $this->OrdenesReparacion->set('subtaller_id',$params['data']['OrdenesReparacion']['subtaller_id']);
        if($params['data']['OrdenesReparacion']['empleado_id']!==NULL)
        $this->OrdenesReparacion->set('empleado_id',$params['data']['OrdenesReparacion']['empleado_id']);
        if($params['data']['OrdenesReparacion']['interior']!==NULL)
            $this->OrdenesReparacion->set('interior',$params['data']['OrdenesReparacion']['interior']);

        if($params['data']['OrdenesReparacion']['aplicapresup']!==NULL)
            $this->OrdenesReparacion->set('aplicapresup',$params['data']['OrdenesReparacion']['aplicapresup']);  // pm 22.4.2016

        if($params['data']['OrdenesReparacion']['fecha_recibido']!==NULL)
        $this->OrdenesReparacion->set('fecha_recibido',implode('/',explode('-',$params['data']['OrdenesReparacion']['fecha_recibido'])));

        if($params['data']['OrdenesReparacion']['contenido']!==NULL)
        $this->OrdenesReparacion->set('contenido',$params['data']['OrdenesReparacion']['contenido']);

        if($params['data']['OrdenesReparacion']['monto_subtaller']!==NULL)
        $this->OrdenesReparacion->set('monto_subtaller',$params['data']['OrdenesReparacion']['monto_subtaller']);

       if($params['data']['OrdenesReparacion']['fecha_envio_subtaller']!==NULL)
        $this->OrdenesReparacion->set('fecha_envio_subtaller',$params['data']['OrdenesReparacion']['fecha_envio_subtaller']);



        if($params['data']['OrdenesReparacion']['precio_asignado']!==NULL)
        $this->OrdenesReparacion->set('precio_asignado',$params['data']['OrdenesReparacion']['precio_asignado']);
        if($params['data']['OrdenesReparacion']['recibido_por']!==NULL)
        $this->OrdenesReparacion->set('recibido_por',$params['data']['OrdenesReparacion']['recibido_por']);
        if($params['data']['OrdenesReparacion']['vino_por']!==NULL)
        $this->OrdenesReparacion->set('vino_por',$params['data']['OrdenesReparacion']['vino_por']);
        if($params['data']['OrdenesReparacion']['nro_remito']!==NULL)
        $this->OrdenesReparacion->set('nro_remito',$params['data']['OrdenesReparacion']['nro_remito']);
        if($params['data']['OrdenesReparacion']['cant_llamados']!==NULL)
        $this->OrdenesReparacion->set('cant_llamados',$params['data']['OrdenesReparacion']['cant_llamados']);
        if($params['data']['OrdenesReparacion']['observaciones']!==NULL)
        $this->OrdenesReparacion->set('observaciones',$params['data']['OrdenesReparacion']['observaciones']);
        if($params['data']['OrdenesReparacion']['destino']!==NULL)
        $this->OrdenesReparacion->set('destino',$params['data']['OrdenesReparacion']['destino']);
        if($params['data']['OrdenesReparacion']['alerta']!==NULL)
        $this->OrdenesReparacion->set('alerta',$params['data']['OrdenesReparacion']['alerta']);
        if($params['data']['OrdenesReparacion']['presupuesto_taller']!==NULL)
        $this->OrdenesReparacion->set('presupuesto_taller',$params['data']['OrdenesReparacion']['presupuesto_taller']);
        if($params['data']['OrdenesReparacion']['fecha']!==NULL)
        $this->OrdenesReparacion->set('fecha',implode('/',explode('-',$params['data']['OrdenesReparacion']['fecha'])) );
        if($params['data']['OrdenesReparacion']['fecha_prometido']!==NULL)
        $this->OrdenesReparacion->set('fecha_prometido',implode('/',explode('-',$params['data']['OrdenesReparacion']['fecha_prometido'])) );
        if($params['data']['OrdenesReparacion']['fecha_asignado']!==NULL)
        $this->OrdenesReparacion->set('fecha_asignado',implode('/',explode('-',$params['data']['OrdenesReparacion']['fecha_asignado'])) );
        if($params['data']['OrdenesReparacion']['fecha_compra']!==NULL)
        $this->OrdenesReparacion->set('fecha_compra',implode('-',array_reverse( explode('-',$params['data']['OrdenesReparacion']['fecha_compra'])) ) );
        if($params['data']['OrdenesReparacion']['lugar_compra']!==NULL)
        $this->OrdenesReparacion->set('lugar_compra',$params['data']['OrdenesReparacion']['lugar_compra']);
        if($params['data']['OrdenesReparacion']['nro_comprobante']!==NULL)
        $this->OrdenesReparacion->set('nro_comprobante',$params['data']['OrdenesReparacion']['nro_comprobante']);
        if($params['data']['OrdenesReparacion']['Precio_Compra']!==NULL)
        $this->OrdenesReparacion->set('Precio_Compra',$params['data']['OrdenesReparacion']['Precio_Compra']);
        $this->OrdenesReparacion->set('idusuarioa', $id_usuario);
        $this->OrdenesReparacion->save();


        $this->redirect('/OrdenesReparaciones/edit/' . $id );
        $this->Session->setFlash('Se actualizo correctamente la comunicacion con el cliente.', 'messages/green');
    }





    function setComunicacion($id, $id_usuario, $id_accion, $vars) {
        $datosAud = array();
        $datosAud['fecha'] = date("Y-m-d H:i:s");
        $datosAud['id_usuario'] = $id_usuario;
        $datosAud['id_accion'] = $id_accion;
        $datosAud['id_orden'] = $id;
        $avisoPronta = false;
        $orden = $this->OrdenesReparacion->findById($id);

        if ($id_accion == 17) {
            $datosAud['comentarios']= "SE COMUNICA PRESUPUESTO Y PRECIO";
            App::import('Model', 'AvisosBitacora');
            $avisos = new AvisosBitacora();
            $avisos->avisarPrecio($id); 
        } elseif ($id_accion == 18) {
            $avisoPronta = true;
            $datosAud['comentarios']= "SE COMUNICA QUE LA MAQUINA ESTA PRONTA";
            App::import('Model', 'AvisosBitacora');
            $avisos = new AvisosBitacora();
            $avisos->avisarPronta($id);
        } else {
            if (in_array($orden['OrdenesReparacion']['estado'], array('Confirmada', 'Cancelada', 'Pronta', 'Retirada')) 
            || (strlen($orden['OrdenesReparacion']['precio_asignado'])>0 && $orden['OrdenesReparacion']['precio_asignado'] >= 0) ) {
                $datosAud['comentarios']= "RECLAMO DE TRABAJO";
            } else {
                $datosAud['comentarios']= "RECLAMO DE PRESUPUESTO";
                $datosAud['id_accion'] = 20;
            }            
        }
        
        App::import('Model', 'OrdenesServicioBitacora');
        $aud = new OrdenesServicioBitacora();
        $aud->create();
        $aud->save($datosAud);
        $params = array();
        parse_str($vars, $params);
        debug($params);
        $this->OrdenesReparacion->read(null, $id);
        
        if (strlen($params['data']['OrdenesReparacion']['numero']) > 0) {
            $this->OrdenesReparacion->set('numero',$params['data']['OrdenesReparacion']['numero']);            
        } else {
            $this->OrdenesReparacion->set('numero', $orden['OrdenesReparacion']['numero']);            
        }
        if ($params['data']['OrdenesReparacion']['cliente_id'] !== NULL)
$this->OrdenesReparacion->set('cliente_id',$params['data']['OrdenesReparacion']['cliente_id']);
//$this->OrdenesReparacion->set('tipo',$params['data']['OrdenesReparacion']['tipo']);
if($params['data']['OrdenesReparacion']['nro_orden_anterior']!==NULL)
$this->OrdenesReparacion->set('nro_orden_anterior',$params['data']['OrdenesReparacion']['nro_orden_anterior']);
if($params['data']['OrdenesReparacion']['idusuarioa']!==NULL)
$this->OrdenesReparacion->set('idusuarioa',$params['data']['OrdenesReparacion']['idusuarioa']);
if($params['data']['OrdenesReparacion']['articulo']!==NULL)
 $this->OrdenesReparacion->set('articulo',$params['data']['OrdenesReparacion']['articulo']);

 if($params['data']['OrdenesReparacion']['presup_cliente'] !== NULL) {
    $this->OrdenesReparacion->set('presup_cliente', $params['data']['OrdenesReparacion']['presup_cliente']);
 } else {
     $this->OrdenesReparacion->set('presup_cliente', $orden['OrdenesReparacion']['presup_cliente']);
 }

 if($params['data']['OrdenesReparacion']['contacto_id'] !== NULL) {
    $this->OrdenesReparacion->set('contacto_id', $params['data']['OrdenesReparacion']['contacto_id']);
 } else {
     $this->OrdenesReparacion->set('contacto_id', $orden['OrdenesReparacion']['contacto_id']);
 }


       if($params['data']['OrdenesReparacion']['modelo']!==NULL) {
           if ($params['data']['OrdenesReparacion']['modelo'] != "F") {
               $this->OrdenesReparacion->set('modelo',$params['data']['OrdenesReparacion']['modelo']);
           } else {
               $this->OrdenesReparacion->set('modelo',$orden['OrdenesReparacion']['modelo']);
           }
           
       } else {
           $this->OrdenesReparacion->set('modelo',$orden['OrdenesReparacion']['modelo']);
       }


 
        
        if($params['data']['OrdenesReparacion']['marca_id']!==NULL)
        $this->OrdenesReparacion->set('marca_id',$params['data']['OrdenesReparacion']['marca_id']);
        if ($params['data']['OrdenesReparacion']['detalle_marca'] !== NULL)
            $this->OrdenesReparacion->set('detalle_marca',$params['data']['OrdenesReparacion']['detalle_marca']);
        if ($params['data']['OrdenesReparacion']['tipo'] !== NULL) {
            $this->OrdenesReparacion->set('tipo',$params['data']['OrdenesReparacion']['tipo']);
        } 
else {
            $this->OrdenesReparacion->set('tipo',$orden['OrdenesReparacion']['tipo']);
        }
        //$this->OrdenesReparacion->set('Precio_Compra',$params['data']['OrdenesReparacion']['Precio_Compra']);
        if($params['data']['OrdenesReparacion']['desperfecto']!==NULL) {
            $this->OrdenesReparacion->set('desperfecto',$params['data']['OrdenesReparacion']['desperfecto']);
        } 
        
        if($params['data']['OrdenesReparacion']['accesorios']!==NULL)
        $this->OrdenesReparacion->set('accesorios',$params['data']['OrdenesReparacion']['accesorios']);
        if($params['data']['OrdenesReparacion']['area_id']!==NULL)
        $this->OrdenesReparacion->set('area_id',$params['data']['OrdenesReparacion']['area_id']);
        //$this->OrdenesReparacion->set('tipo',$params['data']['OrdenesReparacion']['tipo']);
        if($params['data']['OrdenesReparacion']['sub_taller']!==NULL)
        $this->OrdenesReparacion->set('sub_taller',$params['data']['OrdenesReparacion']['sub_taller']);
        if($params['data']['OrdenesReparacion']['recibo_sena_id']!==NULL)
        $this->OrdenesReparacion->set('recibo_sena_id',$params['data']['OrdenesReparacion']['recibo_sena_id']);
        if($params['data']['OrdenesReparacion']['subtaller_id']!==NULL)
        $this->OrdenesReparacion->set('subtaller_id',$params['data']['OrdenesReparacion']['subtaller_id']);
        if($params['data']['OrdenesReparacion']['empleado_id']!==NULL)
        $this->OrdenesReparacion->set('empleado_id',$params['data']['OrdenesReparacion']['empleado_id']);
        if($params['data']['OrdenesReparacion']['interior']!==NULL)
            $this->OrdenesReparacion->set('interior',$params['data']['OrdenesReparacion']['interior']);

        if($params['data']['OrdenesReparacion']['aplicapresup']!==NULL)
            $this->OrdenesReparacion->set('aplicapresup',$params['data']['OrdenesReparacion']['aplicapresup']);  // pm 22.4.2016


        if($params['data']['OrdenesReparacion']['precio_asignado']!==NULL)
        $this->OrdenesReparacion->set('precio_asignado',$params['data']['OrdenesReparacion']['precio_asignado']);
        if($params['data']['OrdenesReparacion']['recibido_por']!==NULL)
        $this->OrdenesReparacion->set('recibido_por',$params['data']['OrdenesReparacion']['recibido_por']);
        if($params['data']['OrdenesReparacion']['vino_por']!==NULL)
        $this->OrdenesReparacion->set('vino_por',$params['data']['OrdenesReparacion']['vino_por']);

        if($params['data']['OrdenesReparacion']['contenido']!==NULL)
        $this->OrdenesReparacion->set('contenido',$params['data']['OrdenesReparacion']['contenido']);

        if($params['data']['OrdenesReparacion']['monto_subtaller']!==NULL)
        $this->OrdenesReparacion->set('monto_subtaller',$params['data']['OrdenesReparacion']['monto_subtaller']);


        if($params['data']['OrdenesReparacion']['nro_remito']!==NULL)
        $this->OrdenesReparacion->set('nro_remito',$params['data']['OrdenesReparacion']['nro_remito']);
        if($params['data']['OrdenesReparacion']['cant_llamados']!==NULL)
        $this->OrdenesReparacion->set('cant_llamados',$params['data']['OrdenesReparacion']['cant_llamados']);
        if($params['data']['OrdenesReparacion']['observaciones']!==NULL)
        $this->OrdenesReparacion->set('observaciones',$params['data']['OrdenesReparacion']['observaciones']);
        if($params['data']['OrdenesReparacion']['destino']!==NULL)
        $this->OrdenesReparacion->set('destino',$params['data']['OrdenesReparacion']['destino']);
        if($params['data']['OrdenesReparacion']['alerta']!==NULL)
        $this->OrdenesReparacion->set('alerta',$params['data']['OrdenesReparacion']['alerta']);
        if($params['data']['OrdenesReparacion']['presupuesto_taller']!==NULL)
        $this->OrdenesReparacion->set('presupuesto_taller',$params['data']['OrdenesReparacion']['presupuesto_taller']);
        if($params['data']['OrdenesReparacion']['fecha']!==NULL)
        $this->OrdenesReparacion->set('fecha',implode('/',explode('-',$params['data']['OrdenesReparacion']['fecha'])) );
        if($params['data']['OrdenesReparacion']['fecha_recibido']!==NULL)
        $this->OrdenesReparacion->set('fecha_recibido',implode('/',explode('-',$params['data']['OrdenesReparacion']['fecha_recibido'])) );
        if($params['data']['OrdenesReparacion']['fecha_prometido']!==NULL)
        $this->OrdenesReparacion->set('fecha_prometido',implode('/',explode('-',$params['data']['OrdenesReparacion']['fecha_prometido'])) );
        if($params['data']['OrdenesReparacion']['fecha_asignado']!==NULL)
        $this->OrdenesReparacion->set('fecha_asignado',implode('/',explode('-',$params['data']['OrdenesReparacion']['fecha_asignado'])) );
        if($params['data']['OrdenesReparacion']['fecha_compra']!==NULL)
        $this->OrdenesReparacion->set('fecha_compra',implode('-',array_reverse( explode('-',$params['data']['OrdenesReparacion']['fecha_compra'])) ) );
        if($params['data']['OrdenesReparacion']['lugar_compra']!==NULL)
        $this->OrdenesReparacion->set('lugar_compra',$params['data']['OrdenesReparacion']['lugar_compra']);
        if($params['data']['OrdenesReparacion']['nro_comprobante']!==NULL)
        $this->OrdenesReparacion->set('nro_comprobante',$params['data']['OrdenesReparacion']['nro_comprobante']);
        if($params['data']['OrdenesReparacion']['Precio_Compra']!==NULL)
        $this->OrdenesReparacion->set('Precio_Compra',$params['data']['OrdenesReparacion']['Precio_Compra']);
        $this->OrdenesReparacion->set('idusuarioa', $id_usuario);
        $this->OrdenesReparacion->save();

        if ($avisoPronta) {
            $this->setMailAvisoPronta($id);
        }

        $this->redirect('/OrdenesReparaciones/edit/' . $id );
        $this->Session->setFlash('Se actualizo correctamente la comunicacion con el cliente.', 'messages/green');
    }

    

    function setEstado($id, $id_usuario, $estado,$vars) {
        $params = array();
parse_str($vars, $params);
//debug($params);
//debug($params['data']['OrdenesReparacion']['interior']);
        $this->OrdenesReparacion->read(null, $id);
        $this->OrdenesReparacion->estado = $estado;
        $this->Session->write('estados',true);
        $datosAud = array();
        $datosAud['fecha'] = date("Y-m-d H:i:s");
        $usuario = CakeSession::read('Usuario');
        $datosAud['id_usuario'] = $id_usuario;
        $datosAud['id_accion'] = $estado;
        $datosAud['id_orden'] = $id;
//debug($params['data']['OrdenesReparacion']['tipo']);
        // $datosAud['comentarios'] = 'SE CAMBI&Oacute; ESTADO A ';
        $datosAud['comentarios'] = '  '; // pm deja asi 7.7

        // para la marcha atr[as]
        $orden = $this->OrdenesReparacion->findById($id);
        $est_actual = $orden['OrdenesReparacion']['estado'];
        $esta_cancelada = $orden['OrdenesReparacion']['cancelada'];
        $texto_extra = " "; // para la marcha atras
        $bandera_garantia=false;
        // para la marcha atras pm 12.4.2015
        if ($params['data']['OrdenesReparacion']['cliente_id'] !== NULL)
$this->OrdenesReparacion->set('cliente_id',$params['data']['OrdenesReparacion']['cliente_id']);
//$this->OrdenesReparacion->set('tipo',$params['data']['OrdenesReparacion']['tipo']);
if($params['data']['OrdenesReparacion']['nro_orden_anterior']!==NULL)
$this->OrdenesReparacion->set('nro_orden_anterior',$params['data']['OrdenesReparacion']['nro_orden_anterior']);
if($params['data']['OrdenesReparacion']['idusuarioa']!==NULL)
$this->OrdenesReparacion->set('idusuarioa',$params['data']['OrdenesReparacion']['idusuarioa']);
if($params['data']['OrdenesReparacion']['articulo']!==NULL)
 $this->OrdenesReparacion->set('articulo',$params['data']['OrdenesReparacion']['articulo']);

 if($params['data']['OrdenesReparacion']['presup_cliente'] !== NULL) {
    $this->OrdenesReparacion->set('presup_cliente', $params['data']['OrdenesReparacion']['presup_cliente']);
 } else {
     $this->OrdenesReparacion->set('presup_cliente', $orden['OrdenesReparacion']['presup_cliente']);
 }

 if($params['data']['OrdenesReparacion']['contacto_id'] !== NULL) {
    $this->OrdenesReparacion->set('contacto_id', $params['data']['OrdenesReparacion']['contacto_id']);
 } else {
     $this->OrdenesReparacion->set('contacto_id', $orden['OrdenesReparacion']['contacto_id']);
 }

       if($params['data']['OrdenesReparacion']['modelo']!==NULL) {
           if ($params['data']['OrdenesReparacion']['modelo'] != "F") {
               $this->OrdenesReparacion->set('modelo',$params['data']['OrdenesReparacion']['modelo']);
           } else {
               $this->OrdenesReparacion->set('modelo',$orden['OrdenesReparacion']['modelo']);
           }
           
       } else {
           $this->OrdenesReparacion->set('modelo',$orden['OrdenesReparacion']['modelo']);
       }


 
        
        if($params['data']['OrdenesReparacion']['marca_id']!==NULL)
        $this->OrdenesReparacion->set('marca_id',$params['data']['OrdenesReparacion']['marca_id']);
        if ($params['data']['OrdenesReparacion']['detalle_marca'] !== NULL)
            $this->OrdenesReparacion->set('detalle_marca',$params['data']['OrdenesReparacion']['detalle_marca']);
        if ($params['data']['OrdenesReparacion']['tipo'] !== NULL) {
            $this->OrdenesReparacion->set('tipo',$params['data']['OrdenesReparacion']['tipo']);
            if ($params['data']['OrdenesReparacion']['tipo'] == "Anulada" )  // pm agrega 24.10.17
                  $this->OrdenesReparacion->set('anulada', 1);
        } 
else {
            $this->OrdenesReparacion->set('tipo',$orden['OrdenesReparacion']['tipo']);
        }

        if ($params['data']['OrdenesReparacion']['contenido'] !== NULL) {
            $this->OrdenesReparacion->set('contenido',$params['data']['OrdenesReparacion']['contenido']);
            }

        if ($params['data']['OrdenesReparacion']['monto_subtaller'] !== NULL) {
            $this->OrdenesReparacion->set('monto_subtaller',$params['data']['OrdenesReparacion']['monto_subtaller']);
            }

        if($params['data']['OrdenesReparacion']['fecha_recibido']!==NULL) 
        $this->OrdenesReparacion->set('fecha_recibido',implode('/',explode('-',$params['data']['OrdenesReparacion']['fecha_recibido'])) );

        if($params['data']['OrdenesReparacion']['fecha_envio_subtaller']!==NULL) {
        $this->OrdenesReparacion->set('fecha_envio_subtaller',implode('/',explode('-',$params['data']['OrdenesReparacion']['fecha_envio_subtaller'])) );
   }

        //$this->OrdenesReparacion->set('Precio_Compra',$params['data']['OrdenesReparacion']['Precio_Compra']);
        if($params['data']['OrdenesReparacion']['desperfecto']!==NULL)
        $this->OrdenesReparacion->set('desperfecto',$params['data']['OrdenesReparacion']['desperfecto']);
        if($params['data']['OrdenesReparacion']['accesorios']!==NULL)
        $this->OrdenesReparacion->set('accesorios',$params['data']['OrdenesReparacion']['accesorios']);
        if($params['data']['OrdenesReparacion']['area_id']!==NULL)
        $this->OrdenesReparacion->set('area_id',$params['data']['OrdenesReparacion']['area_id']);
        //$this->OrdenesReparacion->set('tipo',$params['data']['OrdenesReparacion']['tipo']);
        if($params['data']['OrdenesReparacion']['sub_taller']!==NULL)
        $this->OrdenesReparacion->set('sub_taller',$params['data']['OrdenesReparacion']['sub_taller']);
        if($params['data']['OrdenesReparacion']['recibo_sena_id']!==NULL)
        $this->OrdenesReparacion->set('recibo_sena_id',$params['data']['OrdenesReparacion']['recibo_sena_id']);
        if($params['data']['OrdenesReparacion']['subtaller_id']!==NULL)
        $this->OrdenesReparacion->set('subtaller_id',$params['data']['OrdenesReparacion']['subtaller_id']);
        if($params['data']['OrdenesReparacion']['empleado_id']!==NULL)
        $this->OrdenesReparacion->set('empleado_id',$params['data']['OrdenesReparacion']['empleado_id']);
        if($params['data']['OrdenesReparacion']['interior']!==NULL)
            $this->OrdenesReparacion->set('interior',$params['data']['OrdenesReparacion']['interior']);

        if($params['data']['OrdenesReparacion']['aplicapresup']!==NULL)
            $this->OrdenesReparacion->set('aplicapresup',$params['data']['OrdenesReparacion']['aplicapresup']);  // pm 22.4.2016


        if($params['data']['OrdenesReparacion']['precio_asignado']!==NULL)
        $this->OrdenesReparacion->set('precio_asignado',$params['data']['OrdenesReparacion']['precio_asignado']);
        if($params['data']['OrdenesReparacion']['recibido_por']!==NULL)
        $this->OrdenesReparacion->set('recibido_por',$params['data']['OrdenesReparacion']['recibido_por']);
        if($params['data']['OrdenesReparacion']['vino_por']!==NULL)
        $this->OrdenesReparacion->set('vino_por',$params['data']['OrdenesReparacion']['vino_por']);
        if($params['data']['OrdenesReparacion']['nro_remito']!==NULL)
        $this->OrdenesReparacion->set('nro_remito',$params['data']['OrdenesReparacion']['nro_remito']);
        if($params['data']['OrdenesReparacion']['cant_llamados']!==NULL)
        $this->OrdenesReparacion->set('cant_llamados',$params['data']['OrdenesReparacion']['cant_llamados']);
        if($params['data']['OrdenesReparacion']['observaciones']!==NULL)
        $this->OrdenesReparacion->set('observaciones',$params['data']['OrdenesReparacion']['observaciones']);
        if($params['data']['OrdenesReparacion']['destino']!==NULL)
        $this->OrdenesReparacion->set('destino',$params['data']['OrdenesReparacion']['destino']);
        if($params['data']['OrdenesReparacion']['alerta']!==NULL)
        $this->OrdenesReparacion->set('alerta',$params['data']['OrdenesReparacion']['alerta']);
        if($params['data']['OrdenesReparacion']['presupuesto_taller']!==NULL)
        $this->OrdenesReparacion->set('presupuesto_taller',$params['data']['OrdenesReparacion']['presupuesto_taller']);
        if($params['data']['OrdenesReparacion']['fecha']!==NULL)
        $this->OrdenesReparacion->set('fecha',implode('/',explode('-',$params['data']['OrdenesReparacion']['fecha'])) );
        if($params['data']['OrdenesReparacion']['fecha_prometido']!==NULL)
        $this->OrdenesReparacion->set('fecha_prometido',implode('/',explode('-',$params['data']['OrdenesReparacion']['fecha_prometido'])) );
        if($params['data']['OrdenesReparacion']['fecha_asignado']!==NULL)
        $this->OrdenesReparacion->set('fecha_asignado',implode('/',explode('-',$params['data']['OrdenesReparacion']['fecha_asignado'])) );
        if($params['data']['OrdenesReparacion']['fecha_compra']!==NULL)
        $this->OrdenesReparacion->set('fecha_compra',implode('-',array_reverse( explode('-',$params['data']['OrdenesReparacion']['fecha_compra'])) ) );
        if($params['data']['OrdenesReparacion']['lugar_compra']!==NULL)
        $this->OrdenesReparacion->set('lugar_compra',$params['data']['OrdenesReparacion']['lugar_compra']);
        if($params['data']['OrdenesReparacion']['nro_comprobante']!==NULL)
        $this->OrdenesReparacion->set('nro_comprobante',$params['data']['OrdenesReparacion']['nro_comprobante']);
        if($params['data']['OrdenesReparacion']['Precio_Compra']!==NULL)
        $this->OrdenesReparacion->set('Precio_Compra',$params['data']['OrdenesReparacion']['Precio_Compra']);



        switch ($estado) {
            case 2: // presupuesto
                $this->OrdenesReparacion->set('presupuesto_taller', $this->request->query['presupuesto']);
                $this->OrdenesReparacion->set('estado', "Presupuesto");
                $datosAud['id_accion'] = 2;
                break;

            case 3: // precio  el lic en precio es volver atras el precio a nulo
                $this->OrdenesReparacion->set('precio_asignado', null);
                $this->OrdenesReparacion->set('precio', null);
                if (!is_null($orden['OrdenesReparacion']['presupuesto'])) {
                    $this->OrdenesReparacion->set('estado', "Presupuesto");
                    $datosAud['id_accion'] = 2;
                } else {
                    $this->OrdenesReparacion->set('estado', "Ingresada");
                    $datosAud['id_accion'] = 1;
                }
                $texto_extra = "Se elimino el precio \n ** MARCHA ATRÁS ** ";
                break;

            case 4: //

                if (!($est_actual == 'Confirmada')) { // no es marcha atrás
                    $this->OrdenesReparacion->set('estado', "Confirmada");
                    $this->OrdenesReparacion->set('confirmada', date("Y-m-d")); // pm 7.7
                    $texto_extra = "CONFIRMADA";
                    $this->OrdenesReparacion->set('cancelada', 0); // pm 04.10.2015
                    $this->OrdenesReparacion->set('pronta', null); // pm 21.9.17 
                    $datosAud['id_accion'] = 4;
                     
                } else {  // es marcha atras
                    if (!(is_null($orden['OrdenesReparacion']['precio']))){ // existe un precio
                        $this->OrdenesReparacion->set('estado', "Precio");      
                      //  debug($est_actual);                  
                        $datosAud['id_accion'] = 3;
                    }
                    else {
                        if (!(is_null($orden['OrdenesReparacion']['presupuesto_taller']))){ // existe bitacora
                            $this->OrdenesReparacion->set('estado', "Presupuesto");
                            $datosAud['id_accion'] = 2;
                        }
                        else{
                            $this->OrdenesReparacion->set('estado', "Ingresada");
                            $datosAud['id_accion'] = 1;
                        }
                    }
                }
                break;

            case 5: // se cancela la orden  pm 22.2.2015
                if (!($est_actual == 'Cancelada')) {
                    $this->OrdenesReparacion->set('estado', "Cancelada");
                    $this->OrdenesReparacion->set('cancelada', 1);
                    $this->OrdenesReparacion->set('confirmada', date("Y-m-d")); // pm 21/9/16
                    if ($orden['OrdenesReparacion']['aplicapresup'] == 1 ){
                        $this->OrdenesReparacion->set('alerta',"FACTURAR PRESUPUESTO NO ACEPTADO"); 
                      }

                    $datosAud['id_accion'] = 5;

                }

                if ($est_actual == 'Cancelada') { // es marcha atrás y tengo que averiguar en qué estado la dejo
                    $this->OrdenesReparacion->set('cancelada', 0);

                    if (!(is_null($orden['OrdenesReparacion']['precio']))) { // existe un precio
                        $this->OrdenesReparacion->set('estado', "Precio");
                        //debug($est_actual);
                        $this->OrdenesReparacion->set('confirmada', null);
                        $datosAud['id_accion'] = 3;
                    } else {
                        if (!(is_null($orden['OrdenesReparacion']['presupuesto_taller']))){ // existe bitacora
                            $this->OrdenesReparacion->set('estado', "Presupuesto");
                            $datosAud['id_accion'] = 2;
                        }
                        else{
                            $this->OrdenesReparacion->set('estado', "Ingresada");
                            $datosAud['id_accion'] = 1;
                        }
                    }

                    $texto_extra = "** MARCHA ATRÁS CANCELADA ** ";
                }
                break;

            case 6: // pronta
             //debug($est_actual);
                debug('entra aqui');
                    $this->OrdenesReparacion->set('estado', "Pronta");
                    $this->OrdenesReparacion->set('pronta', date("Y-m-d")); // pm 7.7
                    $texto_extra = "PRONTA";
                    $datosAud['id_accion'] = 6;
                   
                    //break;
                

                if ($est_actual == 'Pronta' && !$esta_cancelada) {  // marcha atras
                    $this->OrdenesReparacion->set('estado', "Confirmada");
                    $this->OrdenesReparacion->set('pronta', null); // pm 7.7
                    $texto_extra = "** MARCHA ATRÁS PRONTA ** ";
                    $datosAud['id_accion'] = 4;
                   
                }

                if ($est_actual == 'Pronta' && $esta_cancelada) {  // marcha atras
                    $this->OrdenesReparacion->set('estado', "Cancelada");
                    $this->OrdenesReparacion->set('pronta', null); // pm 4/11/2016
                    $texto_extra = "** MARCHA ATRÁS PRONTA ** ";
                    $datosAud['id_accion'] = 5;
                }

                break;

            case 7: // retirada  pm modifica para agregar la marcha atras 12.4.2015
 
                if ($est_actual == 'Pronta' || $est_actual == "Confirmada" || $est_actual == "Cancelada") {
                    if ($est_actual != "Pronta") {
                        $this->OrdenesReparacion->set('pronta', date("Y-m-d")); // LA PONGO EN PRONTA
                        $datosAud['id_accion'] = 6;
                        $datosAud['comentarios']= "PRONTA";
                        App::import('Model', 'OrdenesServicioBitacora');
                        $aud = new OrdenesServicioBitacora();
                        $aud->create();
                        $aud->save($datosAud);
                        $datosAud['comentarios']= "";
                    }
                    //debug($est_actual);                    
                    $datosAud['id_accion'] = 7;
                    $this->OrdenesReparacion->set('estado', "Retirada");
                    $this->OrdenesReparacion->set('retirada', date("Y-m-d")); // pm 7.7
                    $texto_extra = "RETIRADA";
                    $imprimotalon = 1;//pendiente 8043
                    if ($orden['OrdenesReparacion']['tipo'] == 'Garantia' || $orden['OrdenesReparacion']['tipo'] == 'GarantiaPropia' 
                     || $orden['OrdenesReparacion']['tipo'] == 'GarantiaTramontina' 
                    || $orden['OrdenesReparacion']['tipo'] == 'Alquiler' 
                    || ( ($params['data']['OrdenesReparacion']['tipo'] !== NULL) 
                    && ($params['data']['OrdenesReparacion']['tipo'] == 'Garantia' 
                    ||  $params['data']['OrdenesReparacion']['tipo'] == 'GarantiaPropia' 
                    ||  $params['data']['OrdenesReparacion']['tipo'] == 'GarantiaTramontina' 
                    || $params['data']['OrdenesReparacion']['tipo'] == 'Alquiler') )){
                        $this->Session->write('talong',1);
                        $bandera_garantia=true;
                    }

                    //$this->OrdenesReparacion->set('fecha_envio ', $this->request->query['fecha_envio']);
                    //$this->OrdenesReparacion->remito = $this->request->query['remito'];
                    //$this->OrdenesReparacion->observaciones = $this->request->query['observaciones'];
                }

                if ($est_actual == 'Retirada') {  // marcha atras
                    $this->OrdenesReparacion->set('estado', "Pronta");
                    $this->OrdenesReparacion->set('retirada', null);
                    $datosAud['id_accion'] = 6;
                    $texto_extra = "** MARCHA ATRÁS RETIRADA ** ";
                       $this->Session->write('talong',0);

                    //$bitaco = $this->OrdenesServicioBitacora->find('first', array('conditions' => array('OrdenesServicioBitacora.id_orden' => $id, 'OrdenesServicioBitacora.id_accion' => '7'),'fields' => array('id_bitacora')));
                    //$idbitaco = $bitaco['OrdenesServicioBitacora']['id_bitacora'];
                    //$this->OrdenesServicioBitacora->delete($idbitaco);  // borro el registro donde se indicaba la puesta en retirada, asi no lo toma en la botonera
                }
                break;

              case 11: // pm agrega 25.5.2015 dejar confirmacion indefinida
                if (($est_actual == 'Cancelada')) {
                     $this->OrdenesReparacion->set('cancelada', 0);
                     $datosAud['id_accion'] = 8;
                     $texto_extra = "** MARCHA ATRÁS CANCELADA ** ";
                }

                    if (isset($orden['OrdenesReparacion']['precio_asignado']) && $orden['OrdenesReparacion']['precio_asignado'] >= 0 ) { // existe un precio
                        $this->OrdenesReparacion->set('estado', "Precio");
                        $datosAud['id_accion'] = 3;
                        $texto_extra = "** MARCHA ATRÁS CONFIRMADA ** ";
                     //   debug($est_actual);
                        $this->OrdenesReparacion->set('confirmada', null);
                    } else {
                        if ((isset($orden['OrdenesReparacion']['presupuesto_taller']))){  // existe bitacora
                            $this->OrdenesReparacion->set('estado', "Presupuesto");
                            $datosAud['id_accion'] = 2;
                            $texto_extra = "** MARCHA ATRÁS CONFIRMADA** ";
                              $this->OrdenesReparacion->set('confirmada', null);
                        }
                        else{                            
                            $this->OrdenesReparacion->set('estado', "Ingresada");
                            $datosAud['id_accion'] = 1;
                            $texto_extra = "** MARCHA ATRÁS CONFIRMADA ** ";
                              $this->OrdenesReparacion->set('confirmada', null);
                        }

                    }

                    

                break;

  case 12: // pm agrega 23.11.2015 pasar orden a FUNDICION
            
                    $this->OrdenesReparacion->set('cancelada', 1);
                    $this->OrdenesReparacion->set('confirmada', date("Y-m-d"));
                    $datosAud['id_accion'] = 5;
                    $datosAud['comentarios']= "NO VA";
                    App::import('Model', 'OrdenesServicioBitacora');
                    $aud = new OrdenesServicioBitacora();
                    $aud->create();
                    $aud->save($datosAud);
                                  
                    $this->OrdenesReparacion->set('pronta', date("Y-m-d")); // LA PONGO EN PRONTA
                    $datosAud['id_accion'] = 6;
                    $datosAud['comentarios']= "PRONTA";
                    App::import('Model', 'OrdenesServicioBitacora');
                    $aud = new OrdenesServicioBitacora();
                    $aud->create();
                    $aud->save($datosAud);

                    $datosAud['id_accion'] = 7;       // LA PONGO EN RETIRADA
                    $this->OrdenesReparacion->set('estado', "Retirada");
                    $this->OrdenesReparacion->set('retirada', date("Y-m-d")); 
                    $datosAud['comentarios']= "   ";
                    $this->OrdenesReparacion->set('destino', "FUNDICION");    // LA PONGO EN FUNDICION
                    $texto_extra = "** DESTINO: FUNDICION ** ";

             break;


        }
        
        // $datosAud['comentarios'].=strtoupper($this->OrdenesReparacion->data["OrdenesReparacion"]["estado"]);        PM COMENTA
         $this->OrdenesReparacion->set('idusuarioa', $id_usuario);
        $this->OrdenesReparacion->save();
     //  debug($this->OrdenesReparacion->data['OrdenesReparacion']['estado']);
        $texto_comentarios = $texto_extra . strtoupper($this->OrdenesReparacion->data["OrdenesReparacion"]["estado"]);
   //     debug($texto_comentarios);
        if (strpos($texto_comentarios, 'MARCHA') !== false) {
          $datosAud['id_accion'] = 8;
        }
        $datosAud['comentarios'].=$texto_comentarios;
        
       // debug($texto_comentarios);
        App::import('Model', 'OrdenesServicioBitacora');
        $aud = new OrdenesServicioBitacora();
        $aud->create();
        $aud->save($datosAud);
        if ($bandera_garantia) {
            $usuario = CakeSession::read('Usuario');
                if ($usuario['Usuario']['id'] != 6) {
                    $bandera_replica = false;
                    if (strlen($params['data']['OrdenesReparacion']['nro_comprobante']) > 0) {
                        $bandera_replica = $this->OrdenesReparacion->getReingresos($orden['OrdenesReparacion']['id'], $params['data']['OrdenesReparacion']['nro_comprobante']);    
                    }
                    
                    if ($bandera_replica == false) {
                        $this->redirect('/OrdenesReparaciones/indexretirogarantia/'.$orden['OrdenesReparacion']['id']);
                        $bandera_garantia = false;    
                    } else {
                        $this->redirect('/OrdenesReparaciones/edit/' . $id. '/0');
                        $this->Session->setFlash('Se actualizo correctamente el estado.'.$params['data']['OrdenesReparacion']['cliente_id'], 'messages/green');    
                    }
                    
                } else {
                    $this->redirect('/OrdenesReparaciones/edit/' . $id . '/0');
                    $this->Session->setFlash('Se actualizo correctamente el estado.'.$params['data']['OrdenesReparacion']['cliente_id'], 'messages/green');                    
                }
        } else {
          $this->redirect('/OrdenesReparaciones/edit/' . $id . '/0');
          $this->Session->setFlash('Se actualizo correctamente el estado.'.$params['data']['OrdenesReparacion']['cliente_id'], 'messages/green');
        }
        
    }

    public function getReclamos($numReclamo) {
        $this->layout = 'ajax';
        $this->set('resultados', $this->OrdenesReparacion->getReclamos($numReclamo));
    }

    function imprimir($id) {
        $retira = "";
        $orden = $this->OrdenesReparacion->findById($id);
        $orden['OrdenesReparacion']['fecha'] = implode('/', array_reverse(explode('-', $orden['OrdenesReparacion']['fecha'])));
        if ($orden['OrdenesReparacion']['tipo'] == 'Garantia' || $orden['OrdenesReparacion']['tipo'] == 'GarantiaPropia'
         || $orden['OrdenesReparacion']['tipo'] == 'GarantiaTramontina')
            $retira = "";

        $this->set('orden', $orden);
        $this->set('retira', $retira); //asi se los paso al view
         $this->Session->setFlash("Orden #".$orden['OrdenesReparacion']['numero']." impresa", "messages/green");
    }


    function imprimir2talones($id) {  // pm agrega 31.3.2016
        $retira = "";
        $orden = $this->OrdenesReparacion->findById($id);

        $clicli = $orden['OrdenesReparacion']['cliente_id'];        
        $cliclid = $this->Cliente->findById($clicli);

        $orden['OrdenesReparacion']['fecha'] = implode('/', array_reverse(explode('-', $orden['OrdenesReparacion']['fecha'])));
        
        $this->set('orden', $orden);
        $this->set('cliclid', $cliclid);
        $this->Session->setFlash("Orden #".$orden['OrdenesReparacion']['numero']." impresa", "messages/green");
    }
    
    function imprimirtalones($ids) {    




        $orden = array();
        $cliclid = array();
        $i = 0;
        if (strlen($ids) > 1) {
            $valores_id = split('-', $ids);            
            foreach ($valores_id as $v) {    
                if (strlen($v) > 0) {
                    $orden[$i] = $this->OrdenesReparacion->findById($v);                    
                    $cliclid[$i] = $this->Cliente->findById($orden[$i]['OrdenesReparacion']['cliente_id']);
                    $orden[$i]['OrdenesReparacion']['fecha'] = implode('/', 
                    array_reverse(explode('-', 
                    $orden[$i]['OrdenesReparacion']['fecha'])));                                        
                    $i++;                       
                }                                               
            }                  
        }   
        $this->set('orden', $orden);
        $this->set('cliclid', $cliclid);             
    }


 function imprimirfichas($ids) {    // PM agrega 09.10.17

        $orden = array();
        $cliclid = array();
        $i = 0;
        if (strlen($ids) > 1) {
            $valores_id = split('-', $ids);            
            foreach ($valores_id as $v) {    
                if (strlen($v) > 0) {
                    $orden[$i] = $this->OrdenesReparacion->findById($v);                    
                    $cliclid[$i] = $this->Cliente->findById($orden[$i]['OrdenesReparacion']['cliente_id']);
                    $orden[$i]['OrdenesReparacion']['fecha'] = implode('/', 
                    array_reverse(explode('-', 
                    $orden[$i]['OrdenesReparacion']['fecha'])));                                        
                    $i++;                       
                }                                               
            }                  
        }   
        $this->set('orden', $orden);
        $this->set('cliclid', $cliclid);             
    }



     function asignarordenes($ids, $empleado) {
         $this->layout = "ajax";        
         $id_ord = array();                
         if (strlen($ids) > 1) {
             $valores_id = split('-', $ids);            
             foreach ($valores_id as $v) {    
                 if (strlen($v) > 0) {
                     $id_ord[] = $v;                                                                                             
                 }                                               
             }                  
         }   

         $actualice = "update ordenes_reparaciones set empleado_id = " 
         . $empleado . " where id in ( " . implode(',', $id_ord) . ") ";
         $this->OrdenesReparacion->query($actualice);              
              $emp=$this->OrdenesReparacion->getEmpleados();
              foreach ($id_ord as $ord) {                
                $aud = new $this->OrdenesServicioBitacora();
                $aud->create();                
                $datosAud = array();
                $usuario = CakeSession::read('Usuario');
                $datosAud['fecha'] = date("Y-m-d H:i:s");
                $datosAud['id_usuario'] = $usuario['Usuario']['id'];
                $datosAud['id_accion'] = 13;
                $datosAud['id_orden'] = $ord;                
                $datosAud['comentarios'] = 'Se Actualizó Técnico '.$emp[$empleado];                
                $aud->save($datosAud);                
              }
                
         $this->Session->setFlash("Técnico asignado correctamente", 'messages/green');                
     }


// function confirmarordenes($ids, $fecha) {
    function confirmarordenes($ids, $dia,$mes,$anho,$obser) {
         $this->layout = "ajax";        
         $id_ord = array();                
         if (strlen($ids) > 1) {
             $valores_id = split('-', $ids);            
             foreach ($valores_id as $v) {    
                 if (strlen($v) > 0) {

$orden = $this->OrdenesReparacion->findById($v);
$est = $orden['OrdenesReparacion']['estado'];  
if ($est !='Confirmada' and $est !='Pronta' and $est != 'Retirada' and $est != 'Rechazada'  ) 
                     {
 
                     $id_ord[] = $v;   

                     }                                                                                          


                 }                                               
             }                  
            }


         if (strlen($id_ord) > 0) { 
         $actualice1 = "update ordenes_reparaciones set estado = 'Confirmada'
          where id in ( " . implode(',', $id_ord) . ") ";
         $this->OrdenesReparacion->query($actualice1);  
          
         $hoy = date("Y-m-d");
         $actualice2 = "update ordenes_reparaciones set confirmada =  '". $hoy ."'
          where id in ( " . implode(',', $id_ord) . ") ";
          $this->OrdenesReparacion->query($actualice2);  
 
          $fecha = $anho."-".$mes."-".$dia;
  
         $actualice3 = "update ordenes_reparaciones set fecha_asignado = '". $fecha ."'
          where id in ( " . implode(',', $id_ord) .") ";
        
         $this->OrdenesReparacion->query($actualice3); 

         $actualice4 = "update ordenes_reparaciones set observaciones = concat (observaciones,  '". $obser ."')
         where id in ( " . implode(',', $id_ord) .") ";
        
          
         $this->OrdenesReparacion->query($actualice4); 
           
                foreach ($id_ord as $ord) {                
                $aud = new $this->OrdenesServicioBitacora();
                $aud->create();                
                $datosAud = array();
                $usuario = CakeSession::read('Usuario');
                $datosAud['fecha'] = date("Y-m-d H:i:s");
                $datosAud['id_usuario'] = $usuario['Usuario']['id'];
                $datosAud['id_accion'] = 4;
                $datosAud['id_orden'] = $ord;                
                $datosAud['comentarios'] = 'CONFIRMACION MASIVA';                
                $aud->save($datosAud);                
              }
                
         $this->Session->setFlash("Órdenes confirmadas correctamente", 'messages/green');                
         }
     }
 

    function taloninterior($id) {  // pm agrega 20.4.2016
        $retira = "";
        $tipoenvio = "";        
        $orden = $this->OrdenesReparacion->findById($id);

        //$tenv = $orden['OrdenesReparacion']['vino_por'];  
           $tentrega = $orden['OrdenesReparacion']['tipo_envio'];  
        if ($tentrega != 23  ) {  // no se entrega en el cliente, sino en agencia
             $tenv = $orden['OrdenesReparacion']['vino_por'];  
                     

            $this->set('tipoenvio', $this->OrdenesReparacion->getenvio($tenv));
        }
        
        $clicli = $orden['OrdenesReparacion']['cliente_id'];        
        $cliclid = $this->Cliente->findById($clicli);
    }
        


    
    function indexretirogarantia($imprimir=0) {   
        $this->set(compact('imprimir'));
    }


function imprimirgarantia($id)
    {

        $orden = $this->OrdenesReparacion->findById($id);
        $orden['OrdenesReparacion']['fecha']  = implode('/', array_reverse(explode('-', $orden['OrdenesReparacion']['fecha'])));
        
        $this->set('orden' ,  $orden);
                  
    }


}

/* $i=0;
  $registros = array();
  while ($i  <  sizeof($this->data['OrdenesReparacionDetalle']) ) {
  $registros[]=array(
  "orden_reapracion_id"=>1,
  "palabra_id"=>1,
  "cantidad"=> $this->data['OrdenesReparacionDetalle'][$i]["cantidad"],
  "monto"=>1,
  "subtotal"=>1,
  "pendiente"=>1,
  "cantidad_solicitada"=>1,
  "sin_efecto"=>1,
  "orden_compra_id"=>1);
  $i++;
  }
  $this->OrdenesReparacionDetalle->saveAll($registros); */
?>