Esempio n. 1
0
 /**
  * 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;
 }