/** * Devuelve las promociones vigentes para el cliente * y la fecha indicada. * * El formato de fecha pasado debe ser YYYY-mm-dd * * @param date $fecha La fecha * @return array Array con objetos promociones */ public function getPromosVigentes($fecha = '') { if ($fecha == '') { $fecha = date('Y-m-d'); } $promos = array(); $promociones = new Promociones(); $promoClientes = new PromocionesClientes(); $familias = new Familias(); $em = new EntityManager($promociones->getConectionName()); if ($em->getDbLink()) { $query = "SELECT DISTINCT t1.IDPromocion\n FROM {$promociones->getDataBaseName()}.{$promociones->getTableName()} as t1,\n {$promoClientes->getDataBaseName()}.{$promoClientes->getTableName()} as t2,\n {$familias->getDataBaseName()}.{$familias->getTableName()} as t3\n WHERE t1.FinPromocion>='{$fecha}'\n AND t1.IDPromocion=t2.IDPromocion\n AND ( (t2.IDCliente='{$this->IDCliente}') OR (t2.IDGrupo='{$this->getIDGrupo()->getIDGrupo()}') )\n AND ( t1.IDFamilia = t3.IDFamilia OR (1))\n ORDER BY t1.FinPromocion ASC, t1.IDArticulo DESC,t3.Familia"; $em->query($query); $rows = $em->fetchResult(); $em->desConecta(); foreach ($rows as $row) { $promos[] = new Promociones($row['IDPromocion']); } } unset($em); unset($promociones); unset($promoClientes); unset($familias); return $promos; }