diff --git a/htdocs/commande/fiche.php b/htdocs/commande/fiche.php
index cf33620ea6a..ba1a8f0e000 100644
--- a/htdocs/commande/fiche.php
+++ b/htdocs/commande/fiche.php
@@ -75,168 +75,168 @@ if ($_GET["projetid"])
// Categorisation dans projet
if ($_POST['action'] == 'classin' && $user->rights->commande->creer)
{
- $commande = new Commande($db);
- $commande->fetch($_GET['id']);
- $commande->classin($_POST['projetid']);
+ $commande = new Commande($db);
+ $commande->fetch($_GET['id']);
+ $commande->classin($_POST['projetid']);
}
// Ajout commande
if ($_POST['action'] == 'add' && $user->rights->commande->creer)
{
- $datecommande='';
- $datecommande = @mktime(12, 0, 0, $_POST['remonth'], $_POST['reday'], $_POST['reyear']);
- $datelivraison = @mktime(12, 0, 0, $_POST['liv_month'],$_POST['liv_day'],$_POST['liv_year']);
+ $datecommande='';
+ $datecommande = @mktime(12, 0, 0, $_POST['remonth'], $_POST['reday'], $_POST['reyear']);
+ $datelivraison = @mktime(12, 0, 0, $_POST['liv_month'],$_POST['liv_day'],$_POST['liv_year']);
- $commande = new Commande($db);
- $commande->socid=$_POST['socid'];
- $commande->fetch_client();
+ $commande = new Commande($db);
+ $commande->socid=$_POST['socid'];
+ $commande->fetch_client();
- $db->begin();
+ $db->begin();
- $commande->date_commande = $datecommande;
- $commande->note = $_POST['note'];
- $commande->source = $_POST['source_id'];
- $commande->projetid = $_POST['projetid'];
- //$commande->remise_absolue = $_POST['remise_absolue']; //la remise était appliquée sur les lignes et sur le total
- //$commande->remise_percent = $_POST['remise_percent'];
- $commande->ref_client = $_POST['ref_client'];
- $commande->modelpdf = $_POST['model'];
- $commande->cond_reglement_id = $_POST['cond_reglement_id'];
- $commande->mode_reglement_id = $_POST['mode_reglement_id'];
- $commande->date_livraison = $datelivraison;
- $commande->adresse_livraison_id = $_POST['adresse_livraison_id'];
- $commande->contactid = $_POST['contactidp'];
+ $commande->date_commande = $datecommande;
+ $commande->note = $_POST['note'];
+ $commande->source = $_POST['source_id'];
+ $commande->projetid = $_POST['projetid'];
+ //$commande->remise_absolue = $_POST['remise_absolue']; //la remise était appliquée sur les lignes et sur le total
+ //$commande->remise_percent = $_POST['remise_percent'];
+ $commande->ref_client = $_POST['ref_client'];
+ $commande->modelpdf = $_POST['model'];
+ $commande->cond_reglement_id = $_POST['cond_reglement_id'];
+ $commande->mode_reglement_id = $_POST['mode_reglement_id'];
+ $commande->date_livraison = $datelivraison;
+ $commande->adresse_livraison_id = $_POST['adresse_livraison_id'];
+ $commande->contactid = $_POST['contactidp'];
- $commande->add_product($_POST['idprod1'],$_POST['qty1'],$_POST['remise_percent1']);
- $commande->add_product($_POST['idprod2'],$_POST['qty2'],$_POST['remise_percent2']);
- $commande->add_product($_POST['idprod3'],$_POST['qty3'],$_POST['remise_percent3']);
- $commande->add_product($_POST['idprod4'],$_POST['qty4'],$_POST['remise_percent4']);
- $commande->add_product($_POST['idprod5'],$_POST['qty5'],$_POST['remise_percent5']);
- $commande->add_product($_POST['idprod6'],$_POST['qty6'],$_POST['remise_percent6']);
- $commande->add_product($_POST['idprod7'],$_POST['qty7'],$_POST['remise_percent7']);
- $commande->add_product($_POST['idprod8'],$_POST['qty8'],$_POST['remise_percent8']);
+ $commande->add_product($_POST['idprod1'],$_POST['qty1'],$_POST['remise_percent1']);
+ $commande->add_product($_POST['idprod2'],$_POST['qty2'],$_POST['remise_percent2']);
+ $commande->add_product($_POST['idprod3'],$_POST['qty3'],$_POST['remise_percent3']);
+ $commande->add_product($_POST['idprod4'],$_POST['qty4'],$_POST['remise_percent4']);
+ $commande->add_product($_POST['idprod5'],$_POST['qty5'],$_POST['remise_percent5']);
+ $commande->add_product($_POST['idprod6'],$_POST['qty6'],$_POST['remise_percent6']);
+ $commande->add_product($_POST['idprod7'],$_POST['qty7'],$_POST['remise_percent7']);
+ $commande->add_product($_POST['idprod8'],$_POST['qty8'],$_POST['remise_percent8']);
- $commande_id = $commande->create($user);
+ $commande_id = $commande->create($user);
- if ($commande_id > 0)
+ if ($commande_id > 0)
+ {
+ // Insertion contact par defaut si défini
+ if ($_POST["contactidp"])
{
- // Insertion contact par defaut si défini
- if ($_POST["contactidp"])
- {
- $result=$commande->add_contact($_POST["contactidp"],'CUSTOMER','external');
+ $result=$commande->add_contact($_POST["contactidp"],'CUSTOMER','external');
- if ($result > 0)
- {
- $error=0;
- }
- else
- {
- $mesg = '
'.$langs->trans("ErrorFailedToAddContact").'
';
- $error=1;
- }
- }
+ if ($result > 0)
+ {
+ $error=0;
+ }
+ else
+ {
+ $mesg = ''.$langs->trans("ErrorFailedToAddContact").'
';
+ $error=1;
+ }
+ }
- $_GET['id'] = $commande->id;
- $action = '';
- }
+ $_GET['id'] = $commande->id;
+ $action = '';
+ }
- // Fin création facture, on l'affiche
- if ($commande_id > 0 && ! $error)
- {
- $db->commit();
- }
- else
- {
- $db->rollback();
- $_GET["action"]='create';
- $_GET['socid']=$_POST['socid'];
- if (! $mesg) $mesg=''.$commande->error.'
';
- }
+ // Fin création facture, on l'affiche
+ if ($commande_id > 0 && ! $error)
+ {
+ $db->commit();
+ }
+ else
+ {
+ $db->rollback();
+ $_GET["action"]='create';
+ $_GET['socid']=$_POST['socid'];
+ if (! $mesg) $mesg=''.$commande->error.'
';
+ }
}
// Positionne ref commande client
if ($_POST['action'] == 'set_ref_client' && $user->rights->commande->creer)
{
- $commande = new Commande($db);
- $commande->fetch($_GET['id']);
- $commande->set_ref_client($user, $_POST['ref_client']);
+ $commande = new Commande($db);
+ $commande->fetch($_GET['id']);
+ $commande->set_ref_client($user, $_POST['ref_client']);
}
if ($_POST['action'] == 'setremise' && $user->rights->commande->creer)
{
- $commande = new Commande($db);
- $commande->fetch($_GET['id']);
- $commande->set_remise($user, $_POST['remise']);
+ $commande = new Commande($db);
+ $commande->fetch($_GET['id']);
+ $commande->set_remise($user, $_POST['remise']);
}
if ($_POST['action'] == "setabsolutediscount" && $user->rights->propale->creer)
{
- if ($_POST["remise_id"])
+ if ($_POST["remise_id"])
+ {
+ $com = new Commande($db);
+ $com->id=$_GET['id'];
+ $ret=$com->fetch($_GET['id']);
+ if ($ret > 0)
{
- $com = new Commande($db);
- $com->id=$_GET['id'];
- $ret=$com->fetch($_GET['id']);
- if ($ret > 0)
- {
- $com->insert_discount($_POST["remise_id"]);
- }
- else
- {
- dolibarr_print_error($db,$com->error);
- }
+ $com->insert_discount($_POST["remise_id"]);
}
+ else
+ {
+ dolibarr_print_error($db,$com->error);
+ }
+ }
}
if ($_POST['action'] == 'setdate_livraison' && $user->rights->commande->creer)
{
- $datelivraison=@mktime(0, 0, 0, $_POST['liv_month'], $_POST['liv_day'], $_POST['liv_year']);
- $commande = new Commande($db);
- $commande->fetch($_GET['id']);
- $result=$commande->set_date_livraison($user,$datelivraison);
- if ($result < 0)
- {
- $mesg=''.$commande->error.'
';
- }
+ $datelivraison=@mktime(0, 0, 0, $_POST['liv_month'], $_POST['liv_day'], $_POST['liv_year']);
+ $commande = new Commande($db);
+ $commande->fetch($_GET['id']);
+ $result=$commande->set_date_livraison($user,$datelivraison);
+ if ($result < 0)
+ {
+ $mesg=''.$commande->error.'
';
+ }
}
if ($_POST['action'] == 'setdeliveryadress' && $user->rights->commande->creer)
{
- $commande = new Commande($db);
- $commande->fetch($_GET['id']);
- $commande->set_adresse_livraison($user,$_POST['adresse_livraison_id']);
+ $commande = new Commande($db);
+ $commande->fetch($_GET['id']);
+ $commande->set_adresse_livraison($user,$_POST['adresse_livraison_id']);
}
if ($_POST['action'] == 'setmode' && $user->rights->commande->creer)
{
- $commande = new Commande($db);
- $commande->fetch($_GET['id']);
- $result=$commande->mode_reglement($_POST['mode_reglement_id']);
- if ($result < 0) dolibarr_print_error($db,$commande->error);
+ $commande = new Commande($db);
+ $commande->fetch($_GET['id']);
+ $result=$commande->mode_reglement($_POST['mode_reglement_id']);
+ if ($result < 0) dolibarr_print_error($db,$commande->error);
}
if ($_POST['action'] == 'setconditions' && $user->rights->commande->creer)
{
- $commande = new Commande($db);
- $commande->fetch($_GET['id']);
- $result=$commande->cond_reglement($_POST['cond_reglement_id']);
- if ($result < 0) dolibarr_print_error($db,$commande->error);
+ $commande = new Commande($db);
+ $commande->fetch($_GET['id']);
+ $result=$commande->cond_reglement($_POST['cond_reglement_id']);
+ if ($result < 0) dolibarr_print_error($db,$commande->error);
}
if ($_REQUEST['action'] == 'setremisepercent' && $user->rights->facture->creer)
{
- $commande = new Commande($db);
- $commande->fetch($_REQUEST['id']);
- $result = $commande->set_remise($user, $_POST['remise_percent']);
- $_GET['id']=$_REQUEST['id'];
+ $commande = new Commande($db);
+ $commande->fetch($_REQUEST['id']);
+ $result = $commande->set_remise($user, $_POST['remise_percent']);
+ $_GET['id']=$_REQUEST['id'];
}
if ($_REQUEST['action'] == 'setremiseabsolue' && $user->rights->facture->creer)
{
- $commande = new Commande($db);
- $commande->fetch($_REQUEST['id']);
- $result = $commande->set_remise_absolue($user, $_POST['remise_absolue']);
- $_GET['id']=$_REQUEST['id'];
+ $commande = new Commande($db);
+ $commande->fetch($_REQUEST['id']);
+ $result = $commande->set_remise_absolue($user, $_POST['remise_absolue']);
+ $_GET['id']=$_REQUEST['id'];
}
/*
@@ -244,74 +244,74 @@ if ($_REQUEST['action'] == 'setremiseabsolue' && $user->rights->facture->creer)
*/
if ($_POST['action'] == 'addligne' && $user->rights->commande->creer)
{
- if ($_POST['qty'] && (($_POST['pu'] && $_POST['desc']) || $_POST['idprod']))
+ if ($_POST['qty'] && (($_POST['pu'] && $_POST['desc']) || $_POST['idprod']))
+ {
+ $commande = new Commande($db);
+ $ret=$commande->fetch($_POST['id']);
+ $soc = new Societe($db, $commande->socid);
+ $soc->fetch($commande->socid);
+
+ if ($ret < 0)
{
- $commande = new Commande($db);
- $ret=$commande->fetch($_POST['id']);
- $soc = new Societe($db, $commande->socid);
- $soc->fetch($commande->socid);
-
- if ($ret < 0)
- {
- dolibarr_print_error($db,$commande->error);
- exit;
- }
-
- // Ecrase $pu par celui du produit
- // Ecrase $desc par celui du produit
- // Ecrase $txtva par celui du produit
- if ($_POST['idprod'])
- {
- $prod = new Product($db, $_POST['idprod']);
- $prod->fetch($_POST['idprod']);
-
- $libelle = $prod->libelle;
-
- // multiprix
- if ($conf->global->PRODUIT_MULTIPRICES == 1)
- {
- $pu = $prod->multiprices[$soc->price_level];
- }
- else
- {
- $pu=$prod->price;
- }
-
- // La description de la ligne est celle saisie ou
- // celle du produit si (non saisi + PRODUIT_CHANGE_PROD_DESC défini)
- // \todo Ne faut-il pas rendre $conf->global->PRODUIT_CHANGE_PROD_DESC toujours a on
- $desc=$_POST['np_desc'];
- if (! $desc && $conf->global->PRODUIT_CHANGE_PROD_DESC)
- {
- $desc = $prod->description;
- }
-
- $tva_tx = get_default_tva($mysoc,$soc,$prod->tva_tx);
- }
- else
- {
- $pu=$_POST['pu'];
- $tva_tx=$_POST['tva_tx'];
- $desc=$_POST['desc'];
- }
-
- $commande->addline(
- $_POST['id'],
- $desc,
- $pu,
- $_POST['qty'],
- $tva_tx,
- $_POST['idprod'],
- $_POST['remise_percent']
- );
-
- if ($_REQUEST['lang_id'])
- {
- $outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs");
- $outputlangs->setDefaultLang($_REQUEST['lang_id']);
- }
- commande_pdf_create($db, $commande->id, $commande->modelpdf, $outputlangs);
+ dolibarr_print_error($db,$commande->error);
+ exit;
}
+
+ // Ecrase $pu par celui du produit
+ // Ecrase $desc par celui du produit
+ // Ecrase $txtva par celui du produit
+ if ($_POST['idprod'])
+ {
+ $prod = new Product($db, $_POST['idprod']);
+ $prod->fetch($_POST['idprod']);
+
+ $libelle = $prod->libelle;
+
+ // multiprix
+ if ($conf->global->PRODUIT_MULTIPRICES == 1)
+ {
+ $pu = $prod->multiprices[$soc->price_level];
+ }
+ else
+ {
+ $pu=$prod->price;
+ }
+
+ // La description de la ligne est celle saisie ou
+ // celle du produit si (non saisi + PRODUIT_CHANGE_PROD_DESC défini)
+ // \todo Ne faut-il pas rendre $conf->global->PRODUIT_CHANGE_PROD_DESC toujours a on
+ $desc=$_POST['np_desc'];
+ if (! $desc && $conf->global->PRODUIT_CHANGE_PROD_DESC)
+ {
+ $desc = $prod->description;
+ }
+
+ $tva_tx = get_default_tva($mysoc,$soc,$prod->tva_tx);
+ }
+ else
+ {
+ $pu=$_POST['pu'];
+ $tva_tx=$_POST['tva_tx'];
+ $desc=$_POST['desc'];
+ }
+
+ $commande->addline(
+ $_POST['id'],
+ $desc,
+ $pu,
+ $_POST['qty'],
+ $tva_tx,
+ $_POST['idprod'],
+ $_POST['remise_percent']
+ );
+
+ if ($_REQUEST['lang_id'])
+ {
+ $outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs");
+ $outputlangs->setDefaultLang($_REQUEST['lang_id']);
+ }
+ commande_pdf_create($db, $commande->id, $commande->modelpdf, $outputlangs);
+ }
}
/*
@@ -319,107 +319,107 @@ if ($_POST['action'] == 'addligne' && $user->rights->commande->creer)
*/
if ($_POST['action'] == 'updateligne' && $user->rights->commande->creer && $_POST['save'] == $langs->trans('Save'))
{
- $commande = new Commande($db,'',$_POST['id']);
- if (! $commande->fetch($_POST['id']) > 0) dolibarr_print_error($db);
+ $commande = new Commande($db,'',$_POST['id']);
+ if (! $commande->fetch($_POST['id']) > 0) dolibarr_print_error($db);
- $result = $commande->updateline($_POST['elrowid'],
- $_POST['eldesc'],
- $_POST['pu'],
- $_POST['qty'],
- $_POST['elremise_percent'],
- $_POST['tva_tx']
- );
+ $result = $commande->updateline($_POST['elrowid'],
+ $_POST['eldesc'],
+ $_POST['pu'],
+ $_POST['qty'],
+ $_POST['elremise_percent'],
+ $_POST['tva_tx']
+ );
- if ($result >= 0)
+ if ($result >= 0)
+ {
+ if ($_REQUEST['lang_id'])
{
- if ($_REQUEST['lang_id'])
- {
- $outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs");
- $outputlangs->setDefaultLang($_REQUEST['lang_id']);
- }
- commande_pdf_create($db, $commande->id, $commande->modelpdf, $outputlangs);
- }
- else
- {
- dolibarr_print_error($db,$commande->error);
- exit;
+ $outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs");
+ $outputlangs->setDefaultLang($_REQUEST['lang_id']);
}
+ commande_pdf_create($db, $commande->id, $commande->modelpdf, $outputlangs);
+ }
+ else
+ {
+ dolibarr_print_error($db,$commande->error);
+ exit;
+ }
- $_GET['id']=$_POST['id']; // Pour réaffichage de la fiche en cours d'édition
+ $_GET['id']=$_POST['id']; // Pour réaffichage de la fiche en cours d'édition
}
if ($_POST['action'] == 'updateligne' && $user->rights->commande->creer && $_POST['cancel'] == $langs->trans('Cancel'))
{
- Header('Location: fiche.php?id='.$_POST['id']); // Pour réaffichage de la fiche en cours d'édition
- exit;
+ Header('Location: fiche.php?id='.$_POST['id']); // Pour réaffichage de la fiche en cours d'édition
+ exit;
}
if ($_GET['action'] == 'deleteline' && $user->rights->commande->creer && !$conf->global->PRODUIT_CONFIRM_DELETE_LINE)
{
- $commande = new Commande($db);
- $commande->fetch($_GET['id']);
- $result = $commande->delete_line($_GET['lineid']);
- if ($_REQUEST['lang_id'])
- {
- $outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs");
- $outputlangs->setDefaultLang($_REQUEST['lang_id']);
- }
- commande_pdf_create($db, $_GET['id'], $commande->modelpdf, $outputlangs);
- Header('Location: fiche.php?id='.$_GET['id']);
- exit;
+ $commande = new Commande($db);
+ $commande->fetch($_GET['id']);
+ $result = $commande->delete_line($_GET['lineid']);
+ if ($_REQUEST['lang_id'])
+ {
+ $outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs");
+ $outputlangs->setDefaultLang($_REQUEST['lang_id']);
+ }
+ commande_pdf_create($db, $_GET['id'], $commande->modelpdf, $outputlangs);
+ Header('Location: fiche.php?id='.$_GET['id']);
+ exit;
}
if ($_POST['action'] == 'confirm_valid' && $_POST['confirm'] == 'yes' && $user->rights->commande->valider)
{
- $commande = new Commande($db);
- $commande->fetch($_GET['id']);
- $soc = new Societe($db);
- $soc->fetch($commande->socid);
- $result = $commande->valid($user);
+ $commande = new Commande($db);
+ $commande->fetch($_GET['id']);
+ $soc = new Societe($db);
+ $soc->fetch($commande->socid);
+ $result = $commande->valid($user);
}
if ($_POST['action'] == 'confirm_close' && $_POST['confirm'] == 'yes' && $user->rights->commande->creer)
{
- $commande = new Commande($db);
- $commande->fetch($_GET['id']);
- $result = $commande->cloture($user);
+ $commande = new Commande($db);
+ $commande->fetch($_GET['id']);
+ $result = $commande->cloture($user);
}
if ($_POST['action'] == 'confirm_cancel' && $_POST['confirm'] == 'yes' && $user->rights->commande->valider)
{
- $commande = new Commande($db);
- $commande->fetch($_GET['id']);
- $result = $commande->cancel($user);
+ $commande = new Commande($db);
+ $commande->fetch($_GET['id']);
+ $result = $commande->cancel($user);
}
if ($_POST['action'] == 'confirm_delete' && $_POST['confirm'] == 'yes')
{
- if ($user->rights->commande->supprimer )
- {
- $commande = new Commande($db);
- $commande->fetch($_GET['id']);
- $commande->delete();
- Header('Location: index.php');
- exit;
- }
+ if ($user->rights->commande->supprimer )
+ {
+ $commande = new Commande($db);
+ $commande->fetch($_GET['id']);
+ $commande->delete();
+ Header('Location: index.php');
+ exit;
+ }
}
if ($_POST['action'] == 'confirm_deleteproductline' && $_POST['confirm'] == 'yes' && $conf->global->PRODUIT_CONFIRM_DELETE_LINE)
{
- if ($user->rights->commande->creer)
+ if ($user->rights->commande->creer)
{
- $commande = new Commande($db);
- $commande->fetch($_GET['id']);
- $commande->delete_line($_GET['lineid']);
- if ($_REQUEST['lang_id'])
- {
- $outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs");
- $outputlangs->setDefaultLang($_REQUEST['lang_id']);
- }
- commande_pdf_create($db, $_GET['id'], $commande->modelpdf, $outputlangs);
+ $commande = new Commande($db);
+ $commande->fetch($_GET['id']);
+ $commande->delete_line($_GET['lineid']);
+ if ($_REQUEST['lang_id'])
+ {
+ $outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs");
+ $outputlangs->setDefaultLang($_REQUEST['lang_id']);
+ }
+ commande_pdf_create($db, $_GET['id'], $commande->modelpdf, $outputlangs);
}
- Header('Location: '.$_SERVER["PHP_SELF"].'?id='.$_GET['id']);
- exit;
+ Header('Location: '.$_SERVER["PHP_SELF"].'?id='.$_GET['id']);
+ exit;
}
if ($_GET['action'] == 'modif' && $user->rights->commande->creer)
@@ -438,74 +438,74 @@ if ($_GET['action'] == 'modif' && $user->rights->commande->creer)
if ($_GET['action'] == 'up' && $user->rights->commande->creer)
{
- $commande = new Commande($db,'',$_GET['id']);
- $commande->fetch($_GET['id']);
- $commande->line_up($_GET['rowid']);
- if ($_REQUEST['lang_id'])
- {
- $outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs");
- $outputlangs->setDefaultLang($_REQUEST['lang_id']);
- }
+ $commande = new Commande($db,'',$_GET['id']);
+ $commande->fetch($_GET['id']);
+ $commande->line_up($_GET['rowid']);
+ if ($_REQUEST['lang_id'])
+ {
+ $outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs");
+ $outputlangs->setDefaultLang($_REQUEST['lang_id']);
+ }
commande_pdf_create($db, $commande->id, $commande->modelpdf, $outputlangs);
- Header ('Location: '.$_SERVER["PHP_SELF"].'?id='.$_GET["id"].'#'.$_GET['rowid']);
+ Header ('Location: '.$_SERVER["PHP_SELF"].'?id='.$_GET["id"].'#'.$_GET['rowid']);
}
if ($_GET['action'] == 'down' && $user->rights->commande->creer)
{
- $commande = new Commande($db,'',$_GET['id']);
- $commande->fetch($_GET['id']);
- $commande->line_down($_GET['rowid']);
- if ($_REQUEST['lang_id'])
- {
- $outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs");
- $outputlangs->setDefaultLang($_REQUEST['lang_id']);
- }
+ $commande = new Commande($db,'',$_GET['id']);
+ $commande->fetch($_GET['id']);
+ $commande->line_down($_GET['rowid']);
+ if ($_REQUEST['lang_id'])
+ {
+ $outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs");
+ $outputlangs->setDefaultLang($_REQUEST['lang_id']);
+ }
commande_pdf_create($db, $commande->id, $commande->modelpdf, $outputlangs);
- Header ('Location: '.$_SERVER["PHP_SELF"].'?id='.$_GET["id"].'#'.$_GET['rowid']);
+ Header ('Location: '.$_SERVER["PHP_SELF"].'?id='.$_GET["id"].'#'.$_GET['rowid']);
}
if ($_REQUEST['action'] == 'builddoc') // En get ou en post
{
- /*
- * Generation de la commande
- * définit dans /includes/modules/commande/modules_commande.php
- */
+ /*
+ * Generation de la commande
+ * définit dans /includes/modules/commande/modules_commande.php
+ */
- // Sauvegarde le dernier modèle choisi pour générer un document
- $commande = new Commande($db, 0, $_REQUEST['id']);
- $commande->fetch($_REQUEST['id']);
- if ($_REQUEST['model'])
- {
- $commande->set_pdf_model($user, $_REQUEST['model']);
- }
-
- if ($_REQUEST['lang_id'])
- {
- $outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs");
- $outputlangs->setDefaultLang($_REQUEST['lang_id']);
- }
- $result=commande_pdf_create($db, $commande->id,$commande->modelpdf,$outputlangs);
- if ($result <= 0)
+ // Sauvegarde le dernier modèle choisi pour générer un document
+ $commande = new Commande($db, 0, $_REQUEST['id']);
+ $commande->fetch($_REQUEST['id']);
+ if ($_REQUEST['model'])
{
- dolibarr_print_error($db,$result);
- exit;
+ $commande->set_pdf_model($user, $_REQUEST['model']);
}
- else
+
+ if ($_REQUEST['lang_id'])
{
- Header ('Location: '.$_SERVER["PHP_SELF"].'?id='.$commande->id.'#builddoc');
+ $outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs");
+ $outputlangs->setDefaultLang($_REQUEST['lang_id']);
+ }
+ $result=commande_pdf_create($db, $commande->id,$commande->modelpdf,$outputlangs);
+ if ($result <= 0)
+ {
+ dolibarr_print_error($db,$result);
+ exit;
+ }
+ else
+ {
+ Header ('Location: '.$_SERVER["PHP_SELF"].'?id='.$commande->id.'#builddoc');
}
}
// Efface les fichiers
if ($action=='remove_file')
{
- $com = new Commande($db);
+ $com = new Commande($db);
- if ($com->fetch($id))
+ if ($com->fetch($id))
{
$upload_dir = $conf->commande->dir_output . "/";
- $file = $upload_dir . '/' . urldecode($_GET['file']);
- dol_delete_file($file);
+ $file = $upload_dir . '/' . urldecode($_GET['file']);
+ dol_delete_file($file);
$mesg = ''.$langs->trans("FileWasRemoved").'
';
}
}
@@ -515,153 +515,153 @@ if ($action=='remove_file')
*/
if ($_POST['action'] == 'send')
{
- $langs->load('mails');
+ $langs->load('mails');
- $commande= new Commande($db);
- if ( $commande->fetch($_POST['orderid']) )
+ $commande= new Commande($db);
+ if ( $commande->fetch($_POST['orderid']) )
{
- $orderref = sanitize_string($commande->ref);
- $file = $conf->commande->dir_output . '/' . $orderref . '/' . $orderref . '.pdf';
+ $orderref = sanitize_string($commande->ref);
+ $file = $conf->commande->dir_output . '/' . $orderref . '/' . $orderref . '.pdf';
- if (is_readable($file))
+ if (is_readable($file))
{
- $commande->fetch_client();
+ $commande->fetch_client();
- if ($_POST['sendto'])
- {
- // Le destinataire a été fourni via le champ libre
- $sendto = $_POST['sendto'];
- $sendtoid = 0;
- }
- elseif ($_POST['receiver'])
- {
- // Le destinataire a été fourni via la liste déroulante
- if ($_POST['receiver'] < 0) // Id du tiers
- {
- $sendto = $commande->client->email;
- $sendtoid = 0;
- }
- else // Id du contact
- {
- $sendto = $commande->client->contact_get_email($_POST['receiver']);
- $sendtoid = $_POST['receiver'];
- }
- }
+ if ($_POST['sendto'])
+ {
+ // Le destinataire a été fourni via le champ libre
+ $sendto = $_POST['sendto'];
+ $sendtoid = 0;
+ }
+ elseif ($_POST['receiver'])
+ {
+ // Le destinataire a été fourni via la liste déroulante
+ if ($_POST['receiver'] < 0) // Id du tiers
+ {
+ $sendto = $commande->client->email;
+ $sendtoid = 0;
+ }
+ else // Id du contact
+ {
+ $sendto = $commande->client->contact_get_email($_POST['receiver']);
+ $sendtoid = $_POST['receiver'];
+ }
+ }
- if (strlen($sendto))
+ if (strlen($sendto))
{
- $from = $_POST['fromname'] . ' <' . $_POST['frommail'] .'>';
- $replyto = $_POST['replytoname']. ' <' . $_POST['replytomail'].'>';
- $message = $_POST['message'];
- $sendtocc = $_POST['sendtocc'];
- $deliveryreceipt = $_POST['deliveryreceipt'];
+ $from = $_POST['fromname'] . ' <' . $_POST['frommail'] .'>';
+ $replyto = $_POST['replytoname']. ' <' . $_POST['replytomail'].'>';
+ $message = $_POST['message'];
+ $sendtocc = $_POST['sendtocc'];
+ $deliveryreceipt = $_POST['deliveryreceipt'];
- if ($_POST['action'] == 'send')
+ if ($_POST['action'] == 'send')
{
- $subject = $_POST['subject'];
+ $subject = $_POST['subject'];
- if($subject == '')
- {
- $subject = $langs->trans('Order').' '.$commande->ref;
- }
+ if($subject == '')
+ {
+ $subject = $langs->trans('Order').' '.$commande->ref;
+ }
$actiontypeid=8;
$actionmsg ='Mail envoyé par '.$from.' à '.$sendto.'. ';
if ($message)
- {
- $actionmsg.='Texte utilisé dans le corps du message: ';
- $actionmsg.=$message;
- }
+ {
+ $actionmsg.='Texte utilisé dans le corps du message: ';
+ $actionmsg.=$message;
+ }
$actionmsg2='Envoi commande par mail';
}
- $filepath[0] = $file;
- $filename[0] = $commande->ref.'.pdf';
- $mimetype[0] = 'application/pdf';
- if ($_FILES['addedfile']['tmp_name'])
+ $filepath[0] = $file;
+ $filename[0] = $commande->ref.'.pdf';
+ $mimetype[0] = 'application/pdf';
+ if ($_FILES['addedfile']['tmp_name'])
{
- $filepath[1] = $_FILES['addedfile']['tmp_name'];
- $filename[1] = $_FILES['addedfile']['name'];
- $mimetype[1] = $_FILES['addedfile']['type'];
+ $filepath[1] = $_FILES['addedfile']['tmp_name'];
+ $filename[1] = $_FILES['addedfile']['name'];
+ $mimetype[1] = $_FILES['addedfile']['type'];
}
- // Envoi de la commande
- $mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,'',$deliveryreceipt);
- if ($mailfile->error)
- {
- $mesg=''.$mailfile->error.'
';
- }
- else
- {
- $result=$mailfile->sendfile();
- if ($result)
- {
- $mesg=''.$langs->trans('MailSuccessfulySent',$from,$sendto).'.
';
+ // Envoi de la commande
+ $mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,'',$deliveryreceipt);
+ if ($mailfile->error)
+ {
+ $mesg=''.$mailfile->error.'
';
+ }
+ else
+ {
+ $result=$mailfile->sendfile();
+ if ($result)
+ {
+ $mesg=''.$langs->trans('MailSuccessfulySent',$from,$sendto).'.
';
- // Insertion action
- require_once(DOL_DOCUMENT_ROOT."/contact.class.php");
- require_once(DOL_DOCUMENT_ROOT.'/actioncomm.class.php');
- $actioncomm = new ActionComm($db);
- $actioncomm->type_id = $actiontypeid;
- $actioncomm->label = $actionmsg2;
- $actioncomm->note = $actionmsg;
- $actioncomm->date = time(); // L'action est faite maintenant
- $actioncomm->percent = 100;
- $actioncomm->contact = new Contact($db,$sendtoid);
- $actioncomm->societe = new Societe($db,$commande->socid);
- $actioncomm->user = $user; // User qui a fait l'action
- $actioncomm->orderrowid = $commande->id;
+ // Insertion action
+ require_once(DOL_DOCUMENT_ROOT."/contact.class.php");
+ require_once(DOL_DOCUMENT_ROOT.'/actioncomm.class.php');
+ $actioncomm = new ActionComm($db);
+ $actioncomm->type_id = $actiontypeid;
+ $actioncomm->label = $actionmsg2;
+ $actioncomm->note = $actionmsg;
+ $actioncomm->date = time(); // L'action est faite maintenant
+ $actioncomm->percent = 100;
+ $actioncomm->contact = new Contact($db,$sendtoid);
+ $actioncomm->societe = new Societe($db,$commande->socid);
+ $actioncomm->user = $user; // User qui a fait l'action
+ $actioncomm->orderrowid = $commande->id;
- $ret=$actioncomm->add($user); // User qui saisit l'action
- if ($ret < 0)
- {
- dolibarr_print_error($db);
- }
- else
- {
- // Renvoie sur la fiche
- Header('Location: '.$_SERVER["PHP_SELF"].'?id='.$commande->id.'&msg='.urlencode($mesg));
- exit;
- }
- }
- else
- {
- $langs->load("other");
- $mesg='';
- if ($mailfile->error)
- {
- $mesg.=$langs->trans('ErrorFailedToSendMail',$from,$sendto);
- $mesg.=' '.$mailfile->error;
- }
- else
- {
- $mesg.='No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS';
- }
- $mesg.='
';
- }
- }
+ $ret=$actioncomm->add($user); // User qui saisit l'action
+ if ($ret < 0)
+ {
+ dolibarr_print_error($db);
+ }
+ else
+ {
+ // Renvoie sur la fiche
+ Header('Location: '.$_SERVER["PHP_SELF"].'?id='.$commande->id.'&msg='.urlencode($mesg));
+ exit;
+ }
+ }
+ else
+ {
+ $langs->load("other");
+ $mesg='';
+ if ($mailfile->error)
+ {
+ $mesg.=$langs->trans('ErrorFailedToSendMail',$from,$sendto);
+ $mesg.=' '.$mailfile->error;
+ }
+ else
+ {
+ $mesg.='No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS';
+ }
+ $mesg.='
';
+ }
+ }
}
- else
+ else
{
- $langs->load("other");
- $mesg=''.$langs->trans('ErrorMailRecipientIsEmpty').' !
';
- dolibarr_syslog('Recipient email is empty');
+ $langs->load("other");
+ $mesg=''.$langs->trans('ErrorMailRecipientIsEmpty').' !
';
+ dolibarr_syslog('Recipient email is empty');
}
}
- else
+ else
{
- $langs->load("other");
- $mesg=''.$langs->trans('ErrorCantReadFile',$file).'
';
- dolibarr_syslog('Failed to read file: '.$file);
+ $langs->load("other");
+ $mesg=''.$langs->trans('ErrorCantReadFile',$file).'
';
+ dolibarr_syslog('Failed to read file: '.$file);
}
}
- else
+ else
{
- $langs->load("other");
- $mesg=''.$langs->trans('ErrorFailedToReadEntity',$langs->trans("Invoice")).'
';
- dolibarr_syslog('Impossible de lire les données de la facture. Le fichier facture n\'a peut-être pas été généré.');
+ $langs->load("other");
+ $mesg=''.$langs->trans('ErrorFailedToReadEntity',$langs->trans("Invoice")).'
';
+ dolibarr_syslog('Impossible de lire les données de la facture. Le fichier facture n\'a peut-être pas été généré.');
}
}
@@ -678,306 +678,306 @@ $html = new Form($db);
*********************************************************************/
if ($_GET['action'] == 'create' && $user->rights->commande->creer)
{
- print_titre($langs->trans('CreateOrder'));
+ print_titre($langs->trans('CreateOrder'));
- if ($mesg) print $mesg.' ';
+ if ($mesg) print $mesg.' ';
- $new_commande = new Commande($db);
+ $new_commande = new Commande($db);
- if ($propalid)
+ if ($propalid)
+ {
+ $sql = 'SELECT s.nom, s.prefix_comm, s.idp, p.price, p.remise, p.remise_percent, p.tva, p.total, p.ref, p.fk_cond_reglement, p.fk_mode_reglement, '.$db->pdate('p.datep').' as dp, c.id as statut, c.label as lst';
+ $sql .= ' FROM '.MAIN_DB_PREFIX.'societe as s, '.MAIN_DB_PREFIX.'propal as p, '.MAIN_DB_PREFIX.'c_propalst as c';
+ $sql .= ' WHERE p.fk_soc = s.idp AND p.fk_statut = c.id';
+ $sql .= ' AND p.rowid = '.$propalid;
+ }
+ else
+ {
+ $sql = 'SELECT s.nom, s.prefix_comm, s.idp, s.mode_reglement, s.cond_reglement ';
+ $sql .= 'FROM '.MAIN_DB_PREFIX.'societe as s ';
+ $sql .= 'WHERE s.idp = '.$_GET['socid'];
+ }
+ $resql = $db->query($sql);
+ if ( $resql )
+ {
+ $num = $db->num_rows($resql);
+ if ($num)
{
- $sql = 'SELECT s.nom, s.prefix_comm, s.idp, p.price, p.remise, p.remise_percent, p.tva, p.total, p.ref, p.fk_cond_reglement, p.fk_mode_reglement, '.$db->pdate('p.datep').' as dp, c.id as statut, c.label as lst';
- $sql .= ' FROM '.MAIN_DB_PREFIX.'societe as s, '.MAIN_DB_PREFIX.'propal as p, '.MAIN_DB_PREFIX.'c_propalst as c';
- $sql .= ' WHERE p.fk_soc = s.idp AND p.fk_statut = c.id';
- $sql .= ' AND p.rowid = '.$propalid;
- }
- else
- {
- $sql = 'SELECT s.nom, s.prefix_comm, s.idp, s.mode_reglement, s.cond_reglement ';
- $sql .= 'FROM '.MAIN_DB_PREFIX.'societe as s ';
- $sql .= 'WHERE s.idp = '.$_GET['socid'];
- }
- $resql = $db->query($sql);
- if ( $resql )
- {
- $num = $db->num_rows($resql);
- if ($num)
- {
- $obj = $db->fetch_object($resql);
+ $obj = $db->fetch_object($resql);
- $soc = new Societe($db);
- $soc->fetch($obj->idp);
+ $soc = new Societe($db);
+ $soc->fetch($obj->idp);
- $nbrow=7;
+ $nbrow=7;
- print '';
+
+ if ($propalid)
+ {
+ /*
+ * Produits
+ */
+ print_titre($langs->trans('Products'));
+ print '';
+ print ''.$langs->trans('Ref').' '.$langs->trans('Product').' ';
+ print ''.$langs->trans('Price').' ';
+ print ''.$langs->trans('Qty').' ';
+ print ''.$langs->trans('Reductionshort').' ';
+ print ' ';
+
+ $var=false;
+
+ $sql = 'SELECT pt.rowid, p.label as product, p.ref, pt.price, pt.qty, p.rowid as prodid, pt.remise_percent';
+ $sql .= ' FROM '.MAIN_DB_PREFIX.'propaldet as pt, '.MAIN_DB_PREFIX.'product as p WHERE pt.fk_product = p.rowid AND pt.fk_propal = '.$propalid;
+ $sql .= ' ORDER BY pt.rowid ASC';
+ $result = $db->query($sql);
+ if ($result)
+ {
+ $num = $db->num_rows($result);
+ $i = 0;
+ while ($i < $num)
+ {
+ $objp = $db->fetch_object($result);
+ $var=!$var;
+ print '['.$objp->ref.'] ';
+ print ''.img_object($langs->trans('ShowProduct'),'product').' '.$objp->product.' ';
+ print ''.price($objp->price).' ';
+ print ''.$objp->qty.' ';
+ print ''.$objp->remise_percent.'% ';
+ $i++;
+ }
+ }
+
+ $sql = 'SELECT pt.rowid, pt.description as product, pt.price, pt.qty, pt.remise_percent';
+ $sql .= ' FROM '.MAIN_DB_PREFIX.'propaldet as pt WHERE pt.fk_propal = '.$propalid.' AND pt.fk_product = 0';
+ $sql .= ' ORDER BY pt.rowid ASC';
+ if ($db->query($sql))
+ {
+ $num = $db->num_rows();
+ $i = 0;
+ while ($i < $num)
+ {
+ $objp = $db->fetch_object();
+ $var=!$var;
+ print ' ';
+ print ''.img_object($langs->trans('ShowProduct'),'product').' '.$objp->product.' ';
+ print ''.price($objp->price).' ';
+ print ''.$objp->qty.' ';
+ print ''.$objp->remise_percent.'% ';
+ $i++;
+ }
+ }
+ else
+ {
+ dolibarr_print_error($db);
+ }
+
+ print '
';
+ }
}
- else
- {
- dolibarr_print_error($db);
- }
+ }
+ else
+ {
+ dolibarr_print_error($db);
+ }
}
else
{
@@ -1133,791 +1133,803 @@ else
if ($commande->source == 0)
{
// Si source = propal
- $propal = new Propal($db);
- $propal->fetch($commande->propale_id);
- print ' -> '.$propal->ref.' ';
- }
- print '';
- print '';
+ $propal = new Propal($db);
+ $propal->fetch($commande->propale_id);
+ print ' -> '.$propal->ref.' ';
+ }
+ print '';
+ print '';
- // Date de livraison
- if ($conf->expedition->enabled)
+ // Date de livraison
+ if ($conf->expedition->enabled)
+ {
+ print '';
+ print '';
+ print ' ';
+ if ($_GET['action'] == 'editdate_livraison')
{
- print ' ';
- print '';
- print ' ';
- if ($_GET['action'] == 'editdate_livraison')
- {
- print 'id.'" method="post">';
- print ' ';
- $html->select_date($commande->date_livraison,'liv_','','','',"setdate_livraison");
- print ' ';
- print ' ';
- }
- else
- {
- print dolibarr_print_date($commande->date_livraison,'%A %d %B %Y');
- }
- print ' ';
- print ''.$langs->trans('NotePublic').' : ';
- print nl2br($commande->note_public);
- print ' ';
- print ' ';
-
-
- // Adresse de livraison
- print '';
- print '';
- print ' ';
-
- if ($_GET['action'] == 'editdelivery_adress')
- {
- $html->form_adresse_livraison($_SERVER['PHP_SELF'].'?id='.$commande->id,$commande->adresse_livraison_id,$_GET['socid'],'adresse_livraison_id','commande',$commande->id);
- }
- else
- {
- $html->form_adresse_livraison($_SERVER['PHP_SELF'].'?id='.$commande->id,$commande->adresse_livraison_id,$_GET['socid'],'none','commande',$commande->id);
- }
- print ' ';
+ print 'id.'" method="post">';
+ print ' ';
+ $html->select_date($commande->date_livraison,'liv_','','','',"setdate_livraison");
+ print ' ';
+ print ' ';
}
-
- // Conditions et modes de réglement
- print '';
- print '';
- print ' ';
- if ($_GET['action'] == 'editconditions')
- {
- $html->form_conditions_reglement($_SERVER['PHP_SELF'].'?id='.$commande->id,$commande->cond_reglement_id,'cond_reglement_id');
- }
- else
- {
- $html->form_conditions_reglement($_SERVER['PHP_SELF'].'?id='.$commande->id,$commande->cond_reglement_id,'none');
- }
- print ' ';
- print '';
- print '';
- print ' ';
- if ($_GET['action'] == 'editmode')
- {
- $html->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$commande->id,$commande->mode_reglement_id,'mode_reglement_id');
- }
- else
- {
- $html->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$commande->id,$commande->mode_reglement_id,'none');
- }
- print ' ';
-
- // Projet
- if ($conf->projet->enabled)
- {
- $langs->load('projects');
- print '';
- print '';
- print ' ';
- if ($_GET['action'] == 'classer')
- {
- $html->form_project($_SERVER['PHP_SELF'].'?id='.$commande->id, $commande->socid, $commande->projet_id, 'projetid');
- }
- else
- {
- $html->form_project($_SERVER['PHP_SELF'].'?id='.$commande->id, $commande->socid, $commande->projet_id, 'none');
- }
- print ' ';
- }
-
- // Lignes de 3 colonnes
-
- // Total HT
- print ''.$langs->trans('AmountHT').' ';
- print ''.price($commande->total_ht).' ';
- print ''.$langs->trans('Currency'.$conf->monnaie).' ';
-
- // Total TVA
- print ''.$langs->trans('AmountVAT').' '.price($commande->total_tva).' ';
- print ''.$langs->trans('Currency'.$conf->monnaie).' ';
-
- // Total TTC
- print ''.$langs->trans('AmountTTC').' '.price($commande->total_ttc).' ';
- print ''.$langs->trans('Currency'.$conf->monnaie).' ';
-
- // Statut
- print ''.$langs->trans('Status').' ';
- print ''.$commande->getLibStatut(4).' ';
- print ' ';
-
- print ' ';
- print "\n";
-
- /*
- * Lignes de commandes
- */
- $sql = 'SELECT l.fk_product, l.description, l.price, l.qty, l.rowid, l.tva_tx, l.remise_percent, l.subprice, l.info_bits,';
- $sql.= ' p.label as product, p.ref, p.fk_product_type, p.rowid as prodid, ';
- $sql.= ' p.description as product_desc';
- $sql.= ' FROM '.MAIN_DB_PREFIX.'commandedet as l';
- $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON l.fk_product=p.rowid';
- $sql.= ' WHERE l.fk_commande = '.$commande->id;
- $sql.= ' ORDER BY l.rang ASC, l.rowid';
-
- $resql = $db->query($sql);
- if ($resql)
- {
- $num = $db->num_rows($resql);
- $i = 0; $total = 0;
-
- print '';
- if ($num)
- {
- print '';
- print ''.$langs->trans('Description').' ';
- print ''.$langs->trans('VAT').' ';
- print ''.$langs->trans('PriceUHT').' ';
- print ''.$langs->trans('Qty').' ';
- print ''.$langs->trans('ReductionShort').' ';
- print ''.$langs->trans('AmountHT').' ';
- print ' ';
- print ' ';
- print ' ';
- print " \n";
- }
- $var=true;
- while ($i < $num)
- {
- $objp = $db->fetch_object($resql);
- $var=!$var;
-
- // Ligne en mode visu
- if ($_GET['action'] != 'editline' || $_GET['rowid'] != $objp->rowid)
- {
- print '';
- if ($objp->fk_product > 0)
- {
- print '';
- print ' '; // ancre pour retourner sur la ligne
- print '';
- if ($objp->fk_product_type) print img_object($langs->trans('ShowService'),'service');
- else print img_object($langs->trans('ShowProduct'),'product');
- print ' '.$objp->ref.' - '.nl2br($objp->product);
- print ($objp->description && $objp->description!=$objp->product)?' '.nl2br($objp->description):'';
- // \todo Ne faut-il pas rendre $conf->global->PRODUIT_CHANGE_PROD_DESC toujours a on
- if ($conf->global->PRODUIT_DESC_IN_FORM && !$conf->global->PRODUIT_CHANGE_PROD_DESC)
- {
- print ' '.nl2br($objp->product_desc);
- }
- print ' ';
- }
- else
- {
- print '';
- print ' '; // ancre pour retourner sur la ligne
- if (($objp->info_bits & 2) == 2)
- {
- print '';
- print img_object($langs->trans("ShowReduc"),'reduc').' '.$langs->trans("Discount");
- print ' ';
- if ($objp->description) print ' - '.nl2br($objp->description);
- }
- else
- {
- print nl2br($objp->description);
- }
- print ' ';
- }
-
- print ''.$objp->tva_tx.'% ';
- print ''.price($objp->subprice).' ';
- print '';
- if (($objp->info_bits & 2) != 2)
- {
- print $objp->qty;
- }
- else print ' ';
- print ' ';
- if ($objp->remise_percent > 0)
- {
- print ''.$objp->remise_percent.'% ';
- }
- else
- {
- print ' ';
- }
- print ''.price($objp->subprice*$objp->qty*(100-$objp->remise_percent)/100).' ';
-
- // Icone d'edition et suppression
- if ($commande->statut == 0 && $user->rights->commande->creer)
- {
- print 'rowid.'#'.$objp->rowid.'">';
- print img_edit();
- print ' ';
- if ($conf->global->PRODUIT_CONFIRM_DELETE_LINE)
- {
- print 'rowid.'">';
- }
- else
- {
- print ' rowid.'">';
- }
- print img_delete();
- print ' ';
- print '';
- if ($i > 0)
- {
- print 'id.'&action=up&rowid='.$objp->rowid.'">';
- print img_up();
- print ' ';
- }
- if ($i < $num-1)
- {
- print 'id.'&action=down&rowid='.$objp->rowid.'">';
- print img_down();
- print ' ';
- }
- print ' ';
- }
- else
- {
- print ' ';
- }
- print ' ';
- }
-
- // Ligne en mode update
- if ($_GET['action'] == 'editline' && $user->rights->commande->creer && $_GET['rowid'] == $objp->rowid)
- {
- print 'rowid.'" method="post">';
- print ' ';
- print ' ';
- print ' ';
- print '';
- print '';
- print ' '; // ancre pour retourner sur la ligne
- if ($objp->fk_product > 0)
- {
- print '';
- if ($objp->fk_product_type) print img_object($langs->trans('ShowService'),'service');
- else print img_object($langs->trans('ShowProduct'),'product');
- print ' '.$objp->ref.' ';
- print ' - '.nl2br($objp->product);
- print ' ';
- }
- // éditeur wysiwyg
- if ($conf->fckeditor->enabled && $conf->global->FCKEDITOR_ENABLE_DETAILS)
- {
- require_once(DOL_DOCUMENT_ROOT."/lib/doleditor.class.php");
- $doleditor=new DolEditor('eldesc',$objp->description,200,'dolibarr_details');
- $doleditor->Create();
- }
- else
- {
- print ''.$objp->description.' ';
- }
- print ' ';
- print '';
- if($soc->tva_assuj == "0")
- print ' 0';
- else
- print $html->select_tva('tva_tx',$objp->tva_tx,$mysoc,$soc);
- print ' ';
- print ' ';
- print '';
- if (($objp->info_bits & 2) != 2)
- {
- print ' ';
- }
- else print ' ';
- print ' ';
- print '';
- if (($objp->info_bits & 2) != 2)
- {
- print ' %';
- }
- else print ' ';
- print ' ';
- print ' ';
- print ' ';
- print ' ';
- print ' ';
- }
-
- $total = $total + ($objp->qty * $objp->price);
- $i++;
- }
- $db->free($resql);
- }
- else
- {
- dolibarr_print_error($db);
- }
-
- /*
- * Lignes de remise
- */
-
- // Réductions relatives (Remises-Ristournes-Rabbais)
-/* Une réduction doit s'appliquer obligatoirement sur des lignes de factures
- et non globalement
- $var=!$var;
- print '';
- print ' ';
- print ' ';
- print '';
- print $langs->trans('CustomerRelativeDiscount');
- if ($commande->brouillon) print ' ('.($soc->remise_client?$langs->trans("CompanyHasRelativeDiscount",$soc->remise_client):$langs->trans("CompanyHasNoRelativeDiscount")).') ';
- print ' ';
- print ' ';
- print ' ';
- print ' ';
- print '';
- if ($_GET['action'] == 'editrelativediscount')
- {
- print ' %';
- }
- else
- {
- print $commande->remise_percent?$commande->remise_percent.'%':' ';
- }
- print ' ';
- print '';
- if ($_GET['action'] != 'editrelativediscount') print $commande->remise_percent?'-'.price($commande->remise_percent*$total/100):$langs->trans("DiscountNone");
- else print ' ';
- print ' ';
- if ($_GET['action'] != 'editrelativediscount')
- {
- if ($commande->brouillon && $user->rights->facture->creer)
- {
- print 'id.'">'.img_edit($langs->trans('SetRelativeDiscount'),1).' ';
- }
- else
- {
- print ' ';
- }
- if ($commande->brouillon && $user->rights->facture->creer && $commande->remise_percent)
- {
- print 'id.'&action=setremisepercent&rowid='.$objp->rowid.'">';
- print img_delete();
- print ' ';
- }
- else
- {
- print ' ';
- }
- print ' ';
- }
- else
- {
- print ' ';
- }
- print ' ';
- print ' ';
-*/
-
- // Remise absolue
-/* Les remises absolues doivent s'appliquer par ajout de lignes spécialisées
- $var=!$var;
- print '';
- print ' ';
- print ' ';
- print '';
- print $langs->trans('CustomerAbsoluteDiscount');
- if ($commande->brouillon) print ' ('.($avoir_en_cours?$langs->trans("CompanyHasAbsoluteDiscount",$avoir_en_cours,$langs->trans("Currency".$conf->monnaie)):$langs->trans("CompanyHasNoAbsoluteDiscount")).') ';
- print ' ';
- print ' ';
- print ' ';
- print ' ';
- print ' ';
- print '';
- if ($_GET['action'] == 'editabsolutediscount')
- {
- print '- ';
- }
- else
- {
- print $commande->remise_absolue?'-'.price($commande->remise_absolue):$langs->trans("DiscountNone");
- }
- print ' ';
- if ($_GET['action'] != 'editabsolutediscount')
- {
- if ($commande->brouillon && $user->rights->facture->creer)
- {
- print 'id.'">'.img_edit($langs->trans('SetAbsoluteDiscount'),1).' ';
- }
- else
- {
- print ' ';
- }
- if ($commande->brouillon && $user->rights->facture->creer && $commande->remise_absolue)
- {
- print 'id.'&action=setremiseabsolue&rowid='.$objp->rowid.'">';
- print img_delete();
- print ' ';
- }
- else
- {
- print ' ';
- }
- print ' ';
- }
- else
- {
- print ' ';
- }
- print ' ';
- print ' ';
-*/
-
- /*
- * Ajouter une ligne
- */
- if ($commande->statut == 0 && $user->rights->commande->creer && $_GET["action"] <> 'editline')
- {
- print '';
- print '';
- print ' '; // ancre
- print $langs->trans('Description').' ';
- print ''.$langs->trans('VAT').' ';
- print ''.$langs->trans('PriceUHT').' ';
- print ''.$langs->trans('Qty').' ';
- print ''.$langs->trans('ReductionShort').' ';
- print ' ';
- print ' ';
- print ' ';
- print ' ';
- print ' ';
-
- // Ajout produit produits/services personalisés
- print '';
- print ' ';
- print ' ';
-
- $var=true;
- print '';
- print ' ';
- print '';
- if($soc->tva_assuj == "0")
- print ' 0';
- else
- print $html->select_tva('tva_tx',$conf->defaulttx,$mysoc,$soc);
- print ' ';
- print ' ';
- print ' ';
- print ' % ';
- print ' ';
- print ' ';
-
- print ' ';
-
- // Ajout de produits/services prédéfinis
- print '';
- print ' ';
- print ' ';
-
- $var=!$var;
- print '';
- print '';
- // multiprix
- if($conf->global->PRODUIT_MULTIPRICES == 1)
- $html->select_produits('','idprod','',$conf->produit->limit_size,$soc->price_level);
- else
- $html->select_produits('','idprod','',$conf->produit->limit_size);
- if (! $conf->use_ajax) print ' ';
- print ' ';
- print ' ';
- print ' ';
- print ' ';
- print ' % ';
- print ' ';
- print ' ';
-
- print ' ';
- }
- print '
';
- print '';
-
- /*
- * Boutons actions
- */
- if ($user->societe_id == 0)
- {
- print '';
-
- // Valid
- if ($commande->statut == 0)
- {
- if ($user->rights->commande->valider)
- {
- print '
'.$langs->trans('Valid').' ';
- }
- }
-
- // Edit
- if ($commande->statut == 1)
- {
- if ($user->rights->commande->creer)
- {
- print '
'.$langs->trans('Edit').' ';
- }
- }
-
- // Build PDF
- if ($user->rights->commande->creer && $commande->statut < 3)
- {
- print '
'.$langs->trans("BuildPDF").' ';
- }
-
- // ReBuild PDF
- if ($user->rights->commande->creer && $commande->statut >= 3)
- {
- print '
'.$langs->trans("RebuildPDF").' ';
- }
-
- // Send
- if ($commande->statut > 0)
- {
- if ($user->rights->commande->envoyer)
- {
- $comref = sanitize_string($commande->ref);
- $file = $conf->commande->dir_output . '/'.$comref.'/'.$comref.'.pdf';
- if (file_exists($file))
- {
- print '
'.$langs->trans('SendByMail').' ';
- }
- }
- }
-
- // Ship
- if ($commande->statut > 0 && $commande->statut < 3 && $user->rights->expedition->creer
- && $commande->getNbOfProductsLines() > 0)
- {
- print '
'.$langs->trans('ShipProduct').' ';
- }
-
- if ($commande->statut == 1 || $commande->statut == 2)
- {
- if ($user->rights->commande->cloturer)
- {
- print '
'.$langs->trans('Close').' ';
- }
- }
-
- if ($commande->statut == 1)
- {
- $nb_expedition = $commande->nb_expedition();
- if ($user->rights->commande->annuler && $nb_expedition == 0)
- {
- print '
'.$langs->trans('CancelOrder').' ';
- }
- }
-
- if ($commande->statut == 0 && $user->rights->commande->supprimer)
- {
- print '
'.$langs->trans('Delete').' ';
- }
-
- print '
';
- }
- print ' ';
-
-
- print '';
- print ' '; // ancre
-
- /*
- * Documents générés
- *
- */
- $comref = sanitize_string($commande->ref);
- $file = $conf->commande->dir_output . '/' . $comref . '/' . $comref . '.pdf';
- $relativepath = $comref.'/'.$comref.'.pdf';
- $filedir = $conf->commande->dir_output . '/' . $comref;
- $urlsource=$_SERVER["PHP_SELF"]."?id=".$commande->id;
- $genallowed=$user->rights->commande->creer;
- $delallowed=$user->rights->commande->supprimer;
-
- $somethingshown=$html->show_documents('commande',$comref,$filedir,$urlsource,$genallowed,$delallowed,$commande->modelpdf);
-
- /*
- * Liste des factures
- */
- $sql = 'SELECT f.rowid,f.facnumber, f.total_ttc, '.$db->pdate('f.datef').' as df';
- $sql .= ' FROM '.MAIN_DB_PREFIX.'facture as f, '.MAIN_DB_PREFIX.'co_fa as cf';
- $sql .= ' WHERE f.rowid = cf.fk_facture AND cf.fk_commande = '. $commande->id;
-
- $result = $db->query($sql);
- if ($result)
- {
- $num = $db->num_rows($result);
- if ($num)
- {
- print ' ';
- print_titre($langs->trans('RelatedBills'));
- $i = 0; $total = 0;
- print '';
- print ''.$langs->trans('Ref')." ";
- print ''.$langs->trans('Date').' ';
- print ''.$langs->trans('Price').' ';
- print ' ';
-
- $var=True;
- while ($i < $num)
- {
- $objp = $db->fetch_object($result);
- $var=!$var;
- print '';
- print ''.img_object($langs->trans('ShowBill'),'bill').' '.$objp->facnumber.' ';
- print ''.dolibarr_print_date($objp->df).' ';
- print ''.$objp->total_ttc.' ';
- $i++;
- }
- print '
';
- }
- }
- else
- {
- dolibarr_print_error($db);
- }
- print ' ';
-
- /*
- * Liste des actions propres à la commande
- */
- $sql = 'SELECT id, '.$db->pdate('a.datea'). ' as da, label, note, fk_user_author' ;
- $sql .= ' FROM '.MAIN_DB_PREFIX.'actioncomm as a';
- $sql .= ' WHERE a.fk_commande = '.$commande->id ;
- if ($socid) $sql .= ' AND a.fk_soc = '.$socid;
- $resql = $db->query($sql);
- if ($resql)
- {
- $num = $db->num_rows($resql);
- if ($num)
- {
- //print ' ';
- print_titre($langs->trans('ActionsOnOrder'));
- $i = 0;
- $total = 0;
- $var=true;
-
- print '';
- print ''.$langs->trans('Ref').' '.$langs->trans('Date').' '.$langs->trans('Action').' '.$langs->trans('By').' ';
- print "\n";
-
- while ($i < $num)
- {
- $objp = $db->fetch_object($resql);
- $var=!$var;
- print '';
- print ''.img_object($langs->trans('ShowTask'),'task').' '.$objp->id.' ';
- print ''.dolibarr_print_date($objp->da)." \n";
- print ''.stripslashes($objp->label).' ';
- $authoract = new User($db);
- $authoract->id = $objp->fk_user_author;
- $authoract->fetch('');
- print ''.$authoract->code.' ';
- print " \n";
- $i++;
- }
- print '
';
- }
- }
- else
- {
- dolibarr_print_error($db);
- }
-
- print '
';
-
-
-
- /*
- * Action presend
- *
- */
- if ($_GET['action'] == 'presend')
- {
- $orderref = sanitize_string($commande->ref);
- $file = $conf->commande->dir_output . '/' . $orderref . '/' . $orderref . '.pdf';
-
- // Construit PDF si non existant
- if (! is_readable($file))
- {
- if ($_REQUEST['lang_id'])
- {
- $outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs");
- $outputlangs->setDefaultLang($_REQUEST['lang_id']);
- }
- $result=commande_pdf_create($db, $_REQUEST['id'], '', $_REQUEST['model'], $outputlangs);
- if ($result <= 0)
- {
- dolibarr_print_error($db,$result);
- exit;
- }
- }
-
- print ' ';
- print_titre($langs->trans('SendOrderByMail'));
-
- $soc = new Societe($db);
- $soc->fetch($commande->socid);
-
- $liste[0]=" ";
- foreach ($soc->thirdparty_and_contact_email_array() as $key=>$value)
- {
- $liste[$key]=$value;
- }
-
- // Créé l'objet formulaire mail
- include_once('../html.formmail.class.php');
- $formmail = new FormMail($db);
- $formmail->fromname = $user->fullname;
- $formmail->frommail = $user->email;
- $formmail->withfrom=1;
- $formmail->withto=$liste;
- $formmail->withcc=1;
- $formmail->withtopic=$langs->trans('SendOrderRef','__ORDERREF__');
- $formmail->withfile=1;
- $formmail->withbody=1;
- $formmail->withdeliveryreceipt=1;
- // Tableau des substitutions
- $formmail->substit['__ORDERREF__']=$commande->ref;
- // Tableau des paramètres complémentaires
- $formmail->param['action']='send';
- $formmail->param['models']='order_send';
- $formmail->param['orderid']=$commande->id;
- $formmail->param['returnurl']=DOL_URL_ROOT.'/commande/fiche.php?id='.$commande->id;
-
- $formmail->show_form();
-
- print ' ';
- }
- }
- else
+ else
{
- // Commande non trouvée
- dolibarr_print_error($db);
+ print dolibarr_print_date($commande->date_livraison,'%A %d %B %Y');
}
+ print '';
+ print ''.$langs->trans('NotePublic').' : ';
+ print nl2br($commande->note_public);
+ print ' ';
+ print '';
+
+
+ // Adresse de livraison
+ print '';
+ print '';
+ print ' ';
+
+ if ($_GET['action'] == 'editdelivery_adress')
+ {
+ $html->form_adresse_livraison($_SERVER['PHP_SELF'].'?id='.$commande->id,$commande->adresse_livraison_id,$_GET['socid'],'adresse_livraison_id','commande',$commande->id);
+ }
+ else
+ {
+ $html->form_adresse_livraison($_SERVER['PHP_SELF'].'?id='.$commande->id,$commande->adresse_livraison_id,$_GET['socid'],'none','commande',$commande->id);
+ }
+ print ' ';
+ }
+
+ // Conditions et modes de réglement
+ print '';
+ print '';
+ print ' ';
+ if ($_GET['action'] == 'editconditions')
+ {
+ $html->form_conditions_reglement($_SERVER['PHP_SELF'].'?id='.$commande->id,$commande->cond_reglement_id,'cond_reglement_id');
+ }
+ else
+ {
+ $html->form_conditions_reglement($_SERVER['PHP_SELF'].'?id='.$commande->id,$commande->cond_reglement_id,'none');
+ }
+ print ' ';
+ print '';
+ print '';
+ print ' ';
+ if ($_GET['action'] == 'editmode')
+ {
+ $html->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$commande->id,$commande->mode_reglement_id,'mode_reglement_id');
+ }
+ else
+ {
+ $html->form_modes_reglement($_SERVER['PHP_SELF'].'?id='.$commande->id,$commande->mode_reglement_id,'none');
+ }
+ print ' ';
+
+ // Projet
+ if ($conf->projet->enabled)
+ {
+ $langs->load('projects');
+ print '';
+ print '';
+ print ' ';
+ if ($_GET['action'] == 'classer')
+ {
+ $html->form_project($_SERVER['PHP_SELF'].'?id='.$commande->id, $commande->socid, $commande->projet_id, 'projetid');
+ }
+ else
+ {
+ $html->form_project($_SERVER['PHP_SELF'].'?id='.$commande->id, $commande->socid, $commande->projet_id, 'none');
+ }
+ print ' ';
+ }
+
+ // Lignes de 3 colonnes
+
+ // Total HT
+ print ''.$langs->trans('AmountHT').' ';
+ print ''.price($commande->total_ht).' ';
+ print ''.$langs->trans('Currency'.$conf->monnaie).' ';
+
+ // Total TVA
+ print ''.$langs->trans('AmountVAT').' '.price($commande->total_tva).' ';
+ print ''.$langs->trans('Currency'.$conf->monnaie).' ';
+
+ // Total TTC
+ print ''.$langs->trans('AmountTTC').' '.price($commande->total_ttc).' ';
+ print ''.$langs->trans('Currency'.$conf->monnaie).' ';
+
+ // Statut
+ print ''.$langs->trans('Status').' ';
+ print ''.$commande->getLibStatut(4).' ';
+ print ' ';
+
+ print ' ';
+ print "\n";
+
+ /*
+ * Lignes de commandes
+ */
+ $sql = 'SELECT l.fk_product, l.description, l.price, l.qty, l.rowid, l.tva_tx, l.remise_percent, l.subprice, l.info_bits,';
+ $sql.= ' p.label as product, p.ref, p.fk_product_type, p.rowid as prodid, ';
+ $sql.= ' p.description as product_desc';
+ $sql.= ' FROM '.MAIN_DB_PREFIX.'commandedet as l';
+ $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON l.fk_product=p.rowid';
+ $sql.= ' WHERE l.fk_commande = '.$commande->id;
+ $sql.= ' ORDER BY l.rang ASC, l.rowid';
+
+ $resql = $db->query($sql);
+ if ($resql)
+ {
+ $num = $db->num_rows($resql);
+ $i = 0; $total = 0;
+
+ print '';
+ if ($num)
+ {
+ print '';
+ print ''.$langs->trans('Description').' ';
+ print ''.$langs->trans('VAT').' ';
+ print ''.$langs->trans('PriceUHT').' ';
+ print ''.$langs->trans('Qty').' ';
+ print ''.$langs->trans('ReductionShort').' ';
+ print ''.$langs->trans('AmountHT').' ';
+ print ' ';
+ print ' ';
+ print ' ';
+ print " \n";
+ }
+ $var=true;
+ while ($i < $num)
+ {
+ $objp = $db->fetch_object($resql);
+ $var=!$var;
+
+ // Ligne en mode visu
+ if ($_GET['action'] != 'editline' || $_GET['rowid'] != $objp->rowid)
+ {
+ print '';
+ if ($objp->fk_product > 0)
+ {
+ print '';
+ print ' '; // ancre pour retourner sur la ligne
+ print '';
+ if ($objp->fk_product_type) print img_object($langs->trans('ShowService'),'service');
+ else print img_object($langs->trans('ShowProduct'),'product');
+ print ' '.$objp->ref.' - '.nl2br($objp->product);
+ print ($objp->description && $objp->description!=$objp->product)?' '.nl2br($objp->description):'';
+ // \todo Ne faut-il pas rendre $conf->global->PRODUIT_CHANGE_PROD_DESC toujours a on
+ if ($conf->global->PRODUIT_DESC_IN_FORM && !$conf->global->PRODUIT_CHANGE_PROD_DESC)
+ {
+ print ' '.nl2br($objp->product_desc);
+ }
+ print ' ';
+ }
+ else
+ {
+ print '';
+ print ' '; // ancre pour retourner sur la ligne
+ if (($objp->info_bits & 2) == 2)
+ {
+ print '';
+ print img_object($langs->trans("ShowReduc"),'reduc').' '.$langs->trans("Discount");
+ print ' ';
+ if ($objp->description) print ' - '.nl2br($objp->description);
+ }
+ else
+ {
+ print nl2br($objp->description);
+ }
+ print ' ';
+ }
+
+ print ''.$objp->tva_tx.'% ';
+ print ''.price($objp->subprice).' ';
+ print '';
+ if (($objp->info_bits & 2) != 2)
+ {
+ print $objp->qty;
+ }
+ else print ' ';
+ print ' ';
+ if ($objp->remise_percent > 0)
+ {
+ print ''.$objp->remise_percent.'% ';
+ }
+ else
+ {
+ print ' ';
+ }
+ print ''.price($objp->subprice*$objp->qty*(100-$objp->remise_percent)/100).' ';
+
+ // Icone d'edition et suppression
+ if ($commande->statut == 0 && $user->rights->commande->creer)
+ {
+ print 'rowid.'#'.$objp->rowid.'">';
+ print img_edit();
+ print ' ';
+ if ($conf->global->PRODUIT_CONFIRM_DELETE_LINE)
+ {
+ print 'rowid.'">';
+ }
+ else
+ {
+ print ' rowid.'">';
+ }
+ print img_delete();
+ print ' ';
+ print '';
+ if ($i > 0)
+ {
+ print 'id.'&action=up&rowid='.$objp->rowid.'">';
+ print img_up();
+ print ' ';
+ }
+ if ($i < $num-1)
+ {
+ print 'id.'&action=down&rowid='.$objp->rowid.'">';
+ print img_down();
+ print ' ';
+ }
+ print ' ';
+ }
+ else
+ {
+ print ' ';
+ }
+ print ' ';
+ }
+
+ // Ligne en mode update
+ if ($_GET['action'] == 'editline' && $user->rights->commande->creer && $_GET['rowid'] == $objp->rowid)
+ {
+ print 'rowid.'" method="post">';
+ print ' ';
+ print ' ';
+ print ' ';
+ print '';
+ print '';
+ print ' '; // ancre pour retourner sur la ligne
+ if ($objp->fk_product > 0)
+ {
+ print '';
+ if ($objp->fk_product_type) print img_object($langs->trans('ShowService'),'service');
+ else print img_object($langs->trans('ShowProduct'),'product');
+ print ' '.$objp->ref.' ';
+ print ' - '.nl2br($objp->product);
+ print ' ';
+ }
+ // éditeur wysiwyg
+ if ($conf->fckeditor->enabled && $conf->global->FCKEDITOR_ENABLE_DETAILS)
+ {
+ require_once(DOL_DOCUMENT_ROOT."/lib/doleditor.class.php");
+ $doleditor=new DolEditor('eldesc',$objp->description,200,'dolibarr_details');
+ $doleditor->Create();
+ }
+ else
+ {
+ print ''.$objp->description.' ';
+ }
+ print ' ';
+ print '';
+ if($soc->tva_assuj == "0")
+ print ' 0';
+ else
+ print $html->select_tva('tva_tx',$objp->tva_tx,$mysoc,$soc);
+ print ' ';
+ print ' ';
+ print '';
+ if (($objp->info_bits & 2) != 2)
+ {
+ print ' ';
+ }
+ else print ' ';
+ print ' ';
+ print '';
+ if (($objp->info_bits & 2) != 2)
+ {
+ print ' %';
+ }
+ else print ' ';
+ print ' ';
+ print ' ';
+ print ' ';
+ print ' ';
+ print ' ';
+ }
+
+ $total = $total + ($objp->qty * $objp->price);
+ $i++;
+ }
+ $db->free($resql);
+ }
+ else
+ {
+ dolibarr_print_error($db);
+ }
+
+ /*
+ * Lignes de remise
+ */
+
+ // Réductions relatives (Remises-Ristournes-Rabbais)
+ /* Une réduction doit s'appliquer obligatoirement sur des lignes de factures
+ et non globalement
+ $var=!$var;
+ print '';
+ print ' ';
+ print ' ';
+ print '';
+ print $langs->trans('CustomerRelativeDiscount');
+ if ($commande->brouillon) print ' ('.($soc->remise_client?$langs->trans("CompanyHasRelativeDiscount",$soc->remise_client):$langs->trans("CompanyHasNoRelativeDiscount")).') ';
+ print ' ';
+ print ' ';
+ print ' ';
+ print ' ';
+ print '';
+ if ($_GET['action'] == 'editrelativediscount')
+ {
+ print ' %';
+ }
+ else
+ {
+ print $commande->remise_percent?$commande->remise_percent.'%':' ';
+ }
+ print ' ';
+ print '';
+ if ($_GET['action'] != 'editrelativediscount') print $commande->remise_percent?'-'.price($commande->remise_percent*$total/100):$langs->trans("DiscountNone");
+ else print ' ';
+ print ' ';
+ if ($_GET['action'] != 'editrelativediscount')
+ {
+ if ($commande->brouillon && $user->rights->facture->creer)
+ {
+ print 'id.'">'.img_edit($langs->trans('SetRelativeDiscount'),1).' ';
+ }
+ else
+ {
+ print ' ';
+ }
+ if ($commande->brouillon && $user->rights->facture->creer && $commande->remise_percent)
+ {
+ print 'id.'&action=setremisepercent&rowid='.$objp->rowid.'">';
+ print img_delete();
+ print ' ';
+ }
+ else
+ {
+ print ' ';
+ }
+ print ' ';
+ }
+ else
+ {
+ print ' ';
+ }
+ print ' ';
+ print ' ';
+ */
+
+ // Remise absolue
+ /* Les remises absolues doivent s'appliquer par ajout de lignes spécialisées
+ $var=!$var;
+ print '';
+ print ' ';
+ print ' ';
+ print '';
+ print $langs->trans('CustomerAbsoluteDiscount');
+ if ($commande->brouillon) print ' ('.($avoir_en_cours?$langs->trans("CompanyHasAbsoluteDiscount",$avoir_en_cours,$langs->trans("Currency".$conf->monnaie)):$langs->trans("CompanyHasNoAbsoluteDiscount")).') ';
+ print ' ';
+ print ' ';
+ print ' ';
+ print ' ';
+ print ' ';
+ print '';
+ if ($_GET['action'] == 'editabsolutediscount')
+ {
+ print '- ';
+ }
+ else
+ {
+ print $commande->remise_absolue?'-'.price($commande->remise_absolue):$langs->trans("DiscountNone");
+ }
+ print ' ';
+ if ($_GET['action'] != 'editabsolutediscount')
+ {
+ if ($commande->brouillon && $user->rights->facture->creer)
+ {
+ print 'id.'">'.img_edit($langs->trans('SetAbsoluteDiscount'),1).' ';
+ }
+ else
+ {
+ print ' ';
+ }
+ if ($commande->brouillon && $user->rights->facture->creer && $commande->remise_absolue)
+ {
+ print 'id.'&action=setremiseabsolue&rowid='.$objp->rowid.'">';
+ print img_delete();
+ print ' ';
+ }
+ else
+ {
+ print ' ';
+ }
+ print ' ';
+ }
+ else
+ {
+ print ' ';
+ }
+ print ' ';
+ print ' ';
+ */
+
+ /*
+ * Ajouter une ligne
+ */
+ if ($commande->statut == 0 && $user->rights->commande->creer && $_GET["action"] <> 'editline')
+ {
+ print '';
+ print '';
+ print ' '; // ancre
+ print $langs->trans('Description').' ';
+ print ''.$langs->trans('VAT').' ';
+ print ''.$langs->trans('PriceUHT').' ';
+ print ''.$langs->trans('Qty').' ';
+ print ''.$langs->trans('ReductionShort').' ';
+ print ' ';
+ print ' ';
+ print ' ';
+ print ' ';
+ print ' ';
+
+ // Ajout produit produits/services personalisés
+ print '';
+ print ' ';
+ print ' ';
+
+ $var=true;
+ print '';
+ print ' ';
+ print '';
+ if($soc->tva_assuj == "0")
+ print ' 0';
+ else
+ print $html->select_tva('tva_tx',$conf->defaulttx,$mysoc,$soc);
+ print ' ';
+ print ' ';
+ print ' ';
+ print ' % ';
+ print ' ';
+ print ' ';
+
+ print ' ';
+
+ // Ajout de produits/services prédéfinis
+ print '';
+ print ' ';
+ print ' ';
+
+ $var=!$var;
+ print '';
+ print '';
+ // multiprix
+ if($conf->global->PRODUIT_MULTIPRICES == 1)
+ $html->select_produits('','idprod','',$conf->produit->limit_size,$soc->price_level);
+ else
+ $html->select_produits('','idprod','',$conf->produit->limit_size);
+ if (! $conf->use_ajax) print ' ';
+ print ' ';
+ print ' ';
+ print ' ';
+ print ' ';
+ print ' % ';
+ print ' ';
+ print ' ';
+
+ print ' ';
+ }
+ print '
';
+ print '';
+
+ /*
+ * Boutons actions
+ */
+ if ($user->societe_id == 0)
+ {
+ print '';
+
+ // Valid
+ if ($commande->statut == 0)
+ {
+ if ($user->rights->commande->valider)
+ {
+ print '
'.$langs->trans('Valid').' ';
+ }
+ }
+
+ // Edit
+ if ($commande->statut == 1)
+ {
+ if ($user->rights->commande->creer)
+ {
+ print '
'.$langs->trans('Edit').' ';
+ }
+ }
+
+ // Build PDF
+ if ($user->rights->commande->creer && $commande->statut < 3)
+ {
+ print '
'.$langs->trans("BuildPDF").' ';
+ }
+
+ // ReBuild PDF
+ if ($user->rights->commande->creer && $commande->statut >= 3)
+ {
+ print '
'.$langs->trans("RebuildPDF").' ';
+ }
+
+ // Send
+ if ($commande->statut > 0)
+ {
+ if ($user->rights->commande->envoyer)
+ {
+ $comref = sanitize_string($commande->ref);
+ $file = $conf->commande->dir_output . '/'.$comref.'/'.$comref.'.pdf';
+ if (file_exists($file))
+ {
+ print '
'.$langs->trans('SendByMail').' ';
+ }
+ }
+ }
+
+ // Ship
+ if ($commande->statut > 0 && $commande->statut < 3 && $user->rights->expedition->creer
+ && $commande->getNbOfProductsLines() > 0)
+ {
+
+ // Chargement des permissions
+ $error = $user->load_entrepots();
+ if (sizeof($user->entrepots) === 1)
+ {
+ print '
entrepots[0]['id'].'">';
+ print $langs->trans('ShipProduct').' ';
+
+ }
+ else
+ {
+ print '
'.$langs->trans('ShipProduct').' ';
+ }
+ }
+
+ if ($commande->statut == 1 || $commande->statut == 2)
+ {
+ if ($user->rights->commande->cloturer)
+ {
+ print '
'.$langs->trans('Close').' ';
+ }
+ }
+
+ if ($commande->statut == 1)
+ {
+ $nb_expedition = $commande->nb_expedition();
+ if ($user->rights->commande->annuler && $nb_expedition == 0)
+ {
+ print '
'.$langs->trans('CancelOrder').' ';
+ }
+ }
+
+ if ($commande->statut == 0 && $user->rights->commande->supprimer)
+ {
+ print '
'.$langs->trans('Delete').' ';
+ }
+
+ print '
';
+ }
+ print ' ';
+
+
+ print '';
+ print ' '; // ancre
+
+ /*
+ * Documents générés
+ *
+ */
+ $comref = sanitize_string($commande->ref);
+ $file = $conf->commande->dir_output . '/' . $comref . '/' . $comref . '.pdf';
+ $relativepath = $comref.'/'.$comref.'.pdf';
+ $filedir = $conf->commande->dir_output . '/' . $comref;
+ $urlsource=$_SERVER["PHP_SELF"]."?id=".$commande->id;
+ $genallowed=$user->rights->commande->creer;
+ $delallowed=$user->rights->commande->supprimer;
+
+ $somethingshown=$html->show_documents('commande',$comref,$filedir,$urlsource,$genallowed,$delallowed,$commande->modelpdf);
+
+ /*
+ * Liste des factures
+ */
+ $sql = 'SELECT f.rowid,f.facnumber, f.total_ttc, '.$db->pdate('f.datef').' as df';
+ $sql .= ' FROM '.MAIN_DB_PREFIX.'facture as f, '.MAIN_DB_PREFIX.'co_fa as cf';
+ $sql .= ' WHERE f.rowid = cf.fk_facture AND cf.fk_commande = '. $commande->id;
+
+ $result = $db->query($sql);
+ if ($result)
+ {
+ $num = $db->num_rows($result);
+ if ($num)
+ {
+ print ' ';
+ print_titre($langs->trans('RelatedBills'));
+ $i = 0; $total = 0;
+ print '';
+ print ''.$langs->trans('Ref')." ";
+ print ''.$langs->trans('Date').' ';
+ print ''.$langs->trans('Price').' ';
+ print ' ';
+
+ $var=True;
+ while ($i < $num)
+ {
+ $objp = $db->fetch_object($result);
+ $var=!$var;
+ print '';
+ print ''.img_object($langs->trans('ShowBill'),'bill').' '.$objp->facnumber.' ';
+ print ''.dolibarr_print_date($objp->df).' ';
+ print ''.$objp->total_ttc.' ';
+ $i++;
+ }
+ print '
';
+ }
+ }
+ else
+ {
+ dolibarr_print_error($db);
+ }
+ print ' ';
+
+ /*
+ * Liste des actions propres à la commande
+ */
+ $sql = 'SELECT id, '.$db->pdate('a.datea'). ' as da, label, note, fk_user_author' ;
+ $sql .= ' FROM '.MAIN_DB_PREFIX.'actioncomm as a';
+ $sql .= ' WHERE a.fk_commande = '.$commande->id ;
+ if ($socid) $sql .= ' AND a.fk_soc = '.$socid;
+ $resql = $db->query($sql);
+ if ($resql)
+ {
+ $num = $db->num_rows($resql);
+ if ($num)
+ {
+ //print ' ';
+ print_titre($langs->trans('ActionsOnOrder'));
+ $i = 0;
+ $total = 0;
+ $var=true;
+
+ print '';
+ print ''.$langs->trans('Ref').' '.$langs->trans('Date').' '.$langs->trans('Action').' '.$langs->trans('By').' ';
+ print "\n";
+
+ while ($i < $num)
+ {
+ $objp = $db->fetch_object($resql);
+ $var=!$var;
+ print '';
+ print ''.img_object($langs->trans('ShowTask'),'task').' '.$objp->id.' ';
+ print ''.dolibarr_print_date($objp->da)." \n";
+ print ''.stripslashes($objp->label).' ';
+ $authoract = new User($db);
+ $authoract->id = $objp->fk_user_author;
+ $authoract->fetch('');
+ print ''.$authoract->code.' ';
+ print " \n";
+ $i++;
+ }
+ print '
';
+ }
+ }
+ else
+ {
+ dolibarr_print_error($db);
+ }
+
+ print '
';
+
+
+
+ /*
+ * Action presend
+ *
+ */
+ if ($_GET['action'] == 'presend')
+ {
+ $orderref = sanitize_string($commande->ref);
+ $file = $conf->commande->dir_output . '/' . $orderref . '/' . $orderref . '.pdf';
+
+ // Construit PDF si non existant
+ if (! is_readable($file))
+ {
+ if ($_REQUEST['lang_id'])
+ {
+ $outputlangs = new Translate(DOL_DOCUMENT_ROOT ."/langs");
+ $outputlangs->setDefaultLang($_REQUEST['lang_id']);
+ }
+ $result=commande_pdf_create($db, $_REQUEST['id'], '', $_REQUEST['model'], $outputlangs);
+ if ($result <= 0)
+ {
+ dolibarr_print_error($db,$result);
+ exit;
+ }
+ }
+
+ print ' ';
+ print_titre($langs->trans('SendOrderByMail'));
+
+ $soc = new Societe($db);
+ $soc->fetch($commande->socid);
+
+ $liste[0]=" ";
+ foreach ($soc->thirdparty_and_contact_email_array() as $key=>$value)
+ {
+ $liste[$key]=$value;
+ }
+
+ // Créé l'objet formulaire mail
+ include_once('../html.formmail.class.php');
+ $formmail = new FormMail($db);
+ $formmail->fromname = $user->fullname;
+ $formmail->frommail = $user->email;
+ $formmail->withfrom=1;
+ $formmail->withto=$liste;
+ $formmail->withcc=1;
+ $formmail->withtopic=$langs->trans('SendOrderRef','__ORDERREF__');
+ $formmail->withfile=1;
+ $formmail->withbody=1;
+ $formmail->withdeliveryreceipt=1;
+ // Tableau des substitutions
+ $formmail->substit['__ORDERREF__']=$commande->ref;
+ // Tableau des paramètres complémentaires
+ $formmail->param['action']='send';
+ $formmail->param['models']='order_send';
+ $formmail->param['orderid']=$commande->id;
+ $formmail->param['returnurl']=DOL_URL_ROOT.'/commande/fiche.php?id='.$commande->id;
+
+ $formmail->show_form();
+
+ print ' ';
+ }
}
+ else
+ {
+ // Commande non trouvée
+ dolibarr_print_error($db);
+ }
+ }
}
$db->close();