예제 #1
0
파일: Util.php 프로젝트: atoledov/siglab
 public static function getRegisterCampaign(IConnection $connect, $user, $shortname)
 {
     $registerID = 0;
     try {
         //Registros mal cerrados
         $sql = "SELECT id \r\n\t\t\t\t\tFROM {$shortname} \r\n\t\t\t\t\tWHERE status='E' AND aux=? AND nomenclatura IS NULL\r\n\t\t\t\t\tORDER BY RAND() \r\n\t\t\t\t\tLIMIT 1";
         $connect->prepareSql($sql, $user);
         $rs = $connect->executeQuery();
         if ($connect->numRows($rs) > 0) {
             $registerID = $connect->getRow($rs, 0, 0);
             return $registerID;
         }
         //Registros agendados a un usuario en particular
         $sql = "UPDATE {$shortname} SET status='E', aux=?, id=LAST_INSERT_ID(id) \r\n\t\t\t\t\tWHERE fecha_programado IS NOT NULL AND fecha_programado <= NOW() AND status='A' AND nomenclatura>=3 \r\n\t\t\t\t\t\tAND aux = ? \r\n\t\t\t\t\tORDER BY RAND()\r\n\t\t\t\t\tLIMIT 1";
         $connect->prepareSql($sql, $user, $user);
         $connect->executeQuery();
         if ($connect->getRowAffected() > 0) {
             $registerID = $connect->getInsertID();
             return $registerID;
         }
         //Registros agendados a cualquier usuario
         $sql = "UPDATE {$shortname} SET status='E', aux=?, id=LAST_INSERT_ID(id) \r\n\t\t\t\t\tWHERE fecha_programado IS NOT NULL AND fecha_programado <= NOW() AND status='A' AND nomenclatura>=3\r\n\t\t\t\t\t\tAND (aux IS NULL OR aux = '')\r\n\t\t\t\t\tORDER BY RAND()\r\n\t\t\t\t\tLIMIT 1";
         $connect->prepareSql($sql, $user);
         $connect->executeQuery();
         if ($connect->getRowAffected() > 0) {
             $registerID = $connect->getInsertID();
             return $registerID;
         }
         $sql = "UPDATE {$shortname} SET status='E', aux=?, id=LAST_INSERT_ID(id)\r\n\t\t\t\t\tWHERE (status='' OR status IS NULL) AND nomenclatura IS NULL\r\n\t\t\t\t\tORDER BY RAND()\r\n\t\t\t\t\tLIMIT 1";
         $connect->prepareSql($sql, $user);
         $rs = $connect->executeQuery();
         if ($connect->getRowAffected() > 0) {
             $registerID = $connect->getInsertID();
             return $registerID;
         }
         return $registerID;
     } catch (MyException $ex) {
         throw $ex;
     }
 }