mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2025-02-20 13:46:52 +01:00
Merge branch 'develop' of https://github.com/Dolibarr/dolibarr.git into develop
This commit is contained in:
commit
3694031053
|
|
@ -7,6 +7,8 @@ For users:
|
|||
- New: Some performance enhancements.
|
||||
- New: Can attach files onto trip and expenses modules.
|
||||
- New: Add option MAIN_PDF_TITLE_BACKGROUND_COLOR
|
||||
- New: Can define a hierarchical responsible on user
|
||||
- New: Merge tab customer and prospect
|
||||
|
||||
For developers:
|
||||
- System of menu managers has been rewritten to reduce code to do same things.
|
||||
|
|
|
|||
|
|
@ -33,11 +33,11 @@ complete release of Dolibarr, step by step.
|
|||
|
||||
- Check all files are commited.
|
||||
- Update version/info in /ChangeLog and /filefunc.inc.php
|
||||
- Update version number with x.x.x-y in htdocs/filefunc.inc.php
|
||||
- Update version number with x.x.x-y in build/makepack-dolibarr.pl
|
||||
- Update version number with x.x.x-y in build/debian/changelog
|
||||
- Update version number with x.x.x-y in build/exe/doliwamp/doliwamp.iss
|
||||
- Update version number with x.x.x-y in build/rpm/*.spec
|
||||
- Update version number with x.x.x in htdocs/filefunc.inc.php
|
||||
- Update version number with x.x.x in build/makepack-dolibarr.pl
|
||||
- Update version number with x.x.x in build/debian/changelog
|
||||
- Update version number with x.x.x in build/exe/doliwamp/doliwamp.iss
|
||||
- Update version number with x.x.x in build/rpm/*.spec
|
||||
- Update PAD files.
|
||||
- Commit all changes.
|
||||
- Add a Tag (DOLIBARR_x_y)
|
||||
|
|
|
|||
|
|
@ -35,9 +35,9 @@
|
|||
<Program_Info>
|
||||
<Program_Name>Dolibarr</Program_Name>
|
||||
<Program_Version>3.3.0</Program_Version>
|
||||
<Program_Release_Month>08</Program_Release_Month>
|
||||
<Program_Release_Day>10</Program_Release_Day>
|
||||
<Program_Release_Year>2012</Program_Release_Year>
|
||||
<Program_Release_Month>02</Program_Release_Month>
|
||||
<Program_Release_Day>17</Program_Release_Day>
|
||||
<Program_Release_Year>2013</Program_Release_Year>
|
||||
<Program_Cost_Dollars />
|
||||
<Program_Cost_Other_Code />
|
||||
<Program_Cost_Other />
|
||||
|
|
|
|||
|
|
@ -35,9 +35,9 @@
|
|||
<Program_Info>
|
||||
<Program_Name>DoliWamp</Program_Name>
|
||||
<Program_Version>3.3.0</Program_Version>
|
||||
<Program_Release_Month>08</Program_Release_Month>
|
||||
<Program_Release_Day>10</Program_Release_Day>
|
||||
<Program_Release_Year>2012</Program_Release_Year>
|
||||
<Program_Release_Month>02</Program_Release_Month>
|
||||
<Program_Release_Day>17</Program_Release_Day>
|
||||
<Program_Release_Year>2013</Program_Release_Year>
|
||||
<Program_Cost_Dollars />
|
||||
<Program_Cost_Other_Code />
|
||||
<Program_Cost_Other />
|
||||
|
|
|
|||
|
|
@ -333,5 +333,5 @@ fi
|
|||
|
||||
|
||||
%changelog
|
||||
* Mon Jan 14 2013 Laurent Destailleur 3.4.0-0.1.a
|
||||
* Sun Feb 17 2013 Laurent Destailleur 3.4.0-0.1.a
|
||||
- Initial version (#723326)
|
||||
|
|
|
|||
|
|
@ -522,5 +522,5 @@ fi
|
|||
|
||||
|
||||
%changelog
|
||||
* Mon Jan 14 2013 Laurent Destailleur 3.4.0-0.1.a
|
||||
* Sun Feb 17 2013 Laurent Destailleur 3.4.0-0.1.a
|
||||
- Initial version (#723326)
|
||||
|
|
|
|||
|
|
@ -322,5 +322,5 @@ fi
|
|||
|
||||
|
||||
%changelog
|
||||
* Mon Jan 14 2013 Laurent Destailleur 3.4.0-0.1.a
|
||||
* Sun Feb 17 2013 Laurent Destailleur 3.4.0-0.1.a
|
||||
- Initial version (#723326)
|
||||
|
|
|
|||
|
|
@ -333,5 +333,5 @@ fi
|
|||
|
||||
|
||||
%changelog
|
||||
* Mon Jan 14 2013 Laurent Destailleur 3.4.0-0.1.a
|
||||
* Sun Feb 17 2013 Laurent Destailleur 3.4.0-0.1.a
|
||||
- Initial version (#723326)
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ class Adherent extends CommonObject
|
|||
var $login;
|
||||
var $pass;
|
||||
var $societe;
|
||||
var $adresse;
|
||||
//var $adresse;
|
||||
var $address;
|
||||
var $cp;
|
||||
var $zip;
|
||||
|
|
@ -429,7 +429,7 @@ class Adherent extends CommonObject
|
|||
$sql.= ", login=" .($this->login?"'".$this->db->escape($this->login)."'":"null");
|
||||
$sql.= ", societe=" .($this->societe?"'".$this->db->escape($this->societe)."'":"null");
|
||||
$sql.= ", fk_soc=" .($this->fk_soc > 0?"'".$this->fk_soc."'":"null");
|
||||
$sql.= ", adresse=" .($this->address?"'".$this->db->escape($this->address)."'":"null");
|
||||
$sql.= ", address=" .($this->address?"'".$this->db->escape($this->address)."'":"null");
|
||||
$sql.= ", cp=" .($this->zip?"'".$this->db->escape($this->zip)."'":"null");
|
||||
$sql.= ", ville=" .($this->town?"'".$this->db->escape($this->town)."'":"null");
|
||||
$sql.= ", pays=" .($this->country_id>0?"'".$this->country_id."'":"null");
|
||||
|
|
@ -1019,7 +1019,7 @@ class Adherent extends CommonObject
|
|||
{
|
||||
global $langs;
|
||||
|
||||
$sql = "SELECT d.rowid, d.civilite, d.prenom as firstname, d.nom as lastname, d.societe, d.fk_soc, d.statut, d.public, d.adresse as address, d.cp as zip, d.ville as town, d.note,";
|
||||
$sql = "SELECT d.rowid, d.civilite, d.prenom as firstname, d.nom as lastname, d.societe, d.fk_soc, d.statut, d.public, d.address, d.cp as zip, d.ville as town, d.note,";
|
||||
$sql.= " d.email, d.phone, d.phone_perso, d.phone_mobile, d.login, d.pass,";
|
||||
$sql.= " d.photo, d.fk_adherent_type, d.morphy, d.entity,";
|
||||
$sql.= " d.datec as datec,";
|
||||
|
|
@ -1065,7 +1065,7 @@ class Adherent extends CommonObject
|
|||
$this->pass = $obj->pass;
|
||||
$this->societe = $obj->societe;
|
||||
$this->fk_soc = $obj->fk_soc;
|
||||
$this->adresse = $obj->address; // deprecated
|
||||
//$this->adresse = $obj->address; // deprecated
|
||||
$this->address = $obj->address;
|
||||
$this->cp = $obj->zip; // deprecated
|
||||
$this->zip = $obj->zip;
|
||||
|
|
@ -1824,7 +1824,7 @@ class Adherent extends CommonObject
|
|||
if ($this->login && ! empty($conf->global->LDAP_MEMBER_FIELD_LOGIN)) $info[$conf->global->LDAP_MEMBER_FIELD_LOGIN] = $this->login;
|
||||
if ($this->pass && ! empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD)) $info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD] = $this->pass; // this->pass = mot de passe non crypte
|
||||
if ($this->poste && ! empty($conf->global->LDAP_MEMBER_FIELD_TITLE)) $info[$conf->global->LDAP_MEMBER_FIELD_TITLE] = $this->poste;
|
||||
if ($this->adresse && ! empty($conf->global->LDAP_MEMBER_FIELD_ADDRESS)) $info[$conf->global->LDAP_MEMBER_FIELD_ADDRESS] = $this->adresse;
|
||||
if ($this->address && ! empty($conf->global->LDAP_MEMBER_FIELD_ADDRESS)) $info[$conf->global->LDAP_MEMBER_FIELD_ADDRESS] = $this->address;
|
||||
if ($this->cp && ! empty($conf->global->LDAP_MEMBER_FIELD_ZIP)) $info[$conf->global->LDAP_MEMBER_FIELD_ZIP] = $this->cp;
|
||||
if ($this->ville && ! empty($conf->global->LDAP_MEMBER_FIELD_TOWN)) $info[$conf->global->LDAP_MEMBER_FIELD_TOWN] = $this->ville;
|
||||
if ($this->country_code && ! empty($conf->global->LDAP_MEMBER_FIELD_COUNTRY)) $info[$conf->global->LDAP_MEMBER_FIELD_COUNTRY] = $this->country_code;
|
||||
|
|
|
|||
|
|
@ -259,7 +259,7 @@ if ($action == 'update' && ! $_POST["cancel"] && $user->rights->adherent->creer)
|
|||
$object->pass = trim($_POST["pass"]);
|
||||
|
||||
$object->societe = trim($_POST["societe"]);
|
||||
$object->adresse = trim($_POST["address"]); // deprecated
|
||||
//$object->adresse = trim($_POST["address"]); // deprecated
|
||||
$object->address = trim($_POST["address"]);
|
||||
$object->cp = trim($_POST["zipcode"]); // deprecated
|
||||
$object->zip = trim($_POST["zipcode"]);
|
||||
|
|
@ -440,7 +440,7 @@ if ($action == 'add' && $user->rights->adherent->creer)
|
|||
$object->firstname = $prenom;
|
||||
$object->lastname = $nom;
|
||||
$object->societe = $societe;
|
||||
$object->adresse = $address; // deprecated
|
||||
//$object->adresse = $address; // deprecated
|
||||
$object->address = $address;
|
||||
$object->cp = $zip; // deprecated
|
||||
$object->zip = $zip;
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ if ($sall)
|
|||
$sql.=" AND (";
|
||||
if (is_numeric($sall)) $sql.= "d.rowid = ".$sall." OR ";
|
||||
$sql.=" d.prenom LIKE '%".$sall."%' OR d.nom LIKE '%".$sall."%' OR d.societe LIKE '%".$sall."%'";
|
||||
$sql.=" OR d.email LIKE '%".$sall."%' OR d.login LIKE '%".$sall."%' OR d.adresse LIKE '%".$sall."%'";
|
||||
$sql.=" OR d.email LIKE '%".$sall."%' OR d.login LIKE '%".$sall."%' OR d.address LIKE '%".$sall."%'";
|
||||
$sql.=" OR d.ville LIKE '%".$sall."%' OR d.note LIKE '%".$sall."%')";
|
||||
}
|
||||
if ($type > 0)
|
||||
|
|
|
|||
|
|
@ -416,7 +416,7 @@ if ($rowid > 0)
|
|||
if ($sall)
|
||||
{
|
||||
$sql.= " AND (d.prenom LIKE '%".$sall."%' OR d.nom LIKE '%".$sall."%' OR d.societe LIKE '%".$sall."%'";
|
||||
$sql.= " OR d.email LIKE '%".$sall."%' OR d.login LIKE '%".$sall."%' OR d.adresse LIKE '%".$sall."%'";
|
||||
$sql.= " OR d.email LIKE '%".$sall."%' OR d.login LIKE '%".$sall."%' OR d.address LIKE '%".$sall."%'";
|
||||
$sql.= " OR d.ville LIKE '%".$sall."%' OR d.note LIKE '%".$sall."%')";
|
||||
}
|
||||
if ($status != '')
|
||||
|
|
|
|||
|
|
@ -941,7 +941,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa
|
|||
print '<div id="dayevent_'.sprintf("%04d",$year).sprintf("%02d",$month).sprintf("%02d",$day).'" class="dayevent">'."\n";
|
||||
$curtime = dol_mktime(0, 0, 0, $month, $day, $year);
|
||||
print '<table class="nobordernopadding" width="100%">';
|
||||
print '<tr style="background: #EEEEEE"><td align="left" nowrap="nowrap">';
|
||||
print '<tr><td align="left" nowrap="nowrap">';
|
||||
print '<a href="'.DOL_URL_ROOT.'/comm/action/index.php?';
|
||||
print 'action=show_day&day='.str_pad($day, 2, "0", STR_PAD_LEFT).'&month='.str_pad($month, 2, "0", STR_PAD_LEFT).'&year='.$year;
|
||||
print $newparam;
|
||||
|
|
@ -960,7 +960,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa
|
|||
print '</a>';
|
||||
}
|
||||
print '</td></tr>';
|
||||
print '<tr height="'.$minheight.'"><td valign="top" colspan="2" nowrap="nowrap">';
|
||||
print '<tr height="'.$minheight.'"><td valign="top" colspan="2" nowrap="nowrap" style="padding-bottom: 2px;">';
|
||||
|
||||
//$curtime = dol_mktime (0, 0, 0, $month, $day, $year);
|
||||
$i=0; $nummytasks=0; $numother=0; $numbirthday=0; $numical=0; $numicals=array();
|
||||
|
|
@ -1004,8 +1004,9 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa
|
|||
|
||||
// Show rect of event
|
||||
print '<div id="event_'.$ymd.'_'.$i.'" class="event '.$cssclass.'">';
|
||||
print '<table class="cal_event" style="background: #'.$color.'; -moz-border-radius:4px;" width="100%"><tr>';
|
||||
print '<td nowrap="nowrap">';
|
||||
print '<ul class="cal_event"><li class="cal_event">';
|
||||
print '<table class="cal_event" style="background: #'.$color.'; -moz-border-radius:4px; background: -webkit-gradient(linear, left top, left bottom, from(#'.$color.'), to(#'.dol_color_minus($color,2).')); " width="100%"><tr>';
|
||||
print '<td nowrap="nowrap" class="cal_event">';
|
||||
if ($event->type_code == 'BIRTHDAY') // It's a birthday
|
||||
{
|
||||
print $event->getNomUrl(1,$maxnbofchar,'cal_event','birthday','contact');
|
||||
|
|
@ -1130,6 +1131,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa
|
|||
if ($event->type_code != 'BIRTHDAY' && $event->type_code != 'ICALEVENT') print $event->getLibStatut(3,1);
|
||||
else print ' ';
|
||||
print '</td></tr></table>';
|
||||
print '</li></ul>';
|
||||
print '</div>';
|
||||
$i++;
|
||||
}
|
||||
|
|
@ -1174,4 +1176,13 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa
|
|||
print '</div>'."\n";
|
||||
}
|
||||
|
||||
function dol_color_minus($color, $minus)
|
||||
{
|
||||
$newcolor=$color;
|
||||
$newcolor[0]=((hexdec($newcolor[0])-$minus)<0)?0:dechex((hexdec($newcolor[0])-$minus));
|
||||
$newcolor[2]=((hexdec($newcolor[2])-$minus)<0)?0:dechex((hexdec($newcolor[2])-$minus));
|
||||
$newcolor[4]=((hexdec($newcolor[4])-$minus)<0)?0:dechex((hexdec($newcolor[4])-$minus));
|
||||
return $newcolor;
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -143,6 +143,7 @@ if ($socid) $param.="&socid=".$socid;
|
|||
if ($showbirthday) $param.="&showbirthday=1";
|
||||
if ($pid) $param.="&projectid=".$pid;
|
||||
if ($type) $param.="&type=".$type;
|
||||
if ($actioncode) $param.="&actioncode=".$actioncode;
|
||||
|
||||
$sql = "SELECT s.nom as societe, s.rowid as socid, s.client,";
|
||||
$sql.= " a.id, a.datep as dp, a.datep2 as dp2,";
|
||||
|
|
|
|||
|
|
@ -386,29 +386,32 @@ if ($id > 0)
|
|||
}
|
||||
|
||||
// Level of prospect
|
||||
print '<tr><td nowrap>';
|
||||
print '<table width="100%" class="nobordernopadding"><tr><td nowrap>';
|
||||
print $langs->trans('ProspectLevelShort');
|
||||
print '<td>';
|
||||
if ($action != 'editlevel' && $user->rights->societe->creer) print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editlevel&socid='.$object->id.'">'.img_edit($langs->trans('Modify'),1).'</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
if ($action == 'editlevel')
|
||||
$formcompany->form_prospect_level($_SERVER['PHP_SELF'].'?socid='.$object->id,$object->fk_prospectlevel,'prospect_level_id',1);
|
||||
else
|
||||
print $object->getLibProspLevel();
|
||||
print "</td>";
|
||||
print '</tr>';
|
||||
|
||||
// Status
|
||||
print '<tr><td>'.$langs->trans("StatusProsp").'</td><td colspan="2">'.$object->getLibProspCommStatut(4).'</td>';
|
||||
print '<td>';
|
||||
if ($object->stcomm_id != -1) print '<a href="fiche.php?socid='.$object->id.'&stcomm=-1&action=cstc">'.img_action(0,-1).'</a>';
|
||||
if ($object->stcomm_id != 0) print '<a href="fiche.php?socid='.$object->id.'&stcomm=0&action=cstc">'.img_action(0,0).'</a>';
|
||||
if ($object->stcomm_id != 1) print '<a href="fiche.php?socid='.$object->id.'&stcomm=1&action=cstc">'.img_action(0,1).'</a>';
|
||||
if ($object->stcomm_id != 2) print '<a href="fiche.php?socid='.$object->id.'&stcomm=2&action=cstc">'.img_action(0,2).'</a>';
|
||||
if ($object->stcomm_id != 3) print '<a href="fiche.php?socid='.$object->id.'&stcomm=3&action=cstc">'.img_action(0,3).'</a>';
|
||||
print '</td></tr>';
|
||||
if ($object->client == 2 || $object->client == 3)
|
||||
{
|
||||
print '<tr><td nowrap>';
|
||||
print '<table width="100%" class="nobordernopadding"><tr><td nowrap>';
|
||||
print $langs->trans('ProspectLevel');
|
||||
print '<td>';
|
||||
if ($action != 'editlevel' && $user->rights->societe->creer) print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editlevel&socid='.$object->id.'">'.img_edit($langs->trans('Modify'),1).'</a></td>';
|
||||
print '</tr></table>';
|
||||
print '</td><td colspan="3">';
|
||||
if ($action == 'editlevel')
|
||||
$formcompany->form_prospect_level($_SERVER['PHP_SELF'].'?socid='.$object->id,$object->fk_prospectlevel,'prospect_level_id',1);
|
||||
else
|
||||
print $object->getLibProspLevel();
|
||||
print "</td>";
|
||||
print '</tr>';
|
||||
|
||||
// Status
|
||||
print '<tr><td>'.$langs->trans("StatusProsp").'</td><td colspan="2">'.$object->getLibProspCommStatut(4).'</td>';
|
||||
print '<td>';
|
||||
if ($object->stcomm_id != -1) print '<a href="fiche.php?socid='.$object->id.'&stcomm=-1&action=cstc">'.img_action(0,-1).'</a>';
|
||||
if ($object->stcomm_id != 0) print '<a href="fiche.php?socid='.$object->id.'&stcomm=0&action=cstc">'.img_action(0,0).'</a>';
|
||||
if ($object->stcomm_id != 1) print '<a href="fiche.php?socid='.$object->id.'&stcomm=1&action=cstc">'.img_action(0,1).'</a>';
|
||||
if ($object->stcomm_id != 2) print '<a href="fiche.php?socid='.$object->id.'&stcomm=2&action=cstc">'.img_action(0,2).'</a>';
|
||||
if ($object->stcomm_id != 3) print '<a href="fiche.php?socid='.$object->id.'&stcomm=3&action=cstc">'.img_action(0,3).'</a>';
|
||||
print '</td></tr>';
|
||||
}
|
||||
|
||||
// Sales representative
|
||||
include DOL_DOCUMENT_ROOT.'/societe/tpl/linesalesrepresentative.tpl.php';
|
||||
|
|
|
|||
|
|
@ -79,12 +79,12 @@ $result = restrictedArea($user, 'propal', $id);
|
|||
|
||||
$object = new Propal($db);
|
||||
|
||||
// Load object
|
||||
// Load object
|
||||
if ($id > 0 || ! empty($ref))
|
||||
{
|
||||
$ret=$object->fetch($id, $ref);
|
||||
$ret=$object->fetch_thirdparty();
|
||||
if ($ret > 0) $ret=$object->fetch_thirdparty();
|
||||
if ($ret < 0) dol_print_error('',$object->error);
|
||||
}
|
||||
|
||||
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ class Propal extends CommonObject
|
|||
var $fk_delivery_address; // deprecated (for compatibility)
|
||||
var $fk_address;
|
||||
var $address_type;
|
||||
var $adresse;
|
||||
var $address;
|
||||
var $availability_id;
|
||||
var $availability_code;
|
||||
var $demand_reason_id;
|
||||
|
|
@ -789,7 +789,7 @@ class Propal extends CommonObject
|
|||
if (! $error && $this->fk_delivery_address)
|
||||
{
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."propal";
|
||||
$sql.= " SET fk_adresse_livraison = ".$this->fk_delivery_address;
|
||||
$sql.= " SET fk_delivery_address = ".$this->fk_delivery_address;
|
||||
$sql.= " WHERE ref = '".$this->ref."'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
|
||||
|
|
@ -985,7 +985,7 @@ class Propal extends CommonObject
|
|||
$sql.= ", p.note as note_private, p.note_public";
|
||||
$sql.= ", p.fk_projet, p.fk_statut";
|
||||
$sql.= ", p.fk_user_author, p.fk_user_valid, p.fk_user_cloture";
|
||||
$sql.= ", p.fk_adresse_livraison";
|
||||
$sql.= ", p.fk_delivery_address";
|
||||
$sql.= ", p.fk_availability";
|
||||
$sql.= ", p.fk_input_reason";
|
||||
$sql.= ", p.fk_cond_reglement";
|
||||
|
|
@ -1049,8 +1049,8 @@ class Propal extends CommonObject
|
|||
$this->demand_reason_id = $obj->fk_input_reason;
|
||||
$this->demand_reason_code = $obj->demand_reason_code;
|
||||
$this->demand_reason = $obj->demand_reason;
|
||||
$this->fk_delivery_address = $obj->fk_adresse_livraison; // TODO obsolete
|
||||
$this->fk_address = $obj->fk_adresse_livraison;
|
||||
//$this->fk_delivery_address = $obj->fk_adresse_livraison; // TODO obsolete
|
||||
$this->fk_address = $obj->fk_delivery_address;
|
||||
|
||||
$this->mode_reglement_id = $obj->fk_mode_reglement;
|
||||
$this->mode_reglement_code = $obj->mode_reglement_code;
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ class Commande extends CommonOrder
|
|||
var $demand_reason_id;
|
||||
var $demand_reason_code;
|
||||
var $fk_delivery_address;
|
||||
var $adresse;
|
||||
var $address;
|
||||
var $date; // Date commande
|
||||
var $date_commande; // Date commande (deprecated)
|
||||
var $date_livraison; // Date livraison souhaitee
|
||||
|
|
@ -631,7 +631,7 @@ class Commande extends CommonOrder
|
|||
|
||||
$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, ref_int";
|
||||
$sql.= ", model_pdf, fk_cond_reglement, fk_mode_reglement, fk_availability, fk_input_reason, date_livraison, fk_adresse_livraison";
|
||||
$sql.= ", model_pdf, fk_cond_reglement, fk_mode_reglement, fk_availability, fk_input_reason, date_livraison, fk_delivery_address";
|
||||
$sql.= ", remise_absolue, remise_percent";
|
||||
$sql.= ", entity";
|
||||
$sql.= ")";
|
||||
|
|
@ -1240,7 +1240,7 @@ class Commande extends CommonOrder
|
|||
$sql.= ', c.date_commande';
|
||||
$sql.= ', c.date_livraison';
|
||||
$sql.= ', c.fk_projet, c.remise_percent, c.remise, c.remise_absolue, c.source, c.facture as billed';
|
||||
$sql.= ', c.note as note_private, c.note_public, c.ref_client, c.ref_ext, c.ref_int, c.model_pdf, c.fk_adresse_livraison, c.extraparams';
|
||||
$sql.= ', c.note as note_private, c.note_public, c.ref_client, c.ref_ext, c.ref_int, c.model_pdf, c.fk_delivery_address, c.extraparams';
|
||||
$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.= ', ca.code as availability_code';
|
||||
|
|
@ -1301,7 +1301,7 @@ class Commande extends CommonOrder
|
|||
$this->demand_reason_id = $obj->fk_input_reason;
|
||||
$this->demand_reason_code = $obj->demand_reason_code;
|
||||
$this->date_livraison = $this->db->jdate($obj->date_livraison);
|
||||
$this->fk_delivery_address = $obj->fk_adresse_livraison;
|
||||
$this->fk_delivery_address = $obj->fk_delivery_address;
|
||||
|
||||
$this->extraparams = (array) json_decode($obj->extraparams, true);
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ class Don extends CommonObject
|
|||
var $prenom;
|
||||
var $nom;
|
||||
var $societe;
|
||||
var $adresse;
|
||||
var $address;
|
||||
var $cp;
|
||||
var $ville;
|
||||
var $pays;
|
||||
|
|
@ -188,7 +188,7 @@ class Don extends CommonObject
|
|||
$this->amount = 100;
|
||||
$this->public = 1;
|
||||
$this->societe = 'The Company';
|
||||
$this->adresse = 'Twist road';
|
||||
$this->address = 'Twist road';
|
||||
$this->cp = '99999';
|
||||
$this->ville = 'Town';
|
||||
$this->note_public='SPECIMEN';
|
||||
|
|
@ -217,7 +217,7 @@ class Don extends CommonObject
|
|||
}
|
||||
}
|
||||
|
||||
if (dol_strlen(trim($this->adresse)) == 0)
|
||||
if (dol_strlen(trim($this->address)) == 0)
|
||||
{
|
||||
$error_string[$err] = "L'adresse saisie est invalide";
|
||||
$err++;
|
||||
|
|
@ -297,7 +297,7 @@ class Don extends CommonObject
|
|||
global $conf;
|
||||
|
||||
// Clean parameters
|
||||
$this->address=($this->address>0?$this->address:$this->adresse);
|
||||
$this->address=($this->address>0?$this->address:$this->address);
|
||||
$this->zip=($this->zip>0?$this->zip:$this->cp);
|
||||
$this->town=($this->town>0?$this->town:$this->ville);
|
||||
$this->country_id=($this->country_id>0?$this->country_id:$this->fk_pays);
|
||||
|
|
@ -313,7 +313,7 @@ class Don extends CommonObject
|
|||
$sql.= ", prenom";
|
||||
$sql.= ", nom";
|
||||
$sql.= ", societe";
|
||||
$sql.= ", adresse";
|
||||
$sql.= ", address";
|
||||
$sql.= ", cp";
|
||||
$sql.= ", ville";
|
||||
$sql.= ", pays";
|
||||
|
|
@ -334,7 +334,7 @@ class Don extends CommonObject
|
|||
$sql.= ", '".$this->db->escape($this->prenom)."'";
|
||||
$sql.= ", '".$this->db->escape($this->nom)."'";
|
||||
$sql.= ", '".$this->db->escape($this->societe)."'";
|
||||
$sql.= ", '".$this->db->escape($this->adresse)."'";
|
||||
$sql.= ", '".$this->db->escape($this->address)."'";
|
||||
$sql.= ", '".$this->db->escape($this->zip)."'";
|
||||
$sql.= ", '".$this->db->escape($this->town)."'";
|
||||
$sql.= ", '".$this->db->escape($this->country)."'"; // TODO use country_id
|
||||
|
|
@ -382,7 +382,7 @@ class Don extends CommonObject
|
|||
function update($user)
|
||||
{
|
||||
// Clean parameters
|
||||
$this->address=($this->address>0?$this->address:$this->adresse);
|
||||
$this->address=($this->address>0?$this->address:$this->address);
|
||||
$this->zip=($this->zip>0?$this->zip:$this->cp);
|
||||
$this->town=($this->town>0?$this->town:$this->ville);
|
||||
$this->country_id=($this->country_id>0?$this->country_id:$this->fk_pays);
|
||||
|
|
@ -394,7 +394,7 @@ class Don extends CommonObject
|
|||
$sql .= ",prenom = '".$this->db->escape($this->prenom)."'";
|
||||
$sql .= ",nom='".$this->db->escape($this->nom)."'";
|
||||
$sql .= ",societe='".$this->db->escape($this->societe)."'";
|
||||
$sql .= ",adresse='".$this->db->escape($this->address)."'";
|
||||
$sql .= ",address='".$this->db->escape($this->address)."'";
|
||||
$sql .= ",cp='".$this->db->escape($this->zip)."'";
|
||||
$sql .= ",ville='".$this->db->escape($this->town)."'";
|
||||
$sql .= ",pays='".$this->db->escape($this->country)."'"; // TODO use country_id
|
||||
|
|
@ -463,7 +463,7 @@ class Don extends CommonObject
|
|||
global $conf;
|
||||
|
||||
$sql = "SELECT d.rowid, d.datec, d.tms as datem, d.datedon,";
|
||||
$sql.= " d.prenom, d.nom, d.societe, d.amount, d.fk_statut, d.adresse, d.cp, d.ville, d.pays, d.public, d.amount, d.fk_paiement, d.note, cp.libelle, d.email, d.phone, d.phone_mobile, d.fk_don_projet,";
|
||||
$sql.= " d.prenom, d.nom, d.societe, d.amount, d.fk_statut, d.address, d.cp, d.ville, d.pays, d.public, d.amount, d.fk_paiement, d.note, cp.libelle, d.email, d.phone, d.phone_mobile, d.fk_don_projet,";
|
||||
$sql.= " p.title as project_label";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."don as d";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet as p ON p.rowid = d.fk_don_projet";
|
||||
|
|
@ -487,7 +487,7 @@ class Don extends CommonObject
|
|||
$this->nom = $obj->nom;
|
||||
$this->societe = $obj->societe;
|
||||
$this->statut = $obj->fk_statut;
|
||||
$this->adresse = $obj->adresse;
|
||||
$this->address = $obj->address;
|
||||
$this->cp = $obj->cp;
|
||||
$this->ville = $obj->ville;
|
||||
$this->zip = $obj->cp;
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ if ($action == 'update')
|
|||
$don->prenom = $_POST["prenom"];
|
||||
$don->nom = $_POST["nom"];
|
||||
$don->societe = $_POST["societe"];
|
||||
$don->adresse = $_POST["adresse"];
|
||||
$don->address = $_POST["address"];
|
||||
$don->amount = price2num($_POST["amount"]);
|
||||
$don->cp = $_POST["zipcode"];
|
||||
$don->ville = $_POST["town"];
|
||||
|
|
@ -140,7 +140,7 @@ if ($action == 'add')
|
|||
$don->prenom = $_POST["prenom"];
|
||||
$don->nom = $_POST["nom"];
|
||||
$don->societe = $_POST["societe"];
|
||||
$don->adresse = $_POST["adresse"];
|
||||
$don->address = $_POST["address"];
|
||||
$don->amount = price2num($_POST["amount"]);
|
||||
$don->cp = $_POST["zipcode"];
|
||||
$don->ville = $_POST["town"];
|
||||
|
|
@ -300,7 +300,7 @@ if ($action == 'create')
|
|||
print "<tr>".'<td>'.$langs->trans("Firstname").'</td><td><input type="text" name="prenom" value="'.$_POST["prenom"].'" size="40"></td></tr>';
|
||||
print "<tr>".'<td>'.$langs->trans("Lastname").'</td><td><input type="text" name="nom" value="'.$_POST["nom"].'" size="40"></td></tr>';
|
||||
print "<tr>".'<td>'.$langs->trans("Address").'</td><td>';
|
||||
print '<textarea name="adresse" wrap="soft" cols="40" rows="3">'.$_POST["adresse"].'</textarea></td></tr>';
|
||||
print '<textarea name="address" wrap="soft" cols="40" rows="3">'.$_POST["address"].'</textarea></td></tr>';
|
||||
|
||||
// Zip / Town
|
||||
print '<tr><td>'.$langs->trans("Zip").' / '.$langs->trans("Town").'</td><td>';
|
||||
|
|
@ -390,7 +390,7 @@ if (! empty($id) && $action == 'edit')
|
|||
print "<tr>".'<td>'.$langs->trans("Firstname").'</td><td><input type="text" name="prenom" size="40" value="'.$don->prenom.'"></td></tr>';
|
||||
print "<tr>".'<td>'.$langs->trans("Lastname").'</td><td><input type="text" name="nom" size="40" value="'.$don->nom.'"></td></tr>';
|
||||
print "<tr>".'<td>'.$langs->trans("Address").'</td><td>';
|
||||
print '<textarea name="adresse" wrap="soft" cols="40" rows="'.ROWS_3.'">'.$don->adresse.'</textarea></td></tr>';
|
||||
print '<textarea name="address" wrap="soft" cols="40" rows="'.ROWS_3.'">'.$don->address.'</textarea></td></tr>';
|
||||
|
||||
// Zip / Town
|
||||
print '<tr><td>'.$langs->trans("Zip").' / '.$langs->trans("Town").'</td><td>';
|
||||
|
|
@ -485,7 +485,7 @@ if (! empty($id) && $action != 'edit')
|
|||
print "<tr>".'<td>'.$langs->trans("Company").'</td><td>'.$don->societe.'</td></tr>';
|
||||
print "<tr>".'<td>'.$langs->trans("Firstname").'</td><td>'.$don->prenom.'</td></tr>';
|
||||
print "<tr>".'<td>'.$langs->trans("Lastname").'</td><td>'.$don->nom.'</td></tr>';
|
||||
print "<tr>".'<td>'.$langs->trans("Address").'</td><td>'.dol_nl2br($don->adresse).'</td></tr>';
|
||||
print "<tr>".'<td>'.$langs->trans("Address").'</td><td>'.dol_nl2br($don->address).'</td></tr>';
|
||||
|
||||
// Zip / Town
|
||||
print "<tr>".'<td>'.$langs->trans("Zip").' / '.$langs->trans("Town").'</td><td>'.$don->cp.($don->cp && $don->ville?' / ':'').$don->ville.'</td></tr>';
|
||||
|
|
|
|||
|
|
@ -1915,14 +1915,6 @@ if ($action == 'create')
|
|||
print $desc;
|
||||
print '</td></tr>'."\n";
|
||||
|
||||
// Deposit
|
||||
print '<tr height="18"><td width="16px" valign="middle">';
|
||||
print '<input type="radio" name="type" value="3"'.(GETPOST('type')==3?' checked="checked"':'').'>';
|
||||
print '</td><td valign="middle">';
|
||||
$desc=$form->textwithpicto($langs->trans("InvoiceDeposit"),$langs->transnoentities("InvoiceDepositDesc"),1);
|
||||
print $desc;
|
||||
print '</td></tr>'."\n";
|
||||
|
||||
// Proforma
|
||||
if (! empty($conf->global->FACTURE_USE_PROFORMAT))
|
||||
{
|
||||
|
|
@ -1934,7 +1926,18 @@ if ($action == 'create')
|
|||
print '</td></tr>'."\n";
|
||||
}
|
||||
|
||||
if ($socid>0)
|
||||
if (empty($origin))
|
||||
{
|
||||
// Deposit
|
||||
print '<tr height="18"><td width="16px" valign="middle">';
|
||||
print '<input type="radio" name="type" value="3"'.(GETPOST('type')==3?' checked="checked"':'').'>';
|
||||
print '</td><td valign="middle">';
|
||||
$desc=$form->textwithpicto($langs->trans("InvoiceDeposit"),$langs->transnoentities("InvoiceDepositDesc"),1);
|
||||
print $desc;
|
||||
print '</td></tr>'."\n";
|
||||
}
|
||||
|
||||
if ($socid > 0)
|
||||
{
|
||||
// Replacement
|
||||
print '<tr height="18"><td valign="middle">';
|
||||
|
|
@ -1959,8 +1962,11 @@ if ($action == 'create')
|
|||
$desc=$form->textwithpicto($text,$langs->transnoentities("InvoiceReplacementDesc"),1);
|
||||
print $desc;
|
||||
print '</td></tr>'."\n";
|
||||
}
|
||||
|
||||
// Credit note
|
||||
if (empty($origin) && $socid > 0)
|
||||
{
|
||||
// Credit note
|
||||
print '<tr height="18"><td valign="middle">';
|
||||
print '<input type="radio" name="type" value="2"'.(GETPOST('type')==2?' checked=true':'');
|
||||
if (! $optionsav) print ' disabled="disabled"';
|
||||
|
|
@ -1984,11 +1990,12 @@ if ($action == 'create')
|
|||
$desc=$form->textwithpicto($text,$langs->transnoentities("InvoiceAvoirDesc"),1);
|
||||
print $desc;
|
||||
print '</td></tr>'."\n";
|
||||
}
|
||||
}
|
||||
|
||||
print '</table>';
|
||||
print '</td></tr>';
|
||||
|
||||
if($socid>0)
|
||||
if ($socid > 0)
|
||||
{
|
||||
// Discounts for third party
|
||||
print '<tr><td>'.$langs->trans('Discounts').'</td><td colspan="2">';
|
||||
|
|
|
|||
|
|
@ -520,7 +520,7 @@ class Contact extends CommonObject
|
|||
$this->prenom = $obj->firstname; // TODO deprecated
|
||||
|
||||
$this->address = $obj->address;
|
||||
$this->adresse = $obj->address; // TODO deprecated
|
||||
//$this->adresse = $obj->address; // TODO deprecated
|
||||
$this->cp = $obj->zip; // TODO deprecated
|
||||
$this->zip = $obj->zip;
|
||||
$this->ville = $obj->town; // TODO deprecated
|
||||
|
|
|
|||
|
|
@ -383,7 +383,7 @@ else
|
|||
});
|
||||
|
||||
$("#copyaddressfromsoc").click(function() {
|
||||
$(\'textarea[name="address"]\').text("'.dol_escape_js($objsoc->address).'");
|
||||
$(\'textarea[name="address"]\').val("'.dol_escape_js($objsoc->address).'");
|
||||
$(\'input[name="zipcode"]\').val("'.dol_escape_js($objsoc->zip).'");
|
||||
$(\'input[name="town"]\').val("'.dol_escape_js($objsoc->town).'");
|
||||
$(\'select[name="country_id"]\').val("'.dol_escape_js($objsoc->country_id).'");
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ $extrasize=GETPOST('size');
|
|||
if (GETPOST('type')=='double' && strpos($extrasize,',')===false) $extrasize='24,8';
|
||||
if (GETPOST('type')=='date') $extrasize='';
|
||||
if (GETPOST('type')=='datetime') $extrasize='';
|
||||
if (GETPOST('type')=='select') $extrasize='';
|
||||
|
||||
|
||||
// Add attribute
|
||||
|
|
@ -58,13 +59,29 @@ if ($action == 'add')
|
|||
$mesg=$langs->trans("ErrorSizeTooLongForIntType",$maxsizeint);
|
||||
$action = 'create';
|
||||
}
|
||||
if (GETPOST('type')=='select' && !GETPOST('param'))
|
||||
{
|
||||
$error++;
|
||||
$langs->load("errors");
|
||||
$mesg=$langs->trans("ErrorNoValueForSelectType");
|
||||
$action = 'create';
|
||||
}
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
// Type et taille non encore pris en compte => varchar(255)
|
||||
if (isset($_POST["attrname"]) && preg_match("/^\w[a-zA-Z0-9-_]*$/",$_POST['attrname']))
|
||||
{
|
||||
$result=$extrafields->addExtraField($_POST['attrname'],$_POST['label'],$_POST['type'],$_POST['pos'],$extrasize,$elementtype,(GETPOST('unique')?1:0),(GETPOST('required')?1:0));
|
||||
// Construct array for parameter (value of select list)
|
||||
$parameters = GETPOST('param');
|
||||
$parameters_array = explode("\r\n",$parameters);
|
||||
foreach($parameters_array as $param_ligne)
|
||||
{
|
||||
list($key,$value) = explode(',',$param_ligne);
|
||||
$params['options'][$key] = $value;
|
||||
}
|
||||
|
||||
$result=$extrafields->addExtraField($_POST['attrname'],$_POST['label'],$_POST['type'],$_POST['pos'],$extrasize,$elementtype,(GETPOST('unique')?1:0),(GETPOST('required')?1:0),$default_value,$params);
|
||||
if ($result > 0)
|
||||
{
|
||||
header("Location: ".$_SERVER["PHP_SELF"]);
|
||||
|
|
@ -119,7 +136,16 @@ if ($action == 'update')
|
|||
{
|
||||
if (isset($_POST["attrname"]) && preg_match("/^\w[a-zA-Z0-9-_]*$/",$_POST['attrname']))
|
||||
{
|
||||
$result=$extrafields->update($_POST['attrname'],$_POST['label'],$_POST['type'],$extrasize,$elementtype,(GETPOST('unique')?1:0),(GETPOST('required')?1:0));
|
||||
$pos = GETPOST('pos','int');
|
||||
// Construct array for parameter (value of select list)
|
||||
$parameters = GETPOST('param');
|
||||
$parameters_array = explode("\r\n",$parameters);
|
||||
foreach($parameters_array as $param_ligne)
|
||||
{
|
||||
list($key,$value) = explode(',',$param_ligne);
|
||||
$params['options'][$key] = $value;
|
||||
}
|
||||
$result=$extrafields->update($_POST['attrname'],$_POST['label'],$_POST['type'],$extrasize,$elementtype,(GETPOST('unique')?1:0),(GETPOST('required')?1:0),$pos,$params);
|
||||
if ($result > 0)
|
||||
{
|
||||
header("Location: ".$_SERVER["PHP_SELF"]);
|
||||
|
|
|
|||
|
|
@ -1020,7 +1020,7 @@ class CMailFile
|
|||
/**
|
||||
* Return an address for SMTP protocol
|
||||
*
|
||||
* @param string $adresses Example: 'John Doe <john@doe.com>' or 'john@doe.com'
|
||||
* @param string $address Example: 'John Doe <john@doe.com>' or 'john@doe.com'
|
||||
* @param int $format 0=auto, 1=emails with <>, 2=emails without <>, 3=auto + label between "
|
||||
* @param int $encode 1=Encode name to RFC2822
|
||||
* @return string If format 0: '<john@doe.com>' or 'John Doe <john@doe.com>' or '=?UTF-8?B?Sm9obiBEb2U=?= <john@doe.com>'
|
||||
|
|
@ -1028,13 +1028,13 @@ class CMailFile
|
|||
* If format 2: 'john@doe.com'
|
||||
* If format 3: '<john@doe.com>' or '"John Doe" <john@doe.com>' or '"=?UTF-8?B?Sm9obiBEb2U=?=" <john@doe.com>'
|
||||
*/
|
||||
function getValidAddress($adresses,$format,$encode='')
|
||||
function getValidAddress($address,$format,$encode='')
|
||||
{
|
||||
global $conf;
|
||||
|
||||
$ret='';
|
||||
|
||||
$arrayaddress=explode(',',$adresses);
|
||||
$arrayaddress=explode(',',$address);
|
||||
|
||||
// Boucle sur chaque composant de l'adresse
|
||||
foreach($arrayaddress as $val)
|
||||
|
|
|
|||
|
|
@ -964,7 +964,7 @@ abstract class CommonObject
|
|||
*/
|
||||
function setDeliveryAddress($id)
|
||||
{
|
||||
$fieldname = 'fk_adresse_livraison';
|
||||
$fieldname = 'fk_delivery_address';
|
||||
if ($this->element == 'delivery' || $this->element == 'shipping') $fieldname = 'fk_address';
|
||||
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element." SET ".$fieldname." = ".$id;
|
||||
|
|
@ -1023,7 +1023,7 @@ abstract class CommonObject
|
|||
|
||||
/**
|
||||
* Save a new position (field rang) for details lines.
|
||||
* You can choose to ser position for lines with already a position or lines wihtout any position defined.
|
||||
* You can choose to set position for lines with already a position or lines without any position defined.
|
||||
* Call this function only for table that contains a field fk_parent_line.
|
||||
*
|
||||
* @param boolean $renum true to renum all already ordered lines, false to renum only not already ordered lines.
|
||||
|
|
@ -1064,7 +1064,7 @@ abstract class CommonObject
|
|||
// counter that parents.
|
||||
$rows=array();
|
||||
|
||||
// We frist search all lines that are parent lines (for multilevel details lines)
|
||||
// We first search all lines that are parent lines (for multilevel details lines)
|
||||
$sql = 'SELECT rowid FROM '.MAIN_DB_PREFIX.$this->table_element_line;
|
||||
$sql.= ' WHERE '.$this->fk_element.' = '.$this->id;
|
||||
$sql.= ' AND fk_parent_line IS NULL';
|
||||
|
|
@ -1080,10 +1080,10 @@ abstract class CommonObject
|
|||
{
|
||||
$row = $this->db->fetch_row($resql);
|
||||
$rows[] = $row[0]; // Add parent line into array rows
|
||||
$childrens = $this->getChildrensOfLine($row[0]);
|
||||
if (! empty($childrens))
|
||||
$childrens = $this->getChildrenOfLine($row[0]);
|
||||
if (! empty($children))
|
||||
{
|
||||
foreach($childrens as $child)
|
||||
foreach($children as $child)
|
||||
{
|
||||
array_push($rows, $child);
|
||||
}
|
||||
|
|
@ -1108,12 +1108,12 @@ abstract class CommonObject
|
|||
}
|
||||
|
||||
/**
|
||||
* Get childrens of line
|
||||
* Get children of line
|
||||
*
|
||||
* @param int $id Id of parent line
|
||||
* @return array Array with list of child lines id
|
||||
* @return array Array with list of children lines id
|
||||
*/
|
||||
function getChildrensOfLine($id)
|
||||
function getChildrenOfLine($id)
|
||||
{
|
||||
$rows=array();
|
||||
|
||||
|
|
@ -1122,7 +1122,7 @@ abstract class CommonObject
|
|||
$sql.= ' AND fk_parent_line = '.$id;
|
||||
$sql.= ' ORDER BY rang ASC';
|
||||
|
||||
dol_syslog(get_class($this)."::getChildrenOfLines search children lines for line ".$id." sql=".$sql, LOG_DEBUG);
|
||||
dol_syslog(get_class($this)."::getChildrenOfLine search children lines for line ".$id." sql=".$sql, LOG_DEBUG);
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -38,6 +38,8 @@ class ExtraFields
|
|||
var $attribute_label;
|
||||
// Tableau contenant le nom des champs en clef et la taille de ces champs en value
|
||||
var $attribute_size;
|
||||
// Tableau contenant le nom des choix en clef et la valeur de ces choix en value
|
||||
var $attribute_choice;
|
||||
// Array to store if attribute is unique or not
|
||||
var $attribute_unique;
|
||||
// Array to store if attribute is required or not
|
||||
|
|
@ -56,7 +58,8 @@ class ExtraFields
|
|||
'boolean'=>'Boolean',
|
||||
'price'=>'ExtrafieldPrice',
|
||||
'phone'=>'ExtrafieldPhone',
|
||||
'mail'=>'ExtrafieldMail'
|
||||
'mail'=>'ExtrafieldMail',
|
||||
'select' => 'ExtrafieldSelect'
|
||||
);
|
||||
|
||||
/**
|
||||
|
|
@ -87,20 +90,22 @@ class ExtraFields
|
|||
* @param string $elementtype Element type ('member', 'product', 'company', ...)
|
||||
* @param int $unique Is field unique or not
|
||||
* @param int $required Is field required or not
|
||||
* @param array $param Params for field
|
||||
* @return int <=0 if KO, >0 if OK
|
||||
*/
|
||||
function addExtraField($attrname, $label, $type, $pos, $size, $elementtype, $unique=0, $required=0)
|
||||
function addExtraField($attrname, $label, $type, $pos, $size, $elementtype, $unique=0, $required=0,$default_value='', $param=0)
|
||||
{
|
||||
if (empty($attrname)) return -1;
|
||||
if (empty($label)) return -1;
|
||||
|
||||
|
||||
// Create field into database
|
||||
$result=$this->create($attrname,$type,$size,$elementtype, $unique, $required);
|
||||
$result=$this->create($attrname,$type,$size,$elementtype, $unique, $required, $default_value,$param);
|
||||
$err1=$this->errno;
|
||||
if ($result > 0 || $err1 == 'DB_ERROR_COLUMN_ALREADY_EXISTS')
|
||||
{
|
||||
// Add declaration of field into table
|
||||
$result2=$this->create_label($attrname,$label,$type,$pos,$size,$elementtype, $unique, $required);
|
||||
$result2=$this->create_label($attrname,$label,$type,$pos,$size,$elementtype, $unique, $required, $param);
|
||||
$err2=$this->errno;
|
||||
if ($result2 > 0 || ($err1 == 'DB_ERROR_COLUMN_ALREADY_EXISTS' && $err2 == 'DB_ERROR_RECORD_ALREADY_EXISTS'))
|
||||
{
|
||||
|
|
@ -126,12 +131,15 @@ class ExtraFields
|
|||
* @param string $elementtype Element type ('member', 'product', 'company', 'contact', ...)
|
||||
* @param int $unique Is field unique or not
|
||||
* @param int $required Is field required or not
|
||||
* @param string $default_value Default value for field
|
||||
* @param array $param Params for field (ex for select list : array('options'=>array('value'=>'label of option'))
|
||||
*
|
||||
* @return int <=0 if KO, >0 if OK
|
||||
*/
|
||||
private function create($attrname, $type='varchar', $length=255, $elementtype='member', $unique=0, $required=0)
|
||||
private function create($attrname, $type='varchar', $length=255, $elementtype='member', $unique=0, $required=0, $default_value='',$param='')
|
||||
{
|
||||
$table=$elementtype.'_extrafields';
|
||||
|
||||
|
||||
// Special case for not normalized table names
|
||||
if ($elementtype == 'member') $table='adherent_extrafields';
|
||||
elseif ($elementtype == 'company') $table='societe_extrafields';
|
||||
|
|
@ -151,11 +159,20 @@ class ExtraFields
|
|||
}elseif($type=='mail') {
|
||||
$typedb='varchar';
|
||||
$lengthdb='128';
|
||||
} elseif ($type=='select') {
|
||||
$typedb='text';
|
||||
$lengthdb='';
|
||||
} else {
|
||||
$typedb=$type;
|
||||
$lengthdb=$length;
|
||||
}
|
||||
$field_desc = array('type'=>$typedb, 'value'=>$lengthdb, 'null'=>($required?'NOT NULL':'NULL'));
|
||||
$field_desc = array(
|
||||
'type'=>$typedb,
|
||||
'value'=>$lengthdb,
|
||||
'null'=>($required?'NOT NULL':'NULL'),
|
||||
'default' => $default_value
|
||||
);
|
||||
|
||||
$result=$this->db->DDLAddField(MAIN_DB_PREFIX.$table, $attrname, $field_desc);
|
||||
if ($result > 0)
|
||||
{
|
||||
|
|
@ -190,19 +207,33 @@ class ExtraFields
|
|||
* @param string $elementtype Element type ('member', 'product', 'company', ...)
|
||||
* @param int $unique Is field unique or not
|
||||
* @param int $required Is field required or not
|
||||
* @param array $param Params for field (ex for select list : array('options' => array(value'=>'label of option')) )
|
||||
* @return int <=0 if KO, >0 if OK
|
||||
*/
|
||||
private function create_label($attrname, $label='', $type='', $pos=0, $size=0, $elementtype='member', $unique=0, $required=0)
|
||||
private function create_label($attrname, $label='', $type='', $pos=0, $size=0, $elementtype='member', $unique=0, $required=0,$param)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
// Clean parameters
|
||||
if (empty($pos)) $pos=0;
|
||||
|
||||
|
||||
|
||||
if (isset($attrname) && $attrname != '' && preg_match("/^\w[a-zA-Z0-9-_]*$/",$attrname))
|
||||
{
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."extrafields(name, label, type, pos, size, entity, elementtype, fieldunique, fieldrequired)";
|
||||
if(is_array($param) and count($param) > 0)
|
||||
{
|
||||
$params = $this->db->escape(serialize($param));
|
||||
}
|
||||
elseif (strlen($param) > 0)
|
||||
{
|
||||
$params = trim($param);
|
||||
}
|
||||
else
|
||||
{
|
||||
$params='';
|
||||
}
|
||||
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."extrafields(name, label, type, pos, size, entity, elementtype, fieldunique, fieldrequired, param)";
|
||||
$sql.= " VALUES('".$attrname."',";
|
||||
$sql.= " '".$this->db->escape($label)."',";
|
||||
$sql.= " '".$type."',";
|
||||
|
|
@ -211,7 +242,8 @@ class ExtraFields
|
|||
$sql.= " ".$conf->entity.",";
|
||||
$sql.= " '".$elementtype."',";
|
||||
$sql.= " '".$unique."',";
|
||||
$sql.= " '".$required."'";
|
||||
$sql.= " '".$required."',";
|
||||
$sql.= " '".$params."'";
|
||||
$sql.=')';
|
||||
|
||||
dol_syslog(get_class($this)."::create_label sql=".$sql);
|
||||
|
|
@ -311,9 +343,11 @@ class ExtraFields
|
|||
* @param string $elementtype Element type ('member', 'product', 'company', 'contact', ...)
|
||||
* @param int $unique Is field unique or not
|
||||
* @param int $required Is field required or not
|
||||
* @param int $pos Position of attribute
|
||||
* @param array $param Params for field (ex for select list : array('options' => array(value'=>'label of option')) )
|
||||
* @return int >0 if OK, <=0 if KO
|
||||
*/
|
||||
function update($attrname,$label,$type,$length,$elementtype,$unique=0,$required=0)
|
||||
function update($attrname,$label,$type,$length,$elementtype,$unique=0,$required=0,$pos,$param='')
|
||||
{
|
||||
$table=$elementtype.'_extrafields';
|
||||
|
||||
|
|
@ -336,6 +370,9 @@ class ExtraFields
|
|||
}elseif($type=='mail') {
|
||||
$typedb='varchar';
|
||||
$lengthdb='128';
|
||||
} elseif ($type=='select') {
|
||||
$typedb='text';
|
||||
$lengthdb='';
|
||||
} else {
|
||||
$typedb=$type;
|
||||
$lengthdb=$length;
|
||||
|
|
@ -346,7 +383,7 @@ class ExtraFields
|
|||
{
|
||||
if ($label)
|
||||
{
|
||||
$result=$this->update_label($attrname,$label,$type,$length,$elementtype,$unique,$required);
|
||||
$result=$this->update_label($attrname,$label,$type,$length,$elementtype,$unique,$required,$pos,$param);
|
||||
}
|
||||
if ($result > 0)
|
||||
{
|
||||
|
|
@ -392,9 +429,11 @@ class ExtraFields
|
|||
* @param string $elementtype Element type ('member', 'product', 'company', ...)
|
||||
* @param int $unique Is field unique or not
|
||||
* @param int $required Is field required or not
|
||||
* @param int $pos Position of attribute
|
||||
* @param array $param Params for field (ex for select list : array('options' => array(value'=>'label of option')) )
|
||||
* @return int <=0 if KO, >0 if OK
|
||||
*/
|
||||
private function update_label($attrname,$label,$type,$size,$elementtype,$unique=0,$required=0)
|
||||
private function update_label($attrname,$label,$type,$size,$elementtype,$unique=0,$required=0,$pos=0,$param='')
|
||||
{
|
||||
global $conf;
|
||||
dol_syslog(get_class($this)."::update_label ".$attrname.", ".$label.", ".$type.", ".$size.", ".$elementtype.", ".$unique.", ".$required);
|
||||
|
|
@ -402,7 +441,12 @@ class ExtraFields
|
|||
if (isset($attrname) && $attrname != '' && preg_match("/^\w[a-zA-Z0-9-_]*$/",$attrname))
|
||||
{
|
||||
$this->db->begin();
|
||||
|
||||
|
||||
if(is_array($param) && count($param) > 0)
|
||||
{
|
||||
$param = serialize($param);
|
||||
}
|
||||
|
||||
$sql_del = "DELETE FROM ".MAIN_DB_PREFIX."extrafields";
|
||||
$sql_del.= " WHERE name = '".$attrname."'";
|
||||
$sql_del.= " AND entity = ".$conf->entity;
|
||||
|
|
@ -418,7 +462,9 @@ class ExtraFields
|
|||
$sql.= " size,";
|
||||
$sql.= " elementtype,";
|
||||
$sql.= " fieldunique,";
|
||||
$sql.= " fieldrequired";
|
||||
$sql.= " fieldrequired,";
|
||||
$sql.= " pos,";
|
||||
$sql.= " param";
|
||||
$sql.= ") VALUES (";
|
||||
$sql.= "'".$attrname."',";
|
||||
$sql.= " ".$conf->entity.",";
|
||||
|
|
@ -427,7 +473,9 @@ class ExtraFields
|
|||
$sql.= " '".$size."',";
|
||||
$sql.= " '".$elementtype."',";
|
||||
$sql.= " '".$unique."',";
|
||||
$sql.= " '".$required."'";
|
||||
$sql.= " '".$required."',";
|
||||
$sql.= " '".$pos."',";
|
||||
$sql.= " '".$param."'";
|
||||
$sql.= ")";
|
||||
dol_syslog(get_class($this)."::update_label sql=".$sql);
|
||||
$resql2=$this->db->query($sql);
|
||||
|
|
@ -480,7 +528,7 @@ class ExtraFields
|
|||
if (!$forceload && !empty($conf->global->MAIN_EXTRAFIELDS_DISABLED))
|
||||
return $array_name_label;
|
||||
|
||||
$sql = "SELECT rowid,name,label,type,size,elementtype,fieldunique,fieldrequired";
|
||||
$sql = "SELECT rowid,name,label,type,size,elementtype,fieldunique,fieldrequired,param,pos";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."extrafields";
|
||||
$sql.= " WHERE entity = ".$conf->entity;
|
||||
if ($elementtype) $sql.= " AND elementtype = '".$elementtype."'";
|
||||
|
|
@ -502,6 +550,8 @@ class ExtraFields
|
|||
$this->attribute_elementtype[$tab->name]=$tab->elementtype;
|
||||
$this->attribute_unique[$tab->name]=$tab->fieldunique;
|
||||
$this->attribute_required[$tab->name]=$tab->fieldrequired;
|
||||
$this->attribute_param[$tab->name]=unserialize($tab->param);
|
||||
$this->attribute_pos[$tab->name]=$tab->pos;
|
||||
}
|
||||
}
|
||||
return $array_name_label;
|
||||
|
|
@ -531,6 +581,7 @@ class ExtraFields
|
|||
$elementtype=$this->attribute_elementtype[$key];
|
||||
$unique=$this->attribute_unique[$key];
|
||||
$required=$this->attribute_required[$key];
|
||||
$param=$this->attribute_param[$key];
|
||||
if ($type == 'date')
|
||||
{
|
||||
$showsize=10;
|
||||
|
|
@ -593,6 +644,15 @@ class ExtraFields
|
|||
{
|
||||
$out='<input type="text" name="options_'.$key.'" size="6" value="'.price($value).'"> '.$langs->getCurrencySymbol($conf->currency);
|
||||
}
|
||||
elseif ($type == 'select')
|
||||
{
|
||||
$out='<select name="options_'.$key.'">';
|
||||
foreach ($param['options'] as $key=>$value )
|
||||
{
|
||||
$out.='<option value="'.$key.'">'.$value.'</option>';
|
||||
}
|
||||
$out.='</select>';
|
||||
}
|
||||
// Add comments
|
||||
if ($type == 'date') $out.=' (YYYY-MM-DD)';
|
||||
elseif ($type == 'datetime') $out.=' (YYYY-MM-DD HH:MM:SS)';
|
||||
|
|
@ -617,6 +677,7 @@ class ExtraFields
|
|||
$elementtype=$this->attribute_elementtype[$key];
|
||||
$unique=$this->attribute_unique[$key];
|
||||
$required=$this->attribute_required[$key];
|
||||
$params=$this->attribute_param[$key];
|
||||
if ($type == 'date')
|
||||
{
|
||||
$showsize=10;
|
||||
|
|
@ -649,6 +710,10 @@ class ExtraFields
|
|||
{
|
||||
$value=price($value).' '.$langs->getCurrencySymbol($conf->currency);
|
||||
}
|
||||
elseif ($type == 'select')
|
||||
{
|
||||
$value=$params['options'][$value];
|
||||
}
|
||||
else
|
||||
{
|
||||
$showsize=round($size);
|
||||
|
|
|
|||
|
|
@ -689,7 +689,7 @@ class Form
|
|||
{
|
||||
//$minLength = (is_numeric($conf->global->COMPANY_USE_SEARCH_TO_SELECT)?$conf->global->COMPANY_USE_SEARCH_TO_SELECT:2);
|
||||
$out.= ajax_combobox($htmlname, $event, $conf->global->COMPANY_USE_SEARCH_TO_SELECT);
|
||||
/*
|
||||
/*
|
||||
if ($selected && empty($selected_input_value))
|
||||
{
|
||||
require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
|
||||
|
|
@ -876,7 +876,7 @@ class Form
|
|||
if ($resql)
|
||||
{
|
||||
$num=$this->db->num_rows($resql);
|
||||
|
||||
|
||||
if ($conf->use_javascript_ajax && $conf->global->CONTACT_USE_SEARCH_TO_SELECT && ! $forcecombo)
|
||||
{
|
||||
$out.= ajax_combobox($htmlname, $event);
|
||||
|
|
@ -968,10 +968,10 @@ class Form
|
|||
* @param int $disabled If select list must be disabled
|
||||
* @param array $include Array list of users id to include
|
||||
* @param int $enableonly Array list of users id to be enabled. All other must be disabled
|
||||
* @param int $force_entity Possibility to force entity
|
||||
* @param int $force_entity 0 or Id of environment to force
|
||||
* @return void
|
||||
*/
|
||||
function select_users($selected='',$htmlname='userid',$show_empty=0,$exclude='',$disabled=0,$include='',$enableonly='',$force_entity=false)
|
||||
function select_users($selected='',$htmlname='userid',$show_empty=0,$exclude='',$disabled=0,$include='',$enableonly='',$force_entity=0)
|
||||
{
|
||||
print $this->select_dolusers($selected,$htmlname,$show_empty,$exclude,$disabled,$include,$enableonly,$force_entity);
|
||||
}
|
||||
|
|
@ -986,15 +986,15 @@ class Form
|
|||
* @param int $disabled If select list must be disabled
|
||||
* @param array $include Array list of users id to include
|
||||
* @param int $enableonly Array list of users id to be enabled. All other must be disabled
|
||||
* @param int $force_entity Possibility to force entity
|
||||
* @param int $force_entity 0 or Id of environment to force
|
||||
* @return string HTML select string
|
||||
*/
|
||||
function select_dolusers($selected='',$htmlname='userid',$show_empty=0,$exclude='',$disabled=0,$include='',$enableonly='',$force_entity=false)
|
||||
function select_dolusers($selected='',$htmlname='userid',$show_empty=0,$exclude='',$disabled=0,$include='',$enableonly='',$force_entity=0)
|
||||
{
|
||||
global $conf,$user,$langs;
|
||||
|
||||
// If no preselected user defined, we take current user
|
||||
if ($selected < -1 && empty($conf->global->SOCIETE_DISABLE_DEFAULT_SALESREPRESENTATIVE)) $selected=$user->id;
|
||||
if ((is_numeric($selected) && ($selected < -1 || empty($selected))) && empty($conf->global->SOCIETE_DISABLE_DEFAULT_SALESREPRESENTATIVE)) $selected=$user->id;
|
||||
|
||||
// Permettre l'exclusion d'utilisateurs
|
||||
if (is_array($exclude)) $excludeUsers = implode("','",$exclude);
|
||||
|
|
@ -1043,7 +1043,7 @@ class Form
|
|||
if ($num)
|
||||
{
|
||||
$out.= '<select class="flat" id="'.$htmlname.'" name="'.$htmlname.'"'.($disabled?' disabled="disabled"':'').'>';
|
||||
if ($show_empty) $out.= '<option value="-1"'.($selected==-1?' selected="selected"':'').'> </option>'."\n";
|
||||
if ($show_empty) $out.= '<option value="-1"'.((empty($selected) || $selected==-1)?' selected="selected"':'').'> </option>'."\n";
|
||||
|
||||
$userstatic=new User($this->db);
|
||||
|
||||
|
|
@ -3946,17 +3946,17 @@ class Form
|
|||
/**
|
||||
* Return select list of groups
|
||||
*
|
||||
* @param string $selected Id group preselected
|
||||
* @param string $htmlname Field name in form
|
||||
* @param int $show_empty 0=liste sans valeur nulle, 1=ajoute valeur inconnue
|
||||
* @param string $exclude Array list of groups id to exclude
|
||||
* @param string $selected Id group preselected
|
||||
* @param string $htmlname Field name in form
|
||||
* @param int $show_empty 0=liste sans valeur nulle, 1=ajoute valeur inconnue
|
||||
* @param string $exclude Array list of groups id to exclude
|
||||
* @param int $disabled If select list must be disabled
|
||||
* @param string $include Array list of groups id to include
|
||||
* @param string $include Array list of groups id to include
|
||||
* @param int $enableonly Array list of groups id to be enabled. All other must be disabled
|
||||
* @param int $force_entity Possibility to force entity
|
||||
* @param int $force_entity 0 or Id of environment to force
|
||||
* @return void
|
||||
*/
|
||||
function select_dolgroups($selected='', $htmlname='groupid', $show_empty=0, $exclude='', $disabled=0, $include='', $enableonly='', $force_entity='')
|
||||
function select_dolgroups($selected='', $htmlname='groupid', $show_empty=0, $exclude='', $disabled=0, $include='', $enableonly='', $force_entity=0)
|
||||
{
|
||||
global $conf,$user,$langs;
|
||||
|
||||
|
|
|
|||
|
|
@ -45,7 +45,9 @@ function societe_prepare_head($object)
|
|||
if ($object->client==1 || $object->client==2 || $object->client==3 || (isset($object->object) && $object->object->client==1) || (isset($object->object) && $object->object->client==3))
|
||||
{
|
||||
$head[$h][0] = DOL_URL_ROOT.'/comm/fiche.php?socid='.$object->id;
|
||||
$head[$h][1] = $langs->trans("Customer");
|
||||
if ($object->client==2 || $object->client==3) $head[$h][1] = $langs->trans("Prospect");
|
||||
if ($object->client==3) $head[$h][1] .= '/';
|
||||
if ($object->client==1 || $object->client==3) $head[$h][1] .= $langs->trans("Customer");
|
||||
$head[$h][2] = 'customer';
|
||||
$h++;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ class doc_generic_order_odt extends ModelePDFCommandes
|
|||
{
|
||||
global $conf;
|
||||
|
||||
return array(
|
||||
$resarray=array(
|
||||
'object_id'=>$object->id,
|
||||
'object_ref'=>$object->ref,
|
||||
'object_ref_ext'=>$object->ref_ext,
|
||||
|
|
@ -120,6 +120,15 @@ class doc_generic_order_odt extends ModelePDFCommandes
|
|||
'object_note_private'=>$object->note,
|
||||
'object_note'=>$object->note_public,
|
||||
);
|
||||
|
||||
// Add vat by rates
|
||||
foreach ($object->lines as $line)
|
||||
{
|
||||
if (empty($resarray['object_total_vat_'.$line->tva_tx])) $resarray['object_total_vat_'.$line->tva_tx]=0;
|
||||
$resarray['object_total_vat_'.$line->tva_tx]+=$line->total_tva;
|
||||
}
|
||||
|
||||
return $resarray;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@ class html_cerfafr extends ModeleDon
|
|||
$form = str_replace('__MAIN_INFO_SOCIETE_CP__',$mysoc->zip,$form);
|
||||
$form = str_replace('__MAIN_INFO_SOCIETE_VILLE__',$mysoc->town,$form);
|
||||
$form = str_replace('__DONATOR_NAME__',$don->nom,$form);
|
||||
$form = str_replace('__DONATOR_ADDRESS__',$don->adresse,$form);
|
||||
$form = str_replace('__DONATOR_ADDRESS__',$don->address,$form);
|
||||
$form = str_replace('__DONATOR_ZIP__',$don->cp,$form);
|
||||
$form = str_replace('__DONATOR_TOWN__',$don->ville,$form);
|
||||
$form = str_replace('__PAYMENTMODE_LIB__ ', $paymentmode,$form);
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ class doc_generic_invoice_odt extends ModelePDFFactures
|
|||
$sumpayed = $object->getSommePaiement();
|
||||
$alreadypayed=price($sumpayed,0,$outputlangs);
|
||||
|
||||
return array(
|
||||
$resarray=array(
|
||||
'object_id'=>$object->id,
|
||||
'object_ref'=>$object->ref,
|
||||
'object_ref_ext'=>$object->ref_ext,
|
||||
|
|
@ -132,6 +132,15 @@ class doc_generic_invoice_odt extends ModelePDFFactures
|
|||
'object_already_payed'=>$alreadypayed,
|
||||
'object_remain_to_pay'=>price($object->total_ttc - $sumpayed,0,$outputlangs)
|
||||
);
|
||||
|
||||
// Add vat by rates
|
||||
foreach ($object->lines as $line)
|
||||
{
|
||||
if (empty($resarray['object_total_vat_'.$line->tva_tx])) $resarray['object_total_vat_'.$line->tva_tx]=0;
|
||||
$resarray['object_total_vat_'.$line->tva_tx]+=$line->total_tva;
|
||||
}
|
||||
|
||||
return $resarray;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -172,9 +172,9 @@ class modAdherent extends DolibarrModules
|
|||
$this->export_code[$r]=$this->rights_class.'_'.$r;
|
||||
$this->export_label[$r]='MembersAndSubscriptions';
|
||||
$this->export_permission[$r]=array(array("adherent","export"));
|
||||
$this->export_fields_array[$r]=array('a.rowid'=>'Id','a.civilite'=>"UserTitle",'a.nom'=>"Lastname",'a.prenom'=>"Firstname",'a.login'=>"Login",'a.morphy'=>'Nature','a.societe'=>'Company','a.adresse'=>"Address",'a.cp'=>"Zip",'a.ville'=>"Town",'a.pays'=>"Country",'a.phone'=>"PhonePro",'a.phone_perso'=>"PhonePerso",'a.phone_mobile'=>"PhoneMobile",'a.email'=>"Email",'a.naiss'=>"Birthday",'a.statut'=>"Status",'a.photo'=>"Photo",'a.note'=>"Note",'a.datec'=>'DateCreation','a.datevalid'=>'DateValidation','a.tms'=>'DateLastModification','a.datefin'=>'DateEndSubscription','ta.rowid'=>'MemberTypeId','ta.libelle'=>'MemberTypeLabel','c.rowid'=>'SubscriptionId','c.dateadh'=>'DateSubscription','c.cotisation'=>'Amount');
|
||||
$this->export_TypeFields_array[$r]=array('a.civilite'=>"Text",'a.nom'=>"Text",'a.prenom'=>"Text",'a.login'=>"Text",'a.morphy'=>'Text','a.societe'=>'Text','a.adresse'=>"Text",'a.cp'=>"Text",'a.ville'=>"Text",'a.pays'=>"Text",'a.phone'=>"Text",'a.phone_perso'=>"Text",'a.phone_mobile'=>"Text",'a.email'=>"Text",'a.naiss'=>"Date",'a.statut'=>"Status",'a.note'=>"Text",'a.datec'=>'Date','a.datevalid'=>'Date','a.tms'=>'Date','a.datefin'=>'Date','ta.rowid'=>'List:fk_adherent_type:libelle','ta.libelle'=>'Text','c.dateadh'=>'Date','c.cotisation'=>'Number');
|
||||
$this->export_entities_array[$r]=array('a.rowid'=>'member','a.civilite'=>"member",'a.nom'=>"member",'a.prenom'=>"member",'a.login'=>"member",'a.morphy'=>'member','a.societe'=>'member','a.adresse'=>"member",'a.cp'=>"member",'a.ville'=>"member",'a.pays'=>"member",'a.phone'=>"member",'a.phone_perso'=>"member",'a.phone_mobile'=>"member",'a.email'=>"member",'a.naiss'=>"member",'a.statut'=>"member",'a.photo'=>"member",'a.note'=>"member",'a.datec'=>'member','a.datevalid'=>'member','a.tms'=>'member','a.datefin'=>'member','ta.rowid'=>'member_type','ta.libelle'=>'member_type','c.rowid'=>'subscription','c.dateadh'=>'subscription','c.cotisation'=>'subscription');
|
||||
$this->export_fields_array[$r]=array('a.rowid'=>'Id','a.civilite'=>"UserTitle",'a.nom'=>"Lastname",'a.prenom'=>"Firstname",'a.login'=>"Login",'a.morphy'=>'Nature','a.societe'=>'Company','a.address'=>"Address",'a.cp'=>"Zip",'a.ville'=>"Town",'a.pays'=>"Country",'a.phone'=>"PhonePro",'a.phone_perso'=>"PhonePerso",'a.phone_mobile'=>"PhoneMobile",'a.email'=>"Email",'a.naiss'=>"Birthday",'a.statut'=>"Status",'a.photo'=>"Photo",'a.note'=>"Note",'a.datec'=>'DateCreation','a.datevalid'=>'DateValidation','a.tms'=>'DateLastModification','a.datefin'=>'DateEndSubscription','ta.rowid'=>'MemberTypeId','ta.libelle'=>'MemberTypeLabel','c.rowid'=>'SubscriptionId','c.dateadh'=>'DateSubscription','c.cotisation'=>'Amount');
|
||||
$this->export_TypeFields_array[$r]=array('a.civilite'=>"Text",'a.nom'=>"Text",'a.prenom'=>"Text",'a.login'=>"Text",'a.morphy'=>'Text','a.societe'=>'Text','a.address'=>"Text",'a.cp'=>"Text",'a.ville'=>"Text",'a.pays'=>"Text",'a.phone'=>"Text",'a.phone_perso'=>"Text",'a.phone_mobile'=>"Text",'a.email'=>"Text",'a.naiss'=>"Date",'a.statut'=>"Status",'a.note'=>"Text",'a.datec'=>'Date','a.datevalid'=>'Date','a.tms'=>'Date','a.datefin'=>'Date','ta.rowid'=>'List:fk_adherent_type:libelle','ta.libelle'=>'Text','c.dateadh'=>'Date','c.cotisation'=>'Number');
|
||||
$this->export_entities_array[$r]=array('a.rowid'=>'member','a.civilite'=>"member",'a.nom'=>"member",'a.prenom'=>"member",'a.login'=>"member",'a.morphy'=>'member','a.societe'=>'member','a.address'=>"member",'a.cp'=>"member",'a.ville'=>"member",'a.pays'=>"member",'a.phone'=>"member",'a.phone_perso'=>"member",'a.phone_mobile'=>"member",'a.email'=>"member",'a.naiss'=>"member",'a.statut'=>"member",'a.photo'=>"member",'a.note'=>"member",'a.datec'=>'member','a.datevalid'=>'member','a.tms'=>'member','a.datefin'=>'member','ta.rowid'=>'member_type','ta.libelle'=>'member_type','c.rowid'=>'subscription','c.dateadh'=>'subscription','c.cotisation'=>'subscription');
|
||||
// Add extra fields
|
||||
$sql="SELECT name, label FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'member'";
|
||||
$resql=$this->db->query($sql);
|
||||
|
|
@ -207,7 +207,7 @@ class modAdherent extends DolibarrModules
|
|||
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
|
||||
$this->import_tables_array[$r]=array('a'=>MAIN_DB_PREFIX.'adherent','extra'=>MAIN_DB_PREFIX.'adherent_extrafields');
|
||||
$this->import_tables_creator_array[$r]=array('a'=>'fk_user_author'); // Fields to store import user id
|
||||
$this->import_fields_array[$r]=array('a.civilite'=>"UserTitle",'a.nom'=>"Lastname*",'a.prenom'=>"Firstname",'a.login'=>"Login*","a.pass"=>"Password","a.fk_adherent_type"=>"MemberType*",'a.morphy'=>'Nature*','a.societe'=>'Company','a.adresse'=>"Address",'a.cp'=>"Zip",'a.ville'=>"Town",'a.pays'=>"Country",'a.phone'=>"PhonePro",'a.phone_perso'=>"PhonePerso",'a.phone_mobile'=>"PhoneMobile",'a.email'=>"Email",'a.naiss'=>"Birthday",'a.statut'=>"Status*",'a.photo'=>"Photo",'a.note'=>"Note",'a.datec'=>'DateCreation','a.datefin'=>'DateEndSubscription');
|
||||
$this->import_fields_array[$r]=array('a.civilite'=>"UserTitle",'a.nom'=>"Lastname*",'a.prenom'=>"Firstname",'a.login'=>"Login*","a.pass"=>"Password","a.fk_adherent_type"=>"MemberType*",'a.morphy'=>'Nature*','a.societe'=>'Company','a.address'=>"Address",'a.cp'=>"Zip",'a.ville'=>"Town",'a.pays'=>"Country",'a.phone'=>"PhonePro",'a.phone_perso'=>"PhonePerso",'a.phone_mobile'=>"PhoneMobile",'a.email'=>"Email",'a.naiss'=>"Birthday",'a.statut'=>"Status*",'a.photo'=>"Photo",'a.note'=>"Note",'a.datec'=>'DateCreation','a.datefin'=>'DateEndSubscription');
|
||||
// Add extra fields
|
||||
$sql="SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'member'";
|
||||
$resql=$this->db->query($sql);
|
||||
|
|
@ -223,7 +223,7 @@ class modAdherent extends DolibarrModules
|
|||
// End add extra fields
|
||||
$this->import_fieldshidden_array[$r]=array('extra.fk_object'=>'lastrowid-'.MAIN_DB_PREFIX.'adherent'); // aliastable.field => ('user->id' or 'lastrowid-'.tableparent)
|
||||
$this->import_regex_array[$r]=array('a.civilite'=>'code@'.MAIN_DB_PREFIX.'c_civilite','a.fk_adherent_type'=>'rowid@'.MAIN_DB_PREFIX.'adherent_type','a.morphy'=>'(phy|mor)','a.statut'=>'^[0|1]','a.datec'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$','a.datefin'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$');
|
||||
$this->import_examplevalues_array[$r]=array('a.civilite'=>"MR",'a.nom'=>'Smith','a.prenom'=>'John','a.login'=>'jsmith','a.pass'=>'passofjsmith','a.fk_adherent_type'=>'1','a.morphy'=>'"mor" or "phy"','a.societe'=>'JS company','a.adresse'=>'21 jump street','a.cp'=>'55000','a.ville'=>'New York','a.pays'=>'1','a.email'=>'jsmith@example.com','a.naiss'=>'1972-10-10','a.statut'=>"0 or 1",'a.note'=>"This is a comment on member",'a.datec'=>dol_print_date($now,'%Y-%m-%d'),'a.datefin'=>dol_print_date(dol_time_plus_duree($now, 1, 'y'),'%Y-%m-%d'));
|
||||
$this->import_examplevalues_array[$r]=array('a.civilite'=>"MR",'a.nom'=>'Smith','a.prenom'=>'John','a.login'=>'jsmith','a.pass'=>'passofjsmith','a.fk_adherent_type'=>'1','a.morphy'=>'"mor" or "phy"','a.societe'=>'JS company','a.address'=>'21 jump street','a.cp'=>'55000','a.ville'=>'New York','a.pays'=>'1','a.email'=>'jsmith@example.com','a.naiss'=>'1972-10-10','a.statut'=>"0 or 1",'a.note'=>"This is a comment on member",'a.datec'=>dol_print_date($now,'%Y-%m-%d'),'a.datefin'=>dol_print_date(dol_time_plus_duree($now, 1, 'y'),'%Y-%m-%d'));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ class doc_generic_proposal_odt extends ModelePDFPropales
|
|||
{
|
||||
global $conf;
|
||||
|
||||
return array(
|
||||
$resarray=array(
|
||||
'object_id'=>$object->id,
|
||||
'object_ref'=>$object->ref,
|
||||
'object_ref_ext'=>$object->ref_ext,
|
||||
|
|
@ -119,6 +119,15 @@ class doc_generic_proposal_odt extends ModelePDFPropales
|
|||
'object_note_private'=>$object->note,
|
||||
'object_note'=>$object->note_public,
|
||||
);
|
||||
|
||||
// Add vat by rates
|
||||
foreach ($object->lines as $line)
|
||||
{
|
||||
if (empty($resarray['object_total_vat_'.$line->tva_tx])) $resarray['object_total_vat_'.$line->tva_tx]=0;
|
||||
$resarray['object_total_vat_'.$line->tva_tx]+=$line->total_tva;
|
||||
}
|
||||
|
||||
return $resarray;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -25,14 +25,22 @@
|
|||
var size = jQuery("#size");
|
||||
var unique = jQuery("#unique");
|
||||
var required = jQuery("#required");
|
||||
if (type == 'date') { size.val('').attr('disabled','disabled'); unique.removeAttr('disabled','disabled'); }
|
||||
else if (type == 'datetime') { size.val('').attr('disabled','disabled'); unique.removeAttr('disabled','disabled'); }
|
||||
else if (type == 'double') { size.val('24,8').removeAttr('disabled'); unique.removeAttr('disabled','disabled'); }
|
||||
else if (type == 'int') { size.val('10').removeAttr('disabled'); unique.removeAttr('disabled','disabled'); }
|
||||
else if (type == 'text') { size.val('2000').removeAttr('disabled'); unique.attr('disabled','disabled').removeAttr('checked'); }
|
||||
else if (type == 'varchar') { size.val('255').removeAttr('disabled'); unique.removeAttr('disabled','disabled'); }
|
||||
else if (type == 'boolean') { size.val('').attr('disabled','disabled'); unique.attr('disabled','disabled');}
|
||||
else if (type == 'price') { size.val('').attr('disabled','disabled'); unique.attr('disabled','disabled');}
|
||||
<?php
|
||||
if(!GETPOST('type') == "select")
|
||||
{
|
||||
print 'jQuery("#value_choice").hide();';
|
||||
}
|
||||
?>
|
||||
|
||||
if (type == 'date') { size.val('').attr('disabled','disabled'); unique.removeAttr('disabled','disabled'); jQuery("#value_choice").hide(); }
|
||||
else if (type == 'datetime') { size.val('').attr('disabled','disabled'); unique.removeAttr('disabled','disabled'); jQuery("#value_choice").hide(); }
|
||||
else if (type == 'double') { size.val('24,8').removeAttr('disabled'); unique.removeAttr('disabled','disabled'); jQuery("#value_choice").hide(); }
|
||||
else if (type == 'int') { size.val('10').removeAttr('disabled'); unique.removeAttr('disabled','disabled'); jQuery("#value_choice").hide(); }
|
||||
else if (type == 'text') { size.val('2000').removeAttr('disabled'); unique.attr('disabled','disabled').removeAttr('checked'); jQuery("#value_choice").hide(); }
|
||||
else if (type == 'varchar') { size.val('255').removeAttr('disabled'); unique.removeAttr('disabled','disabled'); jQuery("#value_choice").hide(); }
|
||||
else if (type == 'boolean') { size.val('').attr('disabled','disabled'); unique.attr('disabled','disabled'); jQuery("#value_choice").hide();}
|
||||
else if (type == 'price') { size.val('').attr('disabled','disabled'); unique.attr('disabled','disabled'); jQuery("#value_choice").hide();}
|
||||
else if (type == 'select') { size.val('').attr('disabled','disabled'); unique.attr('disabled','disabled'); jQuery("#value_choice").show();}
|
||||
else size.val('').attr('disabled','disabled');
|
||||
}
|
||||
init_typeoffields('');
|
||||
|
|
@ -47,7 +55,8 @@
|
|||
<input type="hidden" name="action" value="add">
|
||||
|
||||
<table summary="listofattributes" class="border centpercent">
|
||||
|
||||
<!-- Position -->
|
||||
<tr><td class="fieldrequired"><?php echo $langs->trans("Position"); ?></td><td class="valeur"><input type="text" name="pos" size="5" value="<?php echo GETPOST('pos'); ?>"></td></tr>
|
||||
<!-- Label -->
|
||||
<tr><td class="fieldrequired"><?php echo $langs->trans("Label"); ?></td><td class="valeur"><input type="text" name="label" size="40" value="<?php echo GETPOST('label'); ?>"></td></tr>
|
||||
<!-- Code -->
|
||||
|
|
@ -56,6 +65,17 @@
|
|||
<tr><td class="fieldrequired"><?php echo $langs->trans("Type"); ?></td><td class="valeur">
|
||||
<?php print $form->selectarray('type',$type2label,GETPOST('type')); ?>
|
||||
</td></tr>
|
||||
<!-- Value (for select list / radio) -->
|
||||
<tr id="value_choice">
|
||||
<td>
|
||||
<?php echo $langs->trans("Value"); ?>
|
||||
</td>
|
||||
<td>
|
||||
<textarea name="param" id="param"><?php echo GETPOST('param'); ?></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- Default Value -->
|
||||
<tr><td><?php echo $langs->trans("DefaultValue"); ?></td><td class="valeur"><input id="default_value" type="text" name=""default_value"" size="5" value="<?php echo (GETPOST('"default_value"')?GETPOST('"default_value"'):''); ?>"></td></tr>
|
||||
<!-- Size -->
|
||||
<tr><td class="fieldrequired"><?php echo $langs->trans("Size"); ?></td><td class="valeur"><input id="size" type="text" name="size" size="5" value="<?php echo (GETPOST('size')?GETPOST('size'):''); ?>"></td></tr>
|
||||
<!-- Unique -->
|
||||
|
|
|
|||
|
|
@ -47,21 +47,53 @@
|
|||
|
||||
<table summary="listofattributes" class="border centpercent">
|
||||
|
||||
<!-- Label -->
|
||||
<tr><td class="fieldrequired"><?php echo $langs->trans("Label"); ?></td><td class="valeur"><input type="text" name="label" size="40" value="<?php echo $extrafields->attribute_label[$attrname]; ?>"></td></tr>
|
||||
<!-- Code -->
|
||||
<tr><td class="fieldrequired"><?php echo $langs->trans("AttributeCode"); ?></td><td class="valeur"><?php echo $attrname; ?></td></tr>
|
||||
<!-- Type -->
|
||||
<?php
|
||||
$type=$extrafields->attribute_type[$attrname];
|
||||
$size=$extrafields->attribute_size[$attrname];
|
||||
$unique=$extrafields->attribute_unique[$attrname];
|
||||
$required=$extrafields->attribute_required[$attrname];
|
||||
$pos=$extrafields->attribute_pos[$attrname];
|
||||
$param=$extrafields->attribute_param[$attrname];
|
||||
|
||||
if($type == 'select' && is_array($param))
|
||||
{
|
||||
$param_chain = '';
|
||||
foreach ($param['options'] as $key => $value)
|
||||
{
|
||||
if(strlen($key))
|
||||
{
|
||||
$param_chain .= $key.', '.$value."\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
<!-- Position -->
|
||||
<tr><td class="fieldrequired"><?php echo $langs->trans("Position"); ?></td><td class="valeur"><input type="text" name="pos" size="5" value="<?php echo $extrafields->attribute_pos[$attrname]; ?>"></td></tr>
|
||||
<!-- Label -->
|
||||
<tr><td class="fieldrequired"><?php echo $langs->trans("Label"); ?></td><td class="valeur"><input type="text" name="label" size="40" value="<?php echo $extrafields->attribute_label[$attrname]; ?>"></td></tr>
|
||||
<!-- Code -->
|
||||
<tr><td class="fieldrequired"><?php echo $langs->trans("AttributeCode"); ?></td><td class="valeur"><?php echo $attrname; ?></td></tr>
|
||||
<!-- Type -->
|
||||
<tr><td class="fieldrequired"><?php echo $langs->trans("Type"); ?></td><td class="valeur">
|
||||
<?php print $type2label[$type]; ?>
|
||||
<input type="hidden" name="type" id="type" value="<?php print $type; ?>">
|
||||
</td></tr>
|
||||
<!-- Value (for select list / radio) -->
|
||||
<?php
|
||||
if($type == 'select')
|
||||
{
|
||||
?>
|
||||
<tr id="value_choice">
|
||||
<td>
|
||||
<?php echo $langs->trans("Value"); ?>
|
||||
</td>
|
||||
<td>
|
||||
<textarea name="param" id="param"><?php echo $param_chain; ?></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<!-- Size -->
|
||||
<tr><td class="fieldrequired"><?php echo $langs->trans("Size"); ?></td><td><input id="size" type="text" name="size" size="5" value="<?php echo $size; ?>"></td></tr>
|
||||
<!-- Unique -->
|
||||
|
|
|
|||
|
|
@ -675,7 +675,7 @@ class Expedition extends CommonObject
|
|||
if (isset($this->socid)) $this->socid=trim($this->socid);
|
||||
if (isset($this->fk_user_author)) $this->fk_user_author=trim($this->fk_user_author);
|
||||
if (isset($this->fk_user_valid)) $this->fk_user_valid=trim($this->fk_user_valid);
|
||||
if (isset($this->fk_adresse_livraison)) $this->fk_adresse_livraison=trim($this->fk_adresse_livraison);
|
||||
if (isset($this->fk_delivery_address)) $this->fk_delivery_address=trim($this->fk_delivery_address);
|
||||
if (isset($this->expedition_method_id)) $this->expedition_method_id=trim($this->expedition_method_id);
|
||||
if (isset($this->tracking_number)) $this->tracking_number=trim($this->tracking_number);
|
||||
if (isset($this->statut)) $this->statut=trim($this->statut);
|
||||
|
|
@ -706,7 +706,7 @@ class Expedition extends CommonObject
|
|||
$sql.= " fk_user_valid=".(isset($this->fk_user_valid)?$this->fk_user_valid:"null").",";
|
||||
$sql.= " date_expedition=".(dol_strlen($this->date_expedition)!=0 ? "'".$this->db->idate($this->date_expedition)."'" : 'null').",";
|
||||
$sql.= " date_delivery=".(dol_strlen($this->date_delivery)!=0 ? "'".$this->db->idate($this->date_delivery)."'" : 'null').",";
|
||||
$sql.= " fk_address=".(isset($this->fk_adresse_livraison)?$this->fk_adresse_livraison:"null").",";
|
||||
$sql.= " fk_address=".(isset($this->fk_delivery_address)?$this->fk_delivery_address:"null").",";
|
||||
$sql.= " fk_expedition_methode=".((isset($this->expedition_method_id) && $this->expedition_method_id > 0)?$this->expedition_method_id:"null").",";
|
||||
$sql.= " tracking_number=".(isset($this->tracking_number)?"'".$this->db->escape($this->tracking_number)."'":"null").",";
|
||||
$sql.= " fk_statut=".(isset($this->statut)?$this->statut:"null").",";
|
||||
|
|
@ -909,8 +909,8 @@ class Expedition extends CommonObject
|
|||
$line->volume = $obj->volume;
|
||||
$line->volume_units = $obj->volume_units;
|
||||
|
||||
//Invoicing
|
||||
$line->desc = $obj->product_label;
|
||||
// For invoicing
|
||||
$line->desc = $obj->description; // We need ->desc because some code into CommonObject use desc (property defined for other elements)
|
||||
$line->qty = $obj->qty_shipped;
|
||||
$line->total_ht = $obj->total_ht;
|
||||
$line->total_localtax1 = $obj->total_localtax1;
|
||||
|
|
|
|||
|
|
@ -30,6 +30,11 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
|||
require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/user/class/usergroup.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/holiday/common.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/usergroups.lib.php';
|
||||
|
||||
$langs->load('users');
|
||||
$langs->load('holidays');
|
||||
|
||||
// Protection if external user
|
||||
if ($user->societe_id > 0) accessforbidden();
|
||||
|
|
@ -46,6 +51,8 @@ $offset = $conf->liste_limit * $page ;
|
|||
$pageprev = $page - 1;
|
||||
$pagenext = $page + 1;
|
||||
|
||||
$id = GETPOST('id');
|
||||
|
||||
$search_ref = GETPOST('search_ref');
|
||||
$month_create = GETPOST('month_create');
|
||||
$year_create = GETPOST('year_create');
|
||||
|
|
@ -72,6 +79,7 @@ $search_statut = GETPOST('select_statut');
|
|||
|
||||
$holiday = new Holiday($db);
|
||||
$holidaystatic=new Holiday($db);
|
||||
$fuser = new User($db);
|
||||
|
||||
// Update sold
|
||||
$holiday->updateSold();
|
||||
|
|
@ -151,28 +159,22 @@ if(!empty($search_statut) && $search_statut != -1) {
|
|||
// Récupération de l'ID de l'utilisateur
|
||||
$user_id = $user->id;
|
||||
|
||||
if ($id > 0)
|
||||
{
|
||||
// Charge utilisateur edite
|
||||
$fuser->fetch($id);
|
||||
$fuser->getrights();
|
||||
$user_id = $fuser->id;
|
||||
}
|
||||
// Récupération des congés payés de l'utilisateur ou de tous les users
|
||||
if (!$user->rights->holiday->lire_tous)
|
||||
if (!$user->rights->holiday->lire_tous || $id > 0)
|
||||
{
|
||||
$holiday_payes = $holiday->fetchByUser($user_id,$order,$filter);
|
||||
$holiday_payes = $holiday->fetchByUser($user_id,$order,$filter);
|
||||
}
|
||||
else
|
||||
{
|
||||
$holiday_payes = $holiday->fetchAll($order,$filter);
|
||||
}
|
||||
|
||||
// Si pas de congés payés
|
||||
if ($holiday_payes == 0)
|
||||
{
|
||||
print_fiche_titre($langs->trans('CPTitreMenu'));
|
||||
|
||||
print '<div class="tabBar">';
|
||||
print '<span>'.$langs->trans('NoCPforUser').'<br /><br />';
|
||||
print '<a href="./fiche.php?mainmenu=agenda&action=request" class="butAction">'.$langs->trans('AddCP').'</a></span>';
|
||||
print '</div>';
|
||||
exit();
|
||||
}
|
||||
|
||||
// Si erreur SQL
|
||||
if ($holiday_payes == '-1')
|
||||
{
|
||||
|
|
@ -189,14 +191,48 @@ if ($holiday_payes == '-1')
|
|||
* Affichage du tableau des congés payés
|
||||
*************************************/
|
||||
|
||||
$var=true; $num = count($holiday->holiday);
|
||||
$html = new Form($db);
|
||||
$htmlother = new FormOther($db);
|
||||
print_barre_liste($langs->trans("ListeCP"), $page, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, "", $num);
|
||||
$var=true; $num = count($holiday->holiday);
|
||||
$form = new Form($db);
|
||||
$formother = new FormOther($db);
|
||||
|
||||
print '<div class="tabBar">';
|
||||
if ($id > 0)
|
||||
{
|
||||
$head = user_prepare_head($fuser);
|
||||
|
||||
$title = $langs->trans("User");
|
||||
dol_fiche_head($head, 'paidholidays', $title, 0, 'user');
|
||||
|
||||
$nbaquis=$holiday->getCPforUser($user->id);
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
// Ref
|
||||
print '<tr><td width="25%" valign="top">'.$langs->trans("Ref").'</td>';
|
||||
print '<td colspan="2">';
|
||||
print $form->showrefnav($fuser,'id','',$user->rights->user->user->lire || $user->admin);
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
// Nom
|
||||
print '<tr><td width="25%" valign="top">'.$langs->trans("LastName").'</td>';
|
||||
print '<td colspan="2">'.$fuser->lastname.'</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
// Prenom
|
||||
print '<tr><td width="25%" valign="top">'.$langs->trans("FirstName").'</td>';
|
||||
print '<td colspan="2">'.$fuser->firstname.'</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
print '</table><br>';
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
print_barre_liste($langs->trans("ListeCP"), $page, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, "", $num);
|
||||
|
||||
print '<div class="tabBar">';
|
||||
}
|
||||
|
||||
|
||||
$nbaquis=$holiday->getCPforUser($user_id);
|
||||
$nbdeduced=$holiday->getConfCP('nbHolidayDeducted');
|
||||
$nb_holiday = $nbaquis / $nbdeduced;
|
||||
print $langs->trans('SoldeCPUser',round($nb_holiday,2)).($nbdeduced != 1 ? ' ('.$nbaquis.' / '.$nbdeduced.')' : '');
|
||||
|
|
@ -223,13 +259,13 @@ print '<input class="flat" size="4" type="text" name="search_ref" value="'.$sear
|
|||
// DATE CREATE
|
||||
print '<td class="liste_titre" colspan="1" align="center">';
|
||||
print '<input class="flat" type="text" size="1" maxlength="2" name="month_create" value="'.$month_create.'">';
|
||||
$htmlother->select_year($year_create,'year_create',1, $min_year, $max_year);
|
||||
$formother->select_year($year_create,'year_create',1, $min_year, $max_year);
|
||||
print '</td>';
|
||||
|
||||
// UTILISATEUR
|
||||
if($user->rights->holiday->lire_tous) {
|
||||
print '<td class="liste_titre" align="left">';
|
||||
$html->select_users($search_employe,"search_employe",1,"",0,'');
|
||||
$form->select_users($search_employe,"search_employe",1,"",0,'');
|
||||
print '</td>';
|
||||
} else {
|
||||
print '<td class="liste_titre"> </td>';
|
||||
|
|
@ -246,7 +282,7 @@ if($user->rights->holiday->lire_tous){
|
|||
$validator = new UserGroup($db,$idGroupValid);
|
||||
$valideur = $validator->listUsersForGroup();
|
||||
|
||||
$html->select_users($search_valideur,"search_valideur",1,"",0,$valideur,'');
|
||||
$form->select_users($search_valideur,"search_valideur",1,"",0,$valideur,'');
|
||||
print '</td>';
|
||||
} else {
|
||||
print '<td class="liste_titre"> </td>';
|
||||
|
|
@ -255,13 +291,13 @@ if($user->rights->holiday->lire_tous){
|
|||
// DATE DEBUT
|
||||
print '<td class="liste_titre" colspan="1" align="center">';
|
||||
print '<input class="flat" type="text" size="1" maxlength="2" name="month_start" value="'.$month_start.'">';
|
||||
$htmlother->select_year($year_start,'year_start',1, $min_year, $max_year);
|
||||
$formother->select_year($year_start,'year_start',1, $min_year, $max_year);
|
||||
print '</td>';
|
||||
|
||||
// DATE FIN
|
||||
print '<td class="liste_titre" colspan="1" align="center">';
|
||||
print '<input class="flat" type="text" size="1" maxlength="2" name="month_end" value="'.$month_end.'">';
|
||||
$htmlother->select_year($year_end,'year_end',1, $min_year, $max_year);
|
||||
$formother->select_year($year_end,'year_end',1, $min_year, $max_year);
|
||||
print '</td>';
|
||||
|
||||
// DUREE
|
||||
|
|
@ -327,10 +363,13 @@ if($holiday_payes == '2')
|
|||
print '</table>';
|
||||
print '</form>';
|
||||
|
||||
print '<br>';
|
||||
print '<div style="float: right; margin-top: 8px;">';
|
||||
print '<a href="./fiche.php?action=request" class="butAction">'.$langs->trans('AddCP').'</a>';
|
||||
print '</div>';
|
||||
if ($user_id == $user->id)
|
||||
{
|
||||
print '<br>';
|
||||
print '<div style="float: right; margin-top: 8px;">';
|
||||
print '<a href="./fiche.php?action=request" class="butAction">'.$langs->trans('AddCP').'</a>';
|
||||
print '</div>';
|
||||
}
|
||||
|
||||
llxFooter();
|
||||
|
||||
|
|
|
|||
|
|
@ -67,6 +67,10 @@ insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values ( 2
|
|||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (141, 14, '7','0','VAT standard rate',1);
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (142, 14, '0','0','VAT Rate 0',1);
|
||||
|
||||
-- CAMEROUN (id country=24)
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (241, 24, '19.25','0','VAT standard rate',1);
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (242, 24, '0','0','VAT Rate 0',1);
|
||||
|
||||
-- CHILE (id country=67)
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (671, 67, '19','0','VAT standard rate',1);
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (672, 67, '0','0','VAT Rate 0',1);
|
||||
|
|
@ -151,6 +155,10 @@ insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (17
|
|||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1662, 166, '15','0','VAT standard rate', 1);
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1663, 166, '0','0','VAT Rate 0', 1);
|
||||
|
||||
-- NIGERIA (id country=169)
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1692, 169, '5','0','VAT standard rate', 1);
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1693, 169, '0','0','VAT Rate 0', 1);
|
||||
|
||||
-- NORWAY (id country=173)
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1731, 173, '25','0','VAT standard rate', 1);
|
||||
insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1732, 173, '14','0','VAT reduced rate', 1);
|
||||
|
|
|
|||
|
|
@ -35,4 +35,13 @@ ALTER TABLE llx_user add COLUMN fk_user integer;
|
|||
|
||||
-- margin on contracts
|
||||
alter table llx_contratdet add column fk_product_fournisseur_price integer after info_bits;
|
||||
alter table llx_contratdet add column buy_price_ht double(24,8) DEFAULT 0 after fk_product_fournisseur_price;
|
||||
alter table llx_contratdet add column buy_price_ht double(24,8) DEFAULT 0 after fk_product_fournisseur_price;
|
||||
|
||||
-- serialised array, to store value of select list choices for example
|
||||
alter table llx_extrafields add column param text after pos;
|
||||
|
||||
|
||||
alter table llx_propal CHANGE COLUMN fk_adresse_livraison fk_delivery_address integer;
|
||||
alter table llx_commande CHANGE COLUMN fk_adresse_livraison fk_delivery_address integer;
|
||||
alter table llx_don CHANGE COLUMN adresse address text;
|
||||
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ create table llx_adherent
|
|||
morphy varchar(3) NOT NULL, -- personne morale / personne physique
|
||||
societe varchar(50),
|
||||
fk_soc integer NULL, -- Link to third party linked to member
|
||||
adresse text,
|
||||
address text,
|
||||
cp varchar(30),
|
||||
ville varchar(50),
|
||||
fk_departement integer,
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ create table llx_commande
|
|||
date_livraison date default NULL,
|
||||
fk_availability integer NULL,
|
||||
fk_input_reason integer,
|
||||
fk_adresse_livraison integer, -- delivery address (deprecated)
|
||||
fk_delivery_address integer, -- delivery address (deprecated)
|
||||
import_key varchar(14),
|
||||
extraparams varchar(255) -- for stock other parameters with json format
|
||||
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ create table llx_don
|
|||
prenom varchar(50),
|
||||
nom varchar(50),
|
||||
societe varchar(50),
|
||||
adresse text,
|
||||
address text,
|
||||
cp varchar(30),
|
||||
ville varchar(50),
|
||||
pays varchar(50),
|
||||
|
|
|
|||
|
|
@ -65,6 +65,6 @@ create table llx_propal
|
|||
fk_input_reason integer,
|
||||
import_key varchar(14),
|
||||
extraparams varchar(255), -- for stock other parameters with json format
|
||||
fk_adresse_livraison integer -- delivery address (deprecated)
|
||||
fk_delivery_address integer -- delivery address (deprecated)
|
||||
|
||||
)ENGINE=innodb;
|
||||
|
|
|
|||
|
|
@ -356,6 +356,7 @@ Boolean=Boolean (Checkbox)
|
|||
ExtrafieldPhone = Phone
|
||||
ExtrafieldPrice = Price
|
||||
ExtrafieldMail = Email
|
||||
ExtrafieldSelect = Select list
|
||||
LibraryToBuildPDF=Library used to build PDF
|
||||
WarningUsingFPDF=Warning: Your <b>conf.php</b> contains directive <b>dolibarr_pdf_force_fpdf=1</b>. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.<br>To solve this and have a full support of PDF generation, please download <a href="http://www.tcpdf.org/" target="_blank">TCPDF library</a>, then comment or remove the line <b>$dolibarr_pdf_force_fpdf=1</b>, and add instead <b>$dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir'</b>
|
||||
LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:<br>1 : local tax apply on products and services without vat (vat is not applied on local tax)<br>2 : local tax apply on products and services before vat (vat is calculated on amount + localtax)<br>3 : local tax apply on products without vat (vat is not applied on local tax)<br>4 : local tax apply on products before vat (vat is calculated on amount + localtax)<br>5 : local tax apply on services without vat (vat is not applied on local tax)<br>6 : local tax apply on services before vat (vat is calculated on amount + localtax)
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ ErrorUploadBlockedByAddon=Upload blocked by a PHP/Apache plugin.
|
|||
ErrorFileSizeTooLarge=File size is too large.
|
||||
ErrorSizeTooLongForIntType=Size too long for int type (%s digits maximum)
|
||||
ErrorSizeTooLongForVarcharType=Size too long for string type (%s chars maximum)
|
||||
ErrorNoValueForSelectType=Please fill value for select list
|
||||
ErrorFieldCanNotContainSpecialCharacters=Field <b>%s</b> must not contains special characters.
|
||||
ErrorNoAccountancyModuleLoaded=No accountancy module activated
|
||||
ErrorExportDuplicateProfil=This profil name already exists for this export set.
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ SendRequestCP=Creating demand for holidays
|
|||
DelayToRequestCP=Applications for holidays must be made at least <b>%s day(s)</b> before them.
|
||||
MenuConfCP=Edit balance of holidays
|
||||
UpdateAllCP=Update the holidays
|
||||
SoldeCPUser=Your balance of holidays is <b>%s</b> days.
|
||||
SoldeCPUser=Holidays balance is <b>%s</b> days.
|
||||
ErrorEndDateCP=You must select an end date greater than the start date.
|
||||
ErrorSQLCreateCP=An SQL error occurred during the creation:
|
||||
ErrorIDFicheCP=An error has occurred, the request for holidays does not exist.
|
||||
|
|
|
|||
|
|
@ -113,4 +113,5 @@ NameToCreate=Name of third party to create
|
|||
YourRole=Your roles
|
||||
YourQuotaOfUsersIsReached=Your quota of active users is reached !
|
||||
NbOfUsers=Nb of users
|
||||
DontDowngradeSuperAdmin=Only a superadmin can downgrade a superadmin
|
||||
DontDowngradeSuperAdmin=Only a superadmin can downgrade a superadmin
|
||||
HierarchicalResponsible=Hierarchical responsible
|
||||
|
|
@ -283,7 +283,7 @@ GenericMaskCodes3= Tout autre caractère dans le masque sera laissé inchangé.<
|
|||
GenericMaskCodes4a= <u>Exemple sur la 99eme %s du tiers LaCompanie faite le 31/03/2007:</u><br>
|
||||
GenericMaskCodes4b= <u>Exemple sur un tiers créé le 31/03/2007:</u><br>
|
||||
GenericMaskCodes4c= <u>Exemple sur un produit/service créé le 31/03/2007:</u><br>
|
||||
GenericMaskCodes5= <b>ABC{yy}{mm}-{000000}</b> donnera <b>ABC0703-000099</b><br><b>{0000+100}-XXX/{dd}/YYY</b> donnera <b>0199-XXX/31/YYY</b>
|
||||
GenericMaskCodes5= <b>ABC{yy}{mm}-{000000}</b> donnera <b>ABC0703-000099</b><br><b>{0000+100}-XXX-{dd}-YYY</b> donnera <b>0199-XXX-31-YYY</b>
|
||||
GenericNumRefModelDesc= Renvoie un numéro personnalisable selon un masque à définir.
|
||||
ServerAvailableOnIPOrPort= Serveur disponible à l'adresse <b>%s</b> sur le port <b>%s</b>
|
||||
ServerNotAvailableOnIPOrPort= Serveur non disponible à l'adresse <b>%s</b> sur le port <b>%s</b>
|
||||
|
|
@ -351,6 +351,7 @@ Boolean=Booleen (Checkbox)
|
|||
ExtrafieldPhone = Téléphone
|
||||
ExtrafieldPrice = Prix
|
||||
ExtrafieldMail = Email
|
||||
ExtrafieldSelect = Liste de sélection
|
||||
LibraryToBuildPDF=Bibliothèque utilisée pour la génération des PDF
|
||||
WarningUsingFPDF=Attention: Votre fichier <b>conf.php</b> contient la directive <b>dolibarr_pdf_force_fpdf=1</b>. Cela signifie que vous utilisez la librairie FPDF pour générer vos fichiers PDF. Cette librairie est ancienne et ne couvre pas de nombreuses fonctionnalitée (Unicode, transparence des images, langues cyrillic, arabes ou asiatiques...), aussi vous pouvez rencontrez des problèmes durant la génération des PDF.<br>Pour résoudre cela et avoir un support complet de PDF, vous pouvez télécharger la <a href="http://www.tcpdf.org/" target="_blank">librairie TCPDF</a> puis commenter ou supprimer la ligne <b>$dolibarr_pdf_force_fpdf=1</b>, et ajouter à la place <b>$dolibarr_lib_TCPDF_PATH='chemin_vers_TCPDF'</b>
|
||||
LocalTaxDesc=Certains pays appliquent 2 voir 3 taux sur chaque ligne de facture. Si c'est le cas, choisissez le type du deuxième et troisième taux et sa valeur. Les types possibles sont:<br>1 : taxe locale sur les produits et services hors tva (la tva n'est pas appliquée sur la taxe locale)<br>2 : taxe locale sur les produits et services avant tva (la tva est appliquée sur le montant + la taxe locale)<br>3 : taxe locale uniquement sur les produits hors tva (la tva n'est pas appliquée sur la taxe locale)<br>4 : taxe locale uniquement sur les produits avant tva (la tva est appliquée sur le montant + la taxe locale)<br>5 : taxe locale uniquement sur les services hors tva (la tva n'est pas appliquée sur la taxe locale)<br>6 : taxe locale uniquement sur les service avant tva (la tva est appliquée sur le montant + la taxe locale)
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ ErrorUploadBlockedByAddon=Upload bloqué par un plugin PHP/Apache.
|
|||
ErrorFileSizeTooLarge=La taille du fichier est trop grande.
|
||||
ErrorSizeTooLongForIntType=Longueur de champ trop longue pour le type int (%s chiffres maximum)
|
||||
ErrorSizeTooLongForVarcharType=Longueur de champ trop longue pour le type chaine (%s caractères maximum)
|
||||
ErrorNoValueForSelectType=Les valeurs de la liste doivent être renseignées
|
||||
ErrorFieldCanNotContainSpecialCharacters=Le champ <b>%s</b> ne peut contenir de caractères spéciaux.
|
||||
ErrorNoAccountancyModuleLoaded=Aucun module de comptabilité activé
|
||||
ErrorExportDuplicateProfil=Ce nom de profil existe déjà pour ce lot d'export.
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ SendRequestCP=Envoyer la demande de congés
|
|||
DelayToRequestCP=Les demandes de congés doivent être faites au moins <b>%s jours</b> avant la date</b> de ceux-ci.
|
||||
MenuConfCP=Mettre à jour solde
|
||||
UpdateAllCP=Mettre à jour les congés
|
||||
SoldeCPUser=Votre solde de congés est de <b>%s jours</b>.
|
||||
SoldeCPUser=Solde de congés: <b>%s jours</b>.
|
||||
ErrorEndDateCP=Vous devez choisir une date de fin supérieur à la date de début.
|
||||
ErrorSQLCreateCP=Une erreur SQL est survenue durant la création :
|
||||
ErrorIDFicheCP=Une erreur est survenue, cette demande de congés n'existe pas.
|
||||
|
|
|
|||
|
|
@ -113,4 +113,5 @@ NameToCreate=Nom du tiers à créer
|
|||
YourRole=Vos rôles
|
||||
YourQuotaOfUsersIsReached=Votre quota d'utilisateurs actifs est atteint !
|
||||
NbOfUsers=Nb d'utilisateurs
|
||||
DontDowngradeSuperAdmin=Seul un superadmin peut rétrograder un superadmin
|
||||
DontDowngradeSuperAdmin=Seul un superadmin peut rétrograder un superadmin
|
||||
HierarchicalResponsible=Responsable hierarchique
|
||||
|
|
@ -2185,10 +2185,10 @@ class Product extends CommonObject
|
|||
$this->res[]= array($compl_path.$nom_pere,$desc_pere);
|
||||
}
|
||||
|
||||
// Recursive call
|
||||
if (is_array($desc_pere)>2)
|
||||
// Recursive call if child is an array
|
||||
if (is_array($desc_pere[0]))
|
||||
{
|
||||
$this ->fetch_prod_arbo($desc_pere, $nom_pere." -> ", $desc_pere[1]*$multiply, $level+1);
|
||||
$this ->fetch_prod_arbo($desc_pere[0], $nom_pere." -> ", $desc_pere[1]*$multiply, $level+1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -84,6 +84,7 @@ $extrafields->fetch_name_optionals_label($elementtype);
|
|||
print "<table summary=\"listofattributes\" class=\"noborder\" width=\"100%\">";
|
||||
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td align="center">'.$langs->trans("Position").'</td>';
|
||||
print '<td>'.$langs->trans("Label").'</td>';
|
||||
print '<td>'.$langs->trans("AttributeCode").'</td>';
|
||||
print '<td>'.$langs->trans("Type").'</td>';
|
||||
|
|
@ -98,6 +99,7 @@ foreach($extrafields->attribute_type as $key => $value)
|
|||
{
|
||||
$var=!$var;
|
||||
print "<tr ".$bc[$var].">";
|
||||
print "<td>".$extrafields->attribute_pos[$key]."</td>\n";
|
||||
print "<td>".$extrafields->attribute_label[$key]."</td>\n";
|
||||
print "<td>".$key."</td>\n";
|
||||
print "<td>".$type2label[$extrafields->attribute_type[$key]]."</td>\n";
|
||||
|
|
|
|||
|
|
@ -1168,7 +1168,7 @@ div.error {
|
|||
|
||||
.product_line_stock_ok { color: #002200; }
|
||||
.product_line_stock_too_low { color: #664400; }
|
||||
|
||||
|
||||
.fieldrequired {
|
||||
font-weight:bold;
|
||||
color:#333333;
|
||||
|
|
@ -1469,6 +1469,9 @@ table.cal_event {
|
|||
margin-bottom:1px;
|
||||
}
|
||||
|
||||
ul.cal_event { padding-right: 2px; padding-top: 1px; border: none; list-style-type: none; margin: 0 auto; -webkit-padding-start: 2px !important; }
|
||||
li.cal_event { border: none; list-style-type: none; }
|
||||
|
||||
.cal_event a:link {
|
||||
color:#232323;
|
||||
font-size:11px;
|
||||
|
|
|
|||
|
|
@ -2059,12 +2059,19 @@ td.hidden {
|
|||
.cal_current_month { background: #FFFFFF; border: solid 1px #C0C0C0; padding-<?php print $left; ?>: 2px; padding-<?php print $right; ?>: 1px; padding-top: 0px; padding-bottom: 0px; }
|
||||
.cal_today { background: #FFFFFF; border: solid 2px #6C7C7B; padding-<?php print $left; ?>: 2px; padding-<?php print $right; ?>: 1px; padding-top: 0px; padding-bottom: 0px; }
|
||||
.cal_past { }
|
||||
table.cal_event { border-collapse: collapse; margin-bottom: 1px; -webkit-border-radius: 6px; border-radius: 6px; }
|
||||
table.cal_event td { border: 0px; padding-<?php print $left; ?>: 0px; padding-<?php print $right; ?>: 2px; padding-top: 0px; padding-bottom: 0px; }
|
||||
table.cal_event { border: none; border-collapse: collapse; margin-bottom: 1px; -webkit-border-radius: 6px; border-radius: 6px;
|
||||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.25);
|
||||
moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.25);
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.25);
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#006aac), to(#00438d));
|
||||
}
|
||||
table.cal_event td { border: none; padding-<?php print $left; ?>: 2px; padding-<?php print $right; ?>: 2px; padding-top: 0px; padding-bottom: 0px; }
|
||||
ul.cal_event { padding-right: 2px; padding-top: 1px; border: none; list-style-type: none; margin: 0 auto; -webkit-padding-start: 2px !important; }
|
||||
li.cal_event { border: none; list-style-type: none; }
|
||||
.cal_event a:link { color: #111111; font-size: 11px; font-weight: normal !important; }
|
||||
.cal_event a:visited { color: #111111; font-size: 11px; font-weight: normal !important; }
|
||||
.cal_event a:active { color: #111111; font-size: 11px; font-weight: normal !important; }
|
||||
.cal_event a:hover { color: #111111; font-size: 11px; font-weight: normal !important; }
|
||||
.cal_event a:hover { color: #111111; font-size: 11px; font-weight: normal !important; color:rgba(255,255,255,.75); }
|
||||
|
||||
|
||||
/* ============================================================================== */
|
||||
|
|
|
|||
|
|
@ -154,13 +154,13 @@ class User extends CommonObject
|
|||
$sql.= " u.ref_int, u.ref_ext";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."user as u";
|
||||
|
||||
if (! empty($conf->multicompany->enabled) && ! empty($conf->multicompany->transverse_mode))
|
||||
if ((empty($conf->multicompany->enabled) || empty($conf->multicompany->transverse_mode)) && (! empty($user->entity)))
|
||||
{
|
||||
$sql.= " WHERE u.entity IS NOT NULL";
|
||||
$sql.= " WHERE u.entity IN (0,".$conf->entity.")";
|
||||
}
|
||||
else
|
||||
{
|
||||
$sql.= " WHERE u.entity IN (0,".$conf->entity.")";
|
||||
$sql.= " WHERE u.entity IS NOT NULL";
|
||||
}
|
||||
|
||||
if ($sid) // permet une recherche du user par son SID ActiveDirectory ou Samba
|
||||
|
|
@ -1140,6 +1140,7 @@ class User extends CommonObject
|
|||
$sql.= ", note = '".$this->db->escape($this->note)."'";
|
||||
$sql.= ", photo = ".($this->photo?"'".$this->db->escape($this->photo)."'":"null");
|
||||
$sql.= ", openid = ".($this->openid?"'".$this->db->escape($this->openid)."'":"null");
|
||||
$sql.= ", fk_user = ".($this->fk_user > 0?"'".$this->db->escape($this->fk_user)."'":"null");
|
||||
$sql.= ", entity = '".$this->entity."'";
|
||||
$sql.= " WHERE rowid = ".$this->id;
|
||||
|
||||
|
|
|
|||
|
|
@ -196,11 +196,6 @@ if ($action == 'add' && $canadduser)
|
|||
}
|
||||
}
|
||||
|
||||
// FIXME external module
|
||||
$object->webcal_login = $_POST["webcal_login"];
|
||||
$object->phenix_login = $_POST["phenix_login"];
|
||||
$object->phenix_pass = $_POST["phenix_pass"];
|
||||
|
||||
// If multicompany is off, admin users must all be on entity 0.
|
||||
if (! empty($conf->multicompany->enabled))
|
||||
{
|
||||
|
|
@ -332,6 +327,7 @@ if ($action == 'update' && ! $_POST["cancel"])
|
|||
$object->job = GETPOST("job");
|
||||
$object->signature = GETPOST("signature");
|
||||
$object->openid = GETPOST("openid");
|
||||
$object->fk_user = GETPOST("fk_user")>0?GETPOST("fk_user"):0;
|
||||
|
||||
// Get extra fields
|
||||
foreach($_POST as $key => $value)
|
||||
|
|
@ -342,11 +338,6 @@ if ($action == 'update' && ! $_POST["cancel"])
|
|||
}
|
||||
}
|
||||
|
||||
// FIXME external module
|
||||
$object->webcal_login = $_POST["webcal_login"];
|
||||
$object->phenix_login = $_POST["phenix_login"];
|
||||
$object->phenix_pass = $_POST["phenix_pass"];
|
||||
|
||||
if (! empty($conf->multicompany->enabled))
|
||||
{
|
||||
if (! empty($_POST["superadmin"]))
|
||||
|
|
@ -828,21 +819,6 @@ if (($action == 'create') || ($action == 'adduserldap'))
|
|||
print "</td></tr>\n";
|
||||
}
|
||||
|
||||
//Multicompany
|
||||
if (! empty($conf->multicompany->enabled))
|
||||
{
|
||||
if (empty($conf->multicompany->transverse_mode) && $conf->entity == 1 && $user->admin && ! $user->entity)
|
||||
{
|
||||
print "<tr>".'<td valign="top">'.$langs->trans("Entity").'</td>';
|
||||
print "<td>".$mc->select_entities($conf->entity);
|
||||
print "</td></tr>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<input type="hidden" name="entity" value="'.$conf->entity.'" />';
|
||||
}
|
||||
}
|
||||
|
||||
// Type
|
||||
print '<tr><td valign="top">'.$langs->trans("Type").'</td>';
|
||||
print '<td>';
|
||||
|
|
@ -911,6 +887,28 @@ if (($action == 'create') || ($action == 'adduserldap'))
|
|||
print '<textarea rows="'.ROWS_5.'" cols="90" name="signature">'.GETPOST('signature').'</textarea>';
|
||||
print '</td></tr>';
|
||||
|
||||
// Multicompany
|
||||
if (! empty($conf->multicompany->enabled))
|
||||
{
|
||||
if (empty($conf->multicompany->transverse_mode) && $conf->entity == 1 && $user->admin && ! $user->entity)
|
||||
{
|
||||
print "<tr>".'<td valign="top">'.$langs->trans("Entity").'</td>';
|
||||
print "<td>".$mc->select_entities($conf->entity);
|
||||
print "</td></tr>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<input type="hidden" name="entity" value="'.$conf->entity.'" />';
|
||||
}
|
||||
}
|
||||
|
||||
// Hierarchy
|
||||
print '<tr><td valign="top">'.$langs->trans("HierarchicalResponsible").'</td>';
|
||||
print '<td>';
|
||||
print $form->select_dolusers($object->fk_user,'fk_user',1,array($object->id),0,'',0,$conf->entity);
|
||||
print '</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
// Note
|
||||
print '<tr><td valign="top">';
|
||||
print $langs->trans("Note");
|
||||
|
|
@ -936,23 +934,6 @@ if (($action == 'create') || ($action == 'adduserldap'))
|
|||
}
|
||||
}
|
||||
|
||||
// Module Webcalendar
|
||||
// TODO external module
|
||||
if (! empty($conf->webcalendar->enabled))
|
||||
{
|
||||
print "<tr>".'<td valign="top">'.$langs->trans("LoginWebcal").'</td>';
|
||||
print '<td><input size="30" type="text" name="webcal_login" value="'.$_POST["webcal_login"].'"></td></tr>';
|
||||
}
|
||||
|
||||
// Module Phenix
|
||||
// TODO external module
|
||||
if (! empty($conf->phenix->enabled))
|
||||
{
|
||||
print "<tr>".'<td valign="top">'.$langs->trans("LoginPenix").'</td>';
|
||||
print '<td><input size="30" type="text" name="phenix_login" value="'.$_POST["phenix_login"].'"></td></tr>';
|
||||
print "<tr>".'<td valign="top">'.$langs->trans("PassPenix").'</td>';
|
||||
print '<td><input size="30" type="text" name="phenix_pass" value="'.$_POST["phenix_pass"].'"></td></tr>';
|
||||
}
|
||||
print "</table>\n";
|
||||
|
||||
print '<center><br><input class="button" value="'.$langs->trans("CreateUser").'" name="create" type="submit"></center>';
|
||||
|
|
@ -967,7 +948,7 @@ else
|
|||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
if ($id)
|
||||
if ($id > 0)
|
||||
{
|
||||
$object->fetch($id);
|
||||
if ($res < 0) { dol_print_error($db,$object->error); exit; }
|
||||
|
|
@ -1076,6 +1057,8 @@ else
|
|||
*/
|
||||
if ($action != 'edit')
|
||||
{
|
||||
$rowspan=16;
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
// Ref
|
||||
|
|
@ -1085,13 +1068,9 @@ else
|
|||
print '</td>';
|
||||
print '</tr>'."\n";
|
||||
|
||||
$rowspan=15;
|
||||
if (isset($conf->authmode) && preg_match('/myopenid/',$conf->authmode)) $rowspan++;
|
||||
if (! empty($conf->societe->enabled)) $rowspan++;
|
||||
if (! empty($conf->adherent->enabled)) $rowspan++;
|
||||
if (! empty($conf->webcalendar->enabled)) $rowspan++; // TODO external module
|
||||
if (! empty($conf->phenix->enabled)) $rowspan+=2; // TODO external module
|
||||
|
||||
|
||||
// Lastname
|
||||
print '<tr><td valign="top">'.$langs->trans("Lastname").'</td>';
|
||||
|
|
@ -1176,22 +1155,6 @@ else
|
|||
}
|
||||
print '</td></tr>'."\n";
|
||||
|
||||
// Multicompany
|
||||
if (! empty($conf->multicompany->enabled) && empty($conf->multicompany->transverse_mode) && $conf->entity == 1 && $user->admin && ! $user->entity)
|
||||
{
|
||||
print '<tr><td valign="top">'.$langs->trans("Entity").'</td><td width="75%" class="valeur">';
|
||||
if ($object->admin && ! $object->entity)
|
||||
{
|
||||
print $langs->trans("AllEntities");
|
||||
}
|
||||
else
|
||||
{
|
||||
$mc->getInfo($object->entity);
|
||||
print $mc->label;
|
||||
}
|
||||
print "</td></tr>\n";
|
||||
}
|
||||
|
||||
// Type
|
||||
print '<tr><td valign="top">'.$langs->trans("Type").'</td><td>';
|
||||
$type=$langs->trans("Internal");
|
||||
|
|
@ -1200,7 +1163,7 @@ else
|
|||
if ($object->ldap_sid) print ' ('.$langs->trans("DomainUser").')';
|
||||
print '</td></tr>'."\n";
|
||||
|
||||
// ldap sid
|
||||
// Ldap sid
|
||||
if ($object->ldap_sid)
|
||||
{
|
||||
print '<tr><td valign="top">'.$langs->trans("Type").'</td><td>';
|
||||
|
|
@ -1232,8 +1195,20 @@ else
|
|||
print '<tr><td valign="top">'.$langs->trans('Signature').'</td><td>';
|
||||
print dol_textishtml($object->signature)?$object->signature:dol_nl2br($object->signature,1,false);
|
||||
print "</td></tr>\n";
|
||||
|
||||
// Hierarchy
|
||||
print '<tr><td valign="top">'.$langs->trans("HierarchicalResponsible").'</td>';
|
||||
print '<td>';
|
||||
if (empty($object->fk_user)) print $langs->trans("None");
|
||||
else {
|
||||
$huser=new User($db);
|
||||
$huser->fetch($object->fk_user);
|
||||
print $huser->getNomUrl(1);
|
||||
}
|
||||
print '</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
// Statut
|
||||
// Status
|
||||
print '<tr><td valign="top">'.$langs->trans("Status").'</td>';
|
||||
print '<td>';
|
||||
print $object->getLibStatut(4);
|
||||
|
|
@ -1256,29 +1231,6 @@ else
|
|||
print "</tr>\n";
|
||||
}
|
||||
|
||||
// Module Webcalendar
|
||||
// TODO external module
|
||||
if (! empty($conf->webcalendar->enabled))
|
||||
{
|
||||
$langs->load("other");
|
||||
print '<tr><td valign="top">'.$langs->trans("LoginWebcal").'</td>';
|
||||
print '<td>'.$object->webcal_login.' </td>';
|
||||
print '</tr>'."\n";
|
||||
}
|
||||
|
||||
// Module Phenix
|
||||
// TODO external module
|
||||
if (! empty($conf->phenix->enabled))
|
||||
{
|
||||
$langs->load("other");
|
||||
print '<tr><td valign="top">'.$langs->trans("LoginPhenix").'</td>';
|
||||
print '<td>'.$object->phenix_login.' </td>';
|
||||
print "</tr>\n";
|
||||
print '<tr><td valign="top">'.$langs->trans("PassPhenix").'</td>';
|
||||
print '<td>'.preg_replace('/./i','*',$object->phenix_pass_crypted).' </td>';
|
||||
print '</tr>'."\n";
|
||||
}
|
||||
|
||||
// Company / Contact
|
||||
if (! empty($conf->societe->enabled))
|
||||
{
|
||||
|
|
@ -1327,6 +1279,22 @@ else
|
|||
print '</tr>'."\n";
|
||||
}
|
||||
|
||||
// Multicompany
|
||||
if (! empty($conf->multicompany->enabled) && empty($conf->multicompany->transverse_mode) && $conf->entity == 1 && $user->admin && ! $user->entity)
|
||||
{
|
||||
print '<tr><td valign="top">'.$langs->trans("Entity").'</td><td width="75%" class="valeur">';
|
||||
if ($object->admin && ! $object->entity)
|
||||
{
|
||||
print $langs->trans("AllEntities");
|
||||
}
|
||||
else
|
||||
{
|
||||
$mc->getInfo($object->entity);
|
||||
print $mc->label;
|
||||
}
|
||||
print "</td></tr>\n";
|
||||
}
|
||||
|
||||
// Other attributes
|
||||
$parameters=array('colspan' => ' colspan="2"');
|
||||
$reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
|
||||
|
|
@ -1354,7 +1322,7 @@ else
|
|||
|
||||
print '<div class="tabsAction">';
|
||||
|
||||
if ($caneditfield && ((empty($conf->multicompany->enabled) && $object->entity == $user->entity) || ! $user->entity || ($object->entity == $conf->entity) || ($conf->multicompany->transverse_mode && $conf->entity == 1)))
|
||||
if ($caneditfield && (empty($conf->multicompany->enabled) || ! $user->entity || ($object->entity == $conf->entity) || ($conf->multicompany->transverse_mode && $conf->entity == 1)))
|
||||
{
|
||||
if (! empty($conf->global->MAIN_ONLY_LOGIN_ALLOWED))
|
||||
{
|
||||
|
|
@ -1366,7 +1334,7 @@ else
|
|||
}
|
||||
}
|
||||
elseif ($caneditpassword && ! $object->ldap_sid &&
|
||||
((empty($conf->multicompany->enabled) && $object->entity == $user->entity) || ! $user->entity || ($object->entity == $conf->entity) || ($conf->multicompany->transverse_mode && $conf->entity == 1)))
|
||||
(empty($conf->multicompany->enabled) || ! $user->entity || ($object->entity == $conf->entity) || ($conf->multicompany->transverse_mode && $conf->entity == 1)))
|
||||
{
|
||||
print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'&action=edit">'.$langs->trans("EditPassword").'</a>';
|
||||
}
|
||||
|
|
@ -1565,18 +1533,16 @@ else
|
|||
|
||||
if ($action == 'edit' && ($canedituser || ($user->id == $object->id)))
|
||||
{
|
||||
print '<form action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'" method="POST" name="updateuser" enctype="multipart/form-data">';
|
||||
$rowspan=14;
|
||||
|
||||
print '<form action="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'" method="POST" name="updateuser" enctype="multipart/form-data">';
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
print '<input type="hidden" name="action" value="update">';
|
||||
print '<input type="hidden" name="entity" value="'.$object->entity.'">';
|
||||
print '<table width="100%" class="border">';
|
||||
|
||||
$rowspan=13;
|
||||
|
||||
if (! empty($conf->societe->enabled)) $rowspan++;
|
||||
if (! empty($conf->adherent->enabled)) $rowspan++;
|
||||
if (! empty($conf->webcalendar->enabled)) $rowspan++; // TODO external module
|
||||
if (! empty($conf->phenix->enabled)) $rowspan+=2; // TODO external module
|
||||
|
||||
print '<tr><td width="25%" valign="top">'.$langs->trans("Ref").'</td>';
|
||||
print '<td colspan="2">';
|
||||
|
|
@ -1748,21 +1714,6 @@ else
|
|||
print '</td></tr>';
|
||||
}
|
||||
|
||||
// Multicompany
|
||||
if (! empty($conf->multicompany->enabled))
|
||||
{
|
||||
if (empty($conf->multicompany->transverse_mode) && $conf->entity == 1 && $user->admin && ! $user->entity)
|
||||
{
|
||||
print "<tr>".'<td valign="top">'.$langs->trans("Entity").'</td>';
|
||||
print "<td>".$mc->select_entities($object->entity);
|
||||
print "</td></tr>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<input type="hidden" name="entity" value="'.$conf->entity.'" />';
|
||||
}
|
||||
}
|
||||
|
||||
// Type
|
||||
print '<tr><td width="25%" valign="top">'.$langs->trans("Type").'</td>';
|
||||
print '<td>';
|
||||
|
|
@ -1843,7 +1794,7 @@ else
|
|||
print '<td>';
|
||||
print '<textarea name="signature" rows="5" cols="90">'.dol_htmlentitiesbr_decode($object->signature).'</textarea>';
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
// openid
|
||||
if (isset($conf->authmode) && preg_match('/myopenid/',$conf->authmode))
|
||||
{
|
||||
|
|
@ -1861,41 +1812,34 @@ else
|
|||
print '</td></tr>';
|
||||
}
|
||||
|
||||
// Statut
|
||||
// Hierarchy
|
||||
print '<tr><td valign="top">'.$langs->trans("HierarchicalResponsible").'</td>';
|
||||
print '<td>';
|
||||
print $form->select_dolusers($object->fk_user,'fk_user',1,array($object->id),0,'',0,$object->entity);
|
||||
print '</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
// Status
|
||||
print '<tr><td valign="top">'.$langs->trans("Status").'</td>';
|
||||
print '<td>';
|
||||
print $object->getLibStatut(4);
|
||||
print '</td></tr>';
|
||||
|
||||
// Module Webcalendar
|
||||
// TODO external module
|
||||
if (! empty($conf->webcalendar->enabled))
|
||||
{
|
||||
$langs->load("other");
|
||||
print "<tr>".'<td valign="top">'.$langs->trans("LoginWebcal").'</td>';
|
||||
print '<td>';
|
||||
if ($caneditfield) print '<input size="30" type="text" class="flat" name="webcal_login" value="'.$object->webcal_login.'">';
|
||||
else print $object->webcal_login;
|
||||
print '</td></tr>';
|
||||
}
|
||||
|
||||
// Module Phenix
|
||||
// TODO external module
|
||||
if (! empty($conf->phenix->enabled))
|
||||
{
|
||||
$langs->load("other");
|
||||
print "<tr>".'<td valign="top">'.$langs->trans("LoginPhenix").'</td>';
|
||||
print '<td>';
|
||||
if ($caneditfield) print '<input size="30" type="text" class="flat" name="phenix_login" value="'.$object->phenix_login.'">';
|
||||
else print $object->phenix_login;
|
||||
print '</td></tr>';
|
||||
print "<tr>".'<td valign="top">'.$langs->trans("PassPhenix").'</td>';
|
||||
print '<td>';
|
||||
if ($caneditfield) print '<input size="30" type="password" class="flat" name="phenix_pass" value="'.$object->phenix_pass_crypted.'">';
|
||||
else print preg_replace('/./i','*',$object->phenix_pass_crypted);
|
||||
print '</td></tr>';
|
||||
}
|
||||
|
||||
// Multicompany
|
||||
if (! empty($conf->multicompany->enabled))
|
||||
{
|
||||
if (empty($conf->multicompany->transverse_mode) && $conf->entity == 1 && $user->admin && ! $user->entity)
|
||||
{
|
||||
print "<tr>".'<td valign="top">'.$langs->trans("Entity").'</td>';
|
||||
print "<td>".$mc->select_entities($object->entity);
|
||||
print "</td></tr>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<input type="hidden" name="entity" value="'.$conf->entity.'" />';
|
||||
}
|
||||
}
|
||||
|
||||
// Company / Contact
|
||||
if (! empty($conf->societe->enabled))
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user