From 62e4ea984529215adbdc00a1a1ea872856788417 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Mon, 24 Apr 2006 13:48:15 +0000 Subject: [PATCH] =?UTF-8?q?possibilit=E9=20de=20d=E9finir=20l'adresse=20de?= =?UTF-8?q?=20livraison=20dans=20la=20propale=20si=20la=20constante=20PROP?= =?UTF-8?q?AL=5FADD=5FDELIVERY=5FADDRESS=20=20est=20d=E9finie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/comm/addpropal.php | 14 +++- htdocs/comm/propal.php | 35 +++++++++- htdocs/commande/commande.class.php | 2 +- htdocs/propal.class.php | 100 ++++++++++++++++++----------- 4 files changed, 111 insertions(+), 40 deletions(-) diff --git a/htdocs/comm/addpropal.php b/htdocs/comm/addpropal.php index 8635a27f1a6..2512226d570 100644 --- a/htdocs/comm/addpropal.php +++ b/htdocs/comm/addpropal.php @@ -176,7 +176,19 @@ if ($_GET["action"] == 'create') $html->select_date(-1,'liv_','','','',"addprop"); } print ''; - } + } + + // Adresse de livraison + if ($conf->global->PROPAL_ADD_DELIVERY_ADDRESS) + { + print ''.$langs->trans('DeliveryAddress').''; + $numaddress = $html->select_adresse_livraison($soc->adresse_livraison_id, $_GET['socidp'],'adresse_livraison_id'); + if ($numaddress==0) + { + print '   id.'&action=create>'.$langs->trans("AddAddress").''; + } + print ''; + } /* * Destinataire de la propale diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php index e78c33d9578..3489274bd19 100644 --- a/htdocs/comm/propal.php +++ b/htdocs/comm/propal.php @@ -115,6 +115,12 @@ if ($_POST['action'] == 'setdate_livraison') if ($result < 0) dolibarr_print_error($db,$propal->error); } +if ($_POST['action'] == 'setdeliveryadress' && $user->rights->propal->creer) +{ + $propal = new Propal($db); + $propal->fetch($_GET['propalid']); + $propal->set_adresse_livraison($user,$_POST['adresse_livraison_id']); +} if ($_POST['action'] == 'add') { @@ -131,7 +137,8 @@ if ($_POST['action'] == 'add') $msg = '
Impossible de copier la propal Id = ' . $_POST['copie_propal'] . '!
'; } $propal->datep = mktime(12, 1, 1, $_POST['remonth'], $_POST['reday'], $_POST['reyear']); - $propal->date_livraison = $_POST['liv_year']."-".$_POST['liv_month']."-".$_POST['liv_day']; + $propal->date_livraison = $_POST['liv_year']."-".$_POST['liv_month']."-".$_POST['liv_day']; + $propal->adresse_livraison_id = $_POST['adresse_livraison_id']; $propal->duree_validite = $_POST['duree_validite']; $propal->cond_reglement_id = $_POST['cond_reglement_id']; $propal->mode_reglement_id = $_POST['mode_reglement_id']; @@ -151,7 +158,8 @@ if ($_POST['action'] == 'add') else { $propal->datep = mktime(12, 1, 1, $_POST['remonth'], $_POST['reday'], $_POST['reyear']); - $propal->date_livraison = $_POST['liv_year']."-".$_POST['liv_month']."-".$_POST['liv_day']; + $propal->date_livraison = $_POST['liv_year']."-".$_POST['liv_month']."-".$_POST['liv_day']; + $propal->adresse_livraison_id = $_POST['adresse_livraison_id']; $propal->duree_validite = $_POST['duree_validite']; $propal->cond_reglement_id = $_POST['cond_reglement_id']; $propal->mode_reglement_id = $_POST['mode_reglement_id']; @@ -644,6 +652,29 @@ if ($_GET['propalid'] > 0) print ''; print ''; } + + // adresse de livraison + if ($conf->global->PROPAL_ADD_DELIVERY_ADDRESS) + { + print ''; + print ''; + + if ($_GET['action'] != 'editdelivery_adress' && $propal->brouillon) print ''; + print '
'; + print $langs->trans('DeliveryAddress'); + print 'socidp.'&id='.$propal->id.'">'.img_edit($langs->trans('SetDeliveryAddress'),1).'
'; + print ''; + + if ($_GET['action'] == 'editdelivery_adress') + { + $html->form_adresse_livraison($_SERVER['PHP_SELF'].'?id='.$propal->id,$propal->adresse_livraison_id,$_GET['socidp'],'adresse_livraison_id','propal',$propal->id); + } + else + { + $html->form_adresse_livraison($_SERVER['PHP_SELF'].'?id='.$propal->id,$propal->adresse_livraison_id,$_GET['socidp'],'none','propal',$propal->id); + } + print ''; + } // Conditions et modes de réglement print ''; diff --git a/htdocs/commande/commande.class.php b/htdocs/commande/commande.class.php index da1ddb45b7f..d797f985008 100644 --- a/htdocs/commande/commande.class.php +++ b/htdocs/commande/commande.class.php @@ -287,7 +287,7 @@ class Commande $sql.= " '".addslashes($this->note)."', "; $sql.= " '".$this->ref_client."', '".$this->modelpdf.'\', \''.$this->cond_reglement_id.'\', \''.$this->mode_reglement_id.'\','; $sql.= " '".($this->date_livraison?$this->db->idate($this->date_livraison):'null').'\','; - $sql.= " '".$this->adresse_reglement_id."')"; + $sql.= " '".$this->adresse_livraison_id."')"; dolibarr_syslog("Commande.class.php::create sql=$sql"); if ( $this->db->query($sql) ) diff --git a/htdocs/propal.class.php b/htdocs/propal.class.php index ac3339bbe9c..6cd212069f6 100644 --- a/htdocs/propal.class.php +++ b/htdocs/propal.class.php @@ -53,18 +53,19 @@ class Propal var $datep; var $products; var $products_qty; - var $price; + var $price; var $status; var $fin_validite; var $cond_reglement_id; - var $cond_reglement_code; - var $mode_reglement_id; - var $mode_reglement_code; + var $cond_reglement_code; + var $mode_reglement_id; + var $mode_reglement_code; var $remise; - var $remise_percent; - var $remise_absolue; - var $note; - var $note_public; + var $remise_percent; + var $remise_absolue; + var $note; + var $note_public; + var $adresse_livraison_id; var $labelstatut=array(); var $labelstatut_short=array(); @@ -387,13 +388,13 @@ class Propal // Insertion dans la base $sql = "INSERT INTO ".MAIN_DB_PREFIX."propal (fk_soc, fk_soc_contact, price, remise, remise_percent, remise_absolue,"; - $sql.= " tva, total, datep, datec, ref, fk_user_author, note, note_public, model_pdf, fin_validite, fk_cond_reglement, fk_mode_reglement, date_livraison) "; + $sql.= " tva, total, datep, datec, ref, fk_user_author, note, note_public, model_pdf, fin_validite, fk_cond_reglement, fk_mode_reglement, date_livraison, fk_adresse_livraison) "; $sql.= " VALUES ($this->socidp, $this->contactid, 0, $this->remise, $this->remise_percent, $this->remise_absolue,"; $sql.= " 0,0,".$this->db->idate($this->datep).", now(), '$this->ref', $this->author,"; $sql.= "'".addslashes($this->note)."',"; $sql.= "'".addslashes($this->note_public)."',"; $sql.= "'$this->modelpdf',".$this->db->idate($this->fin_validite).","; - $sql.= " $this->cond_reglement_id, $this->mode_reglement_id, '".$this->date_livraison."')"; + $sql.= " $this->cond_reglement_id, $this->mode_reglement_id, '".$this->date_livraison."', $this->adresse_livraison_id)"; $resql=$this->db->query($sql); if ($resql) @@ -520,7 +521,7 @@ class Propal $sql.= ", ".$this->db->pdate("fin_validite")."as dfv, model_pdf"; $sql.= ", note, note_public"; $sql.= ", fk_projet, fk_statut, fk_user_author"; - $sql.= ", fk_cond_reglement, fk_mode_reglement, date_livraison"; + $sql.= ", fk_cond_reglement, fk_mode_reglement, date_livraison, fk_adresse_livraison"; $sql.= ", c.label as statut_label"; $sql.= " FROM ".MAIN_DB_PREFIX."propal,"; $sql.= " ".MAIN_DB_PREFIX."c_propalst as c"; @@ -535,32 +536,33 @@ class Propal { $obj = $this->db->fetch_object($resql); - $this->id = $rowid; + $this->id = $rowid; - $this->datep = $obj->dp; - $this->fin_validite = $obj->dfv; - $this->date = $obj->dp; - $this->ref = $obj->ref; - $this->price = $obj->price; - $this->remise = $obj->remise; - $this->remise_percent = $obj->remise_percent; - $this->remise_absolue = $obj->remise_absolue; - $this->total = $obj->total; - $this->total_ht = $obj->price; - $this->total_tva = $obj->tva; - $this->total_ttc = $obj->total; - $this->socidp = $obj->fk_soc; - $this->soc_id = $obj->fk_soc; - $this->projetidp = $obj->fk_projet; - $this->contactid = $obj->fk_soc_contact; - $this->modelpdf = $obj->model_pdf; - $this->note = $obj->note; - $this->note_public = $obj->note_public; - $this->statut = $obj->fk_statut; - $this->statut_libelle = $obj->statut_label; - $this->cond_reglement_id = $obj->fk_cond_reglement; - $this->mode_reglement_id = $obj->fk_mode_reglement; - $this->date_livraison = $obj->date_livraison; + $this->datep = $obj->dp; + $this->fin_validite = $obj->dfv; + $this->date = $obj->dp; + $this->ref = $obj->ref; + $this->price = $obj->price; + $this->remise = $obj->remise; + $this->remise_percent = $obj->remise_percent; + $this->remise_absolue = $obj->remise_absolue; + $this->total = $obj->total; + $this->total_ht = $obj->price; + $this->total_tva = $obj->tva; + $this->total_ttc = $obj->total; + $this->socidp = $obj->fk_soc; + $this->soc_id = $obj->fk_soc; + $this->projetidp = $obj->fk_projet; + $this->contactid = $obj->fk_soc_contact; + $this->modelpdf = $obj->model_pdf; + $this->note = $obj->note; + $this->note_public = $obj->note_public; + $this->statut = $obj->fk_statut; + $this->statut_libelle = $obj->statut_label; + $this->cond_reglement_id = $obj->fk_cond_reglement; + $this->mode_reglement_id = $obj->fk_mode_reglement; + $this->date_livraison = $obj->date_livraison; + $this->adresse_livraison_id = $obj->fk_adresse_livraison; $this->user_author_id = $obj->fk_user_author; @@ -798,6 +800,32 @@ class Propal } } + /** + * \brief Définit une adresse de livraison + * \param user Objet utilisateur qui modifie + * \param adresse_livraison Adresse de livraison + * \return int <0 si ko, >0 si ok + */ + function set_adresse_livraison($user, $adresse_livraison) + { + if ($user->rights->propal->creer) + { + $sql = "UPDATE ".MAIN_DB_PREFIX."commande SET fk_adresse_livraison = '".$adresse_livraison."'"; + $sql.= " WHERE rowid = ".$this->id." AND fk_statut = 0"; + + if ($this->db->query($sql) ) + { + $this->adresse_livraison_id = $adresse_livraison; + return 1; + } + else + { + $this->error=$this->db->error(); + dolibarr_syslog("Propal::set_adresse_livraison Erreur SQL"); + return -1; + } + } + } /** * \brief Définit une remise globale relative sur la proposition