*/
class workflow extends dbquery
{
/*public function load_workflow()
{
$_SESSION['workflow'] = array();
$xmlfile = simplexml_load_file("xml/workflow.xml");
$order = "";
$type = "";
$i =0;
foreach($xmlfile->WORKFLOW as $WORKFLOW)
{
$type = utf8_decode((string) $WORKFLOW->TYPE_DOC);
$_SESSION['workflow'][$type] = array();
foreach($WORKFLOW->SEQUENCE as $SEQUENCE)
{
$order = utf8_decode((string) $SEQUENCE->ORDER);
$_SESSION['workflow'][$type][$order] = array(
"LABEL" => utf8_decode((string) $SEQUENCE->LABEL),
"STATUS_PREV" => utf8_decode((string) $SEQUENCE->STATUS_PREV),
"STATUS_NEXT" => utf8_decode((string) $SEQUENCE->STATUS_NEXT));
}
$i++;
}
}*/
public function loardWorkflowParameters()
{
if(!isset($_SESSION['workflow']) || empty($_SESSION['workflow'])){
$xmlWorkflow = simplexml_load_file("xml/workflow.xml");
$_SESSION['workflow']['doctypes'] = array();
foreach($xmlWorkflow->DOCTYPE as $docType){
$_SESSION['workflow']['doctypes'][] = (string)$docType->ID;
}
}
}
public function type_have_workflow($type)
{
$wf = false;
if(isset($_SESSION['workflow']['doctypes']) && (count($_SESSION['workflow']['doctypes']) > 0) && in_array($type, $_SESSION['workflow']['doctypes'])){
$wf = true;
}
return $wf;
}
public function have_tiket($res_id)
{
$this->connect();
$this->query("select * from ".$_SESSION['tablename']['tickets']." where RES_ID = '".$res_id."'");
if($this->nb_result() == 0)
{
return false;
}
else
{
$line = $this->fetch_object();
return $line->TICKET_ID;
}
}
/**
* Loard the amounts of a ticket
*
* @param int $theTicket the ID if ticket
*/
public function loardTicketAmounts($theTicket)
{
$_SESSION['ticket']['amounts'] = array();
$this->connect();
$this->query("SELECT * FROM ".$_SESSION['tablename']['tickets_amounts']." WHERE TICKET_ID = '".$theTicket."'");
while($line = $this->fetch_object()){
$_SESSION['ticket']['amounts'][$line->NUM_MANDATE] = array('date'=>$this->format_date($line->DATE_MANDATE), 'amount'=>$line->AMOUNT);
}
}
/**
* Form to add or modify schedule
*
* @param string $mode up or add
* @param integer $id schedule identifier, empty by default
*/
public function formTicket($mode, $id = "")
{
$state = true;
if($mode == "up")
{
if(empty($_SESSION['error']))
{
$this->connect();
$this->query("SELECT * FROM ".$_SESSION['tablename']['tickets']." WHERE TICKET_ID = '".$id."'");
if($this->nb_result() == 0)
{
$_SESSION['error'] = _TICKET.' '._UNKNOWN;
$state = false;
}
else
{
$line = $this->fetch_object();
$_SESSION['ticket']['ticketId'] = $line->TICKET_ID;
$_SESSION['ticket']['resId'] = $line->RES_ID;
$_SESSION['ticket']['marcketNum'] = $line->MARKET_NUM;
$_SESSION['ticket']['isAdapted'] = $line->IS_ADAPTED;
$_SESSION['ticket']['isFormalized'] = $line->IS_FORMALIZED;
$_SESSION['ticket']['credit'] = $line->CREDIT_ACCOUNT;
$_SESSION['ticket']['inventory'] = $line->INVENTORY_IDENT;
$_SESSION['ticket']['imputation'] = $line->IMPUTATION;
$_SESSION['ticket']['marketSubject'] = $line->MARKET_SUBJECT;
$_SESSION['ticket']['holder'] = $line->HOLDER;
$_SESSION['ticket']['amountMandate'] = $line->AMOUNT_TO_MANDATE;
$_SESSION['ticket']['engagement'] = $line->ENGAGEMENT;
$_SESSION['ticket']['totalMarket'] = $line->TOTAL_MARKET;
$_SESSION['ticket']['piece'] = $line->PIECE;
$_SESSION['ticket']['exercice'] = $line->EXERCICE;
// chargement des montants
$this->loardTicketAmounts($_SESSION['ticket']['ticketId']);
}
}
echo '
'._TICKET_MODIFICATION.'
';
}
elseif($mode == "add"){
$this->clearticketsinfos();
echo ''._TICKET_ADDITION.'
';
}
if($state == false)
{
echo "
"._TICKET.' '._UNKNOWN."
";
}
else
{
?>
wash($_POST['id'], "nick", _TICKET_ID);
}
$_SESSION['ticket']['isAdapted'] = 'N';
$_SESSION['ticket']['isFormalized'] = 'N';
if($_POST['marche'] == '1'){
$_SESSION['ticket']['marcketNum'] = $_POST['numFormalise'];
$_SESSION['ticket']['isFormalized'] = 'Y';
}
elseif($_POST['marche'] == '0'){
$_SESSION['ticket']['marcketNum'] = $_POST['numAdapte'];
$_SESSION['ticket']['isAdapted'] = 'Y';
}
$_SESSION['ticket']['resId'] = $_POST['resId'];
$_SESSION['ticket']['credit'] = $_POST['compte'];
$_SESSION['ticket']['inventory'] = $_POST['IdentInventaire'];
$_SESSION['ticket']['imputation'] = $_POST['imputation'];
$_SESSION['ticket']['marketSubject'] = $_POST['objetMarche'];
$_SESSION['ticket']['holder'] = $_POST['titulaire'];
$_SESSION['ticket']['amountMandate'] = $_POST['montantMandater'];
$_SESSION['ticket']['engagement'] = $_POST['numEngagement'];
$_SESSION['ticket']['totalMarket'] = $_POST['montantMarche'];
$_SESSION['ticket']['piece'] = $_POST['piece'];
$_SESSION['ticket']['exercice'] = $_POST['exercice'];
}
/**
* Clear the tickets add or modification vars
*/
public function clearticketsinfos()
{
$_SESSION['ticket'] = array();
$_SESSION['ticket']['ticketId'] = '';
$_SESSION['ticket']['resId'] = '';
$_SESSION['ticket']['marcketNum'] = '';
$_SESSION['ticket']['isAdapted'] = 'N';
$_SESSION['ticket']['isFormalized'] = 'N';
$_SESSION['ticket']['credit'] = 0;
$_SESSION['ticket']['inventory'] = '';
$_SESSION['ticket']['imputation'] = '';
$_SESSION['ticket']['marketSubject'] = '';
$_SESSION['ticket']['holder'] = '';
$_SESSION['ticket']['amountMandate'] = 0;
$_SESSION['ticket']['engagement'] = '';
$_SESSION['ticket']['totalMarket'] = 0;
$_SESSION['ticket']['piece'] = '';
$_SESSION['ticket']['exercice'] = date("Y");
$_SESSION['ticket']['amounts'] = array();
}
/**
* Add ou modify ticket in the database
*
* @param string $mode up or add
*/
public function adduputicket($mode)
{
// add ou modify users in the database
$this->ticketsinfo($mode);
if(!empty($_SESSION['error']))
{
if($mode == "up")
{
header("location: index.php?page=ticket_up&id=".$_SESSION['ticket']['ticketId']);
}
elseif($mode == "add")
{
header("location: index.php?page=ticket_add");
exit;
}
}
else
{
$this->connect();
if($mode == "add")
{
$this->query("INSERT INTO `".$_SESSION['tablename']['tickets']."` ( `RES_ID`, `MARKET_NUM`, `IS_ADAPTED`, `IS_FORMALIZED`, `CREATION_DATE`, `CREDIT_ACCOUNT` , `INVENTORY_IDENT` , `IMPUTATION` , `MARKET_SUBJECT` , `HOLDER` ,`AMOUNT_TO_MANDATE` , `ENGAGEMENT` , `TOTAL_MARKET`, `PIECE`, `EXERCICE`) VALUES ('".$_SESSION['ticket']['resId']."', '".addslashes($_SESSION['ticket']['marcketNum'])."', '".$_SESSION['ticket']['isAdapted']."', '".$_SESSION['ticket']['isFormalized']."', '".date("Y-m-d H:i:s")."', '".addslashes($_SESSION['ticket']['credit'])."', '".addslashes($_SESSION['ticket']['inventory'])."', '".addslashes($_SESSION['ticket']['imputation'])."', '".addslashes($_SESSION['ticket']['marketSubject'])."', '".addslashes($_SESSION['ticket']['holder'])."', '".addslashes($_SESSION['ticket']['amountMandate'])."','".addslashes($_SESSION['ticket']['engagement'])."', '".addslashes($_SESSION['ticket']['totalMarket'])."', '".addslashes($_SESSION['ticket']['piece'])."', '".$_SESSION['ticket']['exercice']."')");
$theTicket = mysql_insert_id();
foreach ($_SESSION['ticket']['amounts'] as $key => $value) {
$this->query("INSERT INTO `".$_SESSION['tablename']['tickets_amounts']."` ( `TICKET_ID`, `NUM_MANDATE`, `DATE_MANDATE`, `AMOUNT`)
VALUES ('".$theTicket."', '".$key."', '".$this->inverse_date(str_replace('/', '-', $value['date']))."', '".$value['amount']."')");
}
if($_SESSION['history']['ticketadd'] == "true")
{
require("class_history.php");
$hist = new history();
$hist->add($_SESSION['tablename']['tickets'], $theTicket,"ADD",_TICKET_ADDED." : ".addslashes($_SESSION['ticket']['marketSubject']));
}
$this->clearticketsinfos();
$_SESSION['error'] = _TICKET_ADDED;
?>
query("select RES_ID, DOCSERVER_ID, PATH, FILENAME, FORMAT FROM ".$table." where ORIGIN = ".$_SESSION['ticket']['ticketId']);
$line = $this->fetch_object();
$docserver = $line->DOCSERVER_ID;
$path = $line->PATH;
$filename = $line->FILENAME;
$format = $line->FORMAT;
$this->query("select PATH_TEMPLATE from ".$_SESSION['tablename']['docservers']." where DOCSERVER_ID = '".$docserver."'");
$line_doc = $this->fetch_object();
$docserver = $line_doc->PATH_TEMPLATE;
$file = $docserver.$path.strtolower($filename);
/*
if ($_SESSION['config']['system'] == "true")
{
$file = str_replace("#","/",$file);
}
else
{
$file = str_replace("#","\\",$file);
}
*/
$file = str_replace("#",DIRECTORY_SEPARATOR,$file);
//echo $file;
if(!empty($file) && isset($file))
{
//unlink($file);
}
$this->query("Delete from ".$table." where STATUS = 'REP' and ORIGIN = '".$_SESSION['ticket']['ticketId']."'");
//$this->show();
$this->query("update `".$_SESSION['tablename']['tickets']."` set `MARKET_NUM` = '".addslashes($_SESSION['ticket']['marcketNum'])."', `IS_ADAPTED` = '".$_SESSION['ticket']['isAdapted']."', `IS_FORMALIZED` = '".$_SESSION['ticket']['isFormalized']."', `CREDIT_ACCOUNT` = '".addslashes($_SESSION['ticket']['credit'])."', `INVENTORY_IDENT` = '".addslashes($_SESSION['ticket']['inventory'])."', `IMPUTATION` = '".addslashes($_SESSION['ticket']['imputation'])."', `MARKET_SUBJECT` = '".addslashes($_SESSION['ticket']['marketSubject'])."' , `HOLDER` = '".addslashes($_SESSION['ticket']['holder'])."', `AMOUNT_TO_MANDATE` = '".addslashes($_SESSION['ticket']['amountMandate'])."', `ENGAGEMENT` = '".addslashes($_SESSION['ticket']['engagement'])."', `TOTAL_MARKET` = '".addslashes($_SESSION['ticket']['totalMarket'])."', `PIECE` = '".addslashes($_SESSION['ticket']['piece'])."', `EXERCICE` = '".$_SESSION['ticket']['exercice']."' where TICKET_ID = '".$_SESSION['ticket']['ticketId']."'");
$theTicket = $_SESSION['ticket']['ticketId'];
$this->query("DELETE FROM `".$_SESSION['tablename']['tickets_amounts']."` WHERE TICKET_ID = '".$theTicket."' ");
foreach ($_SESSION['ticket']['amounts'] as $key => $value) {
$this->query("INSERT INTO `".$_SESSION['tablename']['tickets_amounts']."` ( `TICKET_ID`, `NUM_MANDATE`, `DATE_MANDATE`, `AMOUNT`)
VALUES ('".$theTicket."', '".$key."', '".$this->inverse_date(str_replace('/', '-', $value['date']))."', '".$value['amount']."')");
}
if($_SESSION['history']['ticketup'] == "true")
{
require("class_history.php");
$hist = new history();
$hist->add($_SESSION['tablename']['tickets'], $_SESSION['ticket']['ticketId'],"UP",_TICKET_UPDATE." : ".addslashes($_SESSION['ticket']['marketSubject'])." (".$_SESSION['ticket']['ticketId'].")");
}
$this->clearticketsinfos();
$_SESSION['error'] = _TICKET_UPDATED;
?>