to answer to this query :
http://www.dolibarr.fr/forum/12-howto--aide/20784-delais-de-livraison#24930 you can create a delivery type and add it to your propal
This commit is contained in:
parent
e05f0caf60
commit
daaffd5f14
@ -121,7 +121,7 @@ $tabsql[17]= "SELECT id as rowid, code, libelle, active FROM ".MAIN_DB_PREF
|
||||
$tabsql[18]= "SELECT rowid as rowid, code, libelle, active FROM ".MAIN_DB_PREFIX."c_shipment_mode";
|
||||
$tabsql[19]= "SELECT id as rowid, code, libelle, active FROM ".MAIN_DB_PREFIX."c_effectif";
|
||||
$tabsql[20]= "SELECT rowid as rowid, code, libelle, active FROM ".MAIN_DB_PREFIX."c_methode_commande_fournisseur";
|
||||
$tabsql[21]= "SELECT rowid as rowid, code, label, active FROM ".MAIN_DB_PREFIX."c_availability";
|
||||
$tabsql[21]= "SELECT c.rowid as rowid, code, label, active FROM ".MAIN_DB_PREFIX."c_availability AS c";
|
||||
|
||||
// Critere de tri du dictionnaire
|
||||
$tabsqlsort[1] ="pays ASC, code ASC";
|
||||
@ -238,7 +238,7 @@ $tabrowid[17]= "id";
|
||||
$tabrowid[18]= "rowid";
|
||||
$tabrowid[19]= "id";
|
||||
$tabrowid[20]= "";
|
||||
$tabrowid[21]= "";
|
||||
$tabrowid[21]= "rowid";
|
||||
|
||||
// Condition to show dictionnary in setup page
|
||||
$tabcond[1] = true;
|
||||
|
||||
@ -232,14 +232,6 @@ if ($_POST['action'] == 'setaddress' && $user->rights->propale->creer)
|
||||
if ($result < 0) dol_print_error($db,$object->error);
|
||||
}
|
||||
|
||||
// Availability
|
||||
if ($_POST['action'] == 'setavailability' && $user->rights->propale->creer)
|
||||
{
|
||||
$object->fetch($_GET["id"]);
|
||||
$result=$object->set_availability($user,$_POST['fk_availability']);
|
||||
if ($result < 0) dol_print_error($db,$object->error);
|
||||
}
|
||||
|
||||
// Positionne ref client
|
||||
if ($_POST['action'] == 'set_ref_client' && $user->rights->propale->creer)
|
||||
{
|
||||
@ -265,7 +257,7 @@ if ($_POST['action'] == 'add' && $user->rights->propale->creer)
|
||||
$object->ref = $_POST['ref'];
|
||||
$object->datep = dol_mktime(12, 0, 0, $_POST['remonth'], $_POST['reday'], $_POST['reyear']);
|
||||
$object->date_livraison = dol_mktime(12, 0, 0, $_POST['liv_month'], $_POST['liv_day'], $_POST['liv_year']);
|
||||
$object->fk_availability = $_POST['fk_availability'];
|
||||
$object->availability_id = $_POST['availability_id'];
|
||||
$object->fk_delivery_address = $_POST['fk_address'];
|
||||
$object->duree_validite = $_POST['duree_validite'];
|
||||
$object->cond_reglement_id = $_POST['cond_reglement_id'];
|
||||
@ -293,7 +285,7 @@ if ($_POST['action'] == 'add' && $user->rights->propale->creer)
|
||||
$object->ref_client = $_POST['ref_client'];
|
||||
$object->datep = dol_mktime(12, 0, 0, $_POST['remonth'], $_POST['reday'], $_POST['reyear']);
|
||||
$object->date_livraison = dol_mktime(12, 0, 0, $_POST['liv_month'], $_POST['liv_day'], $_POST['liv_year']);
|
||||
$object->fk_availability = $_POST['fk_availability'];
|
||||
$object->availability_id = $_POST['availability_id'];
|
||||
$object->fk_delivery_address = $_POST['fk_address'];
|
||||
$object->duree_validite = $_POST['duree_validite'];
|
||||
$object->cond_reglement_id = $_POST['cond_reglement_id'];
|
||||
@ -890,6 +882,14 @@ if ($_POST['action'] == 'classin')
|
||||
$object->setProject($_POST['projectid']);
|
||||
}
|
||||
|
||||
// Delai de livraison
|
||||
if ($_POST["action"] == 'setavailability')
|
||||
{
|
||||
$object->fetch($_REQUEST['id']);
|
||||
$result = $object->availability($_POST['availability_id']);
|
||||
$_GET['id']=$_REQUEST['id'];
|
||||
}
|
||||
|
||||
// Conditions de reglement
|
||||
if ($_POST["action"] == 'setconditions')
|
||||
{
|
||||
@ -1284,12 +1284,13 @@ if ($id > 0 || ! empty($ref))
|
||||
print '</td><td colspan="3">';
|
||||
if ($_GET['action'] == 'editavailability')
|
||||
{
|
||||
$html->form_availability($_SERVER['PHP_SELF'].'?id='.$object->id,$object->fk_availability,'fk_availability');
|
||||
$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->fk_availability,'none');
|
||||
$html->form_availability($_SERVER['PHP_SELF'].'?id='.$object->id,$object->availability_id,'none');
|
||||
}
|
||||
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
@ -95,7 +95,8 @@ class Propal extends CommonObject
|
||||
var $fk_address;
|
||||
var $address_type;
|
||||
var $adresse;
|
||||
var $fk_availability;
|
||||
var $availability_id;
|
||||
var $availability_code;
|
||||
|
||||
var $products=array();
|
||||
|
||||
@ -642,7 +643,7 @@ class Propal extends CommonObject
|
||||
$sql.= ", ".$this->mode_reglement_id;
|
||||
$sql.= ", '".$this->db->escape($this->ref_client)."'";
|
||||
$sql.= ", ".($this->date_livraison!=''?"'".$this->db->idate($this->date_livraison)."'":'null');
|
||||
$sql.= ", ".$this->fk_availability;
|
||||
$sql.= ", ".$this->availability_id;
|
||||
$sql.= ", ".$conf->entity;
|
||||
$sql.= ")";
|
||||
|
||||
@ -905,7 +906,7 @@ class Propal extends CommonObject
|
||||
$sql.= ", datep as dp";
|
||||
$sql.= ", fin_validite as dfv";
|
||||
$sql.= ", date_livraison as date_livraison";
|
||||
$sql.= ", fk_availability";
|
||||
$sql.= ", ca.code as availability_code, ca.label as availability";
|
||||
$sql.= ", model_pdf, ref_client";
|
||||
$sql.= ", note, note_public";
|
||||
$sql.= ", fk_projet, fk_statut";
|
||||
@ -919,6 +920,7 @@ class Propal extends CommonObject
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."c_propalst as c, ".MAIN_DB_PREFIX."propal as p";
|
||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_paiement as cp ON p.fk_mode_reglement = cp.id';
|
||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_payment_term as cr ON p.fk_cond_reglement = cr.rowid';
|
||||
$sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_availability as ca ON p.fk_availability = ca.rowid';
|
||||
$sql.= " WHERE p.fk_statut = c.id";
|
||||
$sql.= " AND p.entity = ".$conf->entity;
|
||||
if ($ref) $sql.= " AND p.ref='".$ref."'";
|
||||
@ -959,7 +961,9 @@ class Propal extends CommonObject
|
||||
$this->datep = $this->db->jdate($obj->dp);
|
||||
$this->fin_validite = $this->db->jdate($obj->dfv);
|
||||
$this->date_livraison = $this->db->jdate($obj->date_livraison);
|
||||
$this->fk_availability = $obj->fk_availability;
|
||||
$this->availability_id = $obj->fk_availability;
|
||||
$this->availability_code = $obj->availability_code;
|
||||
$this->availability = $obj->availability;
|
||||
$this->fk_delivery_address = $obj->fk_adresse_livraison; // TODO obsolete
|
||||
$this->fk_address = $obj->fk_adresse_livraison;
|
||||
|
||||
@ -1779,6 +1783,39 @@ class Propal extends CommonObject
|
||||
return -2;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Change le delai de livraison
|
||||
* \param availability_id Id du nouveau delai de livraison
|
||||
* \return int >0 si ok, <0 si ko
|
||||
*/
|
||||
function availability($availability_id)
|
||||
{
|
||||
dol_syslog('Propale::availability('.$availability_id.')');
|
||||
if ($this->statut >= 0)
|
||||
{
|
||||
$sql = 'UPDATE '.MAIN_DB_PREFIX.'propal';
|
||||
$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('Propale::availability Erreur '.$sql.' - '.$this->db->error());
|
||||
$this->error=$this->db->error();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
dol_syslog('Propale::availability, etat propale incompatible');
|
||||
$this->error='Etat propale incompatible '.$this->statut;
|
||||
return -2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@ -1997,6 +2034,8 @@ class Propal extends CommonObject
|
||||
$this->cond_reglement_code = 'RECEP';
|
||||
$this->mode_reglement_id = 7;
|
||||
$this->mode_reglement_code = 'CHQ';
|
||||
$this->availability_id = 1;
|
||||
$this->availability_code = 'DSP';
|
||||
$this->note_public='This is a comment (public)';
|
||||
$this->note='This is a comment (private)';
|
||||
// Lines
|
||||
|
||||
@ -1490,7 +1490,7 @@ class Form
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* \brief Charge dans cache la liste des délais de livraison possibles
|
||||
* \return int Nb lignes chargees, 0 si deja chargees, <0 si ko
|
||||
*/
|
||||
@ -1535,7 +1535,7 @@ class Form
|
||||
* \param filtertype Pour filtre
|
||||
* \param addempty Ajoute entree vide
|
||||
*/
|
||||
function select_availability($selected='',$htmlname='availability',$filtertype='',$addempty=0)
|
||||
function select_availability($selected='',$htmlname='availid',$filtertype='',$addempty=0)
|
||||
{
|
||||
global $langs,$user;
|
||||
|
||||
@ -2139,7 +2139,7 @@ class Form
|
||||
* \param htmlname Name of select html field
|
||||
* \param addempty Ajoute entree vide
|
||||
*/
|
||||
function form_availability($page, $selected='', $htmlname='availability', $addempty=0)
|
||||
function form_availability($page, $selected='', $htmlname='availability', $addempty=0)
|
||||
{
|
||||
global $langs;
|
||||
if ($htmlname != "none")
|
||||
|
||||
@ -441,6 +441,23 @@ class pdf_propale_azur extends ModelePDFPropales
|
||||
|
||||
$posy=$pdf->GetY()+4;
|
||||
}
|
||||
|
||||
// Show availability conditions
|
||||
if ($object->type != 2 && $object->availability_code || $object->availability)
|
||||
{
|
||||
$pdf->SetFont('','B', $default_font_size - 2);
|
||||
$pdf->SetXY($this->marge_gauche, $posy);
|
||||
$titre = $outputlangs->transnoentities("AvailabilityPeriod").':';
|
||||
$pdf->MultiCell(80, 4, $titre, 0, 'L');
|
||||
$pdf->SetTextColor(200,0,0);
|
||||
$pdf->SetFont('','B', $default_font_size - 2);
|
||||
$pdf->SetXY(82, $posy);
|
||||
$lib_availability=$outputlangs->transnoentities("AvailabilityPeriod".$object->availability_code)!=('AvailabilityPeriod'.$object->availability_code)?$outputlangs->transnoentities("AvailabilityPeriod".$object->availability_code):$outputlangs->convToOutputCharset($object->availability);
|
||||
$lib_availability=str_replace('\n',"\n",$lib_availability);
|
||||
$pdf->MultiCell(80, 4, $lib_availability,0,'L');
|
||||
|
||||
$posy=$pdf->GetY()+1;
|
||||
}
|
||||
|
||||
// Show payments conditions
|
||||
if ($object->type != 2 && ($object->cond_reglement_code || $object->cond_reglement))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user