Mesa/Model/Mozo.php
public function mesasAbiertas($mozo_id = null, $lastAccess = null){
            $conditions = array();
            
            // si vino el mozo por parametro, es porque solo quiero las mesas de ese mozo
            if ( !empty($mozo_id) ){
               $conditions['Mozo.id'] =  $mozo_id;
            } else {
                // todos los mozos activos
                $conditions['Mozo.activo'] =  1;
            }
            
            // condiciones para traer mesas abiertas y pendientes de cobro
            if ( Configure::read('Site.type') == SITE_TYPE_HOTEL ) {
                // si es hotel
                $conditionsMesa = array(
                    'Mesa.deleted' => 0,        
                    'Mesa.checkin >' => date('Y-m-d', strtotime('-1 month')),
                );
            } else {
                // es restaurante u otros comercios
                $conditionsMesa = array(
                    "Mesa.estado_id" => array( MESA_ABIERTA, MESA_CERRADA, MESA_COBRADA),
                    'Mesa.deleted' => 0,    
                );
            }
            
            // si vino el parametro lastAccess, traer solo las mesas actualizadas luego del ultimo pedido
            if ( !empty($lastAccess) ) {
                $conditionsMesa['Mesa.modified >='] = $lastAccess;
            }
            
            $contain = $this->Mesa->defaultContain;
            $contain['conditions'] = $conditionsMesa;
            unset($contain[0]);
            $optionsCreated = array(
                'contain' => array('Mesa' => $contain),
                'conditions'=> $conditions,
            );
			$mesasABM = $this->find('all', $optionsCreated);

            $mozosMesa = array();
            foreach ( $mesasABM as $abmMesas ) {
                // traer todos los mozos, con su array de mesas
                $abmMesas['Mozo']['mesas'] = $abmMesas['Mesa'];

                if ( !empty($lastAccess) ) {
                    // enviar solo los que tienen mesas modificadas
                    if (!empty($abmMesas['Mesa']) ) {
                        $mozosMesa['mozos'][] = $abmMesas['Mozo'];    
                    }
                } else {
                    // enviar a todos
                    $mozosMesa['mozos'][] = $abmMesas['Mozo'];    
                }
            }
            

            return $mozosMesa;
        }
public function mesasAbiertas($mozo_id = null, $lastAccess = null){
            $conditions = array();
            
            // si vino el mozo por parametro, es porque solo quiero las mesas de ese mozo
            if ( !empty($mozo_id) ){
               $conditions['Mozo.id'] =  $mozo_id;
            } else {
                // todos los mozos activos
                $conditions['Mozo.activo'] =  1;
            }
            
            // condiciones para traer mesas abiertas y pendientes de cobro
            if ( Configure::read('Site.type') == SITE_TYPE_HOTEL ) {
                // si es hotel
                $conditionsMesa = array(
                    'Mesa.deleted' => 0,        
                    'Mesa.checkin >' => date('Y-m-d', strtotime('-1 month')),
                );
            } else {
                // es restaurante u otros comercios
                $conditionsMesa = array(
                    "Mesa.estado_id" => array( MESA_ABIERTA, MESA_CERRADA, MESA_COBRADA),
                    'Mesa.deleted' => 0,    
                );
            }
            
            // si vino el parametro lastAccess, traer solo las mesas actualizadas luego del ultimo pedido
            if ( !empty($lastAccess) ) {
                $conditionsMesa['Mesa.modified >='] = $lastAccess;
            }
            
            $contain = $this->Mesa->defaultContain;
            $contain['conditions'] = $conditionsMesa;
            unset($contain[0]);
            $optionsCreated = array(
                'contain' => array('Mesa' => $contain),
                'conditions'=> $conditions,
            );
			$mesasABM = $this->find('all', $optionsCreated);

            $mozosMesa = array();
            foreach ( $mesasABM as $abmMesas ) {
                // traer todos los mozos, con su array de mesas
                $abmMesas['Mozo']['mesas'] = $abmMesas['Mesa'];

                if ( !empty($lastAccess) ) {
                    // enviar solo los que tienen mesas modificadas
                    if (!empty($abmMesas['Mesa']) ) {
                        $mozosMesa['mozos'][] = $abmMesas['Mozo'];    
                    }
                } else {
                    // enviar a todos
                    $mozosMesa['mozos'][] = $abmMesas['Mozo'];    
                }
            }
            

            return $mozosMesa;
        }
public function mesasAbiertas ( $ mozo_id = null , $ lastAccess = null ) { $ conditions = array ( ) ; // si vino el mozo por parametro, es porque solo quiero las mesas de ese mozo if ( ! empty ( $ mozo_id ) ) { $ conditions [ 'Mozo.id' ] = $ mozo_id ; } else { // todos los mozos activos $ conditions [ 'Mozo.activo' ] = 1 ; } // condiciones para traer mesas abiertas y pendientes de cobro if ( Configure :: read ( 'Site.type' ) == SITE_TYPE_HOTEL ) { // si es hotel $ conditionsMesa = array ( 'Mesa.deleted' => 0 , 'Mesa.checkin >' => date ( 'Y-m-d' , strtotime ( '-1 month' ) ) , ) ; } else { // es restaurante u otros comercios $ conditionsMesa = array ( "Mesa.estado_id" => array ( MESA_ABIERTA , MESA_CERRADA , MESA_COBRADA ) , 'Mesa.deleted' => 0 , ) ; } // si vino el parametro lastAccess, traer solo las mesas actualizadas luego del ultimo pedido if ( ! empty ( $ lastAccess ) ) { $ conditionsMesa [ 'Mesa.modified >=' ] = $ lastAccess ; } $ contain = $ this -> Mesa -> defaultContain ; $ contain [ 'conditions' ] = $ conditionsMesa ; unset ( $ contain [ 0 ] ) ; $ optionsCreated = array ( 'contain' => array ( 'Mesa' => $ contain ) , 'conditions' => $ conditions , ) ; $ mesasABM = $ this -> find ( 'all' , $ optionsCreated ) ; $ mozosMesa = array ( ) ; foreach ( $ mesasABM as $ abmMesas ) { // traer todos los mozos, con su array de mesas $ abmMesas [ 'Mozo' ] [ 'mesas' ] = $ abmMesas [ 'Mesa' ] ; if ( ! empty ( $ lastAccess ) ) { // enviar solo los que tienen mesas modificadas if ( ! empty ( $ abmMesas [ 'Mesa' ] ) ) { $ mozosMesa [ 'mozos' ] [ ] = $ abmMesas [ 'Mozo' ] ; } } else { // enviar a todos $ mozosMesa [ 'mozos' ] [ ] = $ abmMesas [ 'Mozo' ] ; } } return $ mozosMesa ; }
Para todos los mozos activos, me trae sus mesas abiertas
@param int $mozo_id id del mozo, en caso de que no le pase ninguno, me busca todos
@return array Mozos con sus mesas, Comandas, detalleComanda, productos y sabores
Para todos los mozos activos me trae sus mesas abiertas