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; } }