mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-17 15:03:25 +00:00
Fix CS
This commit is contained in:
@@ -17,175 +17,167 @@
|
||||
*/
|
||||
abstract class set_abstract implements IteratorAggregate
|
||||
{
|
||||
/**
|
||||
*
|
||||
* @var Array
|
||||
*/
|
||||
protected $elements = array();
|
||||
|
||||
/**
|
||||
*
|
||||
* @var Array
|
||||
*/
|
||||
protected $elements = array();
|
||||
|
||||
/**
|
||||
*
|
||||
* @return ArrayIterator
|
||||
*/
|
||||
public function getIterator()
|
||||
{
|
||||
$this->load_elements();
|
||||
|
||||
return new ArrayIterator($this->elements);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return set
|
||||
*/
|
||||
protected function load_elements()
|
||||
{
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string $offset
|
||||
* @param string $value
|
||||
* @return Void
|
||||
*/
|
||||
public function offsetSet($offset, $value)
|
||||
{
|
||||
if (is_null($offset))
|
||||
/**
|
||||
*
|
||||
* @return ArrayIterator
|
||||
*/
|
||||
public function getIterator()
|
||||
{
|
||||
$this->elements[] = $value;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->elements[$offset] = $value;
|
||||
}
|
||||
}
|
||||
$this->load_elements();
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string $offset
|
||||
* @return boolean
|
||||
*/
|
||||
public function offsetExists($offset)
|
||||
{
|
||||
return isset($this->elements[$offset]);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string $offset
|
||||
* @return Void
|
||||
*/
|
||||
public function offsetUnset($offset)
|
||||
{
|
||||
unset($this->elements[$offset]);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string $offset
|
||||
* @return record_adapter
|
||||
*/
|
||||
public function offsetGet($offset)
|
||||
{
|
||||
return isset($this->elements[$offset]) ? $this->elements[$offset] : null;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function is_empty()
|
||||
{
|
||||
return count($this->elements) == 0;
|
||||
}
|
||||
|
||||
public function __isset($key)
|
||||
{
|
||||
trigger_error("Unable to use magic method get for key $key");
|
||||
if (isset($this->$key))
|
||||
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the number of element in the set
|
||||
*
|
||||
* @return Int
|
||||
*/
|
||||
public function get_count()
|
||||
{
|
||||
return count($this->elements);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function get_count_groupings()
|
||||
{
|
||||
$n = 0;
|
||||
foreach ($this->elements as $record)
|
||||
{
|
||||
if ($record->is_grouping())
|
||||
$n++;
|
||||
return new ArrayIterator($this->elements);
|
||||
}
|
||||
|
||||
return $n;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return Array
|
||||
*/
|
||||
public function get_elements()
|
||||
{
|
||||
$this->load_elements();
|
||||
|
||||
return $this->elements;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param record_Interface $record
|
||||
* @return set
|
||||
*/
|
||||
public function add_element(record_Interface &$record)
|
||||
{
|
||||
$this->elements[$record->get_serialize_key()] = $record;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param record_Interface $record
|
||||
* @return set
|
||||
*/
|
||||
public function remove_element(record_Interface &$record)
|
||||
{
|
||||
$key = $record->get_serialize_key();
|
||||
if (isset($this->elements[$key]))
|
||||
unset($this->elements[$key]);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function serialize_list()
|
||||
{
|
||||
$basrec = array();
|
||||
foreach ($this->elements as $record)
|
||||
/**
|
||||
*
|
||||
* @return set
|
||||
*/
|
||||
protected function load_elements()
|
||||
{
|
||||
$basrec[] = $record->get_serialize_key();
|
||||
return $this;
|
||||
}
|
||||
|
||||
return implode(';', $basrec);
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param string $offset
|
||||
* @param string $value
|
||||
* @return Void
|
||||
*/
|
||||
public function offsetSet($offset, $value)
|
||||
{
|
||||
if (is_null($offset)) {
|
||||
$this->elements[] = $value;
|
||||
} else {
|
||||
$this->elements[$offset] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string $offset
|
||||
* @return boolean
|
||||
*/
|
||||
public function offsetExists($offset)
|
||||
{
|
||||
return isset($this->elements[$offset]);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string $offset
|
||||
* @return Void
|
||||
*/
|
||||
public function offsetUnset($offset)
|
||||
{
|
||||
unset($this->elements[$offset]);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string $offset
|
||||
* @return record_adapter
|
||||
*/
|
||||
public function offsetGet($offset)
|
||||
{
|
||||
return isset($this->elements[$offset]) ? $this->elements[$offset] : null;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function is_empty()
|
||||
{
|
||||
return count($this->elements) == 0;
|
||||
}
|
||||
|
||||
public function __isset($key)
|
||||
{
|
||||
trigger_error("Unable to use magic method get for key $key");
|
||||
if (isset($this->$key))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the number of element in the set
|
||||
*
|
||||
* @return Int
|
||||
*/
|
||||
public function get_count()
|
||||
{
|
||||
return count($this->elements);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function get_count_groupings()
|
||||
{
|
||||
$n = 0;
|
||||
foreach ($this->elements as $record) {
|
||||
if ($record->is_grouping())
|
||||
$n ++;
|
||||
}
|
||||
|
||||
return $n;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return Array
|
||||
*/
|
||||
public function get_elements()
|
||||
{
|
||||
$this->load_elements();
|
||||
|
||||
return $this->elements;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param record_Interface $record
|
||||
* @return set
|
||||
*/
|
||||
public function add_element(record_Interface &$record)
|
||||
{
|
||||
$this->elements[$record->get_serialize_key()] = $record;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param record_Interface $record
|
||||
* @return set
|
||||
*/
|
||||
public function remove_element(record_Interface &$record)
|
||||
{
|
||||
$key = $record->get_serialize_key();
|
||||
if (isset($this->elements[$key]))
|
||||
unset($this->elements[$key]);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function serialize_list()
|
||||
{
|
||||
$basrec = array();
|
||||
foreach ($this->elements as $record) {
|
||||
$basrec[] = $record->get_serialize_key();
|
||||
}
|
||||
|
||||
return implode(';', $basrec);
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -18,143 +18,139 @@
|
||||
class set_exportftp extends set_export
|
||||
{
|
||||
|
||||
/**
|
||||
*
|
||||
* @param Int $usr_to
|
||||
* @param String $host
|
||||
* @param String $login
|
||||
* @param String $password
|
||||
* @param Int $ssl
|
||||
* @param Int $retry
|
||||
* @param Int $passif
|
||||
* @param String $destfolder
|
||||
* @param String $makedirectory
|
||||
* @return boolean
|
||||
*/
|
||||
public function export_ftp($usr_to, $host, $login, $password, $ssl, $retry, $passif, $destfolder, $makedirectory, $logfile)
|
||||
{
|
||||
$appbox = appbox::get_instance(\bootstrap::getCore());
|
||||
$session = $appbox->get_session();
|
||||
$user_f = User_Adapter::getInstance($session->get_usr_id(), $appbox);
|
||||
$conn = $appbox->get_connection();
|
||||
|
||||
$email_dest = '';
|
||||
if ($usr_to)
|
||||
/**
|
||||
*
|
||||
* @param Int $usr_to
|
||||
* @param String $host
|
||||
* @param String $login
|
||||
* @param String $password
|
||||
* @param Int $ssl
|
||||
* @param Int $retry
|
||||
* @param Int $passif
|
||||
* @param String $destfolder
|
||||
* @param String $makedirectory
|
||||
* @return boolean
|
||||
*/
|
||||
public function export_ftp($usr_to, $host, $login, $password, $ssl, $retry, $passif, $destfolder, $makedirectory, $logfile)
|
||||
{
|
||||
$user_t = User_Adapter::getInstance($usr_to, $appbox);
|
||||
$email_dest = $user_t->get_email();
|
||||
}
|
||||
$appbox = appbox::get_instance(\bootstrap::getCore());
|
||||
$session = $appbox->get_session();
|
||||
$user_f = User_Adapter::getInstance($session->get_usr_id(), $appbox);
|
||||
$conn = $appbox->get_connection();
|
||||
|
||||
$email_dest = '';
|
||||
if ($usr_to) {
|
||||
$user_t = User_Adapter::getInstance($usr_to, $appbox);
|
||||
$email_dest = $user_t->get_email();
|
||||
}
|
||||
|
||||
|
||||
$text_mail_receiver = "Bonjour,\n"
|
||||
. "L'utilisateur "
|
||||
. $user_f->get_display_name() . " (login : " . $user_f->get_login() . ") "
|
||||
. "a fait un transfert FTP sur le serveur ayant comme adresse \""
|
||||
. $host . "\" avec le login \"" . $login . "\" "
|
||||
. "et pour repertoire de destination \""
|
||||
. $destfolder . "\"\n";
|
||||
$text_mail_receiver = "Bonjour,\n"
|
||||
. "L'utilisateur "
|
||||
. $user_f->get_display_name() . " (login : " . $user_f->get_login() . ") "
|
||||
. "a fait un transfert FTP sur le serveur ayant comme adresse \""
|
||||
. $host . "\" avec le login \"" . $login . "\" "
|
||||
. "et pour repertoire de destination \""
|
||||
. $destfolder . "\"\n";
|
||||
|
||||
$text_mail_sender = "Bonjour,\n"
|
||||
. "Vous avez fait un export FTP avec les caracteristiques "
|
||||
. "de connexion suivantes\n"
|
||||
. "- adresse du serveur : \"" . $host . "\"\n"
|
||||
. "- login utilisé \"" . $login . "\"\n"
|
||||
. "- repertoire de destination \"" . $destfolder . "\"\n"
|
||||
. "\n";
|
||||
$text_mail_sender = "Bonjour,\n"
|
||||
. "Vous avez fait un export FTP avec les caracteristiques "
|
||||
. "de connexion suivantes\n"
|
||||
. "- adresse du serveur : \"" . $host . "\"\n"
|
||||
. "- login utilisé \"" . $login . "\"\n"
|
||||
. "- repertoire de destination \"" . $destfolder . "\"\n"
|
||||
. "\n";
|
||||
|
||||
$fn = "id";
|
||||
$fv = "null";
|
||||
$fn .= ",crash";
|
||||
$fv .= ",0";
|
||||
$fn .= ",nbretry";
|
||||
$fv .= ",:nbretry";
|
||||
$fn .= ",mail";
|
||||
$fv .= ",:mail";
|
||||
$fn .= ",addr";
|
||||
$fv .= ",:addr";
|
||||
$fn .= ",login";
|
||||
$fv .= ",:login";
|
||||
$fn .= ",`ssl`";
|
||||
$fv .= ",:ssl";
|
||||
$fn .= ",pwd";
|
||||
$fv .= ",:pwd";
|
||||
$fn .= ",passif";
|
||||
$fv .= ",:passif";
|
||||
$fn .= ",destfolder";
|
||||
$fv .= ",:destfolder";
|
||||
$fn .= ",sendermail";
|
||||
$fv .= ",:sendermail";
|
||||
$fn .= ",text_mail_receiver";
|
||||
$fv .= ",:text_mail_receiver";
|
||||
$fn .= ",text_mail_sender";
|
||||
$fv .= ",:text_mail_sender";
|
||||
$fn .= ",usr_id";
|
||||
$fv .= ",:usr_id";
|
||||
$fn .= ",date";
|
||||
$fv .= ", NOW()";
|
||||
$fn .= ",foldertocreate";
|
||||
$fv .= ",:foldertocreate";
|
||||
$fn .= ",logfile";
|
||||
$fv .= ",:logfile";
|
||||
$fn = "id";
|
||||
$fv = "null";
|
||||
$fn .= ",crash";
|
||||
$fv .= ",0";
|
||||
$fn .= ",nbretry";
|
||||
$fv .= ",:nbretry";
|
||||
$fn .= ",mail";
|
||||
$fv .= ",:mail";
|
||||
$fn .= ",addr";
|
||||
$fv .= ",:addr";
|
||||
$fn .= ",login";
|
||||
$fv .= ",:login";
|
||||
$fn .= ",`ssl`";
|
||||
$fv .= ",:ssl";
|
||||
$fn .= ",pwd";
|
||||
$fv .= ",:pwd";
|
||||
$fn .= ",passif";
|
||||
$fv .= ",:passif";
|
||||
$fn .= ",destfolder";
|
||||
$fv .= ",:destfolder";
|
||||
$fn .= ",sendermail";
|
||||
$fv .= ",:sendermail";
|
||||
$fn .= ",text_mail_receiver";
|
||||
$fv .= ",:text_mail_receiver";
|
||||
$fn .= ",text_mail_sender";
|
||||
$fv .= ",:text_mail_sender";
|
||||
$fn .= ",usr_id";
|
||||
$fv .= ",:usr_id";
|
||||
$fn .= ",date";
|
||||
$fv .= ", NOW()";
|
||||
$fn .= ",foldertocreate";
|
||||
$fv .= ",:foldertocreate";
|
||||
$fn .= ",logfile";
|
||||
$fv .= ",:logfile";
|
||||
|
||||
$params = array(
|
||||
':nbretry' => (((int) $retry * 1) > 0 ? (int) $retry : 5)
|
||||
, ':mail' => $email_dest
|
||||
, ':addr' => $host
|
||||
, ':login' => $login
|
||||
, ':ssl' => ($ssl == '1' ? '1' : '0')
|
||||
, ':pwd' => $password
|
||||
, ':passif' => ($passif == "1" ? "1" : "0")
|
||||
, ':destfolder' => $destfolder
|
||||
, ':sendermail' => $user_f->get_email()
|
||||
, ':text_mail_receiver' => $text_mail_receiver
|
||||
, ':text_mail_sender' => $text_mail_sender
|
||||
, ':usr_id' => $session->get_usr_id()
|
||||
, ':foldertocreate' => $makedirectory
|
||||
, ':logfile' => (!!$logfile ? '1' : '0')
|
||||
);
|
||||
$params = array(
|
||||
':nbretry' => (((int) $retry * 1) > 0 ? (int) $retry : 5)
|
||||
, ':mail' => $email_dest
|
||||
, ':addr' => $host
|
||||
, ':login' => $login
|
||||
, ':ssl' => ($ssl == '1' ? '1' : '0')
|
||||
, ':pwd' => $password
|
||||
, ':passif' => ($passif == "1" ? "1" : "0")
|
||||
, ':destfolder' => $destfolder
|
||||
, ':sendermail' => $user_f->get_email()
|
||||
, ':text_mail_receiver' => $text_mail_receiver
|
||||
, ':text_mail_sender' => $text_mail_sender
|
||||
, ':usr_id' => $session->get_usr_id()
|
||||
, ':foldertocreate' => $makedirectory
|
||||
, ':logfile' => ( ! ! $logfile ? '1' : '0')
|
||||
);
|
||||
|
||||
$sql = "INSERT INTO ftp_export ($fn) VALUES ($fv)";
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute($params);
|
||||
$stmt->closeCursor();
|
||||
$sql = "INSERT INTO ftp_export ($fn) VALUES ($fv)";
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute($params);
|
||||
$stmt->closeCursor();
|
||||
|
||||
$ftp_export_id = $conn->lastInsertId();
|
||||
$ftp_export_id = $conn->lastInsertId();
|
||||
|
||||
$sql = 'INSERT INTO ftp_export_elements
|
||||
$sql = 'INSERT INTO ftp_export_elements
|
||||
(id, ftp_export_id, base_id, record_id, subdef, filename, folder, businessfields)
|
||||
VALUES
|
||||
(null, :ftp_export_id, :base_id, :record_id, :subdef,
|
||||
:filename, :folder, :businessfields)';
|
||||
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt = $conn->prepare($sql);
|
||||
|
||||
foreach ($this->list['files'] as $file)
|
||||
{
|
||||
foreach ($file['subdefs'] as $subdef => $properties)
|
||||
{
|
||||
$filename = $file['export_name']
|
||||
. $properties["ajout"] . '.'
|
||||
. $properties['exportExt'];
|
||||
foreach ($this->list['files'] as $file) {
|
||||
foreach ($file['subdefs'] as $subdef => $properties) {
|
||||
$filename = $file['export_name']
|
||||
. $properties["ajout"] . '.'
|
||||
. $properties['exportExt'];
|
||||
|
||||
$bfields = isset($properties['businessfields']) ? $properties['businessfields'] : null;
|
||||
$bfields = isset($properties['businessfields']) ? $properties['businessfields'] : null;
|
||||
|
||||
$params = array(
|
||||
':ftp_export_id' => $ftp_export_id
|
||||
, ':base_id' => $file['base_id']
|
||||
, ':record_id' => $file['record_id']
|
||||
, ':subdef' => $subdef
|
||||
, ':filename' => $filename
|
||||
, ':folder' => $properties['folder']
|
||||
, ':businessfields' => $bfields
|
||||
);
|
||||
$stmt->execute($params);
|
||||
}
|
||||
$params = array(
|
||||
':ftp_export_id' => $ftp_export_id
|
||||
, ':base_id' => $file['base_id']
|
||||
, ':record_id' => $file['record_id']
|
||||
, ':subdef' => $subdef
|
||||
, ':filename' => $filename
|
||||
, ':folder' => $properties['folder']
|
||||
, ':businessfields' => $bfields
|
||||
);
|
||||
$stmt->execute($params);
|
||||
}
|
||||
}
|
||||
|
||||
$stmt->closeCursor();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
$stmt->closeCursor();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -18,149 +18,136 @@
|
||||
class set_exportorder extends set_export
|
||||
{
|
||||
|
||||
/**
|
||||
*
|
||||
* @param Int $from_usr_id
|
||||
* @param String $usage
|
||||
* @param String $deadline
|
||||
* @return boolean
|
||||
*/
|
||||
public function order_available_elements($from_usr_id, $usage, $deadline)
|
||||
{
|
||||
$Core = bootstrap::getCore();
|
||||
|
||||
$lst = $this->get_orderable_lst();
|
||||
|
||||
$conn = connection::getPDOConnection();
|
||||
|
||||
$date = phraseadate::format_mysql(new DateTime($deadline));
|
||||
|
||||
$conn->beginTransaction();
|
||||
|
||||
$usage = p4string::cleanTags($usage);
|
||||
|
||||
try
|
||||
/**
|
||||
*
|
||||
* @param Int $from_usr_id
|
||||
* @param String $usage
|
||||
* @param String $deadline
|
||||
* @return boolean
|
||||
*/
|
||||
public function order_available_elements($from_usr_id, $usage, $deadline)
|
||||
{
|
||||
$Core = bootstrap::getCore();
|
||||
|
||||
$sql = 'INSERT INTO `order`
|
||||
$lst = $this->get_orderable_lst();
|
||||
|
||||
$conn = connection::getPDOConnection();
|
||||
|
||||
$date = phraseadate::format_mysql(new DateTime($deadline));
|
||||
|
||||
$conn->beginTransaction();
|
||||
|
||||
$usage = p4string::cleanTags($usage);
|
||||
|
||||
try {
|
||||
|
||||
$sql = 'INSERT INTO `order`
|
||||
(`id`, `usr_id`, `created_on`, `usage`, `deadline`)
|
||||
VALUES
|
||||
(null, :from_usr_id, NOW(), :usage, :deadline)';
|
||||
|
||||
$params = array(
|
||||
':from_usr_id' => $from_usr_id
|
||||
, ':usage' => $usage
|
||||
, ':deadline' => $deadline
|
||||
);
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute($params);
|
||||
$stmt->closeCursor();
|
||||
$params = array(
|
||||
':from_usr_id' => $from_usr_id
|
||||
, ':usage' => $usage
|
||||
, ':deadline' => $deadline
|
||||
);
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute($params);
|
||||
$stmt->closeCursor();
|
||||
|
||||
$order_id = $conn->lastInsertId();
|
||||
$order_id = $conn->lastInsertId();
|
||||
|
||||
|
||||
$sql = 'INSERT INTO order_elements
|
||||
$sql = 'INSERT INTO order_elements
|
||||
(id, order_id, base_id, record_id, order_master_id)
|
||||
VALUES
|
||||
(null, :order_id, :base_id, :record_id, null)';
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt = $conn->prepare($sql);
|
||||
|
||||
foreach ($lst as $basrec)
|
||||
{
|
||||
$basrec = explode('_', $basrec);
|
||||
foreach ($lst as $basrec) {
|
||||
$basrec = explode('_', $basrec);
|
||||
|
||||
$record = new record_adapter($basrec[0], $basrec[1]);
|
||||
$base_id = $record->get_base_id();
|
||||
$record_id = $basrec[1];
|
||||
$record = new record_adapter($basrec[0], $basrec[1]);
|
||||
$base_id = $record->get_base_id();
|
||||
$record_id = $basrec[1];
|
||||
|
||||
$params = array(
|
||||
':order_id' => $order_id
|
||||
, ':base_id' => $base_id
|
||||
, ':record_id' => $record_id
|
||||
);
|
||||
$stmt->execute($params);
|
||||
}
|
||||
|
||||
$stmt->closeCursor();
|
||||
$conn->commit();
|
||||
} catch (Exception $e) {
|
||||
$conn->rollBack();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
$evt_mngr = eventsmanager_broker::getInstance(appbox::get_instance($Core), $Core);
|
||||
|
||||
$params = array(
|
||||
':order_id' => $order_id
|
||||
, ':base_id' => $base_id
|
||||
, ':record_id' => $record_id
|
||||
'order_id' => $order_id,
|
||||
'usr_id' => $from_usr_id
|
||||
);
|
||||
$stmt->execute($params);
|
||||
}
|
||||
|
||||
$stmt->closeCursor();
|
||||
$conn->commit();
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$conn->rollBack();
|
||||
$evt_mngr->trigger('__NEW_ORDER__', $params);
|
||||
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
$evt_mngr = eventsmanager_broker::getInstance(appbox::get_instance($Core), $Core);
|
||||
|
||||
$params = array(
|
||||
'order_id' => $order_id,
|
||||
'usr_id' => $from_usr_id
|
||||
);
|
||||
|
||||
$evt_mngr->trigger('__NEW_ORDER__', $params);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return Array
|
||||
*/
|
||||
protected function get_orderable_lst()
|
||||
{
|
||||
$ret = array();
|
||||
foreach ($this as $basrec => $download_element)
|
||||
/**
|
||||
*
|
||||
* @return Array
|
||||
*/
|
||||
protected function get_orderable_lst()
|
||||
{
|
||||
foreach ($download_element->get_orderable() as $name => $bool)
|
||||
{
|
||||
if ($bool === true)
|
||||
{
|
||||
$ret[] = $basrec;
|
||||
$ret = array();
|
||||
foreach ($this as $basrec => $download_element) {
|
||||
foreach ($download_element->get_orderable() as $name => $bool) {
|
||||
if ($bool === true) {
|
||||
$ret[] = $basrec;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param Int $admins
|
||||
* @param Int $base_id
|
||||
* @return Void
|
||||
*/
|
||||
public static function set_order_admins($admins, $base_id)
|
||||
{
|
||||
$appbox = appbox::get_instance(\bootstrap::getCore());
|
||||
$conn = $appbox->get_connection();
|
||||
$conn->beginTransaction();
|
||||
try
|
||||
/**
|
||||
*
|
||||
* @param Int $admins
|
||||
* @param Int $base_id
|
||||
* @return Void
|
||||
*/
|
||||
public static function set_order_admins($admins, $base_id)
|
||||
{
|
||||
$user_query = new User_Query($appbox);
|
||||
$result = $user_query->on_base_ids(array($base_id))
|
||||
->who_have_right(array('order_master'))
|
||||
->execute()->get_results();
|
||||
$appbox = appbox::get_instance(\bootstrap::getCore());
|
||||
$conn = $appbox->get_connection();
|
||||
$conn->beginTransaction();
|
||||
try {
|
||||
$user_query = new User_Query($appbox);
|
||||
$result = $user_query->on_base_ids(array($base_id))
|
||||
->who_have_right(array('order_master'))
|
||||
->execute()->get_results();
|
||||
|
||||
foreach ($result as $user)
|
||||
{
|
||||
$user->ACL()->update_rights_to_base($base_id, array('order_master' => false));
|
||||
}
|
||||
foreach ($result as $user) {
|
||||
$user->ACL()->update_rights_to_base($base_id, array('order_master' => false));
|
||||
}
|
||||
|
||||
foreach ($admins as $admin)
|
||||
{
|
||||
$user = User_Adapter::getInstance($admin, $appbox);
|
||||
$user->ACL()->update_rights_to_base($base_id, array('order_master' => true));
|
||||
}
|
||||
foreach ($admins as $admin) {
|
||||
$user = User_Adapter::getInstance($admin, $appbox);
|
||||
$user->ACL()->update_rights_to_base($base_id, array('order_master' => true));
|
||||
}
|
||||
|
||||
$conn->commit();
|
||||
$conn->commit();
|
||||
} catch (Exception $e) {
|
||||
$conn->rollBack();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$conn->rollBack();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -17,60 +17,66 @@
|
||||
*/
|
||||
class set_order extends set_abstract
|
||||
{
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $id;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $id;
|
||||
/**
|
||||
*
|
||||
* @var user
|
||||
*/
|
||||
protected $user;
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $todo;
|
||||
/**
|
||||
*
|
||||
* @var DateTime
|
||||
*/
|
||||
protected $created_on;
|
||||
/**
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $usage;
|
||||
/**
|
||||
*
|
||||
* @var DateTime
|
||||
*/
|
||||
protected $deadline;
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $total;
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $ssel_id;
|
||||
/**
|
||||
*
|
||||
* @var user
|
||||
*/
|
||||
protected $user;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param int $id
|
||||
* @return set_order
|
||||
*/
|
||||
public function __construct($id)
|
||||
{
|
||||
$appbox = appbox::get_instance(\bootstrap::getCore());
|
||||
$session = $appbox->get_session();
|
||||
$conn = $appbox->get_connection();
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $todo;
|
||||
|
||||
$sql = 'SELECT o.id, o.usr_id, o.created_on, o.`usage`, o.deadline,
|
||||
/**
|
||||
*
|
||||
* @var DateTime
|
||||
*/
|
||||
protected $created_on;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $usage;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var DateTime
|
||||
*/
|
||||
protected $deadline;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $total;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $ssel_id;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param int $id
|
||||
* @return set_order
|
||||
*/
|
||||
public function __construct($id)
|
||||
{
|
||||
$appbox = appbox::get_instance(\bootstrap::getCore());
|
||||
$session = $appbox->get_session();
|
||||
$conn = $appbox->get_connection();
|
||||
|
||||
$sql = 'SELECT o.id, o.usr_id, o.created_on, o.`usage`, o.deadline,
|
||||
COUNT(e.id) as total, o.ssel_id, COUNT(e2.id) as todo
|
||||
FROM (`order` o, order_elements e)
|
||||
LEFT JOIN order_elements e2
|
||||
@@ -80,298 +86,281 @@ class set_order extends set_abstract
|
||||
)
|
||||
WHERE o.id = e.order_id
|
||||
AND o.id = :order_id';
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute(array(':order_id' => $id));
|
||||
$row = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute(array(':order_id' => $id));
|
||||
$row = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
|
||||
if (!$row)
|
||||
throw new Exception('unknown order ' . $id);
|
||||
if ( ! $row)
|
||||
throw new Exception('unknown order ' . $id);
|
||||
|
||||
$current_user = User_Adapter::getInstance($row['usr_id'], $appbox);
|
||||
$user = User_Adapter::getInstance($session->get_usr_id(), $appbox);
|
||||
$current_user = User_Adapter::getInstance($row['usr_id'], $appbox);
|
||||
$user = User_Adapter::getInstance($session->get_usr_id(), $appbox);
|
||||
|
||||
$this->id = $row['id'];
|
||||
$this->user = $current_user;
|
||||
$this->todo = $row['todo'];
|
||||
$this->created_on = new DateTime($row['created_on']);
|
||||
$this->usage = $row['usage'];
|
||||
$this->deadline = new DateTime($row['deadline']);
|
||||
$this->total = (int) $row['total'];
|
||||
$this->ssel_id = (int) $row['ssel_id'];
|
||||
$this->id = $row['id'];
|
||||
$this->user = $current_user;
|
||||
$this->todo = $row['todo'];
|
||||
$this->created_on = new DateTime($row['created_on']);
|
||||
$this->usage = $row['usage'];
|
||||
$this->deadline = new DateTime($row['deadline']);
|
||||
$this->total = (int) $row['total'];
|
||||
$this->ssel_id = (int) $row['ssel_id'];
|
||||
|
||||
$base_ids = array_keys($user->ACL()->get_granted_base(array('order_master')));
|
||||
$sql = 'SELECT e.base_id, e.record_id, e.order_master_id, e.id, e.deny
|
||||
$base_ids = array_keys($user->ACL()->get_granted_base(array('order_master')));
|
||||
$sql = 'SELECT e.base_id, e.record_id, e.order_master_id, e.id, e.deny
|
||||
FROM order_elements e
|
||||
WHERE order_id = :order_id
|
||||
AND e.base_id
|
||||
IN ('.implode(',', $base_ids).')';
|
||||
IN (' . implode(',', $base_ids) . ')';
|
||||
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute(array(':order_id' => $id));
|
||||
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute(array(':order_id' => $id));
|
||||
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
|
||||
$elements = array();
|
||||
$elements = array();
|
||||
|
||||
foreach ($rs as $row)
|
||||
{
|
||||
$order_master_id = $row['order_master_id'] ? $row['order_master_id'] : false;
|
||||
foreach ($rs as $row) {
|
||||
$order_master_id = $row['order_master_id'] ? $row['order_master_id'] : false;
|
||||
|
||||
$elements[$row['id']] = new record_orderElement(
|
||||
phrasea::sbasFromBas($row['base_id']),
|
||||
$row['record_id'],
|
||||
$row['deny'],
|
||||
$order_master_id
|
||||
);
|
||||
$elements[$row['id']] = new record_orderElement(
|
||||
phrasea::sbasFromBas($row['base_id']),
|
||||
$row['record_id'],
|
||||
$row['deny'],
|
||||
$order_master_id
|
||||
);
|
||||
}
|
||||
|
||||
$this->elements = $elements;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
$this->elements = $elements;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return User_Adapter
|
||||
*/
|
||||
public function get_user()
|
||||
{
|
||||
return $this->user;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return DateTime
|
||||
*/
|
||||
public function get_created_on()
|
||||
{
|
||||
return $this->created_on;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return DateTime
|
||||
*/
|
||||
public function get_deadline()
|
||||
{
|
||||
return $this->deadline;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_usage()
|
||||
{
|
||||
return $this->usage;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function get_total()
|
||||
{
|
||||
return $this->total;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function get_order_id()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function get_todo()
|
||||
{
|
||||
return $this->todo;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param Array $elements_ids
|
||||
* @param boolean $force
|
||||
* @return set_order
|
||||
*/
|
||||
public function send_elements(Array $elements_ids, $force)
|
||||
{
|
||||
$appbox = appbox::get_instance(\bootstrap::getCore());
|
||||
$session = $appbox->get_session();
|
||||
$conn = $appbox->get_connection();
|
||||
$pusher = User_Adapter::getInstance($session->get_usr_id(), $appbox);
|
||||
|
||||
$basrecs = array();
|
||||
foreach ($elements_ids as $id)
|
||||
/**
|
||||
*
|
||||
* @return User_Adapter
|
||||
*/
|
||||
public function get_user()
|
||||
{
|
||||
if (isset($this->elements[$id]))
|
||||
{
|
||||
$basrecs[$id] = array(
|
||||
'base_id' => $this->elements[$id]->get_base_id(),
|
||||
'record_id' => $this->elements[$id]->get_record_id()
|
||||
);
|
||||
}
|
||||
return $this->user;
|
||||
}
|
||||
|
||||
$core = \bootstrap::getCore();
|
||||
|
||||
$em = $core->getEntityManager();
|
||||
|
||||
$Basket = null;
|
||||
/* @var $repository \Repositories\BasketRepository */
|
||||
if($this->ssel_id)
|
||||
/**
|
||||
*
|
||||
* @return DateTime
|
||||
*/
|
||||
public function get_created_on()
|
||||
{
|
||||
$repository = $em->getRepository('\Entities\Basket');
|
||||
return $this->created_on;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return DateTime
|
||||
*/
|
||||
public function get_deadline()
|
||||
{
|
||||
return $this->deadline;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_usage()
|
||||
{
|
||||
return $this->usage;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function get_total()
|
||||
{
|
||||
return $this->total;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function get_order_id()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function get_todo()
|
||||
{
|
||||
return $this->todo;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param Array $elements_ids
|
||||
* @param boolean $force
|
||||
* @return set_order
|
||||
*/
|
||||
public function send_elements(Array $elements_ids, $force)
|
||||
{
|
||||
$appbox = appbox::get_instance(\bootstrap::getCore());
|
||||
$session = $appbox->get_session();
|
||||
$conn = $appbox->get_connection();
|
||||
$pusher = User_Adapter::getInstance($session->get_usr_id(), $appbox);
|
||||
|
||||
$basrecs = array();
|
||||
foreach ($elements_ids as $id) {
|
||||
if (isset($this->elements[$id])) {
|
||||
$basrecs[$id] = array(
|
||||
'base_id' => $this->elements[$id]->get_base_id(),
|
||||
'record_id' => $this->elements[$id]->get_record_id()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$core = \bootstrap::getCore();
|
||||
|
||||
$em = $core->getEntityManager();
|
||||
|
||||
try
|
||||
{
|
||||
$Basket = $repository->findUserBasket($this->ssel_id, $core->getAuthenticatedUser(), false);
|
||||
}
|
||||
catch(\Exception $e)
|
||||
{
|
||||
$Basket = null;
|
||||
}
|
||||
}
|
||||
/* @var $repository \Repositories\BasketRepository */
|
||||
if ($this->ssel_id) {
|
||||
$repository = $em->getRepository('\Entities\Basket');
|
||||
|
||||
if(!$Basket)
|
||||
{
|
||||
$Basket = new \Entities\Basket();
|
||||
$Basket->setName(sprintf(_('Commande du %s'), $this->created_on->format('Y-m-d')));
|
||||
$Basket->setOwner($this->user);
|
||||
$Basket->setPusher($core->getAuthenticatedUser());
|
||||
try {
|
||||
$Basket = $repository->findUserBasket($this->ssel_id, $core->getAuthenticatedUser(), false);
|
||||
} catch (\Exception $e) {
|
||||
$Basket = null;
|
||||
}
|
||||
}
|
||||
|
||||
$em->persist($Basket);
|
||||
$em->flush();
|
||||
if ( ! $Basket) {
|
||||
$Basket = new \Entities\Basket();
|
||||
$Basket->setName(sprintf(_('Commande du %s'), $this->created_on->format('Y-m-d')));
|
||||
$Basket->setOwner($this->user);
|
||||
$Basket->setPusher($core->getAuthenticatedUser());
|
||||
|
||||
$this->ssel_id = $Basket->getId();
|
||||
$em->persist($Basket);
|
||||
$em->flush();
|
||||
|
||||
$sql = 'UPDATE `order` SET ssel_id = :ssel_id WHERE id = :order_id';
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute(array(':ssel_id' => $Basket->getId(), ':order_id' => $this->id));
|
||||
$stmt->closeCursor();
|
||||
}
|
||||
$this->ssel_id = $Basket->getId();
|
||||
|
||||
$n = 0;
|
||||
$sql = 'UPDATE `order` SET ssel_id = :ssel_id WHERE id = :order_id';
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute(array(':ssel_id' => $Basket->getId(), ':order_id' => $this->id));
|
||||
$stmt->closeCursor();
|
||||
}
|
||||
|
||||
$sql = 'UPDATE order_elements
|
||||
$n = 0;
|
||||
|
||||
$sql = 'UPDATE order_elements
|
||||
SET deny="0", order_master_id = :usr_id
|
||||
WHERE order_id = :order_id
|
||||
AND id = :order_element_id';
|
||||
|
||||
if ($force == '0')
|
||||
{
|
||||
$sql .= ' AND ISNULL(order_master_id)';
|
||||
}
|
||||
$stmt = $conn->prepare($sql);
|
||||
if ($force == '0') {
|
||||
$sql .= ' AND ISNULL(order_master_id)';
|
||||
}
|
||||
$stmt = $conn->prepare($sql);
|
||||
|
||||
foreach ($basrecs as $order_element_id => $basrec)
|
||||
{
|
||||
try
|
||||
{
|
||||
$sbas_id = phrasea::sbasFromBas($basrec['base_id']);
|
||||
$record = new record_adapter($sbas_id, $basrec['record_id']);
|
||||
foreach ($basrecs as $order_element_id => $basrec) {
|
||||
try {
|
||||
$sbas_id = phrasea::sbasFromBas($basrec['base_id']);
|
||||
$record = new record_adapter($sbas_id, $basrec['record_id']);
|
||||
|
||||
$BasketElement = new \Entities\BasketElement();
|
||||
$BasketElement->setRecord($record);
|
||||
$BasketElement->setBasket($Basket);
|
||||
$BasketElement = new \Entities\BasketElement();
|
||||
$BasketElement->setRecord($record);
|
||||
$BasketElement->setBasket($Basket);
|
||||
|
||||
$Basket->addBasketElement($BasketElement);
|
||||
$Basket->addBasketElement($BasketElement);
|
||||
|
||||
$em->persist($BasketElement);
|
||||
$em->persist($BasketElement);
|
||||
|
||||
|
||||
$params = array(
|
||||
':usr_id' => $session->get_usr_id()
|
||||
, ':order_id' => $this->id
|
||||
, ':order_element_id' => $order_element_id
|
||||
);
|
||||
$params = array(
|
||||
':usr_id' => $session->get_usr_id()
|
||||
, ':order_id' => $this->id
|
||||
, ':order_element_id' => $order_element_id
|
||||
);
|
||||
|
||||
$stmt->execute($params);
|
||||
$stmt->execute($params);
|
||||
|
||||
$n++;
|
||||
$this->user->ACL()->grant_hd_on($record, $pusher, 'order');
|
||||
$n ++;
|
||||
$this->user->ACL()->grant_hd_on($record, $pusher, 'order');
|
||||
|
||||
unset($record);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
unset($record);
|
||||
} catch (Exception $e) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$em->flush();
|
||||
$stmt->closeCursor();
|
||||
|
||||
if ($n > 0) {
|
||||
$evt_mngr = eventsmanager_broker::getInstance($appbox, $core);
|
||||
|
||||
$params = array(
|
||||
'ssel_id' => $this->ssel_id,
|
||||
'from' => $session->get_usr_id(),
|
||||
'to' => $this->user->get_id(),
|
||||
'n' => $n
|
||||
);
|
||||
|
||||
$evt_mngr->trigger('__ORDER_DELIVER__', $params);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
$em->flush();
|
||||
$stmt->closeCursor();
|
||||
|
||||
if ($n > 0)
|
||||
/**
|
||||
*
|
||||
* @param Array $elements_ids
|
||||
* @return set_order
|
||||
*/
|
||||
public function deny_elements(Array $elements_ids)
|
||||
{
|
||||
$evt_mngr = eventsmanager_broker::getInstance($appbox, $core);
|
||||
$Core = bootstrap::getCore();
|
||||
$appbox = appbox::get_instance(\bootstrap::getCore());
|
||||
$session = $appbox->get_session();
|
||||
$conn = $appbox->get_connection();
|
||||
|
||||
$params = array(
|
||||
'ssel_id' => $this->ssel_id,
|
||||
'from' => $session->get_usr_id(),
|
||||
'to' => $this->user->get_id(),
|
||||
'n' => $n
|
||||
);
|
||||
$n = 0;
|
||||
|
||||
$evt_mngr->trigger('__ORDER_DELIVER__', $params);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param Array $elements_ids
|
||||
* @return set_order
|
||||
*/
|
||||
public function deny_elements(Array $elements_ids)
|
||||
{
|
||||
$Core = bootstrap::getCore();
|
||||
$appbox = appbox::get_instance(\bootstrap::getCore());
|
||||
$session = $appbox->get_session();
|
||||
$conn = $appbox->get_connection();
|
||||
|
||||
$n = 0;
|
||||
|
||||
foreach ($elements_ids as $order_element_id)
|
||||
{
|
||||
$sql = 'UPDATE order_elements
|
||||
foreach ($elements_ids as $order_element_id) {
|
||||
$sql = 'UPDATE order_elements
|
||||
SET deny="1", order_master_id = :order_master_id
|
||||
WHERE order_id = :order_id AND id = :order_element_id
|
||||
AND ISNULL(order_master_id)';
|
||||
|
||||
$params = array(
|
||||
':order_master_id' => $session->get_usr_id()
|
||||
, ':order_id' => $this->id
|
||||
, ':order_element_id' => $order_element_id
|
||||
);
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute($params);
|
||||
$stmt->closeCursor();
|
||||
$n++;
|
||||
$params = array(
|
||||
':order_master_id' => $session->get_usr_id()
|
||||
, ':order_id' => $this->id
|
||||
, ':order_element_id' => $order_element_id
|
||||
);
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute($params);
|
||||
$stmt->closeCursor();
|
||||
$n ++;
|
||||
}
|
||||
|
||||
|
||||
if ($n > 0) {
|
||||
$evt_mngr = eventsmanager_broker::getInstance($appbox, $Core);
|
||||
|
||||
$params = array(
|
||||
'from' => $session->get_usr_id(),
|
||||
'to' => $this->user->get_id(),
|
||||
'n' => $n
|
||||
);
|
||||
|
||||
$evt_mngr->trigger('__ORDER_NOT_DELIVERED__', $params);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
if ($n > 0)
|
||||
{
|
||||
$evt_mngr = eventsmanager_broker::getInstance($appbox, $Core);
|
||||
|
||||
$params = array(
|
||||
'from' => $session->get_usr_id(),
|
||||
'to' => $this->user->get_id(),
|
||||
'n' => $n
|
||||
);
|
||||
|
||||
$evt_mngr->trigger('__ORDER_NOT_DELIVERED__', $params);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -17,37 +17,37 @@
|
||||
*/
|
||||
class set_ordermanager extends set_abstract
|
||||
{
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $page;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $page;
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $total;
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $total;
|
||||
|
||||
const PER_PAGE = 10;
|
||||
const PER_PAGE = 10;
|
||||
|
||||
/**
|
||||
*
|
||||
* @return set_ordermanager
|
||||
*/
|
||||
public function __construct($sort = false, $page = 1)
|
||||
{
|
||||
$appbox = appbox::get_instance(\bootstrap::getCore());
|
||||
$session = $appbox->get_session();
|
||||
$conn = $appbox->get_connection();
|
||||
/**
|
||||
*
|
||||
* @return set_ordermanager
|
||||
*/
|
||||
public function __construct($sort = false, $page = 1)
|
||||
{
|
||||
$appbox = appbox::get_instance(\bootstrap::getCore());
|
||||
$session = $appbox->get_session();
|
||||
$conn = $appbox->get_connection();
|
||||
|
||||
$page = (int) $page;
|
||||
$page = (int) $page;
|
||||
|
||||
$debut = ($page - 1) * self::PER_PAGE;
|
||||
$debut = ($page - 1) * self::PER_PAGE;
|
||||
|
||||
$user = User_Adapter::getInstance($session->get_usr_id(), $appbox);
|
||||
$base_ids = array_keys($user->ACL()->get_granted_base(array('order_master')));
|
||||
$sql = 'SELECT distinct o.id, o.usr_id, created_on, deadline, `usage`
|
||||
$user = User_Adapter::getInstance($session->get_usr_id(), $appbox);
|
||||
$base_ids = array_keys($user->ACL()->get_granted_base(array('order_master')));
|
||||
$sql = 'SELECT distinct o.id, o.usr_id, created_on, deadline, `usage`
|
||||
FROM (`order_elements` e, `order` o)
|
||||
WHERE e.base_id IN (' . implode(', ', $base_ids) . ')
|
||||
AND e.order_id = o.id
|
||||
@@ -55,128 +55,122 @@ class set_ordermanager extends set_abstract
|
||||
ORDER BY o.id DESC
|
||||
LIMIT ' . (int) $debut . ',' . self::PER_PAGE;
|
||||
|
||||
$elements = array();
|
||||
$elements = array();
|
||||
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute();
|
||||
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute();
|
||||
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
|
||||
foreach ($rs as $row)
|
||||
{
|
||||
$elements[] = new set_order($row['id']);
|
||||
}
|
||||
foreach ($rs as $row) {
|
||||
$elements[] = new set_order($row['id']);
|
||||
}
|
||||
|
||||
if ($sort)
|
||||
{
|
||||
if ($sort == 'created_on')
|
||||
uasort($elements, array('ordermanager', 'date_orders_sort'));
|
||||
elseif ($sort == 'user')
|
||||
uasort($elements, array('ordermanager', 'user_orders_sort'));
|
||||
elseif ($sort == 'usage')
|
||||
uasort($elements, array('ordermanager', 'usage_orders_sort'));
|
||||
}
|
||||
if ($sort) {
|
||||
if ($sort == 'created_on')
|
||||
uasort($elements, array('ordermanager', 'date_orders_sort'));
|
||||
elseif ($sort == 'user')
|
||||
uasort($elements, array('ordermanager', 'user_orders_sort'));
|
||||
elseif ($sort == 'usage')
|
||||
uasort($elements, array('ordermanager', 'usage_orders_sort'));
|
||||
}
|
||||
|
||||
$sql = 'SELECT distinct o.id
|
||||
$sql = 'SELECT distinct o.id
|
||||
FROM (`order_elements` e, `order` o)
|
||||
WHERE e.base_id IN (' . implode(', ', $base_ids) . ')
|
||||
AND e.order_id = o.id
|
||||
GROUP BY o.id
|
||||
ORDER BY o.id DESC';
|
||||
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute(array(':usr_id' => $session->get_usr_id()));
|
||||
$total = $stmt->rowCount();
|
||||
$stmt->closeCursor();
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute(array(':usr_id' => $session->get_usr_id()));
|
||||
$total = $stmt->rowCount();
|
||||
$stmt->closeCursor();
|
||||
|
||||
$this->elements = $elements;
|
||||
$this->page = $page;
|
||||
$this->total = $total;
|
||||
$this->elements = $elements;
|
||||
$this->page = $page;
|
||||
$this->total = $total;
|
||||
|
||||
return $this;
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function get_page()
|
||||
{
|
||||
return $this->page;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function get_page()
|
||||
{
|
||||
return $this->page;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function get_previous_page()
|
||||
{
|
||||
$p_page = $this->page < 2 ? false : ($this->page - 1);
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function get_previous_page()
|
||||
{
|
||||
$p_page = $this->page < 2 ? false : ($this->page - 1);
|
||||
|
||||
return $p_page;
|
||||
}
|
||||
return $p_page;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function get_next_page()
|
||||
{
|
||||
$t_page = ceil($this->total / self::PER_PAGE);
|
||||
$n_page = $this->page >= $t_page ? false : $this->page + 1;
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function get_next_page()
|
||||
{
|
||||
$t_page = ceil($this->total / self::PER_PAGE);
|
||||
$n_page = $this->page >= $t_page ? false : $this->page + 1;
|
||||
|
||||
return $n_page;
|
||||
}
|
||||
return $n_page;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string $a
|
||||
* @param string $b
|
||||
* @return int
|
||||
*/
|
||||
protected static function usage_orders_sort($a, $b)
|
||||
{
|
||||
$comp = strcasecmp($a['usage'], $b['usage']);
|
||||
/**
|
||||
*
|
||||
* @param string $a
|
||||
* @param string $b
|
||||
* @return int
|
||||
*/
|
||||
protected static function usage_orders_sort($a, $b)
|
||||
{
|
||||
$comp = strcasecmp($a['usage'], $b['usage']);
|
||||
|
||||
if ($comp == 0)
|
||||
if ($comp == 0)
|
||||
return 0;
|
||||
|
||||
return 0;
|
||||
return $comp < 0 ? -1 : 1;
|
||||
}
|
||||
|
||||
return $comp < 0 ? -1 : 1;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param string $a
|
||||
* @param string $b
|
||||
* @return int
|
||||
*/
|
||||
protected static function user_orders_sort($a, $b)
|
||||
{
|
||||
$comp = strcasecmp($a['usr_display'], $b['usr_display']);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string $a
|
||||
* @param string $b
|
||||
* @return int
|
||||
*/
|
||||
protected static function user_orders_sort($a, $b)
|
||||
{
|
||||
$comp = strcasecmp($a['usr_display'], $b['usr_display']);
|
||||
if ($comp == 0)
|
||||
return 0;
|
||||
|
||||
if ($comp == 0)
|
||||
return $comp < 0 ? -1 : 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
/**
|
||||
*
|
||||
* @param DateTime $a
|
||||
* @param DateTime $b
|
||||
* @return int
|
||||
*/
|
||||
protected static function date_orders_sort(DateTime $a, DateTime $b)
|
||||
{
|
||||
$comp = $b->format('U') - $a->format('U');
|
||||
|
||||
return $comp < 0 ? -1 : 1;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param DateTime $a
|
||||
* @param DateTime $b
|
||||
* @return int
|
||||
*/
|
||||
protected static function date_orders_sort(DateTime $a, DateTime $b)
|
||||
{
|
||||
$comp = $b->format('U') - $a->format('U');
|
||||
|
||||
if ($comp == 0)
|
||||
|
||||
return 0;
|
||||
|
||||
return $comp < 0 ? -1 : 1;
|
||||
}
|
||||
if ($comp == 0)
|
||||
return 0;
|
||||
|
||||
return $comp < 0 ? -1 : 1;
|
||||
}
|
||||
}
|
||||
|
@@ -18,13 +18,12 @@
|
||||
class set_result extends set_abstract
|
||||
{
|
||||
|
||||
/**
|
||||
*
|
||||
* @return set_result
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return set_result
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
@@ -18,173 +18,145 @@
|
||||
class set_selection extends set_abstract
|
||||
{
|
||||
|
||||
/**
|
||||
*
|
||||
* @return set_selection
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->elements = array();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param \Entities\Basket $basket
|
||||
* @return set_selection
|
||||
*/
|
||||
public function load_basket(\Entities\Basket $Basket)
|
||||
{
|
||||
foreach ($Basket->getElements() as $basket_element)
|
||||
/**
|
||||
*
|
||||
* @return set_selection
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->add_element($basket_element->getRecord());
|
||||
$this->elements = array();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param array $rights
|
||||
* @return set_selection
|
||||
*/
|
||||
public function grep_authorized(Array $rights = array(), Array $sbas_rights = array())
|
||||
{
|
||||
$appbox = appbox::get_instance(\bootstrap::getCore());
|
||||
$session = $appbox->get_session();
|
||||
|
||||
$user = User_Adapter::getInstance($session->get_usr_id(), $appbox);
|
||||
|
||||
$to_remove = array();
|
||||
|
||||
foreach ($this->elements as $id => $record)
|
||||
/**
|
||||
*
|
||||
* @param \Entities\Basket $basket
|
||||
* @return set_selection
|
||||
*/
|
||||
public function load_basket(\Entities\Basket $Basket)
|
||||
{
|
||||
$base_id = $record->get_base_id();
|
||||
$sbas_id = $record->get_sbas_id();
|
||||
$record_id = $record->get_record_id();
|
||||
if (!$rights)
|
||||
{
|
||||
if ($user->ACL()->has_hd_grant($record))
|
||||
{
|
||||
continue;
|
||||
foreach ($Basket->getElements() as $basket_element) {
|
||||
$this->add_element($basket_element->getRecord());
|
||||
}
|
||||
|
||||
if ($user->ACL()->has_preview_grant($record))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (!$user->ACL()->has_access_to_base($base_id))
|
||||
{
|
||||
$to_remove[] = $id;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach ($rights as $right)
|
||||
{
|
||||
if (!$user->ACL()->has_right_on_base($base_id, $right))
|
||||
{
|
||||
$to_remove[] = $id;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
foreach ($sbas_rights as $right)
|
||||
{
|
||||
if (!$user->ACL()->has_right_on_sbas($sbas_id, $right))
|
||||
{
|
||||
$to_remove[] = $id;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$connsbas = $record->get_databox()->get_connection();
|
||||
/**
|
||||
*
|
||||
* @param array $rights
|
||||
* @return set_selection
|
||||
*/
|
||||
public function grep_authorized(Array $rights = array(), Array $sbas_rights = array())
|
||||
{
|
||||
$appbox = appbox::get_instance(\bootstrap::getCore());
|
||||
$session = $appbox->get_session();
|
||||
|
||||
$sql = 'SELECT record_id
|
||||
$user = User_Adapter::getInstance($session->get_usr_id(), $appbox);
|
||||
|
||||
$to_remove = array();
|
||||
|
||||
foreach ($this->elements as $id => $record) {
|
||||
$base_id = $record->get_base_id();
|
||||
$sbas_id = $record->get_sbas_id();
|
||||
$record_id = $record->get_record_id();
|
||||
if ( ! $rights) {
|
||||
if ($user->ACL()->has_hd_grant($record)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($user->ACL()->has_preview_grant($record)) {
|
||||
continue;
|
||||
}
|
||||
if ( ! $user->ACL()->has_access_to_base($base_id)) {
|
||||
$to_remove[] = $id;
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
foreach ($rights as $right) {
|
||||
if ( ! $user->ACL()->has_right_on_base($base_id, $right)) {
|
||||
$to_remove[] = $id;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
foreach ($sbas_rights as $right) {
|
||||
if ( ! $user->ACL()->has_right_on_sbas($sbas_id, $right)) {
|
||||
$to_remove[] = $id;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$connsbas = $record->get_databox()->get_connection();
|
||||
|
||||
$sql = 'SELECT record_id
|
||||
FROM record
|
||||
WHERE ((status ^ ' . $user->ACL()->get_mask_xor($base_id) . ')
|
||||
& ' . $user->ACL()->get_mask_and($base_id) . ')=0
|
||||
AND record_id = :record_id';
|
||||
|
||||
$stmt = $connsbas->prepare($sql);
|
||||
$stmt->execute(array(':record_id' => $record_id));
|
||||
$num_rows = $stmt->rowCount();
|
||||
$stmt->closeCursor();
|
||||
$stmt = $connsbas->prepare($sql);
|
||||
$stmt->execute(array(':record_id' => $record_id));
|
||||
$num_rows = $stmt->rowCount();
|
||||
$stmt->closeCursor();
|
||||
|
||||
if ($num_rows == 0)
|
||||
{
|
||||
$to_remove[] = $id;
|
||||
if ($num_rows == 0) {
|
||||
$to_remove[] = $id;
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
|
||||
}
|
||||
}
|
||||
foreach ($to_remove as $id) {
|
||||
unset($this->elements[$id]);
|
||||
}
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
foreach ($to_remove as $id)
|
||||
|
||||
/**
|
||||
*
|
||||
* @param array $lst
|
||||
* @return set_selection
|
||||
*/
|
||||
public function load_list(Array $lst, $flatten_groupings = false)
|
||||
{
|
||||
unset($this->elements[$id]);
|
||||
foreach ($lst as $basrec) {
|
||||
$basrec = explode('_', $basrec);
|
||||
if (count($basrec) == 2) {
|
||||
try {
|
||||
$record = new record_adapter((int) $basrec[0], (int) $basrec[1], count($this->elements));
|
||||
} catch (Exception $e) {
|
||||
continue;
|
||||
}
|
||||
if ($record->is_grouping() && $flatten_groupings === true) {
|
||||
foreach ($record->get_children() as $rec) {
|
||||
$this->add_element($rec);
|
||||
}
|
||||
} else {
|
||||
$this->add_element($record);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param array $lst
|
||||
* @return set_selection
|
||||
*/
|
||||
public function load_list(Array $lst, $flatten_groupings = false)
|
||||
{
|
||||
foreach ($lst as $basrec)
|
||||
/**
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function get_distinct_sbas_ids()
|
||||
{
|
||||
$basrec = explode('_', $basrec);
|
||||
if (count($basrec) == 2)
|
||||
{
|
||||
try
|
||||
{
|
||||
$record = new record_adapter((int) $basrec[0], (int) $basrec[1], count($this->elements));
|
||||
$ret = array();
|
||||
foreach ($this->elements as $record) {
|
||||
$sbas_id = phrasea::sbasFromBas($record->get_base_id());
|
||||
$ret[$sbas_id] = $sbas_id;
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if ($record->is_grouping() && $flatten_groupings === true)
|
||||
{
|
||||
foreach ($record->get_children() as $rec)
|
||||
{
|
||||
$this->add_element($rec);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->add_element($record);
|
||||
}
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function get_distinct_sbas_ids()
|
||||
{
|
||||
$ret = array();
|
||||
foreach ($this->elements as $record)
|
||||
{
|
||||
$sbas_id = phrasea::sbasFromBas($record->get_base_id());
|
||||
$ret[$sbas_id] = $sbas_id;
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user