|
|
<?php
|
|
|
class MailBoxesModel extends ModelBase {
|
|
|
|
|
|
public function getMailBoxes($iduser) {
|
|
|
//preparamos la cadena de consulta
|
|
|
$query = $this->db->prepare(' SELECT m.*, t.* FROM sis_mailbox AS m LEFT JOIN sis_typemailbox AS t ON m.idtypemb = t.idtypemb WHERE m.iduser = '.$iduser.' AND m.state = 1 ORDER BY m.ordering, m.alias ');
|
|
|
$query->execute();
|
|
|
//devolvemos la coleccion para que la vista la presente.
|
|
|
return $query;
|
|
|
}
|
|
|
|
|
|
public function getMailBoxesUser($iduser,$datos = array("inicio" => 0, "tamanio" => 5),$paginador= false) {
|
|
|
//preparamos la cadena de consulta
|
|
|
$str_query = 'SELECT m.*, t.*, count(mens.idmessage) as num_messages FROM sis_mailbox AS m LEFT JOIN sis_typemailbox AS t ON m.idtypemb = t.idtypemb LEFT JOIN sis_message as mens ON m.idmailbox = mens.idmailbox WHERE m.iduser = '.$iduser.' AND m.state = 1 AND t.idtypemb = 4 GROUP BY m.idmailbox ORDER BY m.ordering, m.alias';
|
|
|
$query = $this->db->prepare($str_query);
|
|
|
|
|
|
|
|
|
if($paginador) {
|
|
|
//realizamos la consulta de todos los items
|
|
|
$consulta = $this->db->prepare($str_query);
|
|
|
$consulta->execute();
|
|
|
$num_filas = $consulta->rowCount();
|
|
|
if($num_filas == $datos['inicio']) {
|
|
|
$datos['inicio'] = $num_filas - $datos['tamanio'];
|
|
|
($datos['inicio'] < 0)?$datos['inicio'] = 0: $datos['inicio'] = $datos['inicio'];
|
|
|
|
|
|
}
|
|
|
$inicio = $datos['inicio'];
|
|
|
//getPager($datos = array("total" => 0, "inicio" => 0, "pagina" => 5)//uso de la variable arreglo.
|
|
|
$parametros = array("total" => $num_filas, "inicio" => $datos['inicio'], "pagina" => $datos['tamanio']);
|
|
|
list($paginas,$navegador) = $this->getPager($parametros);
|
|
|
//realizamos una consulta paginada
|
|
|
$consulta = $this->db->prepare($str_query.' LIMIT '.$datos['inicio'].' , '.$datos['tamanio'].' ');
|
|
|
$consulta->execute();
|
|
|
//devolvemos la coleccion para que la vista la presente.
|
|
|
return array($consulta,$paginas,$navegador,$inicio);
|
|
|
//return array($datos,$paginas,$navegador);
|
|
|
}else {
|
|
|
$consulta = $this->db->prepare($str_query.' ');
|
|
|
$consulta->execute();
|
|
|
//devolvemos la coleccion para que la vista la presente.
|
|
|
return $consulta;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public function getMailBoxesSystem($iduser) {
|
|
|
//preparamos la cadena de consulta
|
|
|
$query = $this->db->prepare(' SELECT m.*, t.* FROM sis_mailbox AS m LEFT JOIN sis_typemailbox AS t ON m.idtypemb = t.idtypemb WHERE m.iduser = '.$iduser.' AND t.idtypemb <= 3 AND m.state = 1 ORDER BY m.ordering, m.alias ');
|
|
|
$query->execute();
|
|
|
//devolvemos la coleccion para que la vista la presente.
|
|
|
return $query;
|
|
|
}
|
|
|
|
|
|
public function getIDMailBoxesSystem($iduser) {
|
|
|
$str_query = ' SELECT idmailbox, idtypemb FROM sis_mailbox'
|
|
|
.' WHERE iduser = '.$iduser
|
|
|
.' AND state = 1 ORDER BY ordering';
|
|
|
$query = $this->db->prepare($str_query);
|
|
|
$query->execute();
|
|
|
return $query;
|
|
|
}
|
|
|
|
|
|
public function getMailBoxesListMove($iduser,$idmailbox) {
|
|
|
//preparamos la cadena de consulta
|
|
|
$query = $this->db->prepare(' SELECT m.*, t.* FROM sis_mailbox AS m LEFT JOIN sis_typemailbox AS t ON m.idtypemb = t.idtypemb WHERE m.iduser = '.$iduser.' AND t.idtypemb >= 3 AND m.state = 1 AND m.idmailbox != '.$idmailbox.' ORDER BY m.ordering, m.alias ');
|
|
|
$query->execute();
|
|
|
//devolvemos la coleccion para que la vista la presente.
|
|
|
return $query;
|
|
|
}
|
|
|
|
|
|
|
|
|
public function getMailBox($idmailbox) {
|
|
|
//preparamos lala cadena de consulta
|
|
|
$query = $this->db->prepare(' SELECT m.*, t.* FROM sis_mailbox AS m LEFT JOIN sis_typemailbox AS t ON m.idtypemb = t.idtypemb WHERE m.idmailbox = '.$idmailbox.' AND m.state = 1 LIMIT 0,1 ');
|
|
|
$query->execute();
|
|
|
//devolvemos la coleccion para que la vista la presente.
|
|
|
return $query;
|
|
|
}
|
|
|
|
|
|
|
|
|
public function getMailBoxForName($alias) {
|
|
|
//preparamos lala cadena de consulta
|
|
|
$query = $this->db->prepare(' SELECT m.*, t.* FROM sis_mailbox AS m LEFT JOIN sis_typemailbox AS t ON m.idtypemb = t.idtypemb WHERE m.alias = "'.$alias.'" AND m.state = 1 LIMIT 0,1 ');
|
|
|
$query->execute();
|
|
|
//devolvemos la coleccion para que la vista la presente.
|
|
|
return $query;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public function getMailBoxForNameInUser($alias,$iduser) {
|
|
|
//preparamos lala cadena de consulta
|
|
|
$query = $this->db->prepare(' SELECT m.*, t.* FROM sis_mailbox AS m LEFT JOIN sis_typemailbox AS t ON m.idtypemb = t.idtypemb WHERE m.alias = "'.$alias.'" AND m.iduser = '.$iduser.' AND m.state = 1 LIMIT 0,1 ');
|
|
|
$query->execute();
|
|
|
//devolvemos la coleccion para que la vista la presente.
|
|
|
return $query;
|
|
|
}
|
|
|
|
|
|
|
|
|
public function getMailBoxDuplicateForName($alias,$idmailbox) {
|
|
|
//preparamos lala cadena de consulta
|
|
|
$query = $this->db->prepare(' SELECT m.*, t.* FROM sis_mailbox AS m LEFT JOIN sis_typemailbox AS t ON m.idtypemb = t.idtypemb WHERE m.alias = "'.$alias.'" AND m.idmailbox != '.$idmailbox.' AND m.state = 1 LIMIT 0,1 ');
|
|
|
$query->execute();
|
|
|
//devolvemos la coleccion para que la vista la presente.
|
|
|
return $query;
|
|
|
}
|
|
|
|
|
|
public function getMailBoxDuplicateForNameInUser($alias,$idmailbox,$iduser) {
|
|
|
//preparamos lala cadena de consulta
|
|
|
$query = $this->db->prepare(' SELECT m.*, t.* FROM sis_mailbox AS m LEFT JOIN sis_typemailbox AS t ON m.idtypemb = t.idtypemb WHERE m.alias = "'.$alias.'" AND m.iduser = '.$iduser.' AND m.idmailbox != '.$idmailbox.' AND m.state = 1 LIMIT 0,1 ');
|
|
|
$query->execute();
|
|
|
//devolvemos la coleccion para que la vista la presente.
|
|
|
return $query;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public function getMailBoxType($iduser, $idtypemb) {
|
|
|
//preparamos la cadena de consulta
|
|
|
$query = $this->db->prepare(' SELECT m.*, t.* FROM sis_mailbox AS m LEFT JOIN sis_typemailbox AS t ON m.idtypemb = t.idtypemb WHERE m.iduser = '.$iduser.' AND m.state = 1 AND m.idtypemb = '.$idtypemb.' LIMIT 0,1 ');
|
|
|
$query->execute();
|
|
|
//devolvemos la coleccion para que la vista la presente.
|
|
|
return $query;
|
|
|
}
|
|
|
|
|
|
|
|
|
public function getMessages($idmailbox,$datos = array("inicio" => 0, "tamanio" => 5),$paginador= false) {
|
|
|
//$str_query = ' SELECT m.*, msg.* FROM sis_mailbox AS m LEFT JOIN sis_message AS msg ON m.idmailbox = msg.idmailbox WHERE m.idmailbox = '.$idmailbox.' ORDER BY msg.date_message DESC ';
|
|
|
|
|
|
$str_query = ' SELECT m.*, msg.*, CONCAT(f.firstname," ",f.lastname) as "from", CONCAT(t.firstname," ",t.lastname) as "to" FROM sis_mailbox AS m JOIN sis_message AS msg ON m.idmailbox = msg.idmailbox LEFT JOIN sis_user as f ON msg.user_from = f.iduser LEFT JOIN sis_user as t ON msg.userto = t.iduser WHERE m.idmailbox = '.$idmailbox.' AND (msg.state = 1 OR msg.state = 2) ORDER BY msg.date_message DESC ';
|
|
|
if($paginador) {
|
|
|
//realizamos la consulta de todos los items
|
|
|
$consulta = $this->db->prepare($str_query);
|
|
|
$consulta->execute();
|
|
|
$num_filas = $consulta->rowCount();
|
|
|
if($num_filas == $datos['inicio']) {
|
|
|
$datos['inicio'] = $num_filas - $datos['tamanio'];
|
|
|
($datos['inicio'] < 0)?$datos['inicio'] = 0: $datos['inicio'] = $datos['inicio'];
|
|
|
|
|
|
}
|
|
|
$inicio = $datos['inicio'];
|
|
|
//getPager($datos = array("total" => 0, "inicio" => 0, "pagina" => 5)//uso de la variable arreglo.
|
|
|
$parametros = array("total" => $num_filas, "inicio" => $datos['inicio'], "pagina" => $datos['tamanio']);
|
|
|
list($paginas,$navegador) = $this->getPager($parametros);
|
|
|
//realizamos una consulta paginada
|
|
|
$consulta = $this->db->prepare($str_query.' LIMIT '.$datos['inicio'].' , '.$datos['tamanio'].' ');
|
|
|
$consulta->execute();
|
|
|
//devolvemos la coleccion para que la vista la presente.
|
|
|
return array($consulta,$paginas,$navegador,$inicio);
|
|
|
//return array($datos,$paginas,$navegador);
|
|
|
}else {
|
|
|
$consulta = $this->db->prepare($str_query.' LIMIT '.$datos['inicio'].' , '.$datos['tamanio'].' ');
|
|
|
$consulta->execute();
|
|
|
//devolvemos la coleccion para que la vista la presente.
|
|
|
return $consulta;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getMessagesNoRead($idmailbox,$datos = array("inicio" => 0, "tamanio" => 5),$paginador= false) {
|
|
|
//$str_query = ' SELECT m.*, msg.* FROM sis_mailbox AS m LEFT JOIN sis_message AS msg ON m.idmailbox = msg.idmailbox WHERE m.idmailbox = '.$idmailbox.' ORDER BY msg.date_message DESC ';
|
|
|
|
|
|
$str_query = ' SELECT m.*, msg.*, CONCAT(f.firstname," ",f.lastname) as "from", CONCAT(t.firstname," ",t.lastname) as "to" FROM sis_mailbox AS m JOIN sis_message AS msg ON m.idmailbox = msg.idmailbox LEFT JOIN sis_user as f ON msg.user_from = f.iduser LEFT JOIN sis_user as t ON msg.userto = t.iduser WHERE m.idmailbox = '.$idmailbox.' AND msg.state = 1 ORDER BY msg.date_message DESC ';
|
|
|
if($paginador) {
|
|
|
//realizamos la consulta de todos los items
|
|
|
$consulta = $this->db->prepare($str_query);
|
|
|
$consulta->execute();
|
|
|
$num_filas = $consulta->rowCount();
|
|
|
if($num_filas == $datos['inicio']) {
|
|
|
$datos['inicio'] = $num_filas - $datos['tamanio'];
|
|
|
($datos['inicio'] < 0)?$datos['inicio'] = 0: $datos['inicio'] = $datos['inicio'];
|
|
|
|
|
|
}
|
|
|
$inicio = $datos['inicio'];
|
|
|
//getPager($datos = array("total" => 0, "inicio" => 0, "pagina" => 5)//uso de la variable arreglo.
|
|
|
$parametros = array("total" => $num_filas, "inicio" => $datos['inicio'], "pagina" => $datos['tamanio']);
|
|
|
list($paginas,$navegador) = $this->getPager($parametros);
|
|
|
//realizamos una consulta paginada
|
|
|
$consulta = $this->db->prepare($str_query.' LIMIT '.$datos['inicio'].' , '.$datos['tamanio'].' ');
|
|
|
$consulta->execute();
|
|
|
//devolvemos la coleccion para que la vista la presente.
|
|
|
return array($consulta,$paginas,$navegador,$inicio);
|
|
|
//return array($datos,$paginas,$navegador);
|
|
|
}else {
|
|
|
$consulta = $this->db->prepare($str_query.' LIMIT '.$datos['inicio'].' , '.$datos['tamanio'].' ');
|
|
|
$consulta->execute();
|
|
|
//devolvemos la coleccion para que la vista la presente.
|
|
|
return $consulta;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public function getMessage($idmessage) {
|
|
|
|
|
|
$str_query = ' SELECT m.*, msg.*, CONCAT(f.firstname," ",f.lastname) as "from", CONCAT(t.firstname," ",t.lastname) as "to" FROM sis_mailbox AS m JOIN sis_message AS msg ON m.idmailbox = msg.idmailbox LEFT JOIN sis_user as f ON msg.user_from = f.iduser LEFT JOIN sis_user as t ON msg.userto = t.iduser WHERE msg.idmessage = '.$idmessage.' ORDER BY msg.date_message DESC ';
|
|
|
//SELECT * FROM sis_message LIMIT 0 , 30
|
|
|
//SELECT i . * , m . * FROM sis_inbox AS i LEFT JOIN sis_message AS m ON i.idinbox = m.idinbox WHERE i.iduser =1 LIMIT 0 , 30
|
|
|
$query = $this->db->prepare( $str_query );
|
|
|
$query->execute();
|
|
|
//devolvemos la coleccion para que la vista la presente.
|
|
|
return $query;
|
|
|
}
|
|
|
|
|
|
public function insertMenssage($datos) {
|
|
|
//realizamos la consulta de usuario por id
|
|
|
$str_query ="INSERT INTO sis_message (idmessage, idmailbox, user_from, userto, common, subject, description, date_message, state) VALUES ('', '".$datos['idmailbox']."', '".$datos['user_from']."', '".$datos['userto']."', '".$datos['common']."', '".$datos['subject']."', '".$datos['description']."', '".$datos['date_message']."', '".$datos['state']."') ";
|
|
|
$query = $this->db->prepare($str_query);
|
|
|
$query->execute();
|
|
|
//$id = $this->lastInsertId();
|
|
|
//echo($id);
|
|
|
//devolvemos la coleccion para que la vista la presente.
|
|
|
return $query;
|
|
|
}
|
|
|
|
|
|
|
|
|
public function insertMailBox($datos) {
|
|
|
//realizamos la consulta de usuario por id
|
|
|
$str_query =" INSERT INTO sis_mailbox (idmailbox, iduser, idtypemb, ordering, alias, mb_create, mb_update, state) VALUES ('', '".$datos['iduser']."', '".$datos['idtypemb']."', '".$datos['ordering']."', '".$datos['alias']."', '".$datos['mb_create']."', '".$datos['mb_update']."', '".$datos['state']."') ";
|
|
|
$query = $this->db->prepare($str_query);
|
|
|
$query->execute();
|
|
|
//$id = $this->lastInsertId();
|
|
|
//echo($id);
|
|
|
//devolvemos la coleccion para que la vista la presente.
|
|
|
return $query;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public function updateMailBox($datos) {
|
|
|
//realizamos la consulta de usuario por id
|
|
|
$str_query = " UPDATE sis_mailbox SET iduser = '".$datos['iduser']."', idtypemb = '".$datos['idtypemb']."', ordering = '".$datos['ordering']."', alias = '".$datos['alias']."' , mb_update = '".$datos['mb_update']."' , state = '".$datos['state']."' WHERE idmailbox = '".$datos['idmailbox']."' ";
|
|
|
$query = $this->db->prepare($str_query);
|
|
|
$query->execute();
|
|
|
//devolvemos la coleccion para que la vista la presente.
|
|
|
return $query;
|
|
|
|
|
|
}
|
|
|
|
|
|
public function removeMailbox($idmailbox) {
|
|
|
//Se establece el valor de 'status' en '3'. Esto es eliminado
|
|
|
$str_update = 'UPDATE sis_mailbox SET state = "2" WHERE idmailbox = '.$idmailbox.' ';
|
|
|
$update = $this->db->prepare($str_update);
|
|
|
$update->execute();
|
|
|
//devolvemos el resultado de la actualización. (true or false)
|
|
|
return $update;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
public function moveMessage($idmessage,$idmailbox) {
|
|
|
//realizamos la consulta de usuario por id
|
|
|
$str_query = 'UPDATE sis_message SET idmailbox = "'.$idmailbox.'" WHERE idmessage = '.$idmessage.' ';
|
|
|
$query = $this->db->prepare($str_query);
|
|
|
$query->execute();
|
|
|
//devolvemos la coleccion para que la vista la presente.
|
|
|
return $query;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
public function removeMessage($idmessage) {
|
|
|
//Se establece el valor de 'status' en '3'. Esto es eliminado
|
|
|
$str_query = 'UPDATE sis_message SET state = "3" WHERE idmessage = '.$idmessage.' ';
|
|
|
$query = $this->db->prepare($str_query);
|
|
|
$query->execute();
|
|
|
//devolvemos el resultado de la actualización. (true or false)
|
|
|
return $query;
|
|
|
|
|
|
}
|
|
|
|
|
|
public function setReadMessage($idmessage) {
|
|
|
//Se establece el valor de 'status' en '2'. Esto es leído
|
|
|
$str_query = 'UPDATE sis_message SET state = "2" WHERE idmessage = '.$idmessage.' ';
|
|
|
$query = $this->db->prepare($str_query);
|
|
|
$query->execute();
|
|
|
//devolvemos el resultado de la actualización. (true or false)
|
|
|
return $query;
|
|
|
|
|
|
}
|
|
|
|
|
|
public function setNoreadMessage($idmessage) {
|
|
|
//Se establece el valor de 'status' en '1'. Esto es no leído
|
|
|
$str_query = 'UPDATE sis_message SET state = "1" WHERE idmessage = '.$idmessage.' ';
|
|
|
$query = $this->db->prepare($str_query);
|
|
|
$query->execute();
|
|
|
//devolvemos el resultado de la actualización. (true or false)
|
|
|
return $query;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
?>
|