Ajout: possibilit d'ajouter un produit dans une commande partir de la fiche produit

This commit is contained in:
Regis Houssin 2006-02-19 13:23:10 +00:00
parent 70f61d89ef
commit 79fbc9b244
4 changed files with 133 additions and 1 deletions

View File

@ -70,7 +70,7 @@ class modFournisseur extends DolibarrModules
$this->const[1][0] = "COMMANDE_SUPPLIER_ADDON";
$this->const[1][1] = "chaine";
$this->const[1][2] = "diamant";
$this->const[1][2] = "emeraude";
// Dépendances
$this->depends = array("modSociete");

View File

@ -31,6 +31,12 @@ ValidateOrder=Validate order
DeleteOrder=Delete order
CancelOrder=Cancel order
AddOrder=Add order
AddToMyOrders=Add to my orders
AddToOtherOrders=Add to other orders
ShowOrder=Show order
NoOpenedOrders=No opened orders
NoOtherOpenedOrders=No other opened orders
OtherOrders=Other orders
LastOrders=Last %s orders
LastModifiedOrders=Last %s modified orders
LastClosedOrders=Last %s closed orders

View File

@ -31,6 +31,12 @@ ValidateOrder=Valider la commande
DeleteOrder=Supprimer la commande
CancelOrder=Annuler la commande
AddOrder=Créer commande
AddToMyOrders=Ajouter à mes commandes
AddToOtherOrders=Ajouter aux autres commandes
ShowOrder=Afficher commande
NoOpenedOrders=Pas de commande brouillon
NoOtherOpenedOrders=Pas d'autre commande brouillon
OtherOrders=Autres commandes
LastOrders=Les %s dernières commandes
LastModifiedOrders=Les %s dernières commandes modifiées
LastClosedOrders=Les %s dernières commandes cloturées

View File

@ -34,6 +34,7 @@ require("./pre.inc.php");
require_once(DOL_DOCUMENT_ROOT."/propal.class.php");
require_once(DOL_DOCUMENT_ROOT."/facture.class.php");
require_once(DOL_DOCUMENT_ROOT."/product.class.php");
require_once(DOL_DOCUMENT_ROOT."/commande/commande.class.php");
$langs->load("bills");
@ -199,6 +200,9 @@ if ($_GET["action"] == 'clone' && $user->rights->produit->creer)
}
}
/*
* Ajout du produit dans une propal
*/
if ($_POST["action"] == 'addinpropal')
{
$propal = New Propal($db);
@ -214,6 +218,30 @@ if ($_POST["action"] == 'addinpropal')
exit;
}
/*
* Ajout du produit dans une commande
*/
if ($_POST["action"] == 'addincommande')
{
$commande = New Commande($db);
$commande->fetch($_POST["commandid"]);
$result = $commande->addline(addslashes($product->libelle),
addslashes($product->product_desc),
$product->price,
$_POST["qty"],
$product->tva_tx,
$product->id,
$_POST["remise_percent"]);
if ( $result < 0)
{
$mesg = $langs->trans("ErrorUnknown").": $result";
}
Header("Location: ../commande/fiche.php?id=".$commande->id);
exit;
}
/*
* Ajout du produit dans une facture
*/
@ -228,6 +256,7 @@ if ($_POST["action"] == 'addinfacture' && $user->rights->facture->creer)
$facture->addline($_POST["factureid"],
addslashes($product->libelle),
addslashes($product->product_desc),
$product->price,
$_POST["qty"],
$product->tva_tx,
@ -764,6 +793,97 @@ if ($_GET["id"] && $_GET["action"] == '' && $product->envente)
print '</tr>';
}
$commande = New Commande($db);
print '<table width="100%" class="noborder">';
// Commande
if($user->rights->commande->creer)
{
$langs->load("orders");
print '<tr><td width="50%" valign="top">';
print_titre($langs->trans("AddToMyOrders")) . '</td>';
print '<td width="50%" valign="top">';
print_titre($langs->trans("AddToOtherOrders")) . '</td>';
print '</tr>';
// Liste de "Mes commandes"
print '<tr><td width="50%" valign="top">';
$sql = "SELECT s.nom, s.idp, c.rowid as commandeid, c.ref,".$db->pdate("c.date_commande")." as dc";
$sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."commande as c";
$sql .=" WHERE c.fk_soc = s.idp AND c.fk_statut = 0 AND c.fk_user_author = ".$user->id;
$sql .= " ORDER BY c.date_creation DESC, tms DESC";
$result=$db->query($sql);
if ($result)
{
$num = $db->num_rows($result);
if ($num) {
$i = 0;
print '<table class="noborder" width="100%">';
$var=true;
while ($i < $num)
{
$objp = $db->fetch_object($result);
$var=!$var;
print '<form method="POST" action="fiche.php?id='.$product->id.'">';
print "<tr $bc[$var]>";
print "<td nowrap><a href=\"../commande/fiche.php?id=$objp->commandeid\">".img_object($langs->trans("ShowOrder"),"order")." ".$objp->ref."</a></td>\n";
print "<td><a href=\"../comm/fiche.php?socid=$objp->idp\">".dolibarr_trunc($objp->nom,18)."</a></td>\n";
print "<td>". strftime("%d %b",$objp->dc)."</td>\n";
print '<input type="hidden" name="action" value="addincommande">';
print '<td><input type="hidden" name="commandeid" value="'.$objp->commandeid.'">';
print '<input type="text" class="flat" name="qty" size="1" value="1"></td><td nowrap>'.$langs->trans("Discount");
print '<input type="text" class="flat" name="remise_percent" size="1" value="0">%';
print " ".$product->stock_proposition;
print '</td><td align="right">';
print '<input type="submit" class="button" value="'.$langs->trans("Add").'">';
print '</td>';
print '</tr>';
print '</form>';
$i++;
}
print "</table>";
}
else {
print $langs->trans("NoOpenedOrders");
}
$db->free($result);
}
print '</td>';
// Liste de "Other orders"
print '<td width="50%" valign="top">';
$othercom = $commande->liste_array(1, ' <> s'.$user->id);
if (is_array($othercom) && sizeof($othercom))
{
$var=false;
print '<form method="POST" action="fiche.php?id='.$product->id.'">';
print '<table class="noborder" width="100%">'.$othercom;
print '<input type="hidden" name="action" value="addincommande">';
print '<tr '.$bc[$var].'><td colspan="3">'.$langs->trans("OtherOrders").'</td><td>';
$html->select_array("commandeid", $othercom);
print '</td></tr>';
print '<tr '.$bc[$var].'><td>'. strftime("%d %b",$objp->dc)."</td><td nowrap>\n";
print '<input type="text" class="flat" name="qty" size="1" value="1"></td><td nowrap>'.$langs->trans("Discount");
print '<input type="text" class="flat" name="remise_percent" size="1" value="0">%';
print '</td><td align="right">';
print '<input type="submit" class="button" value="'.$langs->trans("Add").'">';
print '</td></tr>';
print '</table>';
print '</form>';
}
else {
print $langs->trans("NoOtherOpenedOrders");
}
print '</td>';
print '</tr>';
}
// Factures
if($user->rights->facture->creer)
{