Skip to content
Snippets Groups Projects
Commit 60aa363a authored by Laurent Destailleur's avatar Laurent Destailleur
Browse files

Ergo: Add option "MAIN_DISABLEDRAFTSTATUS" to reduce nb of clicks

parent a9a195d2
No related branches found
No related tags found
No related merge requests found
......@@ -113,10 +113,10 @@ class RemiseCheque extends CommonObject
}
/**
* \brief Create a receipt to send cheques
* \param user Utilisateur qui effectue l'operation
* \param account_id Compte bancaire concerne
* \return int <0 if KO, >0 if OK
* Create a receipt to send cheques
* @param user Utilisateur qui effectue l'operation
* @param account_id Compte bancaire concerne
* @return int <0 if KO, >0 if OK
*/
function create($user, $account_id)
{
......@@ -125,6 +125,8 @@ class RemiseCheque extends CommonObject
$this->errno = 0;
$this->id = 0;
$now=dol_now();
$this->db->begin();
$sql = "INSERT INTO ".MAIN_DB_PREFIX."bordereau_cheque (";
......@@ -132,17 +134,19 @@ class RemiseCheque extends CommonObject
$sql.= ", date_bordereau";
$sql.= ", fk_user_author";
$sql.= ", fk_bank_account";
$sql.= ", statut";
$sql.= ", amount";
$sql.= ", number";
$sql.= ", entity";
$sql.= ", nbcheque";
$sql.= ") VALUES (";
$sql.= $this->db->idate(mktime());
$sql.= ", ".$this->db->idate(mktime());
$sql.= $this->db->idate($now);
$sql.= ", ".$this->db->idate($now);
$sql.= ", ".$user->id;
$sql.= ", ".$account_id;
$sql.= ", 0";
$sql.= ", 0";
$sql.= ", 0";
$sql.= ", ".$conf->entity;
$sql.= ", 0";
$sql.= ")";
......@@ -155,7 +159,7 @@ class RemiseCheque extends CommonObject
if ($this->id == 0)
{
$this->errno = -1024;
dol_syslog("Remisecheque::Create Erreur Lecture ID ($this->errno)", LOG_ERR);
dol_syslog("Remisecheque::Create Error read id ".$this->errno, LOG_ERR);
}
if ($this->id > 0 && $this->errno == 0)
......@@ -169,7 +173,7 @@ class RemiseCheque extends CommonObject
if (! $resql)
{
$this->errno = -1025;
dol_syslog("RemiseCheque::Create ERREUR UPDATE ($this->errno)", LOG_ERR);
dol_syslog("RemiseCheque::Create Error update ".$this->errno, LOG_ERR);
}
}
......@@ -197,7 +201,7 @@ class RemiseCheque extends CommonObject
else
{
$this->errno = -1026;
dol_syslog("RemiseCheque::Create Error ($this->errno)", LOG_ERR);
dol_syslog("RemiseCheque::Create Error ".$this->errno, LOG_ERR);
}
}
......@@ -214,7 +218,7 @@ class RemiseCheque extends CommonObject
if (!$resql)
{
$this->errno = -18;
dol_syslog("RemiseCheque::Create Error update bank ($this->errno)", LOG_ERR);
dol_syslog("RemiseCheque::Create Error update bank ".$this->errno, LOG_ERR);
}
}
}
......@@ -224,31 +228,34 @@ class RemiseCheque extends CommonObject
if ($this->updateAmount() <> 0)
{
$this->errno = -1027;
dol_syslog("RemiseCheque::Create ERREUR ($this->errno)");
dol_syslog("RemiseCheque::Create Error update amount ".$this->errno, LOG_ERR);
}
}
}
else
{
$result = -1;
$this->errno = -1;
$this->error=$this->db->lasterror();
$this->errno=$this->db->lasterrno();
dol_syslog("RemiseCheque::Create Erreur $result INSERT Mysql");
dol_syslog("RemiseCheque::Create Error ".$this->error, LOG_ERR);
}
if (! $this->errno && ! empty($conf->global->MAIN_DISABLEDRAFTSTATUS))
{
$res=$this->validate($user);
//if ($res < 0) $error++;
}
if ($this->errno == 0)
{
$this->db->commit();
return $this->id;
}
else
{
$this->db->rollback();
dol_syslog("RemiseCheque::Create ROLLBACK ($this->errno)");
return $this->errno;
}
if (! $this->errno)
{
$this->db->commit();
return $this->id;
}
else
{
$this->db->rollback();
return $this->errno;
}
}
/**
......@@ -306,8 +313,9 @@ class RemiseCheque extends CommonObject
}
/**
* Validate receipt
* @param user User
* Validate a receipt
* @param user User
* @return int <0 if KO, >0 if OK
*/
function validate($user)
{
......@@ -317,13 +325,12 @@ class RemiseCheque extends CommonObject
$this->db->begin();
$num=$this->getNextNumber();
$numref=$this->getNextNumber();
if ($this->errno == 0 && $num)
if ($this->errno == 0 && $numref)
{
$sql = "UPDATE ".MAIN_DB_PREFIX."bordereau_cheque";
$sql.= " SET statut = 1";
$sql.= ", number = '".$num."'";
$sql.= " SET statut = 1, number = '".$numref."'";
$sql.= " WHERE rowid = ".$this->id;
$sql.= " AND entity = ".$conf->entity;
$sql.= " AND statut = 0";
......@@ -336,6 +343,7 @@ class RemiseCheque extends CommonObject
if ($num == 1)
{
$this->number = $numref;
$this->statut = 1;
}
else
......@@ -355,14 +363,14 @@ class RemiseCheque extends CommonObject
if ($this->errno == 0)
{
$this->db->commit();
return 1;
}
else
{
$this->db->rollback();
dol_syslog("RemiseCheque::Validate ".$this->errno, LOG_ERR);
return $this->errno;
}
return $this->errno;
}
......@@ -446,10 +454,10 @@ class RemiseCheque extends CommonObject
/**
* \brief Build document
* \param model Model name
* \param outputlangs Object langs
* \return int <0 if KO, >0 if OK
* Build document
* @param model Model name
* @param outputlangs Object langs
* @return int <0 if KO, >0 if OK
*/
function generatePdf($model='blochet', $outputlangs)
{
......@@ -457,7 +465,7 @@ class RemiseCheque extends CommonObject
if (empty($model)) $model='blochet';
dol_syslog("RemiseCheque::generatePdf model=".$model, LOG_DEBUG);
dol_syslog("RemiseCheque::generatePdf model=".$model." id=".$this->id, LOG_DEBUG);
$dir=DOL_DOCUMENT_ROOT ."/includes/modules/cheque/pdf/";
......@@ -469,7 +477,7 @@ class RemiseCheque extends CommonObject
require_once($dir.$file);
$classname='BordereauCheque'.ucfirst($model);
$pdf = new $classname($db);
$docmodel = new $classname($db);
$sql = "SELECT b.banque, b.emetteur, b.amount, b.num_chq";
$sql.= " FROM ".MAIN_DB_PREFIX."bank as b";
......@@ -488,27 +496,27 @@ class RemiseCheque extends CommonObject
$i = 0;
while ( $objp = $this->db->fetch_object($result) )
{
$pdf->lines[$i]->bank_chq = $objp->banque;
$pdf->lines[$i]->emetteur_chq = $objp->emetteur;
$pdf->lines[$i]->amount_chq = $objp->amount;
$pdf->lines[$i]->num_chq = $objp->num_chq;
$docmodel->lines[$i]->bank_chq = $objp->banque;
$docmodel->lines[$i]->emetteur_chq = $objp->emetteur;
$docmodel->lines[$i]->amount_chq = $objp->amount;
$docmodel->lines[$i]->num_chq = $objp->num_chq;
$i++;
}
}
$pdf->nbcheque = $this->nbcheque;
$pdf->number = $this->number;
$pdf->amount = $this->amount;
$pdf->date = $this->date_bordereau;
$docmodel->nbcheque = $this->nbcheque;
$docmodel->number = $this->number;
$docmodel->amount = $this->amount;
$docmodel->date = $this->date_bordereau;
$account = new Account($this->db);
$account->fetch($this->account_id);
$pdf->account = &$account;
$docmodel->account = &$account;
// We save charset_output to restore it because write_file can change it if needed for
// output format that does not support UTF8.
$sav_charset_output=$outputlangs->charset_output;
$result=$pdf->write_file($conf->banque->dir_output.'/bordereau', $this->number, $outputlangs);
$result=$docmodel->write_file($conf->banque->dir_output.'/bordereau', $this->number, $outputlangs);
if ($result > 0)
{
$outputlangs->charset_output=$sav_charset_output;
......@@ -518,7 +526,7 @@ class RemiseCheque extends CommonObject
{
$outputlangs->charset_output=$sav_charset_output;
dol_syslog("Error");
dol_print_error($db,$pdf->error);
dol_print_error($db,$docmodel->error);
return 0;
}
}
......
......@@ -20,8 +20,8 @@
/**
* \file htdocs/compta/paiement/cheque/fiche.php
* \ingroup facture
* \brief Tab cheque deposit
* \ingroup bank, invoice
* \brief Page for cheque deposits
* \version $Id$
*/
......@@ -35,8 +35,8 @@ $langs->load('bills');
$langs->load('banks');
$langs->load('companies');
$id = isset($_REQUEST["id"])?$_REQUEST["id"]:'';
$ref= isset($_REQUEST["ref"])?$_REQUEST["ref"]:'';
$id = GETPOST("id");
$ref= GETPOST("ref");
// Security check
$fieldid = isset($_GET["ref"])?'number':'rowid';
......@@ -88,8 +88,24 @@ if ($_GET['action'] == 'create' && $_GET["accountid"] > 0 && $user->rights->banq
$result = $remisecheque->create($user, $_GET["accountid"]);
if ($result > 0)
{
Header("Location: ".$_SERVER["PHP_SELF"]."?id=".$remisecheque->id);
exit;
if ($remisecheque->statut == 1) // If statut is validated, we build doc
{
$remisecheque->fetch($remisecheque->id); // To force to reload all properties in correct property name
// Define output language
$outputlangs = $langs;
$newlang='';
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id'])) $newlang=$_REQUEST['lang_id'];
//if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang=$object->client->default_lang;
if (! empty($newlang))
{
$outputlangs = new Translate("",$conf);
$outputlangs->setDefaultLang($newlang);
}
$result = $remisecheque->generatePdf($_POST["model"], $outputlangs);
}
Header("Location: ".$_SERVER["PHP_SELF"]."?id=".$remisecheque->id);
exit;
}
else
{
......@@ -136,7 +152,19 @@ if ($_REQUEST['action'] == 'confirm_valide' && $_REQUEST['confirm'] == 'yes' &&
$result = $remisecheque->validate($user);
if ($result >= 0)
{
Header("Location: ".$_SERVER["PHP_SELF"]."?id=".$remisecheque->id);
// Define output language
$outputlangs = $langs;
$newlang='';
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id'])) $newlang=$_REQUEST['lang_id'];
//if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang=$object->client->default_lang;
if (! empty($newlang))
{
$outputlangs = new Translate("",$conf);
$outputlangs->setDefaultLang($newlang);
}
$result = $remisecheque->generatePdf($_POST["model"], $outputlangs);
Header("Location: ".$_SERVER["PHP_SELF"]."?id=".$remisecheque->id);
exit;
}
else
......@@ -155,13 +183,15 @@ if ($_POST['action'] == 'builddoc' && $user->rights->banque->cheque)
$remisecheque->setDocModel($user, $_REQUEST['model']);
}*/
$outputlangs = $langs;
if (! empty($_REQUEST['lang_id']))
{
$outputlangs = new Translate("",$conf);
$outputlangs->setDefaultLang($_REQUEST['lang_id']);
}
$outputlangs = $langs;
$newlang='';
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id'])) $newlang=$_REQUEST['lang_id'];
//if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang=$object->client->default_lang;
if (! empty($newlang))
{
$outputlangs = new Translate("",$conf);
$outputlangs->setDefaultLang($newlang);
}
$result = $remisecheque->generatePdf($_POST["model"], $outputlangs);
if ($result <= 0)
{
......
......@@ -57,8 +57,8 @@ class Project extends CommonObject
var $statuts;
/**
* \brief Constructeur de la classe
* \param DB handler acces base de donnees
* Constructor of class
* @param DB Database access handler
*/
function Project($DB)
{
......@@ -70,12 +70,15 @@ class Project extends CommonObject
}
/**
* \brief Create a project into database
* \param user Id utilisateur qui cree
* \return int <0 si ko, id du projet cree si ok
* Create a project into database
* @param user User making creation
* @return int <0 if KO, id of created project if OK
*/
function create($user, $notrigger=0)
{
global $conf;
$error=0;
$ret=0;
// Check parameters
......@@ -86,12 +89,15 @@ class Project extends CommonObject
return -1;
}
$this->db->begin();
$sql = "INSERT INTO ".MAIN_DB_PREFIX."projet (";
$sql.= "ref";
$sql.= ", title";
$sql.= ", description";
$sql.= ", fk_soc";
$sql.= ", fk_user_creat";
$sql.= ", fk_statut";
$sql.= ", public";
$sql.= ", datec";
$sql.= ", dateo";
......@@ -102,6 +108,7 @@ class Project extends CommonObject
$sql.= ", '".addslashes($this->description)."'";
$sql.= ", ".($this->socid > 0?$this->socid:"null");
$sql.= ", ".$user->id;
$sql.= ", 0";
$sql.= ", ".($this->public?1:0);
$sql.= ", ".($this->datec!=''?$this->db->idate($this->datec):'null');
$sql.= ", ".($this->dateo!=''?$this->db->idate($this->dateo):'null');
......@@ -127,12 +134,28 @@ class Project extends CommonObject
}
else
{
$this->error=$this->db->lasterror();
dol_syslog("Project::Create error -2 ".$this->error, LOG_ERR);
$ret = -2;
$this->error=$this->db->lasterror();
$this->errno=$this->db->lasterrno();
dol_syslog("Project::Create error -2 ".$this->error, LOG_ERR);
$error++;
}
if (! $error && ! empty($conf->global->MAIN_DISABLEDRAFTSTATUS))
{
$res=$this->setValid($user);
if ($res < 0) $error++;
}
return $ret;
if (! $error)
{
$this->db->commit();
return $ret;
}
else
{
$this->db->rollback();
return -1;
}
}
......@@ -350,8 +373,9 @@ class Project extends CommonObject
}
/**
* \brief Supprime le projet dans la base
* \param Utilisateur
* Delete a project from database
* @param user User
* @param notrigger Disable triggers
*/
function delete($user, $notrigger=0)
{
......@@ -433,11 +457,11 @@ class Project extends CommonObject
}
/**
* \brief Validate a project
* \param user User that validate
* \return int <0 if KO, >0 if OK
* Validate a project
* @param user User that validate
* @return int <0 if KO, >0 if OK
*/
function setValid($user, $outputdir)
function setValid($user)
{
global $langs, $conf;
......@@ -485,11 +509,11 @@ class Project extends CommonObject
}
/**
* \brief Close a project
* \param user User that validate
* \return int <0 if KO, >0 if OK
* Close a project
* @param user User that validate
* @return int <0 if KO, >0 if OK
*/
function setClose($user, $outputdir)
function setClose($user)
{
global $langs, $conf;
......
......@@ -70,6 +70,10 @@ if ($_POST["action"] == 'add' && $user->rights->projet->creer)
if (! $error)
{
$error=0;
$db->begin();
$project = new Project($db);
$project->ref = $_POST["ref"];
......@@ -86,14 +90,31 @@ if ($_POST["action"] == 'add' && $user->rights->projet->creer)
{
// Add myself as project leader
$result = $project->add_contact($user->id, 'PROJECTLEADER', 'internal');
if ($result < 0)
{
$langs->load("errors");
$mesg='<div class="error">'.$langs->trans($project->error).'</div>';
$error++;
}
}
else
{
$langs->load("errors");
$mesg='<div class="error">'.$langs->trans($project->error).'</div>';
$error++;
}
if (! $error)
{
$db->commit();
Header("Location:fiche.php?id=".$project->id);
exit;
}
else
{
$langs->load("errors");
$mesg='<div class="error">'.$langs->trans($project->error).'</div>';
$db->rollback();
$_GET["action"] = 'create';
}
}
......@@ -177,7 +198,7 @@ if (GETPOST('action') == 'confirm_validate' && GETPOST('confirm') == 'yes')
$project = new Project($db);
$project->fetch(GETPOST("id"));
$result = $project->setValid($user, $conf->projet->outputdir);
$result = $project->setValid($user);
if ($result <= 0)
{
$mesg='<div class="error">'.$project->error.'</div>';
......@@ -188,7 +209,7 @@ if (GETPOST('action') == 'confirm_close' && GETPOST('confirm') == 'yes')
{
$project = new Project($db);
$project->fetch(GETPOST("id"));
$result = $project->setClose($user, $conf->projet->outputdir);
$result = $project->setClose($user);
if ($result <= 0)
{
$mesg='<div class="error">'.$project->error.'</div>';
......@@ -199,7 +220,7 @@ if (GETPOST('action') == 'confirm_reopen' && GETPOST('confirm') == 'yes')
{
$project = new Project($db);
$project->fetch(GETPOST("id"));
$result = $project->setValid($user, $conf->projet->outputdir);
$result = $project->setValid($user);
if ($result <= 0)
{
$mesg='<div class="error">'.$project->error.'</div>';
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment