Fix: bug #18063 : Cannot create trip

This commit is contained in:
Laurent Destailleur 2006-11-11 01:50:38 +00:00
parent 9f81652147
commit 35b233b45f
2 changed files with 190 additions and 158 deletions

View File

@ -1,6 +1,6 @@
<?php <?php
/* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2006 Laurent Destailleur <eldy@users.sourceforge.net>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -20,114 +20,145 @@
* $Source$ * $Source$
*/ */
/**
\file htdocs/compta/deplacement/deplacement.class.php
\ingroup deplacement
\brief Fichier de la classe des deplacements
\version $Revision$
*/
class Deplacement class Deplacement
{ {
var $db; var $db;
var $id; var $id;
var $user; var $user;
var $km; var $km;
var $note; var $note;
/* /*
* Initialistation automatique de la classe * Initialistation automatique de la classe
*/ */
function Deplacement($DB) function Deplacement($DB)
{
$this->db = $DB;
return 1;
}
/*
*
*/
function create($user)
{
$sql = "INSERT INTO ".MAIN_DB_PREFIX."deplacement (datec, fk_user_author) VALUES (now(), $user->id)";
$result = $this->db->query($sql);
if ($result)
{ {
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."deplacement"); $this->db = $DB;
if ( $this->update($user) )
{ return 1;
return $this->id;
}
} }
}
/*
*
*/
function update($user)
{
if (strlen($this->km)==0)
$this->km = 0;
$sql = "UPDATE ".MAIN_DB_PREFIX."deplacement "; /*
$sql .= " SET km = $this->km"; *
$sql .= " , dated = '".$this->db->idate($this->date)."'"; */
$sql .= " , fk_user = $this->userid"; function create($user)
$sql .= " , fk_soc = $this->socid";
$sql .= " WHERE rowid = ".$this->id;
$result = $this->db->query($sql);
if ($result)
{ {
return 1; $this->db->begin();
$sql = "INSERT INTO ".MAIN_DB_PREFIX."deplacement (datec, fk_user_author) VALUES (now(), $user->id)";
$result = $this->db->query($sql);
if ($result)
{
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."deplacement");
$result=$this->update($user);
if ($result > 0)
{
$this->db->commit();
return $this->id;
}
else
{
$this->db->rollback();
return $result;
}
}
else
{
$this->error=$this->db->error()." sql=".$sql;
$this->db->rollback();
return -1;
}
} }
else
/*
*
*/
function update($user)
{ {
print $this->db->error(); global $langs;
print "<br>".$sql;
return 0; if (! is_numeric($this->km)) $this->km = 0;
if (! $this->socid)
{
$this->error=$langs->trans("ErrorSocidNotDefined");
return -1;
}
$sql = "UPDATE ".MAIN_DB_PREFIX."deplacement ";
$sql .= " SET km = ".$this->km;
$sql .= " , dated = '".$this->db->idate($this->date)."'";
$sql .= " , fk_user = ".$this->userid;
$sql .= " , fk_soc = ".$this->socid;
$sql .= " WHERE rowid = ".$this->id;
$result = $this->db->query($sql);
if ($result)
{
return 1;
}
else
{
$this->error=$this->db->error();
return -1;
}
} }
}
/*
*
*/
function fetch ($id)
{
$sql = "SELECT fk_user, km, fk_soc,".$this->db->pdate("dated")." as dated";
$sql .= " FROM ".MAIN_DB_PREFIX."deplacement WHERE rowid = $id";
$result = $this->db->query($sql) ; /*
*
if ( $result ) */
function fetch ($id)
{ {
$result = $this->db->fetch_array(); $sql = "SELECT fk_user, km, fk_soc,".$this->db->pdate("dated")." as dated";
$sql .= " FROM ".MAIN_DB_PREFIX."deplacement WHERE rowid = $id";
$this->id = $id; $result = $this->db->query($sql) ;
$this->date = $result["dated"]; if ( $result )
$this->userid = $result["fk_user"]; {
$this->socid = $result["fk_soc"]; $result = $this->db->fetch_array();
$this->km = $result["km"];
return 1; $this->id = $id;
$this->date = $result["dated"];
$this->userid = $result["fk_user"];
$this->socid = $result["fk_soc"];
$this->km = $result["km"];
return 1;
}
else
{
$this->error=$this->db->error();
return -1;
}
} }
else {
print $this->db->error();
print "<br>".$sql;
}
}
/*
*
*/
function delete($id)
{
$sql = "DELETE FROM ".MAIN_DB_PREFIX."deplacement WHERE rowid = $id";
$result = $this->db->query($sql); /*
if ($result) *
*/
function delete($id)
{ {
return 1; $sql = "DELETE FROM ".MAIN_DB_PREFIX."deplacement WHERE rowid = ".$id;
$result = $this->db->query($sql);
if ($result)
{
return 1;
}
else
{
$this->error=$this->db->error();
return -1;
}
} }
else
{
return 0;
}
}
/*
*
*/
} }

View File

@ -1,6 +1,6 @@
<?php <?php
/* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2006 Laurent Destailleur <eldy@users.sourceforge.net>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -40,59 +40,60 @@ $mesg = '';
*/ */
if ($_POST["action"] == 'confirm_delete' && $_POST["confirm"] == "yes") if ($_POST["action"] == 'confirm_delete' && $_POST["confirm"] == "yes")
{ {
$deplacement = new Deplacement($db); $deplacement = new Deplacement($db);
$deplacement->delete($_GET["id"]); $deplacement->delete($_GET["id"]);
Header("Location: index.php"); Header("Location: index.php");
exit;
} }
if ($_POST["action"] == 'add' && $_POST["cancel"] <> $langs->trans("Cancel")) if ($_POST["action"] == 'add' && $_POST["cancel"] <> $langs->trans("Cancel"))
{ {
$deplacement = new Deplacement($db); $deplacement = new Deplacement($db);
$deplacement->date = mktime(12, 1 , 1, $deplacement->date = mktime(12, 1 , 1,
$_POST["remonth"], $_POST["remonth"],
$_POST["reday"], $_POST["reday"],
$_POST["reyear"]); $_POST["reyear"]);
$deplacement->km = $_POST["km"];
$deplacement->socid = $_POST["socid"];
$deplacement->userid = $user->id; //$_POST["km"];
$id = $deplacement->create($user);
if ($id) $deplacement->km = $_POST["km"];
{ $deplacement->socid = $_POST["socid"];
Header ( "Location: fiche.php?id=".$id); $deplacement->userid = $user->id; //$_POST["km"];
exit; $id = $deplacement->create($user);
}
else if ($id > 0)
{ {
dolibarr_print_error($db); Header ( "Location: fiche.php?id=".$id);
} exit;
}
else
{
dolibarr_print_error($db,$deplacement->error);
}
} }
if ($_POST["action"] == 'update' && $_POST["cancel"] <> $langs->trans("Cancel")) if ($_POST["action"] == 'update' && $_POST["cancel"] <> $langs->trans("Cancel"))
{ {
$deplacement = new Deplacement($db); $deplacement = new Deplacement($db);
$result = $deplacement->fetch($_POST["id"]); $result = $deplacement->fetch($_POST["id"]);
$deplacement->date = mktime(12, 1 , 1, $deplacement->date = mktime(12, 1 , 1,
$_POST["remonth"], $_POST["remonth"],
$_POST["reday"], $_POST["reday"],
$_POST["reyear"]); $_POST["reyear"]);
$deplacement->km = $_POST["km"]; $deplacement->km = $_POST["km"];
$result = $deplacement->update($user); $result = $deplacement->update($user);
if ($result > 0) if ($result > 0)
{ {
Header ( "Location: fiche.php?id=".$_POST["id"]); Header ( "Location: fiche.php?id=".$_POST["id"]);
exit; exit;
} }
else else
{ {
print $mesg=$langs->trans("ErrorUnknown"); print $mesg=$langs->trans("ErrorUnknown");
} }
} }
@ -110,9 +111,9 @@ if ($_GET["action"] == 'create')
print '<input type="hidden" name="action" value="add">'; print '<input type="hidden" name="action" value="add">';
print_fiche_titre($langs->trans("NewTrip")); print_fiche_titre($langs->trans("NewTrip"));
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
print '<tr><td width="20%">'.$langs->trans("Person").'</td><td>'.$user->fullname.'</td></tr>'; print '<tr><td width="20%">'.$langs->trans("Person").'</td><td>'.$user->fullname.'</td></tr>';
print "<tr>"; print "<tr>";
print '<td>'.$langs->trans("CompanyVisited").'</td><td>'; print '<td>'.$langs->trans("CompanyVisited").'</td><td>';
@ -125,10 +126,10 @@ if ($_GET["action"] == 'create')
print '</td></tr>'; print '</td></tr>';
print '<tr><td>'.$langs->trans("Kilometers").'</td><td><input name="km" size="10" value=""></td></tr>'; print '<tr><td>'.$langs->trans("Kilometers").'</td><td><input name="km" size="10" value=""></td></tr>';
print '<tr><td>&nbsp;</td><td><input type="submit" value="'.$langs->trans("Save").'">&nbsp;'; print '<tr><td colspan="2" align="center"><input class="button" type="submit" value="'.$langs->trans("Save").'">&nbsp;';
print '<input type="submit" name="cancel" value="'.$langs->trans("Cancel").'"></td></tr>'; print '<input class="button" type="submit" name="cancel" value="'.$langs->trans("Cancel").'"></td></tr>';
print '</table>'; print '</table>';
print '</form>'; print '</form>';
} }
else else
{ {
@ -137,35 +138,35 @@ else
$deplacement = new Deplacement($db); $deplacement = new Deplacement($db);
$result = $deplacement->fetch($id); $result = $deplacement->fetch($id);
if ($result) if ($result)
{ {
if ($mesg) print "$mesg<br>"; if ($mesg) print "$mesg<br>";
if ($_GET["action"] == 'edit') if ($_GET["action"] == 'edit')
{ {
$h=0; $h=0;
$head[$h][0] = DOL_URL_ROOT."/compta/deplacement/fiche.php?id=$deplacement->id"; $head[$h][0] = DOL_URL_ROOT."/compta/deplacement/fiche.php?id=$deplacement->id";
$head[$h][1] = $langs->trans("TripCard"); $head[$h][1] = $langs->trans("TripCard");
dolibarr_fiche_head($head, $hselected, $langs->trans("Ref").' '.$deplacement->id); dolibarr_fiche_head($head, $hselected, $langs->trans("Ref").' '.$deplacement->id);
print "<form name='update' action=\"fiche.php\" method=\"post\">\n"; print "<form name='update' action=\"fiche.php\" method=\"post\">\n";
print '<input type="hidden" name="action" value="update">'; print '<input type="hidden" name="action" value="update">';
print '<input type="hidden" name="id" value="'.$id.'">'; print '<input type="hidden" name="id" value="'.$id.'">';
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
$soc = new Societe($db); $soc = new Societe($db);
$soc->fetch($deplacement->socid); $soc->fetch($deplacement->socid);
print '<tr><td width="20%">'.$langs->trans("Personn").'</td><td>'.$user->fullname.'</td></tr>'; print '<tr><td width="20%">'.$langs->trans("Personn").'</td><td>'.$user->fullname.'</td></tr>';
print "<tr>"; print "<tr>";
print '<td>'.$langs->trans("CompanyVisited").'</td><td>'; print '<td>'.$langs->trans("CompanyVisited").'</td><td>';
print $html->select_societes($soc->id); print $html->select_societes($soc->id);
print '</td></tr>'; print '</td></tr>';
print '<tr><td>'.$langs->trans("Date").'</td><td>'; print '<tr><td>'.$langs->trans("Date").'</td><td>';
print $html->select_date($deplacement->date,'','','','','update'); print $html->select_date($deplacement->date,'','','','','update');
print '</td></tr>'; print '</td></tr>';
@ -175,27 +176,27 @@ else
print '<input type="submit" name="cancel" class="button" value="'.$langs->trans("Cancel").'"></td></tr>'; print '<input type="submit" name="cancel" class="button" value="'.$langs->trans("Cancel").'"></td></tr>';
print '</table>'; print '</table>';
print '</form>'; print '</form>';
print '</div>'; print '</div>';
} }
else else
{ {
$h=0; $h=0;
$head[$h][0] = DOL_URL_ROOT."/compta/deplacement/fiche.php?id=$deplacement->id"; $head[$h][0] = DOL_URL_ROOT."/compta/deplacement/fiche.php?id=$deplacement->id";
$head[$h][1] = $langs->trans("TripCard"); $head[$h][1] = $langs->trans("TripCard");
dolibarr_fiche_head($head, $hselected, $langs->trans("Ref").' '.$deplacement->id); dolibarr_fiche_head($head, $hselected, $langs->trans("Ref").' '.$deplacement->id);
/* /*
* Confirmation de la suppression du déplacement * Confirmation de la suppression du déplacement
*/ */
if ($_GET["action"] == 'delete') if ($_GET["action"] == 'delete')
{ {
$html = new Form($db); $html = new Form($db);
$html->form_confirm("fiche.php?id=".$id,$langs->trans("DeleteTrip"),$langs->trans("ConfirmDeleteTrip"),"confirm_delete"); $html->form_confirm("fiche.php?id=".$id,$langs->trans("DeleteTrip"),$langs->trans("ConfirmDeleteTrip"),"confirm_delete");
print '<br>'; print '<br>';
} }
@ -208,12 +209,12 @@ else
print '<tr><td>'.$langs->trans("Date").'</td><td>'; print '<tr><td>'.$langs->trans("Date").'</td><td>';
print dolibarr_print_date($deplacement->date); print dolibarr_print_date($deplacement->date);
print '</td></tr>'; print '</td></tr>';
print '<tr><td>'.$langs->trans("Kilometers").'</td><td>'.$deplacement->km.'</td></tr>'; print '<tr><td>'.$langs->trans("Kilometers").'</td><td>'.$deplacement->km.'</td></tr>';
print "</table>"; print "</table>";
print '</div>'; print '</div>';
} }
} }
else else
{ {