Add availability function to commande file

This commit is contained in:
Philippe Grand 2011-04-14 09:42:10 +00:00
parent 80a3fc352e
commit b48d17ba4a
3 changed files with 66 additions and 2 deletions

View File

@ -62,6 +62,8 @@ class Commande extends CommonObject
var $cond_reglement_code; var $cond_reglement_code;
var $mode_reglement_id; var $mode_reglement_id;
var $mode_reglement_code; var $mode_reglement_code;
var $availability_id;
var $availability_code;
var $fk_delivery_address; var $fk_delivery_address;
var $adresse; var $adresse;
var $date; // Date commande var $date; // Date commande
@ -565,7 +567,7 @@ class Commande extends CommonObject
$sql = "INSERT INTO ".MAIN_DB_PREFIX."commande ("; $sql = "INSERT INTO ".MAIN_DB_PREFIX."commande (";
$sql.= " ref, fk_soc, date_creation, fk_user_author, fk_projet, date_commande, source, note, note_public, ref_client"; $sql.= " ref, fk_soc, date_creation, fk_user_author, fk_projet, date_commande, source, note, note_public, ref_client";
$sql.= ", model_pdf, fk_cond_reglement, fk_mode_reglement, date_livraison, fk_adresse_livraison"; $sql.= ", model_pdf, fk_cond_reglement, fk_mode_reglement, fk_availability, date_livraison, fk_adresse_livraison";
$sql.= ", remise_absolue, remise_percent"; $sql.= ", remise_absolue, remise_percent";
$sql.= ", entity"; $sql.= ", entity";
$sql.= ")"; $sql.= ")";
@ -577,6 +579,7 @@ class Commande extends CommonObject
$sql.= ", '".$this->db->escape($this->ref_client)."', '".$this->modelpdf."'"; $sql.= ", '".$this->db->escape($this->ref_client)."', '".$this->modelpdf."'";
$sql.= ", ".($this->cond_reglement_id>0?"'".$this->cond_reglement_id."'":"null"); $sql.= ", ".($this->cond_reglement_id>0?"'".$this->cond_reglement_id."'":"null");
$sql.= ", ".($this->mode_reglement_id>0?"'".$this->mode_reglement_id."'":"null"); $sql.= ", ".($this->mode_reglement_id>0?"'".$this->mode_reglement_id."'":"null");
$sql.= ", ".($this->availability_id>0?"'".$this->availability_id."'":"null");
$sql.= ", ".($this->date_livraison?"'".$this->db->idate($this->date_livraison)."'":"null"); $sql.= ", ".($this->date_livraison?"'".$this->db->idate($this->date_livraison)."'":"null");
$sql.= ", ".($this->fk_delivery_address>0?$this->fk_delivery_address:'NULL'); $sql.= ", ".($this->fk_delivery_address>0?$this->fk_delivery_address:'NULL');
$sql.= ", ".($this->remise_absolue>0?$this->remise_absolue:'NULL'); $sql.= ", ".($this->remise_absolue>0?$this->remise_absolue:'NULL');
@ -832,6 +835,7 @@ class Commande extends CommonObject
$this->fk_project = $object->fk_project; $this->fk_project = $object->fk_project;
$this->cond_reglement_id = $object->cond_reglement_id; $this->cond_reglement_id = $object->cond_reglement_id;
$this->mode_reglement_id = $object->mode_reglement_id; $this->mode_reglement_id = $object->mode_reglement_id;
$this->availability_id = $object->availability_id;
$this->date_livraison = $object->date_livraison; $this->date_livraison = $object->date_livraison;
$this->fk_delivery_address = $object->fk_delivery_address; $this->fk_delivery_address = $object->fk_delivery_address;
$this->contact_id = $object->contactid; $this->contact_id = $object->contactid;
@ -1120,17 +1124,19 @@ class Commande extends CommonObject
if (empty($id) && empty($ref)) return -1; if (empty($id) && empty($ref)) return -1;
$sql = 'SELECT c.rowid, c.date_creation, c.ref, c.fk_soc, c.fk_user_author, c.fk_statut'; $sql = 'SELECT c.rowid, c.date_creation, c.ref, c.fk_soc, c.fk_user_author, c.fk_statut';
$sql.= ', c.amount_ht, c.total_ht, c.total_ttc, c.tva as total_tva, c.localtax1 as total_localtax1, c.localtax2 as total_localtax2, c.fk_cond_reglement, c.fk_mode_reglement'; $sql.= ', c.amount_ht, c.total_ht, c.total_ttc, c.tva as total_tva, c.localtax1 as total_localtax1, c.localtax2 as total_localtax2, c.fk_cond_reglement, c.fk_mode_reglement, c.fk_availability';
$sql.= ', c.date_commande'; $sql.= ', c.date_commande';
$sql.= ', c.date_livraison'; $sql.= ', c.date_livraison';
$sql.= ', c.fk_projet, c.remise_percent, c.remise, c.remise_absolue, c.source, c.facture as facturee'; $sql.= ', c.fk_projet, c.remise_percent, c.remise, c.remise_absolue, c.source, c.facture as facturee';
$sql.= ', c.note, c.note_public, c.ref_client, c.model_pdf, c.fk_adresse_livraison'; $sql.= ', c.note, c.note_public, c.ref_client, c.model_pdf, c.fk_adresse_livraison';
$sql.= ', p.code as mode_reglement_code, p.libelle as mode_reglement_libelle'; $sql.= ', p.code as mode_reglement_code, p.libelle as mode_reglement_libelle';
$sql.= ', cr.code as cond_reglement_code, cr.libelle as cond_reglement_libelle, cr.libelle_facture as cond_reglement_libelle_doc'; $sql.= ', cr.code as cond_reglement_code, cr.libelle as cond_reglement_libelle, cr.libelle_facture as cond_reglement_libelle_doc';
$sql.= ', ca.code as availability_code';
$sql.= ', el.fk_source'; $sql.= ', el.fk_source';
$sql.= ' FROM '.MAIN_DB_PREFIX.'commande as c'; $sql.= ' FROM '.MAIN_DB_PREFIX.'commande as c';
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_payment_term as cr ON (c.fk_cond_reglement = cr.rowid)'; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_payment_term as cr ON (c.fk_cond_reglement = cr.rowid)';
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_paiement as p ON (c.fk_mode_reglement = p.id)'; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_paiement as p ON (c.fk_mode_reglement = p.id)';
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_availability as ca ON (c.fk_availability = ca.rowid)';
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as el ON el.fk_target = c.rowid AND el.targettype = '".$this->element."'"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as el ON el.fk_target = c.rowid AND el.targettype = '".$this->element."'";
$sql.= " WHERE c.entity = ".$conf->entity; $sql.= " WHERE c.entity = ".$conf->entity;
if ($ref) $sql.= " AND c.ref='".$ref."'"; if ($ref) $sql.= " AND c.ref='".$ref."'";
@ -1172,6 +1178,8 @@ class Commande extends CommonObject
$this->cond_reglement_code = $obj->cond_reglement_code; $this->cond_reglement_code = $obj->cond_reglement_code;
$this->cond_reglement = $obj->cond_reglement_libelle; $this->cond_reglement = $obj->cond_reglement_libelle;
$this->cond_reglement_doc = $obj->cond_reglement_libelle_doc; $this->cond_reglement_doc = $obj->cond_reglement_libelle_doc;
$this->availability_id = $obj->fk_availability;
$this->availability_code = $obj->availability_code;
$this->date_livraison = $this->db->jdate($obj->date_livraison); $this->date_livraison = $this->db->jdate($obj->date_livraison);
$this->fk_delivery_address = $obj->fk_adresse_livraison; $this->fk_delivery_address = $obj->fk_adresse_livraison;
$this->propale_id = $obj->fk_source; $this->propale_id = $obj->fk_source;
@ -1864,6 +1872,39 @@ class Commande extends CommonObject
} }
} }
/**
* \brief Change le delai de livraison
* \param mode Id du nouveau mode
* \return int >0 si ok, <0 si ko
*/
function availability($availability_id)
{
dol_syslog('Commande::availability('.$availability_id.')');
if ($this->statut >= 0)
{
$sql = 'UPDATE '.MAIN_DB_PREFIX.'commande';
$sql .= ' SET fk_availability = '.$availability_id;
$sql .= ' WHERE rowid='.$this->id;
if ( $this->db->query($sql) )
{
$this->availability_id = $availability_id;
return 1;
}
else
{
dol_syslog('Commande::availability Erreur '.$sql.' - '.$this->db->error(), LOG_ERR);
$this->error=$this->db->lasterror();
return -1;
}
}
else
{
dol_syslog('Commande::availability, etat facture incompatible', LOG_ERR);
$this->error='Etat commande incompatible '.$this->statut;
return -2;
}
}
/** /**
* \brief Set customer ref * \brief Set customer ref
* \param user User that make change * \param user User that make change
@ -2404,6 +2445,7 @@ class Commande extends CommonObject
$this->date_lim_reglement=$this->date+3600*24*30; $this->date_lim_reglement=$this->date+3600*24*30;
$this->cond_reglement_code = 'RECEP'; $this->cond_reglement_code = 'RECEP';
$this->mode_reglement_code = 'CHQ'; $this->mode_reglement_code = 'CHQ';
$this->availability_code = 'DSP';
$this->note_public='This is a comment (public)'; $this->note_public='This is a comment (public)';
$this->note='This is a comment (private)'; $this->note='This is a comment (private)';
// Lines // Lines

View File

@ -203,6 +203,7 @@ if ($_POST['action'] == 'add' && $user->rights->commande->creer)
$object->modelpdf = $_POST['model']; $object->modelpdf = $_POST['model'];
$object->cond_reglement_id = $_POST['cond_reglement_id']; $object->cond_reglement_id = $_POST['cond_reglement_id'];
$object->mode_reglement_id = $_POST['mode_reglement_id']; $object->mode_reglement_id = $_POST['mode_reglement_id'];
$object->availability_id = $_POST['availability_id'];
$object->date_livraison = $datelivraison; $object->date_livraison = $datelivraison;
$object->fk_delivery_address = $_POST['fk_address']; $object->fk_delivery_address = $_POST['fk_address'];
$object->contactid = $_POST['contactidp']; $object->contactid = $_POST['contactidp'];
@ -1148,6 +1149,7 @@ if ($_GET['action'] == 'create' && $user->rights->commande->creer)
$soc = $objectsrc->client; $soc = $objectsrc->client;
$cond_reglement_id = (!empty($objectsrc->cond_reglement_id)?$objectsrc->cond_reglement_id:(!empty($soc->cond_reglement_id)?$soc->cond_reglement_id:1)); $cond_reglement_id = (!empty($objectsrc->cond_reglement_id)?$objectsrc->cond_reglement_id:(!empty($soc->cond_reglement_id)?$soc->cond_reglement_id:1));
$mode_reglement_id = (!empty($objectsrc->mode_reglement_id)?$objectsrc->mode_reglement_id:(!empty($soc->mode_reglement_id)?$soc->mode_reglement_id:0)); $mode_reglement_id = (!empty($objectsrc->mode_reglement_id)?$objectsrc->mode_reglement_id:(!empty($soc->mode_reglement_id)?$soc->mode_reglement_id:0));
$availability_id = (!empty($objectsrc->availability_id)?$objectsrc->availability_id:(!empty($soc->availability_id)?$soc->availability_id:0));
$remise_percent = (!empty($objectsrc->remise_percent)?$objectsrc->remise_percent:(!empty($soc->remise_percent)?$soc->remise_percent:0)); $remise_percent = (!empty($objectsrc->remise_percent)?$objectsrc->remise_percent:(!empty($soc->remise_percent)?$soc->remise_percent:0));
$remise_absolue = (!empty($objectsrc->remise_absolue)?$objectsrc->remise_absolue:(!empty($soc->remise_absolue)?$soc->remise_absolue:0)); $remise_absolue = (!empty($objectsrc->remise_absolue)?$objectsrc->remise_absolue:(!empty($soc->remise_absolue)?$soc->remise_absolue:0));
$dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE)?-1:0; $dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE)?-1:0;
@ -1157,6 +1159,7 @@ if ($_GET['action'] == 'create' && $user->rights->commande->creer)
{ {
$cond_reglement_id = $soc->cond_reglement_id; $cond_reglement_id = $soc->cond_reglement_id;
$mode_reglement_id = $soc->mode_reglement_id; $mode_reglement_id = $soc->mode_reglement_id;
$availability_id = $soc->availability_id;
$remise_percent = $soc->remise_percent; $remise_percent = $soc->remise_percent;
$remise_absolue = 0; $remise_absolue = 0;
$dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE)?-1:0; $dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE)?-1:0;
@ -1707,6 +1710,24 @@ else
} }
print '</td></tr>'; print '</td></tr>';
// Availability
print '<tr><td height="10">';
print '<table class="nobordernopadding" width="100%"><tr><td>';
print $langs->trans('AvailabilityPeriod');
print '</td>';
if ($_GET['action'] != 'editavailability' && $object->brouillon) print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editavailability&amp;id='.$object->id.'">'.img_edit($langs->trans('SetAvailability'),1).'</a></td>';
print '</tr></table>';
print '</td><td colspan="2">';
if ($_GET['action'] == 'editavailability')
{
$html->form_Availability($_SERVER['PHP_SELF'].'?id='.$object->id,$object->Availability_id,'Availability_id');
}
else
{
$html->form_Availability($_SERVER['PHP_SELF'].'?id='.$object->id,$object->Availability_id,'none');
}
print '</td></tr>';
// Project // Project
if ($conf->projet->enabled) if ($conf->projet->enabled)
{ {

View File

@ -13,6 +13,7 @@
ALTER TABLE llx_adherent MODIFY login varchar(50); ALTER TABLE llx_adherent MODIFY login varchar(50);
ALTER TABLE llx_c_actioncomm ADD COLUMN position integer NOT NULL DEFAULT 0; ALTER TABLE llx_c_actioncomm ADD COLUMN position integer NOT NULL DEFAULT 0;
ALTER TABLE llx_commande ADD COLUMN fk_availability integer(11) NULL DEFAULT 0;
ALTER TABLE llx_commande_fournisseur MODIFY model_pdf varchar(255); ALTER TABLE llx_commande_fournisseur MODIFY model_pdf varchar(255);
ALTER TABLE llx_commande MODIFY model_pdf varchar(255); ALTER TABLE llx_commande MODIFY model_pdf varchar(255);