Merge branch 'develop' of https://github.com/Dolibarr/dolibarr into develop

This commit is contained in:
Raphaël Doursenaud 2012-05-02 17:44:48 +02:00
commit 96111a2206
177 changed files with 6497 additions and 2093 deletions

View File

@ -7,8 +7,12 @@ English Dolibarr ChangeLog
For users:
- New: Add supplier ref on supplier orders.
- New: Can export supplier orders.
- New: First feature to install external plugins from gui.
- New: Monaco is like France for default vat calculation
For developers:
- A module can overwrite templates parts.
- Can add a link on title field of added dictionnary.
***** ChangeLog for 3.2 compared to 3.1 *****

View File

@ -321,6 +321,7 @@ if ($nboftargetok) {
$ret=`rm -fr $BUILDROOT/$PROJECT/Thumbs.db $BUILDROOT/$PROJECT/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/*/*/Thumbs.db`;
$ret=`rm -f $BUILDROOT/$PROJECT/.cvsignore $BUILDROOT/$PROJECT/*/.cvsignore $BUILDROOT/$PROJECT/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/*/*/*/.cvsignore`;
$ret=`rm -f $BUILDROOT/$PROJECT/.gitignore $BUILDROOT/$PROJECT/*/.gitignore $BUILDROOT/$PROJECT/*/*/.gitignore $BUILDROOT/$PROJECT/*/*/*/.gitignore $BUILDROOT/$PROJECT/*/*/*/*/.gitignore $BUILDROOT/$PROJECT/*/*/*/*/*/.gitignore $BUILDROOT/$PROJECT/*/*/*/*/*/*/.gitignore`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/theme/amarok`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/geoip/sample*.*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/jquery/plugins/lightbox`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/jquery/plugins/jstree`;
@ -328,6 +329,7 @@ if ($nboftargetok) {
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpexcel/license.txt`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpexcel/PHPExcel/Shared/PDF`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpexcel/PHPExcel/Shared/PCLZip`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/savant`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/dejavu-fonts-ttf-2.33`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/freefont-20100919`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/utils`;

View File

@ -9,15 +9,13 @@ beta version of Dolibarr, step by step.
- Check all files are commited.
- Update version/info in / directory (README*.txt, ChangeLog...)
- Update version number with x.x.x in build/doxygen/dolibarr-doxygen.doxyfile
- Update version number with x.x.x in build/perl/virtualmin/dolibarr.pl
- 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 htdocs/filefunc.inc.php
- Update version number with x.x.x-y in htdocs/install/inc.php
- Update version number with x.x.x-y in htdocs/support/inc.php
- Update version number with x.x.x-y in htdocs/build/rpm/*.spec
- Update version number with x.x.x-y in build/rpm/*.spec
- Update version number with x.x.x in build/doxygen/dolibarr-doxygen.doxyfile
- Update version number with x.x.x in build/perl/virtualmin/dolibarr.pl
- Commit all changes.
- Add a Tag (DOLIBARR_x_y_BETA)
- Create a branch (DOLIBARR_x_y_BRANCH).
@ -35,12 +33,11 @@ complete release of Dolibarr, step by step.
- Check all files are commited.
- Update version/info in / directory (README*.txt, ChangeLog...)
- Update version number with x.x.x-y in build/makepack-dolibarr.pl
- Update version number with x.x.x-y in build/exe/doliwamp/doliwamp.iss
- Update version number with x.x.x-y in htdocs/filefunc.inc.php
- Update version number with x.x.x-y in htdocs/install/inc.php
- Update version number with x.x.x-y in htdocs/support/inc.php
- Update version number with x.x.x-y in htdocs/build/rpm/*.spec
- 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 PAD files.
- Commit all changes.
- Add a Tag (DOLIBARR_x_y)

View File

@ -73,12 +73,14 @@ class modMyModule extends DolibarrModules
// for specific path of parts (eg: /mymodule/core/modules/barcode)
// for specific css file (eg: /mymodule/css/mymodule.css.php)
//$this->module_parts = array(
// 'triggers' => 0, // Set this to 1 if module has its own trigger directory
// 'login' => 0, // Set this to 1 if module has its own login method directory
// 'substitutions' => 0, // Set this to 1 if module has its own substitution function file
// 'menus' => 0, // Set this to 1 if module has its own menus handler directory
// 'barcode' => 0, // Set this to 1 if module has its own barcode directory
// 'models' => 0, // Set this to 1 if module has its own models directory
// 'triggers' => 0, // Set this to 1 if module has its own trigger directory (core/triggers)
// 'login' => 0, // Set this to 1 if module has its own login method directory (core/login)
// 'substitutions' => 0, // Set this to 1 if module has its own substitution function file (core/substitutions)
// 'menus' => 0, // Set this to 1 if module has its own menus handler directory (core/menus)
// 'theme' => 0, // Set this to 1 if module has its own theme directory (core/theme)
// 'tpl' => 0, // Set this to 1 if module overwrite template dir (core/tpl)
// 'barcode' => 0, // Set this to 1 if module has its own barcode directory (core/modules/barcode)
// 'models' => 0, // Set this to 1 if module has its own models directory (core/modules/xxx)
// 'css' => '/mymodule/css/mymodule.css.php', // Set this to relative path of css if module has its own css file
// 'hooks' => array('hookcontext1','hookcontext2') // Set here all hooks context managed by module
// 'workflow' => array('order' => array('WORKFLOW_ORDER_AUTOCREATE_INVOICE')) // Set here all workflow context managed by module

View File

@ -58,9 +58,11 @@ class AccountancySystem
*/
function create($user)
{
$now=dol_now();
$sql = "INSERT INTO ".MAIN_DB_PREFIX."accountingsystem";
$sql.= " (date_creation, fk_user_author, numero,intitule)";
$sql.= " VALUES (".$this->db->idate(mktime()).",".$user->id.",'".$this->numero."','".$this->intitule."')";
$sql.= " VALUES (".$this->db->idate($now).",".$user->id.",'".$this->numero."','".$this->intitule."')";
$resql = $this->db->query($sql);
if ($resql)

View File

@ -218,10 +218,9 @@ print_fiche_titre($langs->trans("MembersCards"),'','');
form_constantes($constantes);
print '*'.$langs->trans("FollowingConstantsWillBeSubstituted").'<br>';
print '%DOL_MAIN_URL_ROOT%, %ID%, %PRENOM%, %NOM%, %LOGIN%, %PASSWORD%, ';
print '%SOCIETE%, %ADRESSE%, %CP%, %VILLE%, %PAYS%, %EMAIL%, %NAISS%, %PHOTO%, %TYPE%, ';
print '%DOL_MAIN_URL_ROOT%, %ID%, %FIRSTNAME%, %LASTNAME%, %FULLNAME%, %LOGIN%, %PASSWORD%, ';
print '%COMPANY%, %ADDRESS%, %ZIP%, %TOWN%, %COUNTRY%, %EMAIL%, %NAISS%, %PHOTO%, %TYPE%, ';
print '%YEAR%, %MONTH%, %DAY%';
//print '%INFOS%'; Deprecated
print '<br>';
print '<br>';
@ -230,12 +229,18 @@ print '<br>';
/*
* Edition info modele document
*/
$constantes=array('ADHERENT_ETIQUETTE_TYPE');
$constantes=array('ADHERENT_ETIQUETTE_TYPE','ADHERENT_ETIQUETTE_TEXT');
print_fiche_titre($langs->trans("MembersTickets"),'','');
form_constantes($constantes);
print '*'.$langs->trans("FollowingConstantsWillBeSubstituted").'<br>';
print '%DOL_MAIN_URL_ROOT%, %ID%, %FIRSTNAME%, %LASTNAME%, %FULLNAME%, %LOGIN%, %PASSWORD%, ';
print '%COMPANY%, %ADDRESS%, %ZIP%, %TOWN%, %COUNTRY%, %EMAIL%, %NAISS%, %PHOTO%, %TYPE%, ';
print '%YEAR%, %MONTH%, %DAY%';
print '<br>';
print '<br>';
@ -259,10 +264,9 @@ print_fiche_titre($langs->trans("Other"),'','');
form_constantes($constantes);
print '*'.$langs->trans("FollowingConstantsWillBeSubstituted").'<br>';
print '%DOL_MAIN_URL_ROOT%, %ID%, %PRENOM%, %NOM%, %LOGIN%, %PASSWORD%,';
print '%SOCIETE%, %ADRESSE%, %CP%, %VILLE%, %PAYS%, %EMAIL%, %NAISS%, %PHOTO%, %TYPE%';
print '%DOL_MAIN_URL_ROOT%, %ID%, %FIRSTNAME%, %LASTNAME%, %FULLNAME%, %LOGIN%, %PASSWORD%, ';
print '%COMPANY%, %ADDRESS%, %ZIP%, %TOWN%, %COUNTRY%, %EMAIL%, %NAISS%, %PHOTO%, %TYPE%, ';
//print '%YEAR%, %MONTH%, %DAY%'; // Not supported
//print '%INFOS%'; Deprecated
print '<br>';
dol_fiche_end();

View File

@ -816,7 +816,7 @@ if ($rowid)
print '<input type="hidden" name="thirdpartylabel" id="thirdpartylabel" value="'.dol_escape_htmltag($company->name).'">';
print "<table class=\"border\" width=\"100%\">\n";
$today=mktime();
$today=dol_now();
$datefrom=0;
$dateto=0;
$paymentdate=-1;
@ -841,7 +841,7 @@ if ($rowid)
}
else
{
$datefrom=mktime();
$datefrom=dol_now();
}
}
$form->select_date($datefrom,'','','','',"cotisation");

View File

@ -23,10 +23,11 @@
* \brief Page to output members business cards
*/
require("../../main.inc.php");
require_once(DOL_DOCUMENT_ROOT.'/core/lib/format_cards.lib.php');
require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent.class.php");
require_once(DOL_DOCUMENT_ROOT."/core/modules/member/cards/modules_cards.php");
require_once(DOL_DOCUMENT_ROOT."/core/modules/member/labels/modules_labels.php");
require_once(DOL_DOCUMENT_ROOT."/core/modules/member/modules_cards.php");
require_once(DOL_DOCUMENT_ROOT."/core/modules/printsheet/modules_labels.php");
$langs->load("members");
$langs->load("errors");
@ -39,12 +40,15 @@ $day=dol_print_date($now,'%d');
$foruserid=GETPOST('foruserid');
$foruserlogin=GETPOST('foruserlogin');
$mode=GETPOST('mode');
$model=GETPOST("model"); // Doc template to use for business cards
$modellabel=GETPOST("modellabel"); // Doc template to use for address sheet
$mesg='';
$adherentstatic=new Adherent($db);
/*
* View
* Actions
*/
if ($mode == 'cardlogin' && empty($foruserlogin))
@ -57,10 +61,10 @@ if ((! empty($foruserid) || ! empty($foruserlogin) || ! empty($mode)) && ! $mesg
$arrayofmembers=array();
// requete en prenant que les adherents a jour de cotisation
$sql = "SELECT d.rowid, d.prenom as firstname, d.nom as lastname, d.login, d.societe, d.datefin,";
$sql.= " d.adresse, d.cp, d.ville, d.naiss, d.email, d.photo,";
$sql = "SELECT d.rowid, d.prenom as firstname, d.nom as lastname, d.login, d.societe as company, d.datefin,";
$sql.= " d.adresse as address, d.cp as zip, d.ville as town, d.naiss, d.email, d.photo,";
$sql.= " t.libelle as type,";
$sql.= " p.libelle as pays";
$sql.= " p.code as country_code, p.libelle as country";
$sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as t, ".MAIN_DB_PREFIX."adherent as d";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_pays as p ON d.pays = p.rowid";
$sql.= " WHERE d.fk_adherent_type = t.rowid AND d.statut = 1";
@ -68,6 +72,7 @@ if ((! empty($foruserid) || ! empty($foruserlogin) || ! empty($mode)) && ! $mesg
if ($foruserlogin) $sql.=" AND d.login='".$db->escape($foruserlogin)."'";
$sql.= " ORDER BY d.rowid ASC";
dol_syslog("Search members sql=".$sql);
$result = $db->query($sql);
if ($result)
{
@ -77,27 +82,42 @@ if ((! empty($foruserid) || ! empty($foruserlogin) || ! empty($mode)) && ! $mesg
{
$objp = $db->fetch_object($result);
if ($objp->pays == '-') $objp->pays='';
if ($objp->country == '-') $objp->country='';
$adherentstatic->lastname=$objp->lastname;
$adherentstatic->firstname=$objp->firstname;
// List of values to scan for a replacement
$substitutionarray = array (
'%PRENOM%'=>$objp->firstname,
'%NOM%'=>$objp->lastname,
'%ID%'=>$objp->rowid,
'%LOGIN%'=>$objp->login,
'%SERVEUR%'=>"http://".$_SERVER["SERVER_NAME"]."/",
'%SOCIETE%'=>$objp->societe,
'%ADRESSE%'=>$objp->adresse,
'%CP%'=>$objp->cp,
'%VILLE%'=>$objp->ville,
'%PAYS%'=>$objp->pays,
'%FIRSTNAME%'=>$objp->firstname,
'%LASTNAME%'=>$objp->lastname,
'%FULLNAME%'=>$adherentstatic->getFullName($langs),
'%COMPANY%'=>$objp->company,
'%ADDRESS%'=>$objp->address,
'%ZIP%'=>$objp->zip,
'%TOWN%'=>$objp->town,
'%COUNTRY%'=>$objp->country,
'%COUNTRY_CODE%'=>$objp->country_code,
'%EMAIL%'=>$objp->email,
'%NAISS%'=>dol_print_date($objp->naiss,'day'),
'%TYPE%'=>$objp->type,
'%ID%'=>$objp->rowid,
'%ANNEE%'=>$year, // For backward compatibility
'%YEAR%'=>$year,
'%MONTH%'=>$month,
'%DAY%'=>$day
'%DAY%'=>$day,
'%DOL_MAIN_URL_ROOT%'=>DOL_MAIN_URL_ROOT,
'%SERVER%'=>"http://".$_SERVER["SERVER_NAME"]."/", // deprecated
// For backward compatibility
'%PRENOM%'=>$objp->firstname,
'%NOM%'=>$objp->lastname,
'%SOCIETE%'=>$objp->company,
'%ADRESSE%'=>$objp->address,
'%CP%'=>$objp->zip,
'%VILLE%'=>$objp->town,
'%PAYS%'=>$objp->country,
'%ANNEE%'=>$year,
'%SERVEUR%'=>"http://".$_SERVER["SERVER_NAME"]."/" // deprecated
);
complete_substitutions_array($substitutionarray, $langs);
@ -113,29 +133,33 @@ if ((! empty($foruserid) || ! empty($foruserlogin) || ! empty($mode)) && ! $mesg
{
for($j=0;$j<100;$j++)
{
$arrayofmembers[]=array('textleft'=>$textleft,
'textheader'=>$textheader,
'textfooter'=>$textfooter,
'textright'=>$textright,
'id'=>$objp->rowid,
'photo'=>$objp->photo);
$arrayofmembers[]=array(
'textleft'=>$textleft,
'textheader'=>$textheader,
'textfooter'=>$textfooter,
'textright'=>$textright,
'id'=>$objp->rowid,
'photo'=>$objp->photo
);
}
}
else
{
$arrayofmembers[]=array('textleft'=>$textleft,
'textheader'=>$textheader,
'textfooter'=>$textfooter,
'textright'=>$textright,
'id'=>$objp->rowid,
'photo'=>$objp->photo);
$arrayofmembers[]=array(
'textleft'=>$textleft,
'textheader'=>$textheader,
'textfooter'=>$textfooter,
'textright'=>$textright,
'id'=>$objp->rowid,
'photo'=>$objp->photo
);
}
}
// For labels
if ($mode == 'label')
{
$conf->global->ADHERENT_ETIQUETTE_TEXT="%PRENOM% %NOM%\n%ADRESSE%\n%CP% %VILLE%\n%PAYS%";
if (empty($conf->global->ADHERENT_ETIQUETTE_TEXT)) $conf->global->ADHERENT_ETIQUETTE_TEXT="%FULLNAME%\n%ADDRESS%\n%ZIP% %TOWN%\n%COUNTRY%";
$textleft=make_substitutions($conf->global->ADHERENT_ETIQUETTE_TEXT, $substitutionarray);
$textheader='';
$textfooter='';
@ -153,19 +177,30 @@ if ((! empty($foruserid) || ! empty($foruserlogin) || ! empty($mode)) && ! $mesg
}
// Build and output PDF
if (empty($mode) || $mode=='card' || $mode='cardlogin')
if (empty($mode) || $mode=='card' || $mode=='cardlogin')
{
if (! count($arrayofmembers))
{
$mesg=$langs->trans("ErrorRecordNotFound");
}
if (! $mesg) $result=members_card_pdf_create($db, $arrayofmembers, '', $outputlangs);
if (empty($model) || $model == '-1')
{
$mesg=$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("DescADHERENT_CARD_TYPE"));
}
if (! $mesg) $result=members_card_pdf_create($db, $arrayofmembers, $model, $outputlangs);
}
elseif ($mode == 'label')
{
$result=members_label_pdf_create($db, $arrayofmembers, '', $outputlangs);
if (! count($arrayofmembers))
{
$mesg=$langs->trans("ErrorRecordNotFound");
}
if (empty($modellabel) || $modellabel == '-1')
{
$mesg=$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("DescADHERENT_ETIQUETTE_TYPE"));
}
if (! $mesg) $result=members_label_pdf_create($db, $arrayofmembers, $modellabel, $outputlangs);
}
if ($result <= 0)
@ -178,12 +213,19 @@ if ((! empty($foruserid) || ! empty($foruserlogin) || ! empty($mode)) && ! $mesg
dol_print_error($db);
}
if (! $mesg) exit;
if (! $mesg)
{
$db->close();
exit;
}
}
/*
* View
*/
$form=new Form($db);
llxHeader('',$langs->trans("MembersCards"));
@ -195,26 +237,53 @@ print '<br>';
dol_htmloutput_errors($mesg);
print $langs->trans("DocForAllMembersCards",($conf->global->ADHERENT_CARD_TYPE?$conf->global->ADHERENT_CARD_TYPE:$langs->transnoentitiesnoconv("None"))).' ';
print img_picto('','puce').' '.$langs->trans("DocForAllMembersCards",($conf->global->ADHERENT_CARD_TYPE?$conf->global->ADHERENT_CARD_TYPE:$langs->transnoentitiesnoconv("None"))).' ';
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
print '<input type="hidden" name="foruserid" value="all">';
print '<input type="hidden" name="mode" value="card">';
print ' <input class="button" type="submit" value="'.$langs->trans("BuildDoc").'">';
print '<input type="hidden" name="action" value="builddoc">';
print $langs->trans("DescADHERENT_CARD_TYPE").' ';
// List of possible labels (defined into $_Avery_Labels variable set into format_cards.lib.php)
$arrayoflabels=array();
foreach(array_keys($_Avery_Labels) as $codecards)
{
$arrayoflabels[$codecards]=$_Avery_Labels[$codecards]['name'];
}
print $form->selectarray('model',$arrayoflabels,(GETPOST('model')?GETPOST('model'):$conf->global->ADHERENT_CARD_TYPE),1,0,0);
print '<br><input class="button" type="submit" value="'.$langs->trans("BuildDoc").'">';
print '</form>';
print '<br>';
print $langs->trans("DocForOneMemberCards",($conf->global->ADHERENT_CARD_TYPE?$conf->global->ADHERENT_CARD_TYPE:$langs->transnoentitiesnoconv("None"))).' ';
print img_picto('','puce').' '.$langs->trans("DocForOneMemberCards",($conf->global->ADHERENT_CARD_TYPE?$conf->global->ADHERENT_CARD_TYPE:$langs->transnoentitiesnoconv("None"))).' ';
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
print '<input type="hidden" name="mode" value="cardlogin">';
print $langs->trans("Login").': <input size="10" type="text" name="foruserlogin" value="'.GETPOST('foruserlogin').'">';
print ' <input class="button" type="submit" value="'.$langs->trans("BuildDoc").'">';
print '<input type="hidden" name="action" value="builddoc">';
print $langs->trans("DescADHERENT_CARD_TYPE").' ';
// List of possible labels (defined into $_Avery_Labels variable set into format_cards.lib.php)
$arrayoflabels=array();
foreach(array_keys($_Avery_Labels) as $codecards)
{
$arrayoflabels[$codecards]=$_Avery_Labels[$codecards]['name'];
}
print $form->selectarray('model',$arrayoflabels,(GETPOST('model')?GETPOST('model'):$conf->global->ADHERENT_CARD_TYPE),1,0,0);
print '<br>'.$langs->trans("Login").': <input size="10" type="text" name="foruserlogin" value="'.GETPOST('foruserlogin').'">';
print '<br><input class="button" type="submit" value="'.$langs->trans("BuildDoc").'">';
print '</form>';
print '<br>';
print $langs->trans("DocForLabels",$conf->global->ADHERENT_ETIQUETTE_TYPE).' ';
print img_picto('','puce').' '.$langs->trans("DocForLabels",$conf->global->ADHERENT_ETIQUETTE_TYPE).' ';
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
print '<input type="hidden" name="mode" value="label">';
print ' <input class="button" type="submit" value="'.$langs->trans("BuildDoc").'">';
print '<input type="hidden" name="action" value="builddoc">';
print $langs->trans("DescADHERENT_ETIQUETTE_TYPE").' ';
// List of possible labels (defined into $_Avery_Labels variable set into format_cards.lib.php)
$arrayoflabels=array();
foreach(array_keys($_Avery_Labels) as $codecards)
{
$arrayoflabels[$codecards]=$_Avery_Labels[$codecards]['name'];
}
print $form->selectarray('modellabel',$arrayoflabels,(GETPOST('modellabel')?GETPOST('modellabel'):$conf->global->ADHERENT_ETIQUETTE_TYPE),1,0,0);
print '<br><input class="button" type="submit" value="'.$langs->trans("BuildDoc").'">';
print '</form>';
print '<br>';

View File

@ -212,8 +212,22 @@ class Adherent extends CommonObject
$substitutionarray=array(
'%DOL_MAIN_URL_ROOT%'=>DOL_MAIN_URL_ROOT,
'%ID%'=>$msgishtml?dol_htmlentitiesbr($this->id):$this->id,
'%INFOS%'=>$msgishtml?dol_htmlentitiesbr($infos):$infos,
'%CIVILITE%'=>$this->getCivilityLabel($msgishtml?0:1),
'%FIRSTNAME%'=>$msgishtml?dol_htmlentitiesbr($this->firstname):$this->firstname,
'%LASTNAME%'=>$msgishtml?dol_htmlentitiesbr($this->lastname):$this->lastname,
'%FULLNAME%'=>$msgishtml?dol_htmlentitiesbr($this->getFullName($langs)):$this->getFullName($langs),
'%COMPANY%'=>$msgishtml?dol_htmlentitiesbr($this->societe):$this->societe,
'%ADDRESS%'=>$msgishtml?dol_htmlentitiesbr($this->address):$this->address,
'%ZIP%'=>$msgishtml?dol_htmlentitiesbr($this->zip):$this->zip,
'%TOWN%'=>$msgishtml?dol_htmlentitiesbr($this->town):$this->town,
'%COUNTRY%'=>$msgishtml?dol_htmlentitiesbr($this->country):$this->country,
'%EMAIL%'=>$msgishtml?dol_htmlentitiesbr($this->email):$this->email,
'%NAISS%'=>$msgishtml?dol_htmlentitiesbr($birthday):$birthday,
'%PHOTO%'=>$msgishtml?dol_htmlentitiesbr($this->photo):$this->photo,
'%LOGIN%'=>$msgishtml?dol_htmlentitiesbr($this->login):$this->login,
'%PASSWORD%'=>$msgishtml?dol_htmlentitiesbr($this->pass):$this->pass,
// For backward compatibility
'%INFOS%'=>$msgishtml?dol_htmlentitiesbr($infos):$infos,
'%PRENOM%'=>$msgishtml?dol_htmlentitiesbr($this->firstname):$this->firstname,
'%NOM%'=>$msgishtml?dol_htmlentitiesbr($this->lastname):$this->lastname,
'%SOCIETE%'=>$msgishtml?dol_htmlentitiesbr($this->societe):$this->societe,
@ -221,11 +235,6 @@ class Adherent extends CommonObject
'%CP%'=>$msgishtml?dol_htmlentitiesbr($this->zip):$this->zip,
'%VILLE%'=>$msgishtml?dol_htmlentitiesbr($this->town):$this->town,
'%PAYS%'=>$msgishtml?dol_htmlentitiesbr($this->country):$this->country,
'%EMAIL%'=>$msgishtml?dol_htmlentitiesbr($this->email):$this->email,
'%NAISS%'=>$msgishtml?dol_htmlentitiesbr($birthday):$birthday,
'%PHOTO%'=>$msgishtml?dol_htmlentitiesbr($this->photo):$this->photo,
'%LOGIN%'=>$msgishtml?dol_htmlentitiesbr($this->login):$this->login,
'%PASSWORD%'=>$msgishtml?dol_htmlentitiesbr($this->pass):$this->pass
);
complete_substitutions_array($substitutionarray, $langs);
@ -1241,6 +1250,7 @@ class Adherent extends CommonObject
global $langs,$conf;
$error=0;
$now=dol_now();
// Check parameters
if ($this->statut == 1)
@ -1253,7 +1263,7 @@ class Adherent extends CommonObject
$sql = "UPDATE ".MAIN_DB_PREFIX."adherent SET";
$sql.= " statut = 1";
$sql.= ", datevalid = ".$this->db->idate(mktime());
$sql.= ", datevalid = ".$this->db->idate($now);
$sql.= ", fk_user_valid=".$user->id;
$sql.= " WHERE rowid = ".$this->id;

View File

@ -65,6 +65,9 @@ class Cotisation extends CommonObject
function create($userid)
{
global $langs;
$now=dol_now();
// Check parameters
if ($this->datef <= $this->dateh)
{
@ -73,7 +76,7 @@ class Cotisation extends CommonObject
}
$sql = "INSERT INTO ".MAIN_DB_PREFIX."cotisation (fk_adherent, datec, dateadh, datef, cotisation, note)";
$sql.= " VALUES (".$this->fk_adherent.", '".$this->db->idate(mktime())."',";
$sql.= " VALUES (".$this->fk_adherent.", '".$this->db->idate($now)."',";
$sql.= " '".$this->db->idate($this->dateh)."',";
$sql.= " '".$this->db->idate($this->datef)."',";
$sql.= " ".$this->amount.",'".$this->db->escape($this->note)."')";

View File

@ -160,7 +160,7 @@ if ($action == 'confirm_create_user' && $confirm == 'yes' && $user->rights->user
{
// Creation user
$nuser = new User($db);
$result=$nuser->create_from_member($object,GETPOST('login','alpha'));
$result=$nuser->create_from_member($object,GETPOST('login'));
if ($result < 0)
{
@ -181,7 +181,7 @@ if ($action == 'confirm_create_thirdparty' && $confirm == 'yes' && $user->rights
{
// Creation user
$company = new Societe($db);
$result=$company->create_from_member($object,GETPOST('companyname','alpha'));
$result=$company->create_from_member($object,GETPOST('companyname'));
if ($result < 0)
{

View File

@ -37,6 +37,8 @@ if (! $user->rights->adherent->export) accessforbidden();
llxHeader();
$now=dol_now();
if ($sortorder == "") { $sortorder="ASC"; }
if ($sortfield == "") { $sortfield="d.login"; }
if (! isset($statut))
@ -56,7 +58,7 @@ $sql .= " FROM ".MAIN_DB_PREFIX."adherent as d ";
$sql .= " WHERE d.statut = $statut ";
if ($cotis==1)
{
$sql .= " AND datefin > '".$db->idate(mktime())."'";
$sql .= " AND datefin > '".$db->idate($now)."'";
}
$sql.= $db->order($sortfield,$sortorder);
//$sql.=$db->plimit($conf->liste_limit, $offset);

View File

@ -52,7 +52,7 @@ $search_login=GETPOST("search_login");
$type=GETPOST("type");
$search_email=GETPOST("search_email");
$search_categ=GETPOST("search_categ");
$sall=GETPOST("sall",'int');
$sall=GETPOST("sall");
if (GETPOST("button_removefilter"))
{

View File

@ -336,6 +336,8 @@ if ($rowid > 0)
// Show list of members (nearly same code than in page liste.php)
$membertypestatic=new AdherentType($db);
$now=dol_now();
$sql = "SELECT d.rowid, d.login, d.prenom as firstname, d.nom as lastname, d.societe, ";
$sql.= " d.datefin,";
@ -376,11 +378,11 @@ if ($rowid > 0)
}
if ($filter == 'uptodate')
{
$sql.=" AND datefin >= ".$db->idate(mktime());
$sql.=" AND datefin >= ".$db->idate($now);
}
if ($filter == 'outofdate')
{
$sql.=" AND datefin < ".$db->idate(mktime());
$sql.=" AND datefin < ".$db->idate($now);
}
// Count total nb of records
$nbtotalofrecords = 0;

View File

@ -107,8 +107,8 @@ $barcodelist=array();
clearstatcache();
// Check if there is external substitution to do asked by plugins
$dirbarcode=array_merge(array("/core/modules/barcode/"),$conf->barcode_modules);
// Scan list of all barcode included provided by external modules
$dirbarcode=array_merge(array("/core/modules/barcode/"),$conf->modules_parts['barcode']);
foreach($dirbarcode as $reldir)
{

View File

@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2012 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2011 Philippe Grand <philippe.grand@atoo-net.com>
@ -137,7 +137,7 @@ if ( ($action == 'update' && empty($_POST["cancel"]))
dolibarr_set_const($db, "MAIN_INFO_SIRET",$_POST["siret"],'chaine',0,'',$conf->entity);
dolibarr_set_const($db, "MAIN_INFO_APE",$_POST["ape"],'chaine',0,'',$conf->entity);
dolibarr_set_const($db, "MAIN_INFO_RCS",$_POST["rcs"],'chaine',0,'',$conf->entity);
dolibarr_set_const($db, "MAIN_INFO_TRAINER",$_POST["trainer"],'chaine',0,'',$conf->entity);
dolibarr_set_const($db, "MAIN_INFO_PROFID5",$_POST["MAIN_INFO_PROFID5"],'chaine',0,'',$conf->entity);
dolibarr_set_const($db, "MAIN_INFO_PROFID6",$_POST["MAIN_INFO_PROFID6"],'chaine',0,'',$conf->entity);
dolibarr_set_const($db, "MAIN_INFO_TVAINTRA",$_POST["tva"],'chaine',0,'',$conf->entity);
@ -481,7 +481,7 @@ if ($action == 'edit' || $action == 'updateedit')
print '<tr '.$bc[$var].'><td width="35%">'.$langs->transcountry("ProfId5",$country_code).'</td><td>';
if ($country_code)
{
print '<input name="trainer" size="20" value="' . $conf->global->MAIN_INFO_TRAINER . '">';
print '<input name="MAIN_INFO_PROFID5" size="20" value="' . $conf->global->MAIN_INFO_PROFID5 . '">';
}
else
{
@ -818,7 +818,7 @@ else
print '<tr '.$bc[$var].'><td width="35%">'.$langs->transcountry("ProfId5",$country_code).'</td><td>';
if ($langs->transcountry("ProfId5",$country_code) != '-')
{
print $conf->global->MAIN_INFO_TRAINER;
print $conf->global->MAIN_INFO_PROFID5;
}
print '</td></tr>';
}

View File

@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
* Copyright (C) 2005-2010 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es>
@ -65,13 +65,14 @@ include_once(DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php');
$hookmanager=new HookManager($db);
$hookmanager->initHooks(array('admin'));
// Thi page is a generic page to edit dictionnaries
// Put here delacaration of dictionnaries properties
// This page is a generic page to edit dictionnaries
// Put here declaration of dictionnaries properties
// Sort order to show dictionnary (0 is space). All other dictionnaries (added by modules) will be at end of this.
$taborder=array(9,0,4,3,2,0,1,8,19,16,0,5,11,0,6,0,10,12,13,0,14,0,7,17,0,22,20,18,21,0,15);
// Name of SQL tables of dictionnaries
$tabname=array();
$tabname[1] = MAIN_DB_PREFIX."c_forme_juridique";
$tabname[2] = MAIN_DB_PREFIX."c_departements";
$tabname[3] = MAIN_DB_PREFIX."c_regions";
@ -96,6 +97,7 @@ $tabname[21]= MAIN_DB_PREFIX."c_availability";
$tabname[22]= MAIN_DB_PREFIX."c_input_reason";
// Dictionary labels
$tablib=array();
$tablib[1] = "DictionnaryCompanyJuridicalType";
$tablib[2] = "DictionnaryCanton";
$tablib[3] = "DictionnaryRegion";
@ -120,6 +122,7 @@ $tablib[21]= "DictionnaryAvailability";
$tablib[22]= "DictionnarySource";
// Requete pour extraction des donnees des dictionnaires
$tabsql=array();
$tabsql[1] = "SELECT f.rowid as rowid, f.code, f.libelle, p.code as pays_code, p.libelle as pays, f.active FROM ".MAIN_DB_PREFIX."c_forme_juridique as f, ".MAIN_DB_PREFIX."c_pays as p WHERE f.fk_pays=p.rowid";
$tabsql[2] = "SELECT d.rowid as rowid, d.code_departement as code, d.nom as libelle, d.fk_region as region_id, r.nom as region, p.code as pays_code, p.libelle as pays, d.active FROM ".MAIN_DB_PREFIX."c_departements as d, ".MAIN_DB_PREFIX."c_regions as r, ".MAIN_DB_PREFIX."c_pays as p WHERE d.fk_region=r.code_region and r.fk_pays=p.rowid and r.active=1 and p.active=1";
$tabsql[3] = "SELECT r.rowid as rowid, code_region as code, nom as libelle, r.fk_pays as pays_id, p.code as pays_code, p.libelle as pays, r.active FROM ".MAIN_DB_PREFIX."c_regions as r, ".MAIN_DB_PREFIX."c_pays as p WHERE r.fk_pays=p.rowid and p.active=1";
@ -144,6 +147,7 @@ $tabsql[21]= "SELECT c.rowid as rowid, code, label, active FROM ".MAIN_DB_PREFIX
$tabsql[22]= "SELECT rowid as rowid, code, label, active FROM ".MAIN_DB_PREFIX."c_input_reason";
// Critere de tri du dictionnaire
$tabsqlsort=array();
$tabsqlsort[1] ="pays ASC, code ASC";
$tabsqlsort[2] ="pays ASC, code ASC";
$tabsqlsort[3] ="pays ASC, code ASC";
@ -168,6 +172,7 @@ $tabsqlsort[21]="code ASC, label ASC";
$tabsqlsort[22]="code ASC, label ASC";
// Nom des champs en resultat de select pour affichage du dictionnaire
$tabfield=array();
$tabfield[1] = "code,libelle,pays";
$tabfield[2] = "code,libelle,region_id,region,pays"; // "code,libelle,region,pays_code-pays"
$tabfield[3] = "code,libelle,pays_id,pays";
@ -192,6 +197,7 @@ $tabfield[21]= "code,label";
$tabfield[22]= "code,label";
// Nom des champs d'edition pour modification d'un enregistrement
$tabfieldvalue=array();
$tabfieldvalue[1] = "code,libelle,pays";
$tabfieldvalue[2] = "code,libelle,region"; // "code,libelle,region"
$tabfieldvalue[3] = "code,libelle,pays";
@ -216,6 +222,7 @@ $tabfieldvalue[21]= "code,label";
$tabfieldvalue[22]= "code,label";
// Nom des champs dans la table pour insertion d'un enregistrement
$tabfieldinsert=array();
$tabfieldinsert[1] = "code,libelle,fk_pays";
$tabfieldinsert[2] = "code_departement,nom,fk_region";
$tabfieldinsert[3] = "code_region,nom,fk_pays";
@ -242,6 +249,7 @@ $tabfieldinsert[22]= "code,label";
// Nom du rowid si le champ n'est pas de type autoincrement
// Example: "" if id field is "rowid" and has autoincrement on
// "nameoffield" if id field is not "rowid" or has not autoincrement on
$tabrowid=array();
$tabrowid[1] = "";
$tabrowid[2] = "";
$tabrowid[3] = "";
@ -266,6 +274,7 @@ $tabrowid[21]= "rowid";
$tabrowid[22]= "rowid";
// Condition to show dictionnary in setup page
$tabcond=array();
$tabcond[1] = true;
$tabcond[2] = true;
$tabcond[3] = true;
@ -289,8 +298,34 @@ $tabcond[20]= $conf->fournisseur->enabled;
$tabcond[21]= $conf->propal->enabled;
$tabcond[22]= $conf->commande->enabled||$conf->propal->enabled;
// List of help for fields
$tabhelp=array();
$tabhelp[1] = array();
$tabhelp[2] = array();
$tabhelp[3] = array();
$tabhelp[4] = array();
$tabhelp[5] = array();
$tabhelp[6] = array();
$tabhelp[7] = array();
$tabhelp[8] = array();
$tabhelp[9] = array();
$tabhelp[10] = array();
$tabhelp[11] = array();
$tabhelp[12] = array();
$tabhelp[13] = array();
$tabhelp[14] = array();
$tabhelp[15] = array();
$tabhelp[16] = array();
$tabhelp[17] = array();
$tabhelp[18] = array();
$tabhelp[19] = array();
$tabhelp[20] = array();
$tabhelp[21] = array();
$tabhelp[22] = array();
// Complete all arrays with entries found into modules
complete_dictionnary_with_modules($taborder,$tabname,$tablib,$tabsql,$tabsqlsort,$tabfield,$tabfieldvalue,$tabfieldinsert,$tabrowid,$tabcond,$tabhelp);
complete_dictionnary_with_modules($taborder,$tabname,$tablib,$tabsql,$tabsqlsort,$tabfield,$tabfieldvalue,$tabfieldinsert,$tabrowid,$tabcond);
// Define elementList and sourceList (used for dictionnary "type of contacts")
$elementList = array();
@ -320,9 +355,7 @@ if ($id == 11)
$msg='';
/*
* Actions ajout ou modification d'une entree dans un dictionnaire de donnee
*/
// Actions ajout ou modification d'une entree dans un dictionnaire de donnee
if ($_POST["actionadd"] || $_POST["actionmodify"])
{
$listfield=explode(',',$tabfield[$id]);
@ -503,7 +536,8 @@ if ($action == 'confirm_delete' && $confirm == 'yes') // delete
}
}
if ($action == $acts[0]) // activate
// activate
if ($action == $acts[0])
{
if ($tabrowid[$id]) { $rowidcol=$tabrowid[$id]; }
else { $rowidcol="rowid"; }
@ -522,7 +556,8 @@ if ($action == $acts[0]) // activate
}
}
if ($action == $acts[1]) // disable
// disable
if ($action == $acts[1])
{
if ($tabrowid[$id]) { $rowidcol=$tabrowid[$id]; }
else { $rowidcol="rowid"; }
@ -568,9 +603,7 @@ if (empty($id))
print "<br>\n";
/*
* Confirmation de la suppression de la ligne
*/
// Confirmation de la suppression de la ligne
if ($action == 'delete')
{
$ret=$form->form_confirm($_SERVER["PHP_SELF"].'?'.($page?'page='.$page.'&':'').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.$rowid.'&code='.$_GET["code"].'&id='.$id, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_delete','',0,1);
@ -620,7 +653,6 @@ if ($id)
$var=false;
$fieldlist=explode(',',$tabfield[$id]);
// print '<table class="noborder" width="100%">';
// Line for title
print '<tr class="liste_titre">';
@ -655,7 +687,9 @@ if ($id)
if ($valuetoshow != '')
{
print '<td>';
print $valuetoshow;
if (preg_match('/http:/i',$tabhelp[$id][$value])) print '<a href="'.$tabhelp[$id][$value].'" target="_blank">'.$valuetoshow.'</a>';
else if (! empty($tabhelp[$id][$value])) print $form->textwithpicto($valuetoshow,$tabhelp[$id][$value]);
else print $valuetoshow;
print '</td>';
}
if ($fieldlist[$field]=='libelle' || $fieldlist[$field]=='label') $alabelisused=1;
@ -678,7 +712,7 @@ if ($id)
}
}
$tmpaction = 'create';
$parameters=array('fieldlist'=>$fieldlist, 'tabname'=>$tabname[$_GET["id"]]);
$reshook=$hookmanager->executeHooks('createDictionaryFieldlist',$parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
@ -746,10 +780,10 @@ if ($id)
// Affiche nom du champ
if ($showfield)
{
print_liste_field_titre($valuetoshow,"dict.php",$fieldlist[$field],($page?'page='.$page.'&':'').'&id='.$id,"","",$sortfield,$sortorder);
print_liste_field_titre($valuetoshow,$_SERVER["PHP_SELF"],$fieldlist[$field],($page?'page='.$page.'&':'').'&id='.$id,"","",$sortfield,$sortorder);
}
}
print_liste_field_titre($langs->trans("Status"),"dict.php","active",($page?'page='.$page.'&':'').'&id='.$id,"",'align="center"',$sortfield,$sortorder);
print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"active",($page?'page='.$page.'&':'').'&id='.$id,"",'align="center"',$sortfield,$sortorder);
print '<td colspan="2" class="liste_titre">&nbsp;</td>';
print '</tr>';
@ -768,14 +802,14 @@ if ($id)
print '<input type="hidden" name="id" value="'.$id.'">';
print '<input type="hidden" name="page" value="'.$page.'">';
print '<input type="hidden" name="rowid" value="'.$rowid.'">';
$tmpaction='edit';
$parameters=array('fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]);
$reshook=$hookmanager->executeHooks('editDictionaryFieldlist',$parameters,$obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
$error=$hookmanager->error; $errors=$hookmanager->errors;
if (empty($reshook)) fieldList($fieldlist,$obj,$tabname[$id]);
print '<td colspan="3" align="right"><a name="'.($obj->rowid?$obj->rowid:$obj->code).'">&nbsp;</a><input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">';
print '&nbsp;<input type="submit" class="button" name="actioncancel" value="'.$langs->trans("Cancel").'"></td>';
}
@ -784,7 +818,7 @@ if ($id)
$tmpaction = 'view';
$parameters=array('fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]);
$reshook=$hookmanager->executeHooks('viewDictionaryFieldlist',$parameters,$obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
$error=$hookmanager->error; $errors=$hookmanager->errors;
if (empty($reshook))
@ -901,7 +935,7 @@ if ($id)
// Modify link
if ($iserasable) print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?'.($page?'page='.$page.'&':'').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.($obj->rowid?$obj->rowid:$obj->code).'&amp;code='.$obj->code.'&amp;id='.$id.'&amp;action=edit#'.($obj->rowid?$obj->rowid:$obj->code).'">'.img_edit().'</a></td>';
else print '<td>&nbsp;</td>';
// Delete link
if ($iserasable) print '<td align="center"><a href="'.$_SERVER["PHP_SELF"].'?'.($page?'page='.$page.'&':'').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.($obj->rowid?$obj->rowid:$obj->code).'&amp;code='.$obj->code.'&amp;id='.$id.'&amp;action=delete">'.img_delete().'</a></td>';
else print '<td>&nbsp;</td>';

View File

@ -34,6 +34,8 @@ if (!$user->admin)
$action = GETPOST('action','alpha');
/*
* Actions
*/
@ -41,18 +43,39 @@ $action = GETPOST('action','alpha');
if ($action == 'setvalue' && $user->admin)
{
$db->begin();
$mailfrom = GETPOST('MAILING_EMAIL_FROM','alpha');
$mailerror = GETPOST('MAILING_EMAIL_ERRORSTO','alpha');
$checkread = GETPOST('value','alpha');
$checkread_key = GETPOST('MAILING_EMAIL_UNSUBSCRIBE_KEY','alpha');
$res=dolibarr_set_const($db, "MAILING_EMAIL_FROM",$mailfrom,'chaine',0,'',$conf->entity);
if (! $res > 0) $error++;
$res=dolibarr_set_const($db, "MAILING_EMAIL_ERRORSTO",$mailerror,'chaine',0,'',$conf->entity);
if (! $res > 0) $error++;
$res=dolibarr_set_const($db, "MAILING_EMAIL_UNSUBSCRIBE",$checkread,'chaine',0,'',$conf->entity);
if (! $res > 0) $error++;
if ($checkread=='on')
{
$res=dolibarr_set_const($db, "MAILING_EMAIL_UNSUBSCRIBE",1,'chaine',0,'',$conf->entity);
if (! $res > 0) $error++;
}
else if ($checkread=='off')
{
$res=dolibarr_set_const($db, "MAILING_EMAIL_UNSUBSCRIBE",0,'chaine',0,'',$conf->entity);
if (! $res > 0) $error++;
}
//Create temporary encryption key if nedded
if (($conf->global->MAILING_EMAIL_UNSUBSCRIBE==1) && (empty($checkread_key)))
{
$chars = "abcdef(ghijklmnopqrstuvwxyz;!ABCDEFGH,IJKLMNOPQRSTUVWXYZ01_23456789";
mt_srand(10000000*(double)microtime());
for ($i = 0, $str = '', $lc = strlen($chars)-1; $i < 30; $i++) {
$checkread_key .= $chars[mt_rand(0, $lc)];
}
}
$res=dolibarr_set_const($db, "MAILING_EMAIL_UNSUBSCRIBE_KEY",$checkread_key,'chaine',0,'',$conf->entity);
if (! $res > 0) $error++;
if (! $error)
{
$db->commit();
@ -104,23 +127,31 @@ print '<input size="32" type="text" name="MAILING_EMAIL_ERRORSTO" value="'.$conf
if (!empty($conf->global->MAILING_EMAIL_ERRORSTO) && ! isValidEmail($conf->global->MAILING_EMAIL_ERRORSTO)) print ' '.img_warning($langs->trans("BadEMail"));
print '</td></tr>';
$var=!$var;
print '<tr '.$bc[$var].'><td>';
print $langs->trans("ActivateCheckRead").'</td><td>';
if ($conf->global->MAILING_EMAIL_UNSUBSCRIBE==1)
{
print '<a href="'.$_SERVER["PHP_SELF"].'?action=setvalue&value=0">';
print '<a href="'.$_SERVER["PHP_SELF"].'?action=setvalue&value=off">';
print img_picto($langs->trans("Enabled"),'switch_on');
print '</a>';
$readonly='';
}
else
{
print '<a href="'.$_SERVER["PHP_SELF"].'?action=setvalue&value=1">';
print '<a href="'.$_SERVER["PHP_SELF"].'?action=setvalue&value=on">';
print img_picto($langs->trans("Disabled"),'switch_off');
print '</a>';
$readonly='disabled="disabled"';
}
print '</td></tr>';
$var=!$var;
print '<tr '.$bc[$var].'><td>';
print $langs->trans("ActivateCheckReadKey").'</td><td>';
print '<input size="32" type="text" name="MAILING_EMAIL_UNSUBSCRIBE_KEY" '.$readonly.' value="'.$conf->global->MAILING_EMAIL_UNSUBSCRIBE_KEY.'">';
print '</td></tr>';
print '<tr><td colspan="3" align="center"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td></tr>';

View File

@ -210,7 +210,7 @@ if (($action == 'send' || $action == 'sendhtml') && ! $_POST['addfile'] && ! $_P
$body=make_substitutions($body,$substitutionarrayfortest);
require_once(DOL_DOCUMENT_ROOT."/core/class/CMailFile.class.php");
$mailfile = new CMailFile(
$mailfile = new CMailFile(
$subject,
$sendto,
$email_from,

View File

@ -41,19 +41,31 @@ $upload_dir=$conf->admin->dir_temp;
if (GETPOST("action") == 'set_proxy')
{
$result=0;
$result+=dolibarr_set_const($db, 'MAIN_USE_CONNECT_TIMEOUT', $_POST["MAIN_USE_CONNECT_TIMEOUT"], 'chaine',0,'',$conf->entity);
$result+=dolibarr_set_const($db, 'MAIN_USE_RESPONSE_TIMEOUT', $_POST["MAIN_USE_RESPONSE_TIMEOUT"], 'chaine',0,'',$conf->entity);
$result+=dolibarr_set_const($db, 'MAIN_PROXY_USE', $_POST["MAIN_PROXY_USE"], 'chaine',0,'',$conf->entity);
$result+=dolibarr_set_const($db, 'MAIN_PROXY_HOST',$_POST["MAIN_PROXY_HOST"],'chaine',0,'',$conf->entity);
$result+=dolibarr_set_const($db, 'MAIN_PROXY_PORT',$_POST["MAIN_PROXY_PORT"],'chaine',0,'',$conf->entity);
$result+=dolibarr_set_const($db, 'MAIN_PROXY_USER',$_POST["MAIN_PROXY_USER"],'chaine',0,'',$conf->entity);
$result+=dolibarr_set_const($db, 'MAIN_PROXY_PASS',$_POST["MAIN_PROXY_PASS"],'chaine',0,'',$conf->entity);
if ($result < 5)
if (GETPOST("MAIN_USE_CONNECT_TIMEOUT") && ! is_numeric(GETPOST("MAIN_USE_CONNECT_TIMEOUT")))
{
dol_print_error($db);
$mesg='<div class="error">'.$langs->trans("ErrorValueMustBeInteger").'</div>';
$error++;
}
else
if (GETPOST("MAIN_USE_RESPONSE_TIMEOUT") && ! is_numeric(GETPOST("MAIN_USE_RESPONSE_TIMEOUT")))
{
$mesg='<div class="error">'.$langs->trans("ErrorValueMustBeInteger").'</div>';
$error++;
}
if (! $error)
{
$result=0;
$result+=dolibarr_set_const($db, 'MAIN_USE_CONNECT_TIMEOUT', GETPOST("MAIN_USE_CONNECT_TIMEOUT"), 'chaine',0,'',$conf->entity);
$result+=dolibarr_set_const($db, 'MAIN_USE_RESPONSE_TIMEOUT', GETPOST("MAIN_USE_RESPONSE_TIMEOUT"), 'chaine',0,'',$conf->entity);
$result+=dolibarr_set_const($db, 'MAIN_PROXY_USE', GETPOST("MAIN_PROXY_USE"), 'chaine',0,'',$conf->entity);
$result+=dolibarr_set_const($db, 'MAIN_PROXY_HOST',GETPOST("MAIN_PROXY_HOST"),'chaine',0,'',$conf->entity);
$result+=dolibarr_set_const($db, 'MAIN_PROXY_PORT',GETPOST("MAIN_PROXY_PORT"),'chaine',0,'',$conf->entity);
$result+=dolibarr_set_const($db, 'MAIN_PROXY_USER',GETPOST("MAIN_PROXY_USER"),'chaine',0,'',$conf->entity);
$result+=dolibarr_set_const($db, 'MAIN_PROXY_PASS',GETPOST("MAIN_PROXY_PASS"),'chaine',0,'',$conf->entity);
if ($result < 5) dol_print_error($db);
}
if (! $error)
{
$mesg='<div class="ok">'.$langs->trans("RecordModifiedSuccessfully").'</div>';
}
@ -122,7 +134,7 @@ print '<td>'.$langs->trans("ConnectionTimeout").'</td><td align="right">';
//print $form->textwithpicto('',$langs->trans("SessionExplanation",ini_get("session.gc_probability"),ini_get("session.gc_divisor")));
print '</td>';
print '<td nowrap="nowrap">';
print '<input class="flat" name="MAIN_USE_CONNECT_TIMEOUT" type="text" size="4" value="'.$conf->global->MAIN_USE_CONNECT_TIMEOUT.'">';
print '<input class="flat" name="MAIN_USE_CONNECT_TIMEOUT" type="text" size="4" value="'.(isset($_POST["MAIN_USE_CONNECT_TIMEOUT"])?GETPOST("MAIN_USE_CONNECT_TIMEOUT"):$conf->global->MAIN_USE_CONNECT_TIMEOUT).'">';
print ' '.$langs->trans("seconds");
print '</td>';
print '</tr>';

View File

@ -47,29 +47,30 @@ $modules = array();
$modules_names = array();
$modules_files = array();
// Search modules dirs
$modulesdir = array();
foreach ($conf->file->dol_document_root as $type => $dirroot)
{
$modulesdir[] = $dirroot . "/core/modules/";
if ($type == 'alt')
{
$handle=@opendir($dirroot);
if (is_resource($handle))
{
while (($file = readdir($handle))!==false)
{
if (is_dir($dirroot.'/'.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && $file != 'includes')
{
if (is_dir($dirroot . '/' . $file . '/core/modules/'))
{
$modulesdir[] = $dirroot . '/' . $file . '/core/modules/';
}
}
}
closedir($handle);
}
}
$modulesdir[$dirroot . '/core/modules/'] = $dirroot . '/core/modules/';
$handle=@opendir($dirroot);
if (is_resource($handle))
{
while (($file = readdir($handle))!==false)
{
if (is_dir($dirroot.'/'.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && $file != 'includes')
{
if (is_dir($dirroot . '/' . $file . '/core/modules/'))
{
$modulesdir[$dirroot . '/' . $file . '/core/modules/'] = $dirroot . '/' . $file . '/core/modules/';
}
}
}
closedir($handle);
}
}
//var_dump($modulesdir);
// Load list of modules
foreach($modulesdir as $dir)

View File

@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2007-2012 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2009 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2009-2012 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2012 Juanjo Menent <jmenent@2byte.es>
*
* This program is free software; you can redistribute it and/or modify
@ -34,9 +34,7 @@ if (GETPOST('msg','alpha')) $message='<div class="error">'.GETPOST('msg','alpha'
$urldolibarr='http://www.dolibarr.org/downloads/';
//$urldolibarrmodules='http://www.dolibarr.org/downloads/cat_view/65-modulesaddon';
$urldolibarrmodules='http://www.dolistore.com/';
//$urldolibarrthemes='http://www.dolibarr.org/';
$urldolibarrthemes='http://www.dolistore.com/';
$dolibarrroot=preg_replace('/([\\/]+)$/i','',DOL_DOCUMENT_ROOT);
$dolibarrroot=preg_replace('/([^\\/]+)$/i','',$dolibarrroot);
@ -55,14 +53,16 @@ if (GETPOST('action','alpha')=='install')
if (! $original_file)
{
$mesg=$langs->trans("ErrorFieldRequired",$langs->transnoentities("File"));
$langs->load("Error");
$mesg = '<div class="warning">'.$langs->trans("ErrorFileRequired").'</div>';
$error++;
}
else
{
if (! preg_match('/\.tgz/i',$original_file) && ! preg_match('/\.zip/i',$original_file))
if (! preg_match('/\.zip/i',$original_file))
{
$mesg=$langs->trans("ErrorFileMustBeADolibarrPackage");
$langs->load("errors");
$mesg = '<div class="error">'.$langs->trans("ErrorFileMustBeADolibarrPackage",$original_file).'</div>';
$error++;
}
}
@ -76,33 +76,16 @@ if (GETPOST('action','alpha')=='install')
if ($result > 0)
{
$documentrootalt=DOL_DOCUMENT_ROOT_ALT;
$result=dol_uncompress($newfile,$_FILES['fileinstall']['type'],$documentrootalt);
$result=dol_uncompress($newfile,$documentrootalt);
if (! empty($result['error']))
{
if ($result['error'] == -1)
{
$langs->load("errors");
$mesg = '<div class="error">'.$langs->trans("ErrorBadFileFormat").'</div>';
}
elseif ($result['error'] == -2)
{
$langs->load("errors");
$mesg = '<div class="error">'.$langs->trans("ErrorOSSystem").'</div>';
}
elseif ($result['error'] == -3)
{
$langs->load("errors");
$mesg = '<div class="warning">'.$langs->trans("ErrorUncompFile",$_FILES['fileinstall']['name']).'</div>';
}
elseif ($result['error'] == -4)
{
$langs->load("errors");
$mesg = '<div class="error">'.$langs->trans("ErrorUncompFile",$_FILES['fileinstall']['name']).'</div>';
}
$langs->load("errors");
$mesg = '<div class="error">'.$langs->trans($result['error'],$original_file).'</div>';
}
else
{
$mesg = "<font class=\"ok\">".$langs->trans("SetupIsReadyForUse")."</font>";
$mesg = '<div class="ok">'.$langs->trans("SetupIsReadyForUse").'</div>';
}
}
}
@ -113,10 +96,9 @@ if (GETPOST('action','alpha')=='install')
*/
$dirins=DOL_DOCUMENT_ROOT_ALT;
$vale=(is_dir($dirins));
$system=PHP_OS;
$dirins_ok=(is_dir($dirins));
$wikihelp='EN:Installation_-_Upgrade|FR:Installation_-_Mise_à_jour|ES:Instalaci&omodulon_-_Actualizaci&omodulon';
$wikihelp='EN:Installation_-_Upgrade|FR:Installation_-_Mise_à_jour|ES:Instalación_-_Actualización';
llxHeader('',$langs->trans("Upgrade"),$wikihelp);
print_fiche_titre($langs->trans("Upgrade"),'','setup');
@ -159,27 +141,21 @@ print '<b>'.$langs->trans("StepNb",3).'</b>: ';
print $langs->trans("UnpackPackageInDolibarrRoot",$dolibarrroot).'<br>';
if (! empty($conf->global->MAIN_ONLINE_INSTALL_MODULE))
{
if ($vale == 1 && $dirins != 'DOL_DOCUMENT_ROOT_ALT' && ($system=="Linux" || $system=="Darwin"))
if ($dirins_ok && $dirins != 'DOL_DOCUMENT_ROOT_ALT')
{
print '<form enctype="multipart/form-data" method="POST" class="noborder" action="'.$_SERVER["PHP_SELF"].'" name="forminstall">';
print '<input type="hidden" name="action" value="install">';
print $langs->trans("YouCanSubmitFile").' <input type="file" name="fileinstall"> ';
print '<input type="submit" name="'.dol_escape_htmltag($langs->trans("Send")).'" class="button">';
print '</form>';
}
elseif ($system!='Linux')
{
$langs->load('errors');
$message=info_admin($langs->transnoentities("ErrorOSSystem"));
print $message;
}
else
else
{
$message=info_admin($langs->trans("NotExistsDirect").$langs->trans("InfDirAlt").$langs->trans("InfDirExample"));
print $message;
}
}
}
else
else
{
print '<b>'.$langs->trans("StepNb",4).'</b>: ';
print $langs->trans("SetupIsReadyForUse").'<br>';
@ -189,7 +165,7 @@ print '</form>';
if (! empty($result['return']))
{
print '<br>';
foreach($result['return'] as $value)
{
echo $value.'<br>';

View File

@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2005-2009 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2012 Laurent Destailleur <eldy@users.sourceforge.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -28,12 +28,12 @@ require_once(DOL_DOCUMENT_ROOT."/bookmarks/class/bookmark.class.php");
$langs->load("other");
$action=isset($_GET["action"])?$_GET["action"]:$_POST["action"];
$title=isset($_GET["title"])?$_GET["title"]:$_POST["title"];
$url=isset($_GET["url"])?$_GET["url"]:$_POST["url"];
$target=isset($_GET["target"])?$_GET["target"]:$_POST["target"];
$userid=isset($_GET["userid"])?$_GET["userid"]:$_POST["userid"];
$position=isset($_GET["position"])?$_GET["position"]:$_POST["position"];
$action=GETPOST("action");
$title=GETPOST("title");
$url=GETPOST("url");
$target=GETPOST("target");
$userid=GETPOST("userid");
$position=GETPOST("position");
/*
@ -139,7 +139,9 @@ if ($action == 'create')
print_fiche_titre($langs->trans("NewBookmark"));
if ($mesg) print "$mesg<br>";
dol_fiche_head($head, $hselected, $langs->trans("Bookmark"),0,'bookmark');
dol_htmloutput_mesg($mesg);
print '<table class="border" width="100%">';
@ -159,16 +161,18 @@ if ($action == 'create')
// Position
print '<tr><td>'.$langs->trans("Position").'</td><td>';
print '<input class="flat" name="position" size="5" value="'.(isset($_POST["position"])?$_POST["position"]:$bookmark->position).'">';
print '</td></tr>';
print '</td><td>&nbsp;</td></tr>';
print '<tr><td colspan="3" align="center">';
print '</table><br>';
print '<div align="center">';
print '<input type="submit" class="button" value="'.$langs->trans("CreateBookmark").'" name="create"> &nbsp; ';
print '<input type="submit" class="button" value="'.$langs->trans("Cancel").'" name="cancel">';
print '</td></tr>';
print '</table>';
print '</div>';
print '</form>';
dol_fiche_end();
}
@ -248,17 +252,13 @@ if ($_GET["id"] > 0 && ! preg_match('/^add/i',$_GET["action"]))
// Date creation
print '<tr><td>'.$langs->trans("DateCreation").'</td><td>'.dol_print_date($bookmark->datec,'dayhour').'</td></tr>';
if ($_GET["action"] == 'edit') print '<tr><td colspan="2" align="center"><input class="button" type="submit" name="save" value="'.$langs->trans("Save").'"> &nbsp; &nbsp; <input class="button" type="submit" name="cancel" value="'.$langs->trans("Cancel").'"></td></tr>';
print '</table>';
if ($_GET["action"] == 'edit') print '<br><div align="center"><input class="button" type="submit" name="save" value="'.$langs->trans("Save").'"> &nbsp; &nbsp; <input class="button" type="submit" name="cancel" value="'.$langs->trans("Cancel").'"></div>';
if ($_GET["action"] == 'edit') print '</form>';
print "</div>\n";
dol_fiche_end();
print "<div class=\"tabsAction\">\n";

View File

@ -49,10 +49,12 @@ print '<table class="noborder" cellspacing="0" cellpadding="3" width="100%">';
print '<tr class="liste_titre"><td>'.$langs->trans("Description").'</td>';
print '<td align="right">'.$langs->trans("Total").'</td></tr>';
$now=dol_now();
$sql = "SELECT sum(t.value) as value, MONTH(o.date_purchased) as mois";
$sql .= " FROM ".$conf->global->OSC_DB_NAME.".".$conf->global->OSC_DB_TABLE_PREFIX."orders_total as t";
$sql .= " JOIN ".$conf->global->OSC_DB_NAME.".".$conf->global->OSC_DB_TABLE_PREFIX."orders as o ON o.orders_id = t.orders_id";
$sql .= " WHERE t.class = 'ot_subtotal' AND YEAR(o.date_purchased) = YEAR(".$dbosc->idate(mktime()).")";
$sql .= " WHERE t.class = 'ot_subtotal' AND YEAR(o.date_purchased) = YEAR(".$dbosc->idate($now).")";
$sql .= " GROUP BY mois ORDER BY mois";
$result=$dbosc->query($sql);

View File

@ -73,11 +73,13 @@ class Promotion
$newprice = $percent * $this->price_init;
$date_exp = "2003-05-01";
$date_exp = "2003-05-01"; // TODO ????
$now=dol_now();
$sql = "INSERT INTO ".$conf->global->OSC_DB_NAME.".".$conf->global->OSC_DB_TABLE_PREFIX."specials ";
$sql .= " (products_id, specials_new_products_price, specials_date_added, specials_last_modified, expires_date, date_status_change, status) ";
$sql .= " VALUES ($pid, $newprice, '".$this->db->idate(mktime())."', NULL, '".$this->db->idate(mktime()+3600*24*365)."', NULL, 1)";
$sql .= " VALUES ($pid, $newprice, '".$this->db->idate($now)."', NULL, '".$this->db->idate($now+3600*24*365)."', NULL, 1)";
if ($this->db->query($sql) )
{

View File

@ -46,6 +46,7 @@ if ($user->societe_id > 0)
}
$max=5;
$now=dol_now();
/*
* Actions
@ -58,7 +59,7 @@ if (isset($_GET["action"]) && $_GET["action"] == 'add_bookmark')
{
dol_print_error($db);
}
$sql = "INSERT INTO ".MAIN_DB_PREFIX."bookmark (fk_soc, dateb, fk_user) VALUES (".$_GET["socid"].", ".$db->idate(mktime()).",".$user->id.");";
$sql = "INSERT INTO ".MAIN_DB_PREFIX."bookmark (fk_soc, dateb, fk_user) VALUES (".$_GET["socid"].", ".$db->idate($now).",".$user->id.");";
if (! $db->query($sql) )
{
dol_print_error($db);

View File

@ -95,10 +95,12 @@ class Mailing extends CommonObject
$this->error = $langs->trans("ErrorMailFromRequired");
return -1;
}
$now=dol_now();
$sql = "INSERT INTO ".MAIN_DB_PREFIX."mailing";
$sql .= " (date_creat, fk_user_creat, entity)";
$sql .= " VALUES (".$this->db->idate(mktime()).", ".$user->id.", ".$conf->entity.")";
$sql .= " VALUES (".$this->db->idate($now).", ".$user->id.", ".$conf->entity.")";
if (! $this->titre)
{

View File

@ -64,7 +64,7 @@ if ($conf->global->MAILING_EMAIL_UNSUBSCRIBE)
$substitutionarray,
array(
'__CHECK_READ__' => 'CheckMail',
'__UNSUSCRIBE__' => 'Unsuscribe'
'__UNSUSCRIBE__' => 'Unsubscribe'
)
);
}
@ -89,7 +89,7 @@ if ($conf->global->MAILING_EMAIL_UNSUBSCRIBE)
$substitutionarrayfortest,
array(
'__CHECK_READ__' => 'TESTCheckMail',
'__UNSUSCRIBE__' => 'TESTCheckMail'
'__UNSUSCRIBE__' => 'TESTUnsubscribe'
)
);
}

View File

@ -1468,11 +1468,12 @@ class Propal extends CommonObject
$this->statut = $statut;
$error=0;
$now=dol_now();
$this->db->begin();
$sql = "UPDATE ".MAIN_DB_PREFIX."propal";
$sql.= " SET fk_statut = ".$statut.", note = '".$this->db->escape($note)."', date_cloture=".$this->db->idate(mktime()).", fk_user_cloture=".$user->id;
$sql.= " SET fk_statut = ".$statut.", note = '".$this->db->escape($note)."', date_cloture=".$this->db->idate($now).", fk_user_cloture=".$user->id;
$sql.= " WHERE rowid = ".$this->id;
$resql=$this->db->query($sql);
@ -1497,11 +1498,12 @@ class Propal extends CommonObject
$this->statut = $statut;
$error=0;
$now=dol_now();
$this->db->begin();
$sql = "UPDATE ".MAIN_DB_PREFIX."propal";
$sql.= " SET fk_statut = ".$statut.", note = '".$this->db->escape($note)."', date_cloture=".$this->db->idate(mktime()).", fk_user_cloture=".$user->id;
$sql.= " SET fk_statut = ".$statut.", note = '".$this->db->escape($note)."', date_cloture=".$this->db->idate($now).", fk_user_cloture=".$user->id;
$sql.= " WHERE rowid = ".$this->id;
$resql=$this->db->query($sql);

View File

@ -2,6 +2,7 @@
/* Copyright (C) 2005 Patrick Rouillon <patrick@rouillon.net>
* Copyright (C) 2005-2009 Destailleur Laurent <eldy@users.sourceforge.net>
* Copyright (C) 2005-2012 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2011-2012 Philippe Grand <philippe.grand@atoo-net.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -57,7 +58,7 @@ if ($action == 'addcontact' && $user->rights->propale->creer)
if ($result > 0 && $id > 0)
{
$contactid = (GETPOST('userid') ? GETPOST('userid') : GETPOST('contactid'));
$contactid = (GETPOST('userid','int') ? GETPOST('userid','int') : GETPOST('contactid','int'));
$result = $object->add_contact($contactid, $_POST["type"], $_POST["source"]);
}
@ -110,11 +111,11 @@ else if ($action == 'deletecontact' && $user->rights->propale->creer)
}
}
else if ($action == 'setaddress' && $user->rights->propale->creer)
{
$object->fetch($id);
$result=$object->setDeliveryAddress($_POST['fk_address']);
if ($result < 0) dol_print_error($db,$object->error);
else if ($action == 'setaddress' && $user->rights->propale->creer)
{
$object->fetch($id);
$result=$object->setDeliveryAddress($_POST['fk_address']);
if ($result < 0) dol_print_error($db,$object->error);
}
@ -173,39 +174,44 @@ if ($id > 0 || ! empty($ref))
if (is_null($object->client)) $object->fetch_thirdparty();
print "<tr><td>".$langs->trans("Company")."</td>";
print '<td colspan="3">'.$object->client->getNomUrl(1).'</td></tr>';
// Delivery address
if ($conf->global->SOCIETE_ADDRESSES_MANAGEMENT)
{
print '<tr><td>';
print '<table class="nobordernopadding" width="100%"><tr><td>';
print $langs->trans('DeliveryAddress');
print '</td>';
if ($action != 'editdelivery_address' && $object->brouillon) print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editdelivery_address&amp;socid='.$object->socid.'&amp;id='.$object->id.'">'.img_edit($langs->transnoentitiesnoconv('SetDeliveryAddress'),1).'</a></td>';
print '</tr></table>';
print '</td><td colspan="3">';
if ($action == 'editdelivery_address')
{
$formother->form_address($_SERVER['PHP_SELF'].'?id='.$object->id,$object->fk_delivery_address,$object->socid,'fk_address','propal',$object->id);
}
else
{
$formother->form_address($_SERVER['PHP_SELF'].'?id='.$object->id,$object->fk_delivery_address,$object->socid,'none','propal',$object->id);
}
print '</td></tr>';
// Delivery address
if ($conf->global->SOCIETE_ADDRESSES_MANAGEMENT)
{
print '<tr><td>';
print '<table class="nobordernopadding" width="100%"><tr><td>';
print $langs->trans('DeliveryAddress');
print '</td>';
if ($action != 'editdelivery_address' && $object->brouillon) print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editdelivery_address&amp;socid='.$object->socid.'&amp;id='.$object->id.'">'.img_edit($langs->transnoentitiesnoconv('SetDeliveryAddress'),1).'</a></td>';
print '</tr></table>';
print '</td><td colspan="3">';
if ($action == 'editdelivery_address')
{
$formother->form_address($_SERVER['PHP_SELF'].'?id='.$object->id,$object->fk_delivery_address,$object->socid,'fk_address','propal',$object->id);
}
else
{
$formother->form_address($_SERVER['PHP_SELF'].'?id='.$object->id,$object->fk_delivery_address,$object->socid,'none','propal',$object->id);
}
print '</td></tr>';
}
print "</table>";
print '</div>';
print '<br>';
// Contacts lines
include(DOL_DOCUMENT_ROOT.'/core/tpl/contacts.tpl.php');
// Contacts lines (modules that overwrite templates must declare this into descriptor)
$dirtpls=array_merge($conf->modules_parts['tpl'],array('/core/tpl'));
foreach($dirtpls as $reldir)
{
$res=@include(dol_buildpath($reldir.'/contacts.tpl.php'));
if ($res) break;
}
}
else
{
@ -213,6 +219,7 @@ if ($id > 0 || ! empty($ref))
}
}
$db->close();
llxFooter();
$db->close();
?>

View File

@ -618,7 +618,7 @@ class Commande extends CommonObject
// $date_commande is deprecated
$date = ($this->date_commande ? $this->date_commande : $this->date);
$now=dol_now();
$this->db->begin();
@ -2442,7 +2442,7 @@ class Commande extends CommonObject
if ($statut==-1) return img_picto($langs->trans('StatusOrderCanceled'),'statut5').' '.$langs->trans('StatusOrderCanceledShort');
if ($statut==0) return img_picto($langs->trans('StatusOrderDraft'),'statut0').' '.$langs->trans('StatusOrderDraftShort');
if ($statut==1) return img_picto($langs->trans('StatusOrderValidated'),'statut1').' '.$langs->trans('StatusOrderValidatedShort');
if ($statut==2) return img_picto($langs->trans('StatusOrderOnProcess'),'statut3').' '.$langs->trans('StatusOrderSentShort');
if ($statut==2) return img_picto($langs->trans('StatusOrderSent'),'statut3').' '.$langs->trans('StatusOrderSentShort');
if ($statut==3 && ! $facturee) return img_picto($langs->trans('StatusOrderToBill'),'statut7').' '.$langs->trans('StatusOrderToBillShort');
if ($statut==3 && $facturee) return img_picto($langs->trans('StatusOrderProcessed'),'statut6').' '.$langs->trans('StatusOrderProcessedShort');
}
@ -2460,7 +2460,7 @@ class Commande extends CommonObject
if ($statut==-1) return img_picto($langs->trans('StatusOrderCanceled'),'statut5').' '.$langs->trans('StatusOrderCanceled');
if ($statut==0) return img_picto($langs->trans('StatusOrderDraft'),'statut0').' '.$langs->trans('StatusOrderDraft');
if ($statut==1) return img_picto($langs->trans('StatusOrderValidated'),'statut1').' '.$langs->trans('StatusOrderValidated');
if ($statut==2) return img_picto($langs->trans('StatusOrderSentShort'),'statut3').' '.$langs->trans('StatusOrderOnProcess');
if ($statut==2) return img_picto($langs->trans('StatusOrderSentShort'),'statut3').' '.$langs->trans('StatusOrderSent');
if ($statut==3 && ! $facturee) return img_picto($langs->trans('StatusOrderToBill'),'statut7').' '.$langs->trans('StatusOrderToBill');
if ($statut==3 && $facturee) return img_picto($langs->trans('StatusOrderProcessed'),'statut6').' '.$langs->trans('StatusOrderProcessed');
}
@ -2469,7 +2469,7 @@ class Commande extends CommonObject
if ($statut==-1) return $langs->trans('StatusOrderCanceledShort').' '.img_picto($langs->trans('StatusOrderCanceled'),'statut5');
if ($statut==0) return $langs->trans('StatusOrderDraftShort').' '.img_picto($langs->trans('StatusOrderDraft'),'statut0');
if ($statut==1) return $langs->trans('StatusOrderValidatedShort').' '.img_picto($langs->trans('StatusOrderValidated'),'statut1');
if ($statut==2) return $langs->trans('StatusOrderSentShort').' '.img_picto($langs->trans('StatusOrderOnProcess'),'statut3');
if ($statut==2) return $langs->trans('StatusOrderSentShort').' '.img_picto($langs->trans('StatusOrderSent'),'statut3');
if ($statut==3 && ! $facturee) return $langs->trans('StatusOrderToBillShort').' '.img_picto($langs->trans('StatusOrderToBill'),'statut7');
if ($statut==3 && $facturee) return $langs->trans('StatusOrderProcessedShort').' '.img_picto($langs->trans('StatusOrderProcessed'),'statut6');
}

View File

@ -55,8 +55,8 @@ if ($action == 'addcontact' && $user->rights->commande->creer)
if ($result > 0 && $id > 0)
{
$contactid = (GETPOST('userid') ? GETPOST('userid') : GETPOST('contactid'));
$result = $result = $object->add_contact($contactid, $_POST["type"], $_POST["source"]);
$contactid = (GETPOST('userid','int') ? GETPOST('userid','int') : GETPOST('contactid','int'));
$result = $object->add_contact($contactid, $_POST["type"], $_POST["source"]);
}
if ($result >= 0)
@ -110,7 +110,8 @@ else if ($action == 'deletecontact' && $user->rights->commande->creer)
else if ($action == 'setaddress' && $user->rights->commande->creer)
{
$object->fetch($id);
$object->setDeliveryAddress($_POST['fk_address']);
$result=$object->setDeliveryAddress($_POST['fk_address']);
if ($result < 0) dol_print_error($db,$object->error);
}
/*
@ -136,7 +137,7 @@ dol_htmloutput_mesg($mesg);
if ($id > 0 || ! empty($ref))
{
$langs->trans("OrderCard");
if ($object->fetch($id, $ref) > 0)
{
$soc = new Societe($db);
@ -173,7 +174,7 @@ if ($id > 0 || ! empty($ref))
print "<tr><td>".$langs->trans("Company")."</td>";
print '<td colspan="3">'.$object->client->getNomUrl(1).'</td></tr>';
// Delivery address
if ($conf->global->SOCIETE_ADDRESSES_MANAGEMENT)
{
@ -181,11 +182,11 @@ if ($id > 0 || ! empty($ref))
print '<table class="nobordernopadding" width="100%"><tr><td>';
print $langs->trans('DeliveryAddress');
print '</td>';
if ($action != 'editdelivery_address' && $object->brouillon) print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editdelivery_address&amp;socid='.$object->socid.'&amp;id='.$object->id.'">'.img_edit($langs->transnoentitiesnoconv('SetDeliveryAddress'),1).'</a></td>';
print '</tr></table>';
print '</td><td colspan="3">';
if ($action == 'editdelivery_address')
{
$formother->form_address($_SERVER['PHP_SELF'].'?id='.$object->id,$object->fk_delivery_address,GETPOST('socid','int'),'fk_address','commande',$object->id);
@ -196,23 +197,20 @@ if ($id > 0 || ! empty($ref))
}
print '</td></tr>';
}
print "</table>";
print '</div>';
print '<br>';
// Select template for Contacts lines
if (file_exists(DOL_DOCUMENT_ROOT."/theme/".$conf->theme."/tpl/contacts.tpl.php"))
{
include(DOL_DOCUMENT_ROOT."/theme/".$conf->theme."/tpl/contacts.tpl.php");
}
else
{
include(DOL_DOCUMENT_ROOT.'/core/tpl/contacts.tpl.php');
}
// Contacts lines (modules that overwrite templates must declare this into descriptor)
$dirtpls=array_merge($conf->modules_parts['tpl'],array('/core/tpl'));
foreach($dirtpls as $reldir)
{
$res=@include(dol_buildpath($reldir.'/contacts.tpl.php'));
if ($res) break;
}
}
else
{

View File

@ -380,8 +380,9 @@ if ($resql)
print '<a href="'.DOL_URL_ROOT.'/compta/bank/ligne.php?rowid='.$objp->rowid.'&amp;account='.$acct->id.'&amp;orig_account='.$acct->id.'">';
print img_edit();
print '</a>&nbsp; ';
if ($db->jdate($objp->do) <= mktime()) {
$now=dol_now();
if ($db->jdate($objp->do) <= $now) {
print '<a href="'.DOL_URL_ROOT.'/compta/bank/rappro.php?action=del&amp;rowid='.$objp->rowid.'&amp;account='.$acct->id.'">';
print img_delete();
print '</a>';

View File

@ -88,6 +88,7 @@ class FactureRec extends Facture
global $conf, $langs;
$error=0;
$now=dol_now();
// Clean parameters
$this->titre=trim($this->titre);
@ -125,7 +126,7 @@ class FactureRec extends Facture
$sql.= "'".$this->titre."'";
$sql.= ", '".$facsrc->socid."'";
$sql.= ", ".$conf->entity;
$sql.= ", ".$this->db->idate(mktime());
$sql.= ", ".$this->db->idate($now);
$sql.= ", '".$facsrc->amount."'";
$sql.= ", '".$facsrc->remise."'";
$sql.= ", '".$this->db->escape($this->note)."'";

View File

@ -2897,11 +2897,13 @@ class Facture extends CommonObject
$row = $this->db->fetch_row($resql);
if ($row[0] == 0)
{
$now=dol_now();
$sql = 'INSERT INTO '.MAIN_DB_PREFIX.'prelevement_facture_demande';
$sql .= ' (fk_facture, amount, date_demande, fk_user_demande, code_banque, code_guichet, number, cle_rib)';
$sql .= ' VALUES ('.$this->id;
$sql .= ",'".price2num($this->total_ttc)."'";
$sql .= ",".$this->db->idate(mktime()).",".$user->id;
$sql .= ",".$this->db->idate($now).",".$user->id;
$sql .= ",'".$soc->bank_account->code_banque."'";
$sql .= ",'".$soc->bank_account->code_guichet."'";
$sql .= ",'".$soc->bank_account->number."'";

View File

@ -2,6 +2,7 @@
/* Copyright (C) 2005 Patrick Rouillon <patrick@rouillon.net>
* Copyright (C) 2005-2009 Destailleur Laurent <eldy@users.sourceforge.net>
* Copyright (C) 2005-2012 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2011-2012 Philippe Grand <philippe.grand@atoo-net.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -33,10 +34,11 @@ require_once(DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php');
$langs->load("bills");
$langs->load("companies");
$id=(GETPOST('id','int')?GETPOST('id','int'):GETPOST('facid','int')); // For backward compatibility
$ref = GETPOST('ref');
$socid=GETPOST('socid','int');
$action=GETPOST('action','alpha');
$id = (GETPOST('id')?GETPOST('id','int'):GETPOST('facid','int')); // For backward compatibility
$ref = GETPOST('ref','alpha');
$lineid = GETPOST('lineid','int');
$socid = GETPOST('socid','int');
$action = GETPOST('action','alpha');
// Security check
if ($user->societe_id) $socid=$user->societe_id;
@ -55,8 +57,8 @@ if ($action == 'addcontact' && $user->rights->facture->creer)
if ($result > 0 && $id > 0)
{
$contactid = (GETPOST('userid') ? GETPOST('userid') : GETPOST('contactid'));
$result = $result = $object->add_contact($contactid, $_POST["type"], $_POST["source"]);
$contactid = (GETPOST('userid') ? GETPOST('userid','int') : GETPOST('contactid','int'));
$result = $object->add_contact($contactid, $_POST["type"], $_POST["source"]);
}
if ($result >= 0)
@ -95,7 +97,7 @@ else if ($action == 'swapstatut' && $user->rights->facture->creer)
else if ($action == 'deletecontact' && $user->rights->facture->creer)
{
$object->fetch($id);
$result = $object->delete_contact($_GET["lineid"]);
$result = $object->delete_contact($lineid);
if ($result >= 0)
{
@ -166,10 +168,16 @@ if ($id > 0 || ! empty($ref))
print '</div>';
print '<br>';
// Contacts lines
include(DOL_DOCUMENT_ROOT.'/core/tpl/contacts.tpl.php');
print '<br>';
// Contacts lines (modules that overwrite templates must declare this into descriptor)
$dirtpls=array_merge($conf->modules_parts['tpl'],array('/core/tpl'));
foreach($dirtpls as $reldir)
{
$res=@include(dol_buildpath($reldir.'/contacts.tpl.php'));
if ($res) break;
}
}
else
{

View File

@ -112,7 +112,8 @@ if ($action == "builddoc" && $user->rights->facture->lire)
if ($option=='late') $filename.='_'.strtolower(dol_sanitizeFileName($langs->transnoentities("Late")));
if ($pagecount)
{
$file=$diroutputpdf.'/'.$filename.'_'.dol_print_date(mktime(),'dayhourlog').'.pdf';
$now=dol_now();
$file=$diroutputpdf.'/'.$filename.'_'.dol_print_date($now,'dayhourlog').'.pdf';
$pdf->Output($file,'F');
if (! empty($conf->global->MAIN_UMASK))
@chmod($file, octdec($conf->global->MAIN_UMASK));

View File

@ -57,12 +57,14 @@ if ($user->societe_id > 0)
if (isset($_GET["action"]) && $_GET["action"] == 'add_bookmark')
{
$now=dol_now();
$sql = "DELETE FROM ".MAIN_DB_PREFIX."bookmark WHERE fk_soc = ".$socid." AND fk_user=".$user->id;
if (! $db->query($sql) )
{
dol_print_error($db);
}
$sql = "INSERT INTO ".MAIN_DB_PREFIX."bookmark (fk_soc, dateb, fk_user) VALUES (".$socid.", ".$db->idate(mktime()).",".$user->id.");";
$sql = "INSERT INTO ".MAIN_DB_PREFIX."bookmark (fk_soc, dateb, fk_user) VALUES (".$socid.", ".$db->idate($now).",".$user->id.");";
if (! $db->query($sql) )
{
dol_print_error($db);

View File

@ -864,6 +864,8 @@ class BonPrelevement extends CommonObject
* We create withdraw receipt and build withdraw into disk
*/
$this->db->begin();
$now=dol_now();
/*
* Traitements
@ -900,7 +902,7 @@ class BonPrelevement extends CommonObject
$sql.= ") VALUES (";
$sql.= "'".$ref."'";
$sql.= ", ".$conf->entity;
$sql.= ", '".$this->db->idate(mktime())."'";
$sql.= ", '".$this->db->idate($now)."'";
$sql.= ")";
dol_syslog("Bon-Prelevement::Create sql=".$sql, LOG_DEBUG);
@ -960,7 +962,7 @@ class BonPrelevement extends CommonObject
*/
$sql = "UPDATE ".MAIN_DB_PREFIX."prelevement_facture_demande";
$sql.= " SET traite = 1";
$sql.= ", date_traite = ".$this->db->idate(mktime());
$sql.= ", date_traite = ".$this->db->idate($now);
$sql.= ", fk_prelevement_bons = ".$prev_id;
$sql.= " WHERE rowid = ".$fac[1];
@ -1137,8 +1139,10 @@ class BonPrelevement extends CommonObject
if ($this->DeleteNotification($user, $action) == 0)
{
$now=dol_now();
$sql = "INSERT INTO ".MAIN_DB_PREFIX."notify_def (datec,fk_user, fk_soc, fk_contact, fk_action)";
$sql .= " VALUES (".$db->idate(mktime()).",".$user.", 'NULL', 'NULL', '".$action."')";
$sql .= " VALUES (".$db->idate($now).",".$user.", 'NULL', 'NULL', '".$action."')";
dol_syslog("adnotiff: ".$sql);
if ($this->db->query($sql))

View File

@ -84,6 +84,7 @@ class RejetPrelevement
$error = 0;
$this->id = $id;
$this->bon_id = $bonid;
$now=dol_now();
dol_syslog("RejetPrelevement::Create id $id");
$bankaccount = $conf->global->PRELEVEMENT_ID_BANKACCOUNT;
@ -104,7 +105,7 @@ class RejetPrelevement
$sql.= ", '".$this->db->idate($date_rejet)."'";
$sql.= ", ".$motif;
$sql.= ", ".$user->id;
$sql.= ", ".$this->db->idate(mktime());
$sql.= ", ".$this->db->idate($now);
$sql.= ", ".$facturation;
$sql.= ")";

View File

@ -216,9 +216,10 @@ for ($mois = 1+$nb_mois_decalage ; $mois <= 12+$nb_mois_decalage ; $mois++)
print "<td>".dol_print_date(dol_mktime(12,0,0,$mois_modulo,1,2000),"%B")."</td>";
for ($annee = $year_start ; $annee <= $year_end ; $annee++)
{
$now=dol_now();
$annee_decalage=$annee;
if($mois>12) {$annee_decalage=$annee+1;}
$casenow = dol_print_date(mktime(),"%Y-%m");
if ($mois>12) {$annee_decalage=$annee+1;}
$casenow = dol_print_date($now,"%Y-%m");
$case = dol_print_date(dol_mktime(1,1,1,$mois_modulo,1,$annee_decalage),"%Y-%m");
$caseprev = dol_print_date(dol_mktime(1,1,1,$mois_modulo,1,$annee_decalage-1),"%Y-%m");

View File

@ -244,7 +244,7 @@ class Contrat extends CommonObject
// Close line not already closed
if ($contratline->statut != 5)
{
$contratline->date_cloture=mktime();
$contratline->date_cloture=dol_now();
$contratline->fk_user_cloture=$user->id;
$contratline->statut='5';
$result=$contratline->update($user);
@ -618,12 +618,14 @@ class Contrat extends CommonObject
if (! $paramsok) return -1;
$this->db->begin();
$now=dol_now();
// Insert contract
$sql = "INSERT INTO ".MAIN_DB_PREFIX."contrat (datec, fk_soc, fk_user_author, date_contrat,";
$sql.= " fk_commercial_signature, fk_commercial_suivi, fk_projet,";
$sql.= " ref)";
$sql.= " VALUES (".$this->db->idate(mktime()).",".$this->socid.",".$user->id;
$sql.= " VALUES (".$this->db->idate($now).",".$this->socid.",".$user->id;
$sql.= ",".$this->db->idate($this->date_contrat);
$sql.= ",".($this->commercial_signature_id>0?$this->commercial_signature_id:"NULL");
$sql.= ",".($this->commercial_suivi_id>0?$this->commercial_suivi_id:"NULL");

View File

@ -1195,7 +1195,7 @@ else
$dateactend = dol_time_plus_duree(time(), $product->duration_value, $product->duration_unit);
}
}
$now=mktime();
$now=dol_now();
if ($dateactend > $now) $dateactend=$now;
print '<tr '.$bc[$var].'><td colspan="2">';

View File

@ -2,7 +2,8 @@
/* Copyright (C) 2006-2012 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2012 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2012 Christophe Battarel <christophe.battarel@altairis.fr>
* Copyright (C) 2012 Christophe Battarel <christophe.battarel@altairis.fr>
* Copyright (C) 2011-2012 Philippe Grand <philippe.grand@atoo-net.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -865,93 +866,93 @@ abstract class CommonObject
}
}
/**
* Change the payments methods
*
* @param int $id Id of new payment method
* @return int >0 if OK, <0 if KO
*/
function setPaymentMethods($id)
{
dol_syslog(get_class($this).'::setPaymentMethods('.$id.')');
if ($this->statut >= 0 || $this->element == 'societe')
{
// TODO uniformize field name
$fieldname = 'fk_mode_reglement';
if ($this->element == 'societe') $fieldname = 'mode_reglement';
$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element;
$sql .= ' SET '.$fieldname.' = '.$id;
$sql .= ' WHERE rowid='.$this->id;
if ($this->db->query($sql))
{
/**
* Change the payments methods
*
* @param int $id Id of new payment method
* @return int >0 if OK, <0 if KO
*/
function setPaymentMethods($id)
{
dol_syslog(get_class($this).'::setPaymentMethods('.$id.')');
if ($this->statut >= 0 || $this->element == 'societe')
{
// TODO uniformize field name
$fieldname = 'fk_mode_reglement';
if ($this->element == 'societe') $fieldname = 'mode_reglement';
$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element;
$sql .= ' SET '.$fieldname.' = '.$id;
$sql .= ' WHERE rowid='.$this->id;
if ($this->db->query($sql))
{
$this->mode_reglement_id = $id;
$this->mode_reglement = $id; // for compatibility
return 1;
}
else
{
dol_syslog(get_class($this).'::setPaymentMethods Erreur '.$sql.' - '.$this->db->error());
$this->error=$this->db->error();
return -1;
}
}
else
{
dol_syslog(get_class($this).'::setPaymentMethods, status of the object is incompatible');
$this->error='Status of the object is incompatible '.$this->statut;
return -2;
}
$this->mode_reglement = $id; // for compatibility
return 1;
}
else
{
dol_syslog(get_class($this).'::setPaymentMethods Erreur '.$sql.' - '.$this->db->error());
$this->error=$this->db->error();
return -1;
}
}
else
{
dol_syslog(get_class($this).'::setPaymentMethods, status of the object is incompatible');
$this->error='Status of the object is incompatible '.$this->statut;
return -2;
}
}
/**
* Change the payments terms
*
* @param int $id Id of new payment terms
* @return int >0 if OK, <0 if KO
*/
function setPaymentTerms($id)
{
dol_syslog(get_class($this).'::setPaymentTerms('.$id.')');
if ($this->statut >= 0 || $this->element == 'societe')
/**
* Change the payments terms
*
* @param int $id Id of new payment terms
* @return int >0 if OK, <0 if KO
*/
function setPaymentTerms($id)
{
dol_syslog(get_class($this).'::setPaymentTerms('.$id.')');
if ($this->statut >= 0 || $this->element == 'societe')
{
// TODO uniformize field name
$fieldname = 'fk_cond_reglement';
if ($this->element == 'societe') $fieldname = 'cond_reglement';
$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element;
$sql .= ' SET '.$fieldname.' = '.$id;
$sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element;
$sql .= ' SET '.$fieldname.' = '.$id;
$sql .= ' WHERE rowid='.$this->id;
if ($this->db->query($sql))
{
if ($this->db->query($sql))
{
$this->cond_reglement_id = $id;
$this->cond_reglement = $id; // for compatibility
return 1;
}
else
{
dol_syslog(get_class($this).'::setPaymentTerms Erreur '.$sql.' - '.$this->db->error());
$this->error=$this->db->error();
return -1;
}
}
else
{
dol_syslog(get_class($this).'::setPaymentTerms, status of the object is incompatible');
$this->error='Status of the object is incompatible '.$this->statut;
return -2;
}
$this->cond_reglement = $id; // for compatibility
return 1;
}
else
{
dol_syslog(get_class($this).'::setPaymentTerms Erreur '.$sql.' - '.$this->db->error());
$this->error=$this->db->error();
return -1;
}
}
else
{
dol_syslog(get_class($this).'::setPaymentTerms, status of the object is incompatible');
$this->error='Status of the object is incompatible '.$this->statut;
return -2;
}
}
/**
* Define delivery address
*
* @param int $id Address id
* @return int <0 si ko, >0 si ok
*/
function setDeliveryAddress($id)
/**
* Define delivery address
*
* @param int $id Address id
* @return int <0 si ko, >0 si ok
*/
function setDeliveryAddress($id)
{
$fieldname = 'fk_adresse_livraison';
if ($this->element == 'delivery' || $this->element == 'shipping') $fieldname = 'fk_address';
@ -962,14 +963,14 @@ abstract class CommonObject
if ($this->db->query($sql))
{
$this->fk_delivery_address = $id;
return 1;
return 1;
}
else
{
$this->error=$this->db->error();
dol_syslog(get_class($this).'::setDeliveryAddress Erreur '.$sql.' - '.$this->error);
return -1;
}
}
}
/**
@ -1851,18 +1852,18 @@ abstract class CommonObject
$sql.= " WHERE rowid=".$elementId;
dol_syslog(get_class($this)."::setStatut sql=".$sql, LOG_DEBUG);
if ($this->db->query($sql))
{
if ($this->db->query($sql))
{
$this->db->commit();
$this->statut = $status;
return 1;
}
else
{
$this->statut = $status;
return 1;
}
else
{
$this->error=$this->db->lasterror();
dol_syslog(get_class($this)."::setStatut ".$this->error, LOG_ERR);
$this->db->rollback();
return -1;
dol_syslog(get_class($this)."::setStatut ".$this->error, LOG_ERR);
$this->db->rollback();
return -1;
}
}
@ -2145,35 +2146,35 @@ abstract class CommonObject
return $nb;
}
/**
/**
* Set extra parameters
*
* @return void
*/
function setExtraParameters()
* @return void
*/
function setExtraParameters()
{
$this->db->begin();
$extraparams = (! empty($this->extraparams) ? json_encode($this->extraparams) : null);
$sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element;
$sql.= " SET extraparams = ".(! empty($extraparams) ? "'".$this->db->escape($extraparams)."'" : "null");
$sql.= " WHERE rowid = ".$this->id;
dol_syslog(get_class($this)."::setExtraParameters sql=".$sql, LOG_DEBUG);
$resql = $this->db->query($sql);
if (! $resql)
{
$this->error=$this->db->lasterror();
dol_syslog(get_class($this)."::setExtraParameters ".$this->error, LOG_ERR);
$this->db->rollback();
return -1;
}
else
{
$this->db->commit();
return 1;
}
dol_syslog(get_class($this)."::setExtraParameters sql=".$sql, LOG_DEBUG);
$resql = $this->db->query($sql);
if (! $resql)
{
$this->error=$this->db->lasterror();
dol_syslog(get_class($this)."::setExtraParameters ".$this->error, LOG_ERR);
$this->db->rollback();
return -1;
}
else
{
$this->db->commit();
return 1;
}
}
@ -2311,7 +2312,7 @@ abstract class CommonObject
*/
function showLinkedObjectBlock()
{
global $langs,$bc;
global $conf,$langs,$bc;
$this->fetchObjectLinked();
@ -2351,7 +2352,13 @@ abstract class CommonObject
global $linkedObjectBlock;
$linkedObjectBlock = $objects;
dol_include_once('/'.$tplpath.'/tpl/linkedobjectblock.tpl.php');
// Output template part (modules that overwrite templates must declare this into descriptor)
$dirtpls=array_merge($conf->modules_parts['tpl'],array('/'.$tplpath.'/tpl'));
foreach($dirtpls as $reldir)
{
$res=@include(dol_buildpath($reldir.'/linkedobjectblock.tpl.php'));
if ($res) break;
}
}
return $num;
@ -2377,8 +2384,14 @@ abstract class CommonObject
global $conf,$langs,$object;
global $form,$bcnd,$var;
// Output template part (modules that overwrite templates must declare this into descriptor)
// Use global variables + $dateSelector + $seller and $buyer
include(DOL_DOCUMENT_ROOT.'/core/tpl/predefinedproductline_create.tpl.php');
$dirtpls=array_merge($conf->modules_parts['tpl'],array('/core/tpl'));
foreach($dirtpls as $reldir)
{
$res=@include(dol_buildpath($reldir.'/predefinedproductline_create.tpl.php'));
if ($res) break;
}
}
/**
@ -2397,8 +2410,14 @@ abstract class CommonObject
global $conf,$langs,$object;
global $form,$bcnd,$var;
// Output template part (modules that overwrite templates must declare this into descriptor)
// Use global variables + $dateSelector + $seller and $buyer
include(DOL_DOCUMENT_ROOT.'/core/tpl/freeproductline_create.tpl.php');
$dirtpls=array_merge($conf->modules_parts['tpl'],array('/core/tpl'));
foreach($dirtpls as $reldir)
{
$res=@include(dol_buildpath($reldir.'/freeproductline_create.tpl.php'));
if ($res) break;
}
}
@ -2536,13 +2555,25 @@ abstract class CommonObject
$text.= ' - '.$label;
$description=($conf->global->PRODUIT_DESC_IN_FORM?'':dol_htmlentitiesbr($line->description));
// Use global variables + $seller and $buyer
include(DOL_DOCUMENT_ROOT.'/core/tpl/predefinedproductline_view.tpl.php');
// Output template part (modules that overwrite templates must declare this into descriptor)
// Use global variables + $dateSelector + $seller and $buyer
$dirtpls=array_merge($conf->modules_parts['tpl'],array('/core/tpl'));
foreach($dirtpls as $reldir)
{
$res=@include(dol_buildpath($reldir.'/predefinedproductline_view.tpl.php'));
if ($res) break;
}
}
else
{
// Use global variables + $dateSelector + $seller and $buyer
include(DOL_DOCUMENT_ROOT.'/core/tpl/freeproductline_view.tpl.php');
// Output template part (modules that overwrite templates must declare this into descriptor)
// Use global variables + $dateSelector + $seller and $buyer
$dirtpls=array_merge($conf->modules_parts['tpl'],array('/core/tpl'));
foreach($dirtpls as $reldir)
{
$res=@include(dol_buildpath($reldir.'/freeproductline_view.tpl.php'));
if ($res) break;
}
}
}
@ -2551,13 +2582,25 @@ abstract class CommonObject
{
if ($line->fk_product > 0)
{
// Use global variables + $dateSelector + $seller and $buyer
include(DOL_DOCUMENT_ROOT.'/core/tpl/predefinedproductline_edit.tpl.php');
// Output template part (modules that overwrite templates must declare this into descriptor)
// Use global variables + $dateSelector + $seller and $buyer
$dirtpls=array_merge($conf->modules_parts['tpl'],array('/core/tpl'));
foreach($dirtpls as $reldir)
{
$res=@include(dol_buildpath($reldir.'/predefinedproductline_edit.tpl.php'));
if ($res) break;
}
}
else
{
// Use global variables + $dateSelector + $seller and $buyer
include(DOL_DOCUMENT_ROOT.'/core/tpl/freeproductline_edit.tpl.php');
// Output template part (modules that overwrite templates must declare this into descriptor)
// Use global variables + $dateSelector + $seller and $buyer
$dirtpls=array_merge($conf->modules_parts['tpl'],array('/core/tpl'));
foreach($dirtpls as $reldir)
{
$res=@include(dol_buildpath($reldir.'/freeproductline_edit.tpl.php'));
if ($res) break;
}
}
}
}
@ -2625,7 +2668,7 @@ abstract class CommonObject
*/
function printOriginLine($line,$var)
{
global $langs,$bc;
global $conf,$langs,$bc;
//var_dump($line);
@ -2697,7 +2740,14 @@ abstract class CommonObject
$this->tpl['qty'] = (($line->info_bits & 2) != 2) ? $line->qty : '&nbsp;';
$this->tpl['remise_percent'] = (($line->info_bits & 2) != 2) ? vatrate($line->remise_percent, true) : '&nbsp;';
include(DOL_DOCUMENT_ROOT.'/core/tpl/originproductline.tpl.php');
// Output template part (modules that overwrite templates must declare this into descriptor)
// Use global variables + $dateSelector + $seller and $buyer
$dirtpls=array_merge($conf->modules_parts['tpl'],array('/core/tpl'));
foreach($dirtpls as $reldir)
{
$res=@include(dol_buildpath($reldir.'/originproductline.tpl.php'));
if ($res) break;
}
}
}

View File

@ -52,18 +52,18 @@ class Conf
public $smart_menu;
public $modules = array(); // List of activated modules
public $modules_parts = array(); // List of modules parts
public $modules_parts = array('triggers'=>array(),'login'=>array(),'substitutions'=>array(),'menus'=>array(),'theme'=>array(),'tpl'=>array(),'barcode'=>array(),'models'=>array()); // List of modules parts
// TODO Remove all thoose tabs with one generic
public $triggers_modules = array();
public $login_modules = array();
public $substitutions_modules = array();
public $menus_modules = array();
public $barcode_modules = array();
public $sms_engine_modules = array();
public $css_modules = array();
public $tabs_modules = array();
public $triggers_modules = array();
public $menus_modules = array();
public $hooks_modules = array();
public $login_modules = array();
public $barcode_modules = array();
public $substitutions_modules = array();
public $societe_modules = array();
var $logbuffer = array();
@ -188,7 +188,7 @@ class Conf
if (! isset($this->modules_parts[$partname]) || ! is_array($this->modules_parts[$partname])) { $this->modules_parts[$partname] = array(); }
$arrValue = json_decode($value,true);
if (is_array($arrValue) && ! empty($arrValue)) $value = $arrValue;
else if (in_array($partname,array('login','menus','substitutions','triggers'))) $value = '/'.$modulename.'/core/'.$partname.'/';
else if (in_array($partname,array('login','menus','substitutions','triggers','tpl','theme'))) $value = '/'.$modulename.'/core/'.$partname.'/';
else if (in_array($partname,array('models'))) $value = '/'.$modulename.'/';
else if ($value == 1) $value = '/'.$modulename.'/core/modules/'.$partname.'/';
$this->$varname = array_merge($this->$varname, array($modulename => $value)); // TODO deprecated

View File

@ -74,7 +74,7 @@ class Interfaces
$orders = array();
$i=0;
$dirtriggers=array_merge(array('/core/triggers'),$conf->triggers_modules);
$dirtriggers=array_merge(array('/core/triggers'),$conf->modules_parts['triggers']);
foreach($dirtriggers as $reldir)
{
$dir=dol_buildpath($reldir,0);
@ -203,7 +203,7 @@ class Interfaces
$orders = array();
$i = 0;
$dirtriggers=array_merge(array('/core/triggers/'),$conf->triggers_modules);
$dirtriggers=array_merge(array('/core/triggers/'),$conf->modules_parts['triggers']);
foreach($dirtriggers as $reldir)
{
$dir=dol_buildpath($reldir,0);

View File

@ -217,10 +217,11 @@ class Notify
if ($mailfile->sendfile())
{
$now=dol_now();
$sendto = htmlentities($sendto);
$sql = "INSERT INTO ".MAIN_DB_PREFIX."notify (daten, fk_action, fk_contact, objet_type, objet_id, email)";
$sql.= " VALUES (".$this->db->idate(mktime()).", ".$actiondefid.", ".$obj->cid.", '".$objet_type."', ".$objet_id.", '".$this->db->escape($obj->email)."')";
$sql.= " VALUES (".$this->db->idate($now).", ".$actiondefid.", ".$obj->cid.", '".$objet_type."', ".$objet_id.", '".$this->db->escape($obj->email)."')";
dol_syslog("Notify::send sql=".$sql);
if (! $this->db->query($sql) )
{

View File

@ -591,7 +591,7 @@ class Translate
$newnumber=$number;
$dirsubstitutions=array_merge(array(),$conf->substitutions_modules);
$dirsubstitutions=array_merge(array(),$conf->modules_parts['substitutions']);
foreach($dirsubstitutions as $reldir)
{
$dir=dol_buildpath($reldir,0);

View File

@ -145,7 +145,7 @@ function displayBox($selectedDate,$month,$year)
//print "$selectedDate,$month,$year";
$thedate=dol_mktime(12,0,0,$month,1,$year);
//print "thedate=$thedate";
$today=mktime();
$today=dol_now();
$todayArray=dol_getdate($today);
if($selectedDate != "00000000")
{

View File

@ -38,9 +38,9 @@ class DoliDBMssql
//! Database label
static $label='MSSQL';
//! Charset used to force charset when creating database
static $forcecharset='latin1';
var $forcecharset='latin1'; // Can't be static as it may be forced with a dynamic value
//! Collate used to force collate when creating database
static $forcecollate='latin1_swedish_ci';
var $forcecollate='latin1_swedish_ci'; // Can't be static as it may be forced with a dynamic value
//! Version min database
static $versionmin=array(2000);
//! Resultset of last request
@ -796,9 +796,12 @@ class DoliDBMssql
*/
function DDLCreateDb($database,$charset='',$collation='',$owner='')
{
// ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
if (empty($charset)) $charset=$this->forcecharset;
if (empty($collation)) $collation=$this->forcecollate;
// ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
$sql = 'CREATE DATABASE '.$database;
$sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate;
$sql.= ' DEFAULT CHARACTER SET '.$charset.' DEFAULT COLLATE '.$collation;
$ret=$this->query($sql);
if (! $ret)
{

View File

@ -38,9 +38,9 @@ class DoliDBMysql
//! Database label
static $label='MySQL';
//! Charset used to force charset when creating database
static $forcecharset='utf8'; // latin1, utf8
var $forcecharset='utf8'; // latin1, utf8. Can't be static as it may be forced with a dynamic value
//! Collate used to force collate when creating database
static $forcecollate='utf8_general_ci'; // latin1_swedish_ci, utf8_general_ci
var $forcecollate='utf8_general_ci'; // latin1_swedish_ci, utf8_general_ci. Can't be static as it may be forced with a dynamic value
//! Version min database
static $versionmin=array(4,1,0);
//! Resultset of last request
@ -797,7 +797,7 @@ class DoliDBMysql
function DDLCreateDb($database,$charset='',$collation='',$owner='')
{
if (empty($charset)) $charset=$this->forcecharset;
if (empty($collation)) $collation=$this->collation;
if (empty($collation)) $collation=$this->forcecollate;
// ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
$sql = 'CREATE DATABASE '.$database;

View File

@ -38,9 +38,9 @@ class DoliDBMysqli
//! Database label
static $label='MySQL';
//! Charset used to force charset when creating database
static $forcecharset='utf8'; // latin1, utf8
var $forcecharset='utf8'; // latin1, utf8. Can't be static as it may be forced with a dynamic value
//! Collate used to force collate when creating database
static $forcecollate='utf8_general_ci'; // latin1_swedish_ci, utf8_general_ci
var $forcecollate='utf8_general_ci'; // latin1_swedish_ci, utf8_general_ci. Can't be static as it may be forced with a dynamic value
//! Version min database
static $versionmin=array(4,1,0);
//! Resultset of last request
@ -83,7 +83,7 @@ class DoliDBMysqli
function DoliDBMysqli($type, $host, $user, $pass, $name='', $port=0)
{
global $conf,$langs;
// TODO error in strict mode (static property for "$forcecharset" and "$forcecollate")
//if (! empty($conf->db->character_set)) $this->forcecharset=$conf->db->character_set;
//if (! empty($conf->db->dolibarr_main_db_collation)) $this->forcecollate=$conf->db->dolibarr_main_db_collation;
@ -791,7 +791,7 @@ class DoliDBMysqli
function DDLCreateDb($database,$charset='',$collation='',$owner='')
{
if (empty($charset)) $charset=$this->forcecharset;
if (empty($collation)) $collation=$this->collation;
if (empty($collation)) $collation=$this->forcecollate;
// ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
$sql = 'CREATE DATABASE '.$database;

View File

@ -40,7 +40,7 @@ class DoliDBPgsql
//! Database label
static $label='PostgreSQL'; // Label of manager
//! Charset
static $forcecharset='latin1';
var $forcecharset='latin1'; // Can't be static as it may be forced with a dynamic value
//! Version min database
static $versionmin=array(8,4,0); // Version min database
@ -81,8 +81,9 @@ class DoliDBPgsql
{
global $conf,$langs;
$this->forcecharset=$conf->file->character_set_client;
$this->forcecollate=$conf->db->dolibarr_main_db_collation;
if (! empty($conf->db->character_set)) $this->forcecharset=$conf->db->character_set;
if (! empty($conf->db->dolibarr_main_db_collation)) $this->forcecollate=$conf->db->dolibarr_main_db_collation;
$this->database_user=$user;
$this->transaction_opened=0;
@ -376,7 +377,7 @@ class DoliDBPgsql
//if (! $name) $name="postgres";
// try first Unix domain socket (local)
if (! $host || $host == "" || $host == "localhost" || $host == "127.0.0.1")
if ((! $host || $host == "" || $host == "localhost" || $host == "127.0.0.1") && ! defined('NOLOCALSOCKETPGCONNECT'))
{
$con_string = "dbname='".$name."' user='".$login."' password='".$passwd."'";
$this->db = pg_connect($con_string);
@ -978,7 +979,7 @@ class DoliDBPgsql
function DDLCreateDb($database,$charset='',$collation='',$owner='')
{
if (empty($charset)) $charset=$this->forcecharset;
if (empty($collation)) $collation=$this->collation;
if (empty($collation)) $collation=$this->forcecollate;
$ret=$this->query('CREATE DATABASE '.$database.' OWNER '.$owner.' ENCODING \''.$charset.'\'');
return $ret;

View File

@ -38,9 +38,9 @@ class DoliDBSqlite
//! Database label
static $label='PDO Sqlite';
//! Charset used to force charset when creating database
static $forcecharset='utf8'; // latin1, utf8
var $forcecharset='utf8'; // latin1, utf8. Can't be static as it may be forced with a dynamic value
//! Collate used to force collate when creating database
static $forcecollate='utf8_general_ci'; // latin1_swedish_ci, utf8_general_ci
var $forcecollate='utf8_general_ci'; // latin1_swedish_ci, utf8_general_ci. Can't be static as it may be forced with a dynamic value
//! Version min database
static $versionmin=array(3,0,0);
//! Resultset of last request
@ -939,7 +939,7 @@ class DoliDBSqlite
function DDLCreateDb($database,$charset='',$collation='',$owner='')
{
if (empty($charset)) $charset=$this->forcecharset;
if (empty($collation)) $collation=$this->collation;
if (empty($collation)) $collation=$this->forcecollate;
// ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
$sql = 'CREATE DATABASE '.$database;

View File

@ -846,9 +846,10 @@ function unActivateModule($value, $requiredby=1)
* @param array &$tabfieldinsert Tabfieldinsert
* @param array &$tabrowid Tabrowid
* @param array &$tabcond Tabcond
* @param array &$tabhelp Tabhelp
* @return int 1
*/
function complete_dictionnary_with_modules(&$taborder,&$tabname,&$tablib,&$tabsql,&$tabsqlsort,&$tabfield,&$tabfieldvalue,&$tabfieldinsert,&$tabrowid,&$tabcond)
function complete_dictionnary_with_modules(&$taborder,&$tabname,&$tablib,&$tabsql,&$tabsqlsort,&$tabfield,&$tabfieldvalue,&$tabfieldinsert,&$tabrowid,&$tabcond,&$tabhelp)
{
global $db, $modules, $conf, $langs;
@ -959,7 +960,8 @@ function complete_dictionnary_with_modules(&$taborder,&$tabname,&$tablib,&$tabsq
foreach($objMod->dictionnaries['tabfieldinsert'] as $val) $tabfieldinsert[] = $val;
foreach($objMod->dictionnaries['tabrowid'] as $val) $tabrowid[] = $val;
foreach($objMod->dictionnaries['tabcond'] as $val) $tabcond[] = $val;
// foreach($objMod->dictionnaries['tabsqlsort'] as $val) $tablib[] = $val;
if (! empty($objMod->dictionnaries['tabhelp'])) foreach($objMod->dictionnaries['tabhelp'] as $val) $tabhelp[] = $val;
//foreach($objMod->dictionnaries['tabsqlsort'] as $val) $tablib[] = $val;
//$tabname = array_merge ($tabname, $objMod->dictionnaries['tabname']);
//var_dump($tabcond);
//exit;
@ -1079,9 +1081,9 @@ function form_constantes($tableau)
{
print '<td>';
//print 'aa'.$const;
if (in_array($const,array('ADHERENT_CARD_TEXT','ADHERENT_CARD_TEXT_RIGHT')))
if (in_array($const,array('ADHERENT_CARD_TEXT','ADHERENT_CARD_TEXT_RIGHT','ADHERENT_ETIQUETTE_TEXT')))
{
print '<textarea class="flat" name="constvalue" cols="35" rows="5" wrap="soft">'."\n";
print '<textarea class="flat" name="constvalue" cols="50" rows="5" wrap="soft">'."\n";
print $obj->value;
print "</textarea>\n";
print '</td><td>';
@ -1133,15 +1135,15 @@ function form_constantes($tableau)
function addDocumentModel($name, $type, $label='', $description='')
{
global $db, $conf;
$db->begin();
$sql = "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity, libelle, description)";
$sql.= " VALUES ('".$db->escape($name)."','".$type."',".$conf->entity.", ";
$sql.= ($label?"'".$db->escape($label)."'":'null').", ";
$sql.= (! empty($description)?"'".$db->escape($description)."'":"null");
$sql.= ")";
dol_syslog("admin.lib::addDocumentModel sql=".$sql);
$resql=$db->query($sql);
if ($resql)
@ -1167,9 +1169,9 @@ function addDocumentModel($name, $type, $label='', $description='')
function delDocumentModel($name, $type)
{
global $db, $conf;
$db->begin();
$sql = "DELETE FROM ".MAIN_DB_PREFIX."document_model";
$sql.= " WHERE nom = '".$db->escape($name)."'";
$sql.= " AND type = '".$type."'";
@ -1190,4 +1192,4 @@ function delDocumentModel($name, $type)
}
}
?>
?>

View File

@ -1,5 +1,6 @@
<?php
/* Copyright (C) 2008-2011 Laurent Destailleur <eldy@users.sourceforge.net>
/* Copyright (C) 2008-2012 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2012 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2012 Juanjo Menent <jmenent@2byte.es>
*
* This program is free software; you can redistribute it and/or modify
@ -618,65 +619,6 @@ function dol_move_uploaded_file($src_file, $dest_file, $allowoverwrite, $disable
}
}
/**
* Uncompress a file
*
* @param string $newfile file to uncompress
* @param stirng $typefile type of file
* @param string $dstdir destination dir
* @return int 0 if ok, >0 if ko
*/
function dol_uncompress($newfile,$typefile,$dstdir)
{
global $conf;
$error=0;
$output=array();
$system=PHP_OS;
//TODO: See best method for this
if ($system=="Linux" || $system=="Darwin")
{
if ($typefile == 'application/x-gzip' || $typefile == 'application/x-gtar')
{
$prog= "tar -xzvf ";
}
elseif ($typefile == 'application/zip')
{
$prog= "unzip ";
}
else
{
$output['error'] = -1;
$error++;
}
}
else
{
$output['error'] = -2;
$error++;
}
if (! $error)
{
$original_file=basename($_FILES["fileinstall"]["name"]);
$dir=$conf->admin->dir_temp.'/'.$original_file;
$file=$dir.'/'.$original_file;
$command= $prog.$file.' 2>&1';
chdir($dstdir);
exec($command, $out, $return_var);
if ($return_var == 1) $output['error'] = -3; // OK with Warning
elseif ($return_var == 127) $output['error'] = -4; // KO
$output['return'] = $out;
}
return $output;
}
/**
* Remove a file or several files with a mask
*
@ -802,7 +744,7 @@ function dol_delete_preview($object)
{
global $langs,$conf;
require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
$element = $object->element;
$dir = $conf->$element->dir_output;
@ -1081,20 +1023,44 @@ function dol_convert_file($file,$ext='png')
*
* @param string $inputfile Source file name
* @param string $outputfile Target file name
* @param string $mode 'gz' or 'bz'
* @param string $mode 'gz' or 'bz' or 'zip'
* @return int <0 if KO, >0 if OK
*/
function dol_compress_file($inputfile, $outputfile, $mode="gz")
{
$foundhandler=0;
try
{
$data = implode("", file($inputfile));
if ($mode == 'gz') $compressdata = gzencode($data, 9);
elseif ($mode == 'bz') $compressdata = bzcompress($data, 9);
$data = implode("", file(dol_osencode($inputfile)));
if ($mode == 'gz') { $foundhandler=1; $compressdata = gzencode($data, 9); }
elseif ($mode == 'bz') { $foundhandler=1; $compressdata = bzcompress($data, 9); }
elseif ($mode == 'zip')
{
if (defined('ODTPHP_PATHTOPCLZIP'))
{
$foundhandler=1;
$fp = fopen($outputfile, "w");
fwrite($fp, $compressdata);
fclose($fp);
include_once(ODTPHP_PATHTOPCLZIP.'/pclzip.lib.php');
$archive = new PclZip($outputfile);
$archive->add($inputfile, PCLZIP_OPT_REMOVE_PATH, dirname($inputfile));
//$archive->add($inputfile);
return 1;
}
}
if ($foundhandler)
{
$fp = fopen($outputfile, "w");
fwrite($fp, $compressdata);
fclose($fp);
return 1;
}
else
{
dol_syslog("Try to zip with format ".$mode." with no handler for this format",LOG_ERR);
return -2;
}
}
catch (Exception $e)
{
@ -1106,6 +1072,44 @@ function dol_compress_file($inputfile, $outputfile, $mode="gz")
}
}
/**
* Uncompress a file
*
* @param string $inputfile File to uncompress
* @param string $outputdir Target dir name
* @return array array('error'=>'Error code') or array() if no error
*/
function dol_uncompress($inputfile,$outputdir)
{
global $conf;
if (defined('ODTPHP_PATHTOPCLZIP'))
{
include_once(ODTPHP_PATHTOPCLZIP.'/pclzip.lib.php');
$archive = new PclZip($inputfile);
if ($archive->extract(PCLZIP_OPT_PATH, $outputdir) == 0) return array('error'=>$archive->errorInfo(true));
else return array();
}
if (class_exists('ZipArchive'))
{
$zip = new ZipArchive;
$res = $zip->open($inputfile);
if ($res === TRUE)
{
$zip->extractTo($outputdir.'/');
$zip->close();
return array();
}
else
{
return array('error'=>'ErrUnzipFails');
}
}
return array('error'=>'ErrNoZipEngine');
}
/**
* Return most recent file

View File

@ -1,5 +1,5 @@
<?php
/* Copyright (C) 2006-2008 Laurent Destailleur <eldy@users.sourceforge.net>
/* Copyright (C) 2006-2012 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com>
*
@ -25,12 +25,11 @@
*/
global $_Avery_Labels;
$_Avery_Labels = array (
'5160'=>array('name'=>'5160',
'5160'=>array('name'=>'5160 (Letter)',
'paper-size'=>'letter',
'metric'=>'mm',
'marginLeft'=>1.762,
@ -42,7 +41,7 @@ $_Avery_Labels = array (
'width'=>66.675,
'height'=>25.4,
'font-size'=>8),
'5161'=>array('name'=>'5161',
'5161'=>array('name'=>'5161 (Letter)',
'paper-size'=>'letter',
'metric'=>'mm',
'marginLeft'=>0.967,
@ -54,7 +53,7 @@ $_Avery_Labels = array (
'width'=>101.6,
'height'=>25.4,
'font-size'=>8),
'5162'=>array('name'=>'5162',
'5162'=>array('name'=>'5162 (Letter)',
'paper-size'=>'letter',
'metric'=>'mm',
'marginLeft'=>0.97,
@ -66,7 +65,7 @@ $_Avery_Labels = array (
'width'=>100.807,
'height'=>35.72,
'font-size'=>8),
'5163'=>array('name'=>'5163',
'5163'=>array('name'=>'5163 (Letter)',
'paper-size'=>'letter',
'metric'=>'mm',
'marginLeft'=>1.762,
@ -78,7 +77,7 @@ $_Avery_Labels = array (
'width'=>101.6,
'height'=>50.8,
'font-size'=>8),
'5164'=>array('name'=>'5164',
'5164'=>array('name'=>'5164 (Letter)',
'paper-size'=>'letter',
'metric'=>'in',
'marginLeft'=>0.148,
@ -90,7 +89,7 @@ $_Avery_Labels = array (
'width'=>4.0,
'height'=>3.33,
'font-size'=>12),
'8600'=>array('name'=>'8600',
'8600'=>array('name'=>'8600 (Letter)',
'paper-size'=>'letter',
'metric'=>'mm',
'marginLeft'=>7.1,
@ -102,7 +101,7 @@ $_Avery_Labels = array (
'width'=>66.6,
'height'=>25.4,
'font-size'=>8),
'L7163'=>array('name'=>'L7163',
'L7163'=>array('name'=>'L7163 (A4)',
'paper-size'=>'A4',
'metric'=>'mm',
'marginLeft'=>5,
@ -114,7 +113,7 @@ $_Avery_Labels = array (
'width'=>99.1,
'height'=>38.1,
'font-size'=>10),
'AVERYC32010'=>array('name'=>'AVERY-C32010',
'AVERYC32010'=>array('name'=>'AVERY-C32010 (A4)',
'paper-size'=>'A4',
'metric'=>'mm',
'marginLeft'=>15,
@ -126,7 +125,7 @@ $_Avery_Labels = array (
'width'=>85,
'height'=>54,
'font-size'=>10),
'CARD'=>array('name'=>'Dolibarr cards',
'CARD'=>array('name'=>'Dolibarr Business cards (A4)',
'paper-size'=>'A4',
'metric'=>'mm',
'marginLeft'=>15,

View File

@ -2190,7 +2190,8 @@ function dol_print_error_email()
global $langs,$conf;
$langs->load("errors");
print '<br><div class="error">'.$langs->trans("ErrorContactEMail",$conf->global->MAIN_INFO_SOCIETE_MAIL,'ERRORNEWPAYMENT'.dol_print_date(mktime(),'%Y%m%d')).'</div>';
$now=dol_now();
print '<br><div class="error">'.$langs->trans("ErrorContactEMail",$conf->global->MAIN_INFO_SOCIETE_MAIL,'ERRORNEWPAYMENT'.dol_print_date($now,'%Y%m%d')).'</div>';
}
/**
@ -2833,7 +2834,8 @@ function get_default_tva($societe_vendeuse, $societe_acheteuse, $idprod=0)
// Le test ci-dessus ne devrait pas etre necessaire. Me signaler l'exemple du cas juridique concerne si le test suivant n'est pas suffisant.
// Si le (pays vendeur = pays acheteur) alors la TVA par defaut=TVA du produit vendu. Fin de regle.
if ($societe_vendeuse->country_code == $societe_acheteuse->country_code) // Warning ->country_code not always defined
if (($societe_vendeuse->country_code == $societe_acheteuse->country_code)
|| (in_array($societe_vendeuse->country_code,array('FR,MC')) && in_array($societe_acheteuse->country_code,array('FR','MC')))) // Warning ->country_code not always defined
{
//print 'VATRULE 3';
return get_product_vat_for_country($idprod,$societe_vendeuse->country_code);
@ -3361,7 +3363,7 @@ function complete_substitutions_array(&$substitutionarray,$outputlangs,$object='
require_once(DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php');
// Check if there is external substitution to do asked by plugins
$dirsubstitutions=array_merge(array(),$conf->substitutions_modules);
$dirsubstitutions=array_merge(array(),$conf->modules_parts['substitutions']);
foreach($dirsubstitutions as $reldir)
{

View File

@ -410,7 +410,7 @@ function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='',$m
else $valueforccc=$objsoc->code_client;
// Clean parameters
if ($date == '') $date=mktime(); // We use local year and month of PHP server to search numbers
if ($date == '') $date=dol_now(); // We use local year and month of PHP server to search numbers
// but we should use local year and month of user
// Extract value for mask counter, mask raz and mask offset

View File

@ -809,8 +809,7 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl
{
if ($libelleproduitservice && empty($hidedesc))
{
if ($conf->global->FCKEDITOR_ENABLE_DETAILS) $libelleproduitservice.='<br />';
else $libelleproduitservice.="\n";
$libelleproduitservice.='__N__';
}
if ($desc == '(CREDIT_NOTE)' && $object->lines[$i]->fk_remise_except)
@ -889,11 +888,13 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl
$period='('.$outputlangs->transnoentitiesnoconv('DateUntil',dol_print_date($object->lines[$i]->date_end, $format, false, $outputlangs)).')';
}
//print '>'.$outputlangs->charset_output.','.$period;
$libelleproduitservice.="\n".$period;
$libelleproduitservice.="__N__".$period;
//print $libelleproduitservice;
}
// Now we convert \n into br
if (dol_textishtml($libelleproduitservice)) $libelleproduitservice=preg_replace('/__N__/','<br>',$libelleproduitservice);
else $libelleproduitservice=preg_replace('/__N__/',"\n",$libelleproduitservice);
$libelleproduitservice=dol_htmlentitiesbr($libelleproduitservice,1);
return $libelleproduitservice;

View File

@ -159,9 +159,7 @@ function show_theme($fuser,$edit=0,$foruserprofile=false)
{
global $conf,$langs,$bc;
$dirtheme=dol_buildpath($conf->global->MAIN_FORCETHEMEDIR.'/theme',0);
$urltheme=dol_buildpath($conf->global->MAIN_FORCETHEMEDIR.'/theme',1);
$dirthemes=array_merge(array($conf->global->MAIN_FORCETHEMEDIR.'/theme'),(array) $conf->modules_parts['themes']);
$selected_theme=$conf->global->MAIN_THEME;
if (! empty($fuser)) $selected_theme=$fuser->conf->MAIN_THEME;
@ -216,47 +214,62 @@ function show_theme($fuser,$edit=0,$foruserprofile=false)
print '<tr '.$bc[$var].'><td colspan="'.$colspan.'">';
print '<table class="nobordernopadding" width="100%">';
$handle=opendir($dirtheme);
$i=0;
while (($subdir = readdir($handle))!==false)
foreach($dirthemes as $dir)
{
if (is_dir($dirtheme."/".$subdir) && substr($subdir, 0, 1) <> '.'
&& substr($subdir, 0, 3) <> 'CVS' && ! preg_match('/common|phones/i',$subdir))
{
// Disable not stable themes
//if ($conf->global->MAIN_FEATURES_LEVEL < 1 && preg_match('/bureau2crea/i',$subdir)) continue;
if ($i % $thumbsbyrow == 0)
{
print '<tr '.$bc[$var].'>';
}
print '<td align="center">';
$file=$dirtheme."/".$subdir."/thumb.png";
$url=$urltheme."/".$subdir."/thumb.png";
if (! file_exists($file)) $url=$urltheme."/common/nophoto.jpg";
print '<table><tr><td>';
print '<a href="'.$_SERVER["PHP_SELF"].($edit?'?action=edit&theme=':'?theme=').$subdir.(GETPOST("optioncss")?'&optioncss='.GETPOST("optioncss",'alpha',1):'').($fuser?'&id='.$fuser->id:'').'" style="font-weight: normal;" alt="'.$langs->trans("Preview").'">';
if ($subdir == $conf->global->MAIN_THEME) $title=$langs->trans("ThemeCurrentlyActive");
else $title=$langs->trans("ShowPreview");
print '<img src="'.$url.'" border="0" width="80" height="60" alt="'.$title.'" title="'.$title.'">';
print '</a>';
print '</td></tr><tr><td align="center">';
if ($subdir == $selected_theme)
{
print '<input '.($edit?'':'disabled').' type="radio" '.$bc[$var].' style="border: 0px;" checked name="main_theme" value="'.$subdir.'"> <b>'.$subdir.'</b>';
}
else
{
print '<input '.($edit?'':'disabled').' type="radio" '.$bc[$var].' style="border: 0px;" name="main_theme" value="'.$subdir.'"> '.$subdir;
}
print '</td></tr></table></td>';
$i++;
if ($i % $thumbsbyrow == 0) print '</tr>';
}
$dirtheme=dol_buildpath($dir,0);
$urltheme=dol_buildpath($dir,1);
if (is_dir($dirtheme))
{
$handle=opendir($dirtheme);
if (is_resource($handle))
{
while (($subdir = readdir($handle))!==false)
{
if (is_dir($dirtheme."/".$subdir) && substr($subdir, 0, 1) <> '.'
&& substr($subdir, 0, 3) <> 'CVS' && ! preg_match('/common|phones/i',$subdir))
{
// Disable not stable themes
//if ($conf->global->MAIN_FEATURES_LEVEL < 1 && preg_match('/bureau2crea/i',$subdir)) continue;
if ($i % $thumbsbyrow == 0)
{
print '<tr '.$bc[$var].'>';
}
print '<td align="center">';
$file=$dirtheme."/".$subdir."/thumb.png";
$url=$urltheme."/".$subdir."/thumb.png";
if (! file_exists($file)) $url=$urltheme."/common/nophoto.jpg";
print '<table><tr><td>';
print '<a href="'.$_SERVER["PHP_SELF"].($edit?'?action=edit&theme=':'?theme=').$subdir.(GETPOST("optioncss")?'&optioncss='.GETPOST("optioncss",'alpha',1):'').($fuser?'&id='.$fuser->id:'').'" style="font-weight: normal;" alt="'.$langs->trans("Preview").'">';
if ($subdir == $conf->global->MAIN_THEME) $title=$langs->trans("ThemeCurrentlyActive");
else $title=$langs->trans("ShowPreview");
print '<img src="'.$url.'" border="0" width="80" height="60" alt="'.$title.'" title="'.$title.'">';
print '</a>';
print '</td></tr><tr><td align="center">';
if ($subdir == $selected_theme)
{
print '<input '.($edit?'':'disabled').' type="radio" '.$bc[$var].' style="border: 0px;" checked name="main_theme" value="'.$subdir.'"> <b>'.$subdir.'</b>';
}
else
{
print '<input '.($edit?'':'disabled').' type="radio" '.$bc[$var].' style="border: 0px;" name="main_theme" value="'.$subdir.'"> '.$subdir;
}
print '</td></tr></table></td>';
$i++;
if ($i % $thumbsbyrow == 0) print '</tr>';
}
}
}
}
}
if ($i % $thumbsbyrow != 0)
{
while ($i % $thumbsbyrow != 0)

View File

@ -131,10 +131,10 @@ insert into llx_menu (enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk
insert into llx_menu (enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('$conf->commande->enabled && $leftmenu=="orders"', __HANDLER__, 'left', 1208__+MAX_llx_menu__, 'commercial', '', 1202__+MAX_llx_menu__, '/commande/liste.php?leftmenu=orders&amp;viewstatut=-1', 'StatusOrderCanceledShort', 1, 'orders', '$user->rights->commande->lire', '', 2, 7, __ENTITY__);
insert into llx_menu (enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('$conf->commande->enabled', __HANDLER__, 'left', 1209__+MAX_llx_menu__, 'commercial', '', 1200__+MAX_llx_menu__, '/commande/stats/index.php?leftmenu=orders', 'Statistics', 1, 'orders', '$user->rights->commande->lire', '', 2, 4, __ENTITY__);
-- Commercial - Supplier's orders
insert into llx_menu (enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('$conf->commande->enabled', __HANDLER__, 'left', 5100__+MAX_llx_menu__, 'commercial', 'orders_suppliers', 5__+MAX_llx_menu__, '/fourn/commande/index.php?leftmenu=orders_suppliers', 'SuppliersOrders', 0, 'orders', '$user->rights->fournisseur->commande->lire', '', 2, 6, __ENTITY__);
insert into llx_menu (enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('$conf->commande->enabled', __HANDLER__, 'left', 5101__+MAX_llx_menu__, 'commercial', '', 5100__+MAX_llx_menu__, '/societe/societe.php?leftmenu=orders_suppliers', 'NewOrder', 1, 'orders', '$user->rights->fournisseur->commande->creer', '', 2, 0, __ENTITY__);
insert into llx_menu (enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('$conf->commande->enabled', __HANDLER__, 'left', 5102__+MAX_llx_menu__, 'commercial', '', 5100__+MAX_llx_menu__, '/fourn/commande/liste.php?leftmenu=orders_suppliers&amp;viewstatut=0', 'List', 1, 'orders', '$user->rights->fournisseur->commande->lire', '', 2, 1, __ENTITY__);
insert into llx_menu (enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('$conf->commande->enabled', __HANDLER__, 'left', 5108__+MAX_llx_menu__, 'commercial', '', 5100__+MAX_llx_menu__, '/commande/stats/index.php?leftmenu=orders_suppliers&amp;mode=supplier', 'Statistics', 1, 'orders', '$user->rights->fournisseur->commande->lire', '', 2, 7, __ENTITY__);
insert into llx_menu (enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('$conf->fournisseur->enabled', __HANDLER__, 'left', 5100__+MAX_llx_menu__, 'commercial', 'orders_suppliers', 5__+MAX_llx_menu__, '/fourn/commande/index.php?leftmenu=orders_suppliers', 'SuppliersOrders', 0, 'orders', '$user->rights->fournisseur->commande->lire', '', 2, 6, __ENTITY__);
insert into llx_menu (enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('$conf->fournisseur->enabled', __HANDLER__, 'left', 5101__+MAX_llx_menu__, 'commercial', '', 5100__+MAX_llx_menu__, '/societe/societe.php?leftmenu=orders_suppliers', 'NewOrder', 1, 'orders', '$user->rights->fournisseur->commande->creer', '', 2, 0, __ENTITY__);
insert into llx_menu (enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('$conf->fournisseur->enabled', __HANDLER__, 'left', 5102__+MAX_llx_menu__, 'commercial', '', 5100__+MAX_llx_menu__, '/fourn/commande/liste.php?leftmenu=orders_suppliers&amp;viewstatut=0', 'List', 1, 'orders', '$user->rights->fournisseur->commande->lire', '', 2, 1, __ENTITY__);
insert into llx_menu (enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('$conf->fournisseur->enabled', __HANDLER__, 'left', 5108__+MAX_llx_menu__, 'commercial', '', 5100__+MAX_llx_menu__, '/commande/stats/index.php?leftmenu=orders_suppliers&amp;mode=supplier', 'Statistics', 1, 'orders', '$user->rights->fournisseur->commande->lire', '', 2, 7, __ENTITY__);
-- Commercial - Contracts
insert into llx_menu (enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('$conf->contrat->enabled', __HANDLER__, 'left', 1400__+MAX_llx_menu__, 'commercial', 'contracts', 5__+MAX_llx_menu__, '/contrat/index.php?leftmenu=contracts', 'Contracts', 0, 'contracts', '$user->rights->contrat->lire', '', 2, 7, __ENTITY__);
insert into llx_menu (enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('$conf->contrat->enabled', __HANDLER__, 'left', 1401__+MAX_llx_menu__, 'commercial', '', 1400__+MAX_llx_menu__, '/societe/societe.php?leftmenu=contracts', 'NewContract', 1, 'contracts', '$user->rights->contrat->creer', '', 2, 0, __ENTITY__);

View File

@ -80,7 +80,7 @@ function print_auguria_menu($db,$atarget,$type_user)
else if (! empty($_SESSION["mainmenu"]) && $newTabMenu[$i]['mainmenu'] == $_SESSION["mainmenu"]) $classname='class="tmenusel"';
else $classname='class="tmenu"';
print_start_menu_entry_auguria($idsel);
print_start_menu_entry_auguria($idsel,$classname);
print '<div class="mainmenu '.$idsel.'"><span class="mainmenu_'.$idsel.'" id="mainmenuspan_'.$idsel.'"></span></div>';
print '<a '.$classname.' id="mainmenua_'.$idsel.'" href="'.$url.'"'.($newTabMenu[$i]['target']?' target="'.$newTabMenu[$i]['target'].'"':($atarget?' target="'.$atarget.'"':'')).'>';
print_text_menu_entry_auguria($newTabMenu[$i]['titre']);
@ -91,7 +91,7 @@ function print_auguria_menu($db,$atarget,$type_user)
{
if (! $type_user)
{
print_start_menu_entry_auguria($idsel);
print_start_menu_entry_auguria($idsel,'class="tmenu"');
print '<div class="mainmenu '.$idsel.'"><span class="mainmenu_'.$idsel.'" id="mainmenuspan_'.$idsel.'"></span></div>';
print '<a class="tmenudisabled" id="mainmenua_'.$idsel.'" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">';
print_text_menu_entry_auguria($newTabMenu[$i]['titre']);
@ -109,28 +109,27 @@ function print_auguria_menu($db,$atarget,$type_user)
/**
* Output start menu entry
* Output start menu array
*
* @return void
*/
function print_start_menu_array_auguria()
{
global $conf;
if (preg_match('/bluelagoon|eldy|freelug|rodolphe|yellow|dev/',$conf->css)) print '<table class="tmenu" summary="topmenu"><tr class="tmenu">';
else print '<ul class="tmenu">';
print '<div class="tmenudiv">';
print '<ul class="tmenu">';
}
/**
* Output menu entry
* Output start menu entry
*
* @param string $idsel Text
* @return void
*/
function print_start_menu_entry_auguria($idsel)
function print_start_menu_entry_auguria($idsel,$classname)
{
global $conf;
if (preg_match('/bluelagoon|eldy|freelug|rodolphe|yellow|dev/',$conf->css)) print '<td class="tmenu" id="mainmenutd_'.$idsel.'">';
else print '<li class="tmenu" id="mainmenutd_'.$idsel.'">';
print '<li '.$classname.' id="mainmenutd_'.$idsel.'">';
print '<div class="tmenuleft"></div><div class="tmenucenter">';
}
/**
@ -141,7 +140,6 @@ function print_start_menu_entry_auguria($idsel)
*/
function print_text_menu_entry_auguria($text)
{
global $conf;
print '<span class="mainmenuaspan">';
print $text;
print '</span>';
@ -154,9 +152,8 @@ function print_text_menu_entry_auguria($text)
*/
function print_end_menu_entry_auguria()
{
global $conf;
if (preg_match('/bluelagoon|eldy|freelug|rodolphe|yellow|dev/',$conf->css)) print '</td>';
else print '</li>';
print '</div>';
print '</li>';
print "\n";
}
@ -167,9 +164,8 @@ function print_end_menu_entry_auguria()
*/
function print_end_menu_array_auguria()
{
global $conf;
if (preg_match('/bluelagoon|eldy|freelug|rodolphe|yellow|dev/',$conf->css)) print '</tr></table>';
else print '</ul>';
print '</ul>';
print '</div>';
print "\n";
}

View File

@ -55,7 +55,7 @@ function print_eldy_menu($db,$atarget,$type_user)
$classname = 'class="tmenu"';
}
$idsel='home';
print_start_menu_entry($idsel);
print_start_menu_entry($idsel,$classname);
print '<a class="tmenuimage" href="'.DOL_URL_ROOT.'/index.php?mainmenu=home&amp;leftmenu="'.($atarget?" target=$atarget":"").'>';
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.' tmenuimage" id="mainmenuspan_'.$idsel.'"></span></div>';
print '</a>';
@ -85,7 +85,7 @@ function print_eldy_menu($db,$atarget,$type_user)
if (($conf->societe->enabled && $user->rights->societe->lire)
|| ($conf->fournisseur->enabled && $user->rights->fournisseur->lire))
{
print_start_menu_entry($idsel);
print_start_menu_entry($idsel,$classname);
print '<a class="tmenuimage" href="'.DOL_URL_ROOT.'/societe/index.php?mainmenu=companies&amp;leftmenu="'.($atarget?' target="'.$atarget.'"':'').'>';
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.' tmenuimage" id="mainmenuspan_'.$idsel.'"></span></div>';
print '</a>';
@ -98,7 +98,7 @@ function print_eldy_menu($db,$atarget,$type_user)
{
if (! $type_user)
{
print_start_menu_entry($idsel);
print_start_menu_entry($idsel,$classname);
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.'" id="mainmenuspan_'.$idsel.'"></span></div>';
print '<a class="tmenudisabled" id="mainmenua_'.$idsel.'" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">';
print_text_menu_entry($langs->trans("ThirdParties"));
@ -131,7 +131,7 @@ function print_eldy_menu($db,$atarget,$type_user)
$idsel='products';
if ($user->rights->produit->lire || $user->rights->service->lire)
{
print_start_menu_entry($idsel);
print_start_menu_entry($idsel,$classname);
print '<a class="tmenuimage" href="'.DOL_URL_ROOT.'/product/index.php?mainmenu=products&amp;leftmenu="'.($atarget?' target="'.$atarget.'"':'').'>';
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.' tmenuimage" id="mainmenuspan_'.$idsel.'"></span></div>';
print '</a>';
@ -144,7 +144,7 @@ function print_eldy_menu($db,$atarget,$type_user)
{
if (! $type_user)
{
print_start_menu_entry($idsel);
print_start_menu_entry($idsel,$classname);
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.'" id="mainmenuspan_'.$idsel.'"></span></div>';
print '<a class="tmenudisabled" id="mainmenua_'.$idsel.'" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">';
print_text_menu_entry($chaine);
@ -178,7 +178,7 @@ function print_eldy_menu($db,$atarget,$type_user)
$idsel='commercial';
if($user->rights->societe->lire || $user->rights->societe->contact->lire)
{
print_start_menu_entry($idsel);
print_start_menu_entry($idsel,$classname);
print '<a class="tmenuimage" href="'.DOL_URL_ROOT.'/comm/index.php?mainmenu=commercial&amp;leftmenu="'.($atarget?' target="'.$atarget.'"':'').'>';
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.' tmenuimage" id="'.$id.'"></span></div>';
print '</a>';
@ -191,7 +191,7 @@ function print_eldy_menu($db,$atarget,$type_user)
{
if (! $type_user)
{
print_start_menu_entry($idsel);
print_start_menu_entry($idsel,$classname);
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.'" id="mainmenuspan_'.$idsel.'"></span></div>';
print '<a class="tmenudisabled" id="mainmenua_'.$idsel.'" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">';
print print_text_menu_entry($langs->trans("Commercial"));
@ -221,7 +221,7 @@ function print_eldy_menu($db,$atarget,$type_user)
if ($user->rights->compta->resultat->lire || $user->rights->accounting->plancompte->lire
|| $user->rights->facture->lire || $user->rights->deplacement->lire || $user->rights->don->lire || $user->rights->tax->charges->lire)
{
print_start_menu_entry($idsel);
print_start_menu_entry($idsel,$classname);
print '<a class="tmenuimage" href="'.DOL_URL_ROOT.'/compta/index.php?mainmenu=accountancy&amp;leftmenu="'.($atarget?' target="'.$atarget.'"':'').'>';
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.' tmenuimage" id="mainmenuspan_'.$idsel.'"></span></div>';
print '</a>';
@ -234,7 +234,7 @@ function print_eldy_menu($db,$atarget,$type_user)
{
if (! $type_user)
{
print_start_menu_entry($idsel);
print_start_menu_entry($idsel,$classname);
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.'" id="mainmenuspan_'.$idsel.'"></span></div>';
print '<a class="tmenudisabled" id="mainmenua_'.$idsel.'" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">';
print_text_menu_entry($langs->trans("MenuFinancial"));
@ -263,7 +263,7 @@ function print_eldy_menu($db,$atarget,$type_user)
$idsel='bank';
if ($user->rights->banque->lire)
{
print_start_menu_entry($idsel);
print_start_menu_entry($idsel,$classname);
print '<a class="tmenuimage" href="'.DOL_URL_ROOT.'/compta/bank/index.php?mainmenu=bank&amp;leftmenu="'.($atarget?' target="'.$atarget.'"':'').'>';
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.' tmenuimage" id="mainmenuspan_'.$idsel.'"></span></div>';
print '</a>';
@ -276,7 +276,7 @@ function print_eldy_menu($db,$atarget,$type_user)
{
if (! $type_user)
{
print_start_menu_entry($idsel);
print_start_menu_entry($idsel,$classname);
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.'" id="mainmenuspan_'.$idsel.'"></span></div>';
print '<a class="tmenudisabled" id="mainmenua_'.$idsel.'" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">';
print_text_menu_entry($langs->trans("MenuBankCash"));
@ -304,7 +304,7 @@ function print_eldy_menu($db,$atarget,$type_user)
$idsel='project';
if ($user->rights->projet->lire)
{
print_start_menu_entry($idsel);
print_start_menu_entry($idsel,$classname);
print '<a class="tmenuimage" href="'.DOL_URL_ROOT.'/projet/index.php?mainmenu=project&amp;leftmenu="'.($atarget?' target="'.$atarget.'"':'').'>';
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.' tmenuimage" id="mainmenuspan_'.$idsel.'"></span></div>';
print '</a>';
@ -317,7 +317,7 @@ function print_eldy_menu($db,$atarget,$type_user)
{
if (! $type_user)
{
print_start_menu_entry($idsel);
print_start_menu_entry($idsel,$classname);
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.'" id="mainmenuspan_'.$idsel.'"></span></div>';
print '<a class="tmenudisabled" id="mainmenua_'.$idsel.'" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">';
print_text_menu_entry($langs->trans("Projects"));
@ -345,7 +345,7 @@ function print_eldy_menu($db,$atarget,$type_user)
$idsel='tools';
if ($user->rights->mailing->lire || $user->rights->export->lire || $user->rights->import->run)
{
print_start_menu_entry($idsel);
print_start_menu_entry($idsel,$classname);
print '<a class="tmenuimage" href="'.DOL_URL_ROOT.'/core/tools.php?mainmenu=tools&amp;leftmenu="'.($atarget?' target="'.$atarget.'"':'').'>';
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.' tmenuimage" id="mainmenuspan_'.$idsel.'"></span></div>';
print '</a>';
@ -358,7 +358,7 @@ function print_eldy_menu($db,$atarget,$type_user)
{
if (! $type_user)
{
print_start_menu_entry($idsel);
print_start_menu_entry($idsel,$classname);
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.'" id="mainmenuspan_'.$idsel.'"></span></div>';
print '<a class="tmenudisabled" id="mainmenua_'.$idsel.'" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">';
print_text_menu_entry($langs->trans("Tools"));
@ -384,7 +384,7 @@ function print_eldy_menu($db,$atarget,$type_user)
}
$idsel='shop';
print_start_menu_entry($idsel);
print_start_menu_entry($idsel,$classname);
print '<a class="tmenuimage" href="'.DOL_URL_ROOT.'/boutique/index.php?mainmenu=shop&amp;leftmenu="'.($atarget?' target="'.$atarget.'"':'').'>';
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.' tmenuimage" id="mainmenuspan_'.$idsel.'"></span></div>';
print '</a>';
@ -412,7 +412,7 @@ function print_eldy_menu($db,$atarget,$type_user)
$idsel='members';
if ($user->rights->adherent->lire)
{
print_start_menu_entry($idsel);
print_start_menu_entry($idsel,$classname);
print '<a class="tmenuimage" href="'.DOL_URL_ROOT.'/adherents/index.php?mainmenu=members&amp;leftmenu="'.($atarget?' target="'.$atarget.'"':'').'>';
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.' tmenuimage" id="mainmenuspan_'.$idsel.'"></span></div>';
print '</a>';
@ -425,7 +425,7 @@ function print_eldy_menu($db,$atarget,$type_user)
{
if (! $type_user)
{
print_start_menu_entry($idsel);
print_start_menu_entry($idsel,$classname);
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.'" id="mainmenuspan_'.$idsel.'"></span></div>';
print '<a class="tmenudisabled" id="mainmenua_'.$idsel.'" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">';
print_text_menu_entry($langs->trans("MenuMembers"));
@ -475,7 +475,7 @@ function print_eldy_menu($db,$atarget,$type_user)
else if (! empty($_SESSION["mainmenu"]) && $newTabMenu[$i]['mainmenu'] == $_SESSION["mainmenu"]) $classname='class="tmenusel"';
else $classname='class="tmenu"';
print_start_menu_entry($idsel);
print_start_menu_entry($idsel,$classname);
print '<a class="tmenuimage" href="'.$url.'"'.($newTabMenu[$i]['target']?" target='".$newTabMenu[$i]['target']."'":($atarget?' target="'.$atarget.'"':'')).'>';
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.' tmenuimage" id="mainmenuspan_'.$idsel.'"></span></div>';
print '</a>';
@ -488,7 +488,7 @@ function print_eldy_menu($db,$atarget,$type_user)
{
if (! $type_user)
{
print_start_menu_entry($idsel);
print_start_menu_entry($idsel,'class="tmenu"');
print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.' tmenuimage" id="mainmenuspan_'.$idsel.'"></span></div>';
print '<a class="tmenudisabled" id="mainmenua_'.$idsel.'" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">';
print_text_menu_entry($newTabMenu[$i]['titre']);
@ -503,12 +503,15 @@ function print_eldy_menu($db,$atarget,$type_user)
}
/**
* Output start menu array
*
* @return void
*/
function print_start_menu_array()
{
global $conf;
if (preg_match('/bluelagoon|eldy|freelug|rodolphe|yellow|dev/',$conf->css)) print '<table class="tmenu" summary="topmenu"><tr class="tmenu">';
else print '<ul class="tmenu">';
print '<div class="tmenudiv">';
print '<ul class="tmenu">';
}
/**
@ -517,11 +520,10 @@ function print_start_menu_array()
* @param string $idsel Text
* @return void
*/
function print_start_menu_entry($idsel)
function print_start_menu_entry($idsel,$classname)
{
global $conf;
if (preg_match('/bluelagoon|eldy|freelug|rodolphe|yellow|dev/',$conf->css)) print '<td class="tmenu" id="mainmenutd_'.$idsel.'">';
else print '<li class="tmenu" id="mainmenutd_'.$idsel.'">';
print '<li '.$classname.' id="mainmenutd_'.$idsel.'">';
print '<div class="tmenuleft"></div><div class="tmenucenter">';
}
/**
@ -532,7 +534,6 @@ function print_start_menu_entry($idsel)
*/
function print_text_menu_entry($text)
{
global $conf;
print '<span class="mainmenuaspan">';
print $text;
print '</span>';
@ -545,9 +546,7 @@ function print_text_menu_entry($text)
*/
function print_end_menu_entry()
{
global $conf;
if (preg_match('/bluelagoon|eldy|freelug|rodolphe|yellow|dev/',$conf->css)) print '</td>';
else print '</li>';
print '</div></li>';
print "\n";
}
@ -558,9 +557,8 @@ function print_end_menu_entry()
*/
function print_end_menu_array()
{
global $conf;
if (preg_match('/bluelagoon|eldy|freelug|rodolphe|yellow|dev/',$conf->css)) print '</tr></table>';
else print '</ul>';
print '</ul>';
print '</div>';
print "\n";
}

View File

@ -32,8 +32,7 @@ require_once(DOL_DOCUMENT_ROOT."/compta/bank/class/account.class.php"); // Req
/**
* \class ModelePDFFactures
* \brief Classe mere des modeles de facture
* Parent class of invoice document generators
*/
abstract class ModelePDFFactures extends CommonDocGenerator
{
@ -61,8 +60,7 @@ abstract class ModelePDFFactures extends CommonDocGenerator
}
/**
* \class ModeleNumRefFactures
* \brief Classe mere des modeles de numerotation des references de facture
* Classe mere des modeles de numerotation des references de facture
*/
abstract class ModeleNumRefFactures
{

View File

@ -143,6 +143,8 @@ class MailingTargets // This can't be abstract as it is used for some method
*/
function add_to_target($mailing_id, $cibles)
{
global $conf;
$this->db->begin();
// Insert emailing targest from array into database
@ -162,7 +164,10 @@ class MailingTargets // This can't be abstract as it is used for some method
$sql .= "'".$this->db->escape($cibles[$i]['other'])."',";
$sql .= "'".$this->db->escape($cibles[$i]['source_url'])."',";
$sql .= "'".$this->db->escape($cibles[$i]['source_id'])."',";
$sql .= "'".$this->db->escape(md5($cibles[$i]['email'].';'.$cibles[$i]['name'].';'.$mailing_id))."',";
if ($conf->global->MAILING_EMAIL_UNSUBSCRIBE==1)
{
$sql .= "'".$this->db->escape(md5($cibles[$i]['email'].';'.$cibles[$i]['name'].';'.$mailing_id.';'.$conf->global->MAILING_EMAIL_UNSUBSCRIBE_KEY))."',";
}
$sql .= "'".$this->db->escape($cibles[$i]['source_type'])."')";
$result=$this->db->query($sql);
if ($result)

View File

@ -1,5 +1,7 @@
<?php
/* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
/* Copyright (C) 2003 Steve Dillon
* Copyright (C) 2003 Laurent Passebecq
* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2002-2003 Jean-Louis Bergamo <jlb@j1b.org>
* Copyright (C) 2006-2010 Laurent Destailleur <eldy@users.sourceforge.net>
*
@ -25,16 +27,6 @@
* disponible ici : http://www.fpdf.org/fr/script/script29.php
*/
////////////////////////////////////////////////////
// PDF_Label
//
// Classe afin d'editer au format PDF des etiquettes
// au format Avery ou personnalise
//
//
// Copyright (C) 2003 Laurent PASSEBECQ (LPA)
// Base sur les fonctions de Steve Dillon : steved@mad.scientist.com
//
//-------------------------------------------------------------------
// VERSIONS :
// 1.0 : Initial release
@ -53,13 +45,9 @@
////////////////////////////////////////////////////
/**
* \file htdocs/core/modules/member/cards/pdf_standard.class.php
* \file htdocs/core/modules/member/doc/pdf_standard.class.php
* \ingroup member
* \brief Fichier de la classe permettant d'editer au format PDF des etiquettes au format Avery ou personnalise
* \author Steve Dillon
* \author Laurent Passebecq
* \author Rodolphe Quiedville
* \author Jean Louis Bergamo.
*/
require_once(DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php');
@ -67,8 +55,7 @@ require_once(DOL_DOCUMENT_ROOT.'/core/lib/format_cards.lib.php');
/**
* \class pdf_standard
* \brief Classe afin d'editer au format PDF des cartes de visite au format Avery ou personnalise
* Classe afin d'editer au format PDF des cartes de visite au format Avery ou personnalise
*/
class pdf_standard
{
@ -107,8 +94,14 @@ class pdf_standard
}
//Methode qui permet de modifier la taille des caracteres
// Cela modiera aussi l'espace entre chaque ligne
/**
* Methode qui permet de modifier la taille des caracteres
* Cela modiera aussi l'espace entre chaque ligne
*
* @param PDF &$pdf PDF
* @param int $pt point
* @return void
*/
function Set_Char_Size(&$pdf,$pt)
{
if ($pt > 3) {
@ -119,7 +112,19 @@ class pdf_standard
}
// On imprime une etiquette
/**
* On imprime une etiquette
*
* @param PDF &$pdf PDF
* @param string $textleft Textleft
* @param string $header Header
* @param string $footer Footer
* @param Translate $outputlangs Output langs
* @param string $textright Text right
* @param int $idmember Id member
* @param string $photomember Photo member
* @return void
*/
function Add_PDF_card(&$pdf,$textleft,$header,$footer,$outputlangs,$textright='',$idmember=0,$photomember='')
{
global $mysoc,$conf,$langs;
@ -263,7 +268,18 @@ class pdf_standard
}
}
/**
* Print dot line
*
* @param PDF &$pdf PDF
* @param int $x1 X1
* @param int $y1 Y1
* @param int $x2 X2
* @param int $y2 Y2
* @param int $epaisseur Epaisseur
* @param int $nbPointilles Nb pointilles
* @return void
*/
function _Pointille(&$pdf,$x1=0,$y1=0,$x2=210,$y2=297,$epaisseur=1,$nbPointilles=15)
{
$pdf->SetLineWidth($epaisseur);
@ -293,8 +309,17 @@ class pdf_standard
}
}
/*
/**
* Fonction realisant une croix aux 4 coins des cartes
*
* @param PDF &$pdf PDF
* @param int $x1 X1
* @param int $y1 Y1
* @param int $x2 X2
* @param int $y2 Y2
* @param int $epaisseur Epaisseur
* @param int $taille Size
* @return void
*/
function _Croix(&$pdf,$x1=0,$y1=0,$x2=210,$y2=297,$epaisseur=1,$taille=4)
{
@ -318,9 +343,17 @@ class pdf_standard
$pdf->SetDrawColor(0,0,0);
}
// convert units (in to mm, mm to in)
// $src and $dest must be 'in' or 'mm'
function _Convert_Metric ($value, $src, $dest) {
/**
* Convert units (in to mm, mm to in)
* $src and $dest must be 'in' or 'mm'
*
* @param int $value value
* @param string $src from
* @param string $dest to
* @return float value value after conversion
*/
function _Convert_Metric ($value, $src, $dest)
{
if ($src != $dest) {
$tab['in'] = 39.37008;
$tab['mm'] = 1000;
@ -330,8 +363,14 @@ class pdf_standard
}
}
// Give the height for a char size given.
function _Get_Height_Chars($pt) {
/**
* Give the height for a char size given.
*
* @param int $pt Point
* @return int Height chars
*/
function _Get_Height_Chars($pt)
{
// Tableau de concordance entre la hauteur des caracteres et de l'espacement entre les lignes
$_Table_Hauteur_Chars = array(6=>2, 7=>2.5, 8=>3, 9=>3.5, 10=>4, 11=>6, 12=>7, 13=>8, 14=>9, 15=>10);
if (in_array($pt, array_keys($_Table_Hauteur_Chars))) {
@ -341,7 +380,15 @@ class pdf_standard
}
}
function _Set_Format(&$pdf, $format) {
/**
* Set format
*
* @param PDF &$pdf PDF
* @param string $format Format
* @return void
*/
function _Set_Format(&$pdf, $format)
{
$this->_Metric = $format['metric'];
$this->_Avery_Name = $format['name'];
@ -362,15 +409,15 @@ class pdf_standard
* Function to build PDF on disk, then output on HTTP strem.
*
* @param array $arrayofmembers Array of members informations
* @param Translata $outputlangs Lang object for output language
* @return int 1=ok, 0=ko
* @param Translate $outputlangs Lang object for output language
* @param string $srctemplatepath Full path of source filename for generator using a template file
* @return int 1=OK, 0=KO
*/
function write_file($arrayofmembers,$outputlangs)
function write_file($arrayofmembers,$outputlangs,$srctemplatepath)
{
global $user,$conf,$langs,$mysoc,$_Avery_Labels;
// Choose type (CARD by default)
$this->code=empty($conf->global->ADHERENT_CARD_TYPE)?'CARD':$conf->global->ADHERENT_CARD_TYPE;
$this->code=$srctemplatepath;
$this->Tformat = $_Avery_Labels[$this->code];
if (empty($this->Tformat)) { dol_print_error('','ErrorBadTypeForCard'.$this->code); exit; }
$this->type = 'pdf';
@ -387,8 +434,9 @@ class pdf_standard
$outputlangs->load("admin");
$dir = $conf->adherent->dir_temp;
$file = $dir . "/tmpcards.pdf";
$dir = (empty($outputdir)?$conf->adherent->dir_temp:$outputdir);
$filename='tmp_cards.pdf';
$file = $dir."/".$filename;
if (! file_exists($dir))
{
@ -457,7 +505,6 @@ class pdf_standard
$attachment=true;
if (! empty($conf->global->MAIN_DISABLE_FORCE_SAVEAS)) $attachment=false;
$filename='tmpcards.pdf';
$type=dol_mimetype($filename);
//if ($encoding) header('Content-Encoding: '.$encoding);

View File

@ -20,7 +20,7 @@
*/
/**
* \file htdocs/core/modules/member/cards/modules_cards.php
* \file htdocs/core/modules/member/modules_cards.php
* \ingroup member
* \brief File of parent class of document generator for members cards.
*/
@ -30,8 +30,7 @@ require_once(DOL_DOCUMENT_ROOT."/product/class/product.class.php");
/**
* \class ModelePDFCards
* \brief Parent class of document generator for members cards.
* Parent class of document generator for members cards.
*/
class ModelePDFCards
{
@ -74,35 +73,75 @@ function members_card_pdf_create($db, $arrayofmembers, $modele, $outputlangs)
global $conf,$langs;
$langs->load("members");
$dir = DOL_DOCUMENT_ROOT . "/core/modules/member/cards/";
// Positionne modele sur le nom du modele a utiliser
$error=0;
// Increase limit for PDF build
$err=error_reporting();
error_reporting(0);
@set_time_limit(120);
error_reporting($err);
$code='';
$srctemplatepath='';
// Positionne le modele sur le nom du modele a utiliser
if (! dol_strlen($modele))
{
if ($conf->global->ADHERENT_CARDS_ADDON_PDF)
if (! empty($conf->global->ADHERENT_CARDS_ADDON_PDF))
{
$modele = $conf->global->ADHERENT_CARDS_ADDON_PDF;
$code = $conf->global->ADHERENT_CARDS_ADDON_PDF;
}
else
{
$modele = 'standard';
$code = $modele;
}
}
// Charge le modele
$file = "pdf_".$modele.".class.php";
if (file_exists($dir.$file))
else $code=$modele;
$modele='standard';
// If selected modele is a filename template (then $modele="modelname:filename")
$tmp=explode(':',$modele,2);
if (! empty($tmp[1]))
{
$classname = "pdf_".$modele;
require_once($dir.$file);
$modele=$tmp[0];
$srctemplatepath=$tmp[1];
}
else $srctemplatepath=$code;
// Search template files
$file=''; $classname=''; $filefound=0;
$dirmodels=array('/');
if (is_array($conf->modules_parts['models'])) $dirmodels=array_merge($dirmodels,$conf->modules_parts['models']);
foreach($dirmodels as $reldir)
{
foreach(array('doc','pdf') as $prefix)
{
$file = $prefix."_".$modele.".class.php";
// On verifie l'emplacement du modele
$file=dol_buildpath($reldir."core/modules/member/doc/".$file,0);
if (file_exists($file))
{
$filefound=1;
$classname=$prefix.'_'.$modele;
break;
}
}
if ($filefound) break;
}
// Charge le modele
if ($filefound)
{
require_once($file);
$obj = new $classname($db);
// We save charset_output to restore it because write_file can change it if needed for
// output format that does not support UTF8.
$sav_charset_output=$outputlangs->charset_output;
if ($obj->write_file($arrayofmembers, $outputlangs) > 0)
if ($obj->write_file($arrayofmembers, $outputlangs, $srctemplatepath) > 0)
{
$outputlangs->charset_output=$sav_charset_output;
return 1;

View File

@ -75,26 +75,20 @@ class modAdherent extends DolibarrModules
$this->const[4] = array("ADHERENT_MAIL_VALID","texte","Votre adhésion vient d'être validée. \r\nVoici le rappel de vos coordonnées (toute information erronée entrainera la non validation de votre inscription) :\r\n\r\n%INFOS%\r\n\r\n","Mail de validation");
$this->const[5] = array("ADHERENT_MAIL_VALID_SUBJECT","chaine","Votre adhésion a été validée","Sujet du mail de validation");
$this->const[6] = array("ADHERENT_MAIL_RESIL_SUBJECT","chaine","Résiliation de votre adhésion","Sujet du mail de résiliation");
$this->const[10] = array("ADHERENT_MAILMAN_UNSUB_URL","chaine","http://lists.domain.com/cgi-bin/mailman/admin/%LISTE%/members?adminpw=%MAILMAN_ADMINPW%&user=%EMAIL%","Url de désinscription aux listes mailman");
$this->const[11] = array("ADHERENT_MAILMAN_URL","chaine","http://lists.domain.com/cgi-bin/mailman/admin/%LISTE%/members?adminpw=%MAILMAN_ADMINPW%&send_welcome_msg_to_this_batch=1&subscribees=%EMAIL%","Url pour les inscriptions mailman");
$this->const[12] = array("ADHERENT_MAILMAN_LISTS","chaine","","Mailing-list to subscribe new members to");
$this->const[17] = array("ADHERENT_SPIP_USER","chaine","","Utilisateur de connexion à la base spip");
$this->const[18] = array("ADHERENT_SPIP_PASS","chaine","","Mot de passe de connexion à la base spip");
$this->const[19] = array("ADHERENT_SPIP_SERVEUR","chaine","","serveur spip");
$this->const[20] = array("ADHERENT_SPIP_DB","chaine","","db spip");
$this->const[21] = array("ADHERENT_MAIL_FROM","chaine","","From des mails");
$this->const[22] = array("ADHERENT_MAIL_COTIS","texte","Bonjour %PRENOM%,\r\nCet email confirme que votre cotisation a été reçue\r\net enregistrée","Mail de validation de cotisation");
$this->const[23] = array("ADHERENT_MAIL_COTIS_SUBJECT","chaine","Reçu de votre cotisation","Sujet du mail de validation de cotisation");
$this->const[25] = array("ADHERENT_CARD_HEADER_TEXT","chaine","%ANNEE%","Texte imprimé sur le haut de la carte adhérent");
$this->const[26] = array("ADHERENT_CARD_FOOTER_TEXT","chaine","Association AZERTY","Texte imprimé sur le bas de la carte adhérent");
$this->const[27] = array("ADHERENT_CARD_TEXT","texte","%PRENOM% %NOM%\r\nMembre ne %ID%\r\n%EMAIL%\r\n%ADRESSE%\r\n%CP% %VILLE%\r\n%PAYS%","Texte imprimé sur la carte adhérent");
$this->const[27] = array("ADHERENT_CARD_TEXT","texte","%FULLNAME%\r\nID: %ID%\r\n%EMAIL%\r\n%ADDRESS%\r\n%ZIP% %TOWN%\r\n%COUNTRY%","Text to print on member cards");
$this->const[28] = array("ADHERENT_MAILMAN_ADMINPW","chaine","","Mot de passe Admin des liste mailman");
$this->const[31] = array("ADHERENT_BANK_USE_AUTO","yesno","","Insertion automatique des cotisations dans le compte banquaire");
$this->const[32] = array("ADHERENT_BANK_ACCOUNT","chaine","","ID du Compte banquaire utilise");
$this->const[33] = array("ADHERENT_BANK_CATEGORIE","chaine","","ID de la catégorie banquaire des cotisations");
$this->const[34] = array("ADHERENT_ETIQUETTE_TYPE","chaine","L7163","Type d'étiquette (pour impression de planche d'étiquettes)");
// Boites
$this->const[34] = array("ADHERENT_ETIQUETTE_TYPE","chaine","L7163","Type of address sheets");
$this->const[35] = array("ADHERENT_ETIQUETTE_TEXT",'texte',"%FULLNAME%\n%ADDRESS%\n%ZIP% %TOWN%\n%COUNTRY%","Text to print on member address sheets");
// Boxes
//-------
$this->boxes = array();
$r=0;

View File

@ -17,10 +17,10 @@
*/
/**
* \defgroup clicktodial Module clicktodial
* \brief Module pour gerer l'appel automatique
* \file htdocs/core/modules/modClickToDial.class.php
* \ingroup clicktodial
* \defgroup mailmanspip Module mailmanspip
* \brief Module to manage mailman and spip
* \file htdocs/core/modules/modMailmanSpip.class.php
* \ingroup mailmanspip
* \brief Fichier de description et activation du module de click to Dial
*/
@ -28,10 +28,8 @@ include_once(DOL_DOCUMENT_ROOT ."/core/modules/DolibarrModules.class.php");
/**
* \class modMailmanSpip
* \brief Classe de description et activation du module de Click to Dial
* Classe de description et activation du module de Click to Dial
*/
class modMailmanSpip extends DolibarrModules
{
@ -68,7 +66,10 @@ class modMailmanSpip extends DolibarrModules
// Constants
$this->const = array();
$this->const[1] = array("ADHERENT_MAILMAN_UNSUB_URL","chaine","http://lists.domain.com/cgi-bin/mailman/admin/%LISTE%/members?adminpw=%MAILMAN_ADMINPW%&user=%EMAIL%","Url de désinscription aux listes mailman");
$this->const[2] = array("ADHERENT_MAILMAN_URL","chaine","http://lists.domain.com/cgi-bin/mailman/admin/%LISTE%/members?adminpw=%MAILMAN_ADMINPW%&send_welcome_msg_to_this_batch=1&subscribees=%EMAIL%","Url pour les inscriptions mailman");
$this->const[3] = array("ADHERENT_MAILMAN_LISTS","chaine","","Mailing-list to subscribe new members to");
// Boxes
$this->boxes = array();

View File

@ -1,5 +1,7 @@
<?php
/* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
/* Copyright (C) 2003 Steve Dillon
* Copyright (C) 2003 Laurent Passebecq
* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2002-2003 Jean-Louis Bergamo <jlb@j1b.org>
* Copyright (C) 2006-2010 Laurent Destailleur <eldy@users.sourceforge.net>
*
@ -25,16 +27,6 @@
* disponible ici : http://www.fpdf.org/fr/script/script29.php
*/
////////////////////////////////////////////////////
// PDF_Label
//
// Classe afin d'editer au format PDF des etiquettes
// au format Avery ou personnalise
//
//
// Copyright (C) 2003 Laurent PASSEBECQ (LPA)
// Base sur les fonctions de Steve Dillon : steved@mad.scientist.com
//
//-------------------------------------------------------------------
// VERSIONS :
// 1.0 : Initial release
@ -53,13 +45,9 @@
////////////////////////////////////////////////////
/**
* \file htdocs/core/modules/member/labels/pdf_standardlabel.class.php
* \ingroup member
* \file htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php
* \ingroup core
* \brief Fichier de la classe permettant d'editer au format PDF des etiquettes au format Avery ou personnalise
* \author Steve Dillon
* \author Laurent Passebecq
* \author Rodolphe Quiedville
* \author Jean Louis Bergamo.
*/
require_once(DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php');
@ -106,8 +94,14 @@ class pdf_standardlabel
$this->db = $db;
}
//Methode qui permet de modifier la taille des caracteres
// Cela modiera aussi l'espace entre chaque ligne
/**
* Methode qui permet de modifier la taille des caracteres
* Cela modiera aussi l'espace entre chaque ligne
*
* @param PDF &$pdf PDF
* @param int $pt point
* @return void
*/
function Set_Char_Size(&$pdf,$pt)
{
if ($pt > 3) {
@ -117,8 +111,17 @@ class pdf_standardlabel
}
}
// On imprime une etiquette
/**
* On imprime une etiquette
*
* @param PDF &$pdf PDF
* @param string $textleft Textleft
* @param string $header Header
* @param string $footer Footer
* @param Translate $outputlangs Output langs
* @param string $textright Text right
* @return void
*/
function Add_PDF_card(&$pdf,$textleft,$header,$footer,$outputlangs,$textright='')
{
global $mysoc,$conf,$langs;
@ -148,6 +151,9 @@ class pdf_standardlabel
// Define photo
$photo='';
// Define background image
$backgroundimage='';
// Print lines
if ($this->code == "CARD")
{
@ -156,6 +162,12 @@ class pdf_standardlabel
$this->_Croix($pdf,$_PosX,$_PosY,$_PosX+$this->_Width,$_PosY+$this->_Height,0.1,10);
}
// Background
if ($backgroundimage)
{
$pdf->image($backgroundimage,$_PosX,$_PosY,$this->_Width,$this->_Height);
}
// Top
if ($header!='')
{
@ -169,7 +181,7 @@ class pdf_standardlabel
$pdf->Cell($this->_Width, $this->_Line_Height, $outputlangs->convToOutputCharset($header),0,1,'C');
}
// Center
// Middle
if ($textright=='') // Only a left part
{
if ($textleft == '%LOGO%' && $logo) $this->Image($logo,$_PosX+2,$_PosY+3+$this->_Line_Height,20);
@ -177,7 +189,7 @@ class pdf_standardlabel
else
{
$pdf->SetXY($_PosX+3, $_PosY+3+$this->_Line_Height);
$pdf->MultiCell($this->_Width, $this->_Line_Height, $outputlangs->convToOutputCharset($textleft));
$pdf->MultiCell($this->_Width, $this->_Line_Height, $outputlangs->convToOutputCharset($textleft),0,'L');
}
}
else if ($textleft!='' && $textright!='') //
@ -194,12 +206,12 @@ class pdf_standardlabel
if ($textright == '%LOGO%' && $logo) $pdf->Image($logo,$_PosX+$this->_Width-21,$_PosY+3+$this->_Line_Height,20);
else if ($textright == '%PHOTO%' && $photo) $pdf->Image($photo,$_PosX+$this->_Width-21,$_PosY+3+$this->_Line_Height,20);
$pdf->SetXY($_PosX+2, $_PosY+3+$this->_Line_Height);
$pdf->MultiCell($this->_Width-22, $this->_Line_Height, $outputlangs->convToOutputCharset($textleft));
$pdf->MultiCell($this->_Width-22, $this->_Line_Height, $outputlangs->convToOutputCharset($textleft),0,'L');
}
else
{
$pdf->SetXY($_PosX+2, $_PosY+3+$this->_Line_Height);
$pdf->MultiCell(round($this->_Width/2), $this->_Line_Height, $outputlangs->convToOutputCharset($textleft));
$pdf->MultiCell(round($this->_Width/2), $this->_Line_Height, $outputlangs->convToOutputCharset($textleft),0,'L');
$pdf->SetXY($_PosX+round($this->_Width/2), $_PosY+3+$this->_Line_Height);
$pdf->MultiCell(round($this->_Width/2)-2, $this->_Line_Height, $outputlangs->convToOutputCharset($textright),0,'R');
}
@ -245,6 +257,17 @@ class pdf_standardlabel
}
/**
* Print dot line
*
* @param PDF &$pdf PDF
* @param int $x1 X1
* @param int $y1 Y1
* @param int $x2 X2
* @param int $y2 Y2
* @param int $epaisseur Epaisseur
* @param int $nbPointilles Nb pointilles
*/
function _Pointille(&$pdf,$x1=0,$y1=0,$x2=210,$y2=297,$epaisseur=1,$nbPointilles=15)
{
$pdf->SetLineWidth($epaisseur);
@ -274,8 +297,17 @@ class pdf_standardlabel
}
}
/*
/**
* Fonction realisant une croix aux 4 coins des cartes
*
* @param PDF &$pdf PDF
* @param int $x1 X1
* @param int $y1 Y1
* @param int $x2 X2
* @param int $y2 Y2
* @param int $epaisseur Epaisseur
* @param int $taille Size
* @return void
*/
function _Croix(&$pdf,$x1=0,$y1=0,$x2=210,$y2=297,$epaisseur=1,$taille=4)
{
@ -299,8 +331,15 @@ class pdf_standardlabel
$pdf->SetDrawColor(0,0,0);
}
// convert units (in to mm, mm to in)
// $src and $dest must be 'in' or 'mm'
/**
* Convert units (in to mm, mm to in)
* $src and $dest must be 'in' or 'mm'
*
* @param int $value value
* @param string $src from
* @param string $dest to
* @return float value value after conversion
*/
function _Convert_Metric ($value, $src, $dest) {
if ($src != $dest) {
$tab['in'] = 39.37008;
@ -311,7 +350,12 @@ class pdf_standardlabel
}
}
// Give the height for a char size given.
/**
* Give the height for a char size given.
*
* @param int $pt Point
* @return int Height chars
*/
function _Get_Height_Chars($pt) {
// Tableau de concordance entre la hauteur des caracteres et de l'espacement entre les lignes
$_Table_Hauteur_Chars = array(6=>2, 7=>2.5, 8=>3, 9=>3.5, 10=>4, 11=>6, 12=>7, 13=>8, 14=>9, 15=>10);
@ -322,7 +366,15 @@ class pdf_standardlabel
}
}
function _Set_Format(&$pdf, $format) {
/**
* Set format
*
* @param PDF &$pdf PDF
* @param string $format Format
* @return void
*/
function _Set_Format(&$pdf, $format)
{
$this->_Metric = $format['metric'];
$this->_Avery_Name = $format['name'];
$this->_Avery_Code = $format['code'];
@ -343,14 +395,15 @@ class pdf_standardlabel
*
* @param array $arrayofmembers Array of members informations
* @param Translate $outputlangs Lang object for output language
* @param string $srctemplatepath Full path of source filename for generator using a template file
* @param string $outputdir Output directory
* @return int 1=OK, 0=KO
*/
function write_file($arrayofmembers,$outputlangs)
function write_file($arrayofmembers,$outputlangs,$srctemplatepath,$outputdir='')
{
global $user,$conf,$langs,$mysoc,$_Avery_Labels;
// Choose type (L7163 by default)
$this->code=empty($conf->global->ADHERENT_ETIQUETTE_TYPE)?'L7163':$conf->global->ADHERENT_ETIQUETTE_TYPE;
$this->code=$srctemplatepath;
$this->Tformat = $_Avery_Labels[$this->code];
if (empty($this->Tformat)) { dol_print_error('','ErrorBadTypeForCard'.$this->code); exit; }
$this->type = 'pdf';
@ -366,9 +419,9 @@ class pdf_standardlabel
$outputlangs->load("members");
$outputlangs->load("admin");
$dir = $conf->adherent->dir_temp;
$file = $dir . "/tmplabels.pdf";
$dir = (empty($outputdir)?$conf->adherent->dir_temp:$outputdir);
$filename='tmp_address_sheet.pdf';
$file = $dir."/".$filename;
if (! file_exists($dir))
{
@ -437,7 +490,6 @@ class pdf_standardlabel
$attachment=true;
if (! empty($conf->global->MAIN_DISABLE_FORCE_SAVEAS)) $attachment=false;
$filename='tmplabels.pdf';
$type=dol_mimetype($filename);
//if ($encoding) header('Content-Encoding: '.$encoding);

View File

@ -20,7 +20,7 @@
*/
/**
* \file htdocs/core/modules/member/labels/modules_labels.php
* \file htdocs/core/modules/printsheet/modules_labels.php
* \ingroup member
* \brief File of parent class of document generator for members labels sheets.
*/
@ -30,8 +30,7 @@ require_once(DOL_DOCUMENT_ROOT."/product/class/product.class.php");
/**
* \class ModelePDFLabels
* \brief Parent class of document generator for members cards.
* Parent class of document generator for address sheet.
*/
class ModelePDFLabels
{
@ -63,48 +62,86 @@ class ModelePDFLabels
/**
* Create a document onto disk accordign to template module
*
* @param DoliDB $db Database handler
* @param array $arrayofmembers Array of members
* @param string $modele Force le modele a utiliser ('' to not force)
* @param Translate $outputlangs Objet lang a utiliser pour traduction
* @return int <0 if KO, >0 if OK
* @param DoliDB $db Database handler
* @param array $arrayofmembers Array of members
* @param string $modele Force le modele a utiliser ('' to not force)
* @param Translate $outputlangs Objet lang a utiliser pour traduction
* @param string $outputdir Output directory
* @return int <0 if KO, >0 if OK
*/
function members_label_pdf_create($db, $arrayofmembers, $modele, $outputlangs)
function members_label_pdf_create($db, $arrayofmembers, $modele, $outputlangs, $outputdir='')
{
global $conf,$langs;
$langs->load("members");
$dir = DOL_DOCUMENT_ROOT . "/core/modules/member/labels/";
$error=0;
// Increase limit for PDF build
$err=error_reporting();
error_reporting(0);
@set_time_limit(120);
error_reporting($err);
$code='';
$srctemplatepath='';
// Positionne modele sur le nom du modele a utiliser
// Positionne le modele sur le nom du modele a utiliser
if (! dol_strlen($modele))
{
if ($conf->global->ADHERENT_ETIQUETTE_TYPE)
if (! empty($conf->global->ADHERENT_ETIQUETTE_TYPE))
{
$modele = $conf->global->ADHERENT_ETIQUETTE_TYPE;
$code = $conf->global->ADHERENT_ETIQUETTE_TYPE;
}
else
{
$modele = 'L7163';
$code = 'L7163';
$code = $modele;
}
}
$modele='standardlabel';
// Charge le modele
$file = "pdf_".$modele.".class.php";
if (file_exists($dir.$file))
else $code=$modele;
$modele='standardlabel';
// If selected modele is a filename template (then $modele="modelname:filename")
$tmp=explode(':',$modele,2);
if (! empty($tmp[1]))
{
$classname = "pdf_".$modele;
require_once($dir.$file);
$modele=$tmp[0];
$srctemplatepath=$tmp[1];
}
else $srctemplatepath=$code;
// Search template files
$file=''; $classname=''; $filefound=0;
$dirmodels=array('/');
if (is_array($conf->modules_parts['models'])) $dirmodels=array_merge($dirmodels,$conf->modules_parts['models']);
foreach($dirmodels as $reldir)
{
foreach(array('doc','pdf') as $prefix)
{
$file = $prefix."_".$modele.".class.php";
// On verifie l'emplacement du modele
$file=dol_buildpath($reldir."core/modules/printsheet/doc/".$file,0);
if (file_exists($file))
{
$filefound=1;
$classname=$prefix.'_'.$modele;
break;
}
}
if ($filefound) break;
}
// Charge le modele
if ($filefound)
{
require_once($file);
$obj = new $classname($db);
// We save charset_output to restore it because write_file can change it if needed for
// output format that does not support UTF8.
$sav_charset_output=$outputlangs->charset_output;
if ($obj->write_file($arrayofmembers, $outputlangs) > 0)
if ($obj->write_file($arrayofmembers, $outputlangs, $srctemplatepath, $outputdir) > 0)
{
$outputlangs->charset_output=$sav_charset_output;
return 1;
@ -112,14 +149,13 @@ function members_label_pdf_create($db, $arrayofmembers, $modele, $outputlangs)
else
{
$outputlangs->charset_output=$sav_charset_output;
dol_print_error($db,"members_card_pdf_create Error: ".$obj->error);
dol_print_error($db,"members_label_pdf_create Error: ".$obj->error);
return -1;
}
}
else
{
dol_print_error('',$langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$dir.$file));
dol_print_error('',$langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$file));
return -1;
}

View File

@ -120,7 +120,7 @@ if (! empty($hookmanager->resArray['options'])) {
</table>
</td>
<td align="center" valign="top">
<td align="center" valign="middle">
<img alt="Logo" title="" src="<?php echo $urllogo; ?>" id="img_logo" />
</td>

View File

@ -321,10 +321,12 @@ class Fichinter extends CommonObject
if ($this->statut != 1)
{
$this->db->begin();
$now=dol_now();
$sql = "UPDATE ".MAIN_DB_PREFIX."fichinter";
$sql.= " SET fk_statut = 1";
$sql.= ", date_valid = ".$this->db->idate(mktime());
$sql.= ", date_valid = ".$this->db->idate($now);
$sql.= ", fk_user_valid = ".$user->id;
$sql.= " WHERE rowid = ".$this->id;
$sql.= " AND entity = ".$conf->entity;

View File

@ -1097,7 +1097,8 @@ else if ($id > 0 || ! empty($ref))
// Date intervention
print '<td align="center" nowrap="nowrap">';
$timearray=dol_getdate(mktime());
$now=dol_now();
$timearray=dol_getdate($now);
if (!GETPOST('diday','int')) $timewithnohour=dol_mktime(0,0,0,$timearray['mon'],$timearray['mday'],$timearray['year']);
else $timewithnohour=dol_mktime(GETPOST('dihour','int'),GETPOST('dimin','int'),GETPOST('disec','int'),GETPOST('dimonth','int'),GETPOST('diday','int'),GETPOST('diyear','int'));
$form->select_date($timewithnohour,'di',1,1,0,"addinter");

View File

@ -1,7 +1,7 @@
<?PHP
/* Copyright (C) 2002-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2003 Xavier Dutoit <doli@sydesy.com>
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org>
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
* Copyright (C) 2005-2011 Regis Houssin <regis@dolibarr.fr>
@ -29,7 +29,7 @@
* \brief File that include conf.php file and commons lib like functions.lib.php
*/
if (! defined('DOL_VERSION')) define('DOL_VERSION','3.3.0-alpha'); // Also defined in htdocs/install/inc.php (Ex: x.y.z-alpha, x.y.z)
if (! defined('DOL_VERSION')) define('DOL_VERSION','3.3.0-alpha');
if (! defined('EURO')) define('EURO',chr(128));
// Define syslog constants
@ -53,10 +53,13 @@ if (! defined('LOG_DEBUG'))
}
}
// Forcage du parametrage PHP error_reporting (Dolibarr non utilisable en mode error E_ALL)
error_reporting(E_ALL ^ E_NOTICE);
// Force PHP error_reporting setup (Dolibarr may report warning without this)
error_reporting(E_ALL & ~(E_STRICT|E_NOTICE));
//error_reporting(E_ALL | E_STRICT);
// End of common declaration part
if (defined('DOL_INC_FOR_VERSION_ERROR')) return;
// Define vars
$conffiletoshowshort = "conf.php";
@ -77,10 +80,7 @@ if (! $result && ! empty($_SERVER["GATEWAY_INTERFACE"])) // If install not do
}
// Disable php display errors
if (! empty($dolibarr_main_prod))
{
ini_set('display_errors','Off');
}
if (! empty($dolibarr_main_prod)) ini_set('display_errors','Off');
// Clean parameters
$dolibarr_main_data_root=trim($dolibarr_main_data_root);

View File

@ -802,10 +802,11 @@ class CommandeFournisseur extends Commande
* Cancel an approved order.
* L'annulation se fait apres l'approbation
*
* @param User $user User making action
* @return int >0 if Ok, <0 if Ko
* @param User $user User making action
* @param int $idwarehouse Id warehouse to use for stock change (not used for supplier orders).
* @return int >0 if Ok, <0 if Ko
*/
function Cancel($user)
function Cancel($user, $idwarehouse=-1)
{
global $langs,$conf;
@ -900,12 +901,13 @@ class CommandeFournisseur extends Commande
}
/**
* Create order with draft status
* Create order with draft status
*
* @param User $user User making creation
* @return int <0 if KO, Id of supplier order if OK
* @param User $user User making creation
* @param int $notrigger Disable all triggers
* @return int <0 if KO, Id of supplier order if OK
*/
function create($user)
function create($user, $notrigger=0)
{
global $langs,$conf;
@ -956,12 +958,15 @@ class CommandeFournisseur extends Commande
// On logue creation pour historique
$this->log($user, 0, time());
// Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('ORDER_SUPPLIER_CREATE',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers
if (! $notrigger)
{
// Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('ORDER_SUPPLIER_CREATE',$this,$user,$langs,$conf);
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers
}
$this->db->commit();
return $this->id;

View File

@ -142,9 +142,11 @@ class PaiementFourn extends Paiement
if ($this->total <> 0) // On accepte les montants negatifs
{
$now=dol_now();
$sql = 'INSERT INTO '.MAIN_DB_PREFIX.'paiementfourn (';
$sql.= 'datec, datep, amount, fk_paiement, num_paiement, note, fk_user_author, fk_bank)';
$sql.= ' VALUES ('.$this->db->idate(mktime()).',';
$sql.= ' VALUES ('.$this->db->idate($now).',';
$sql.= " ".$this->db->idate($this->datepaye).", '".$this->total."', ".$this->paiementid.", '".$this->num_paiement."', '".$this->db->escape($this->note)."', ".$user->id.", 0)";
dol_syslog("PaiementFourn::create sql=".$sql);

View File

@ -0,0 +1,47 @@
div.dataTables_length label {
float: left;
text-align: left;
}
div.dataTables_length select {
width: 75px;
}
div.dataTables_filter label {
float: right;
}
div.dataTables_info {
padding-top: 8px;
}
div.dataTables_paginate {
float: right;
margin: 0;
}
table.table {
clear: both;
margin-bottom: 6px !important;
}
table.table thead .sorting,
table.table thead .sorting_asc,
table.table thead .sorting_desc,
table.table thead .sorting_asc_disabled,
table.table thead .sorting_desc_disabled {
cursor: pointer;
*cursor: hand;
}
table.table thead .sorting { background: url('images/sort_both.png') no-repeat center right; }
table.table thead .sorting_asc { background: url('images/sort_asc.png') no-repeat center right; }
table.table thead .sorting_desc { background: url('images/sort_desc.png') no-repeat center right; }
table.table thead .sorting_asc_disabled { background: url('images/sort_asc_disabled.png') no-repeat center right; }
table.table thead .sorting_desc_disabled { background: url('images/sort_desc_disabled.png') no-repeat center right; }
table.dataTable th:active {
outline: none;
}

View File

@ -0,0 +1,106 @@
/* Default class modification */
$.extend( $.fn.dataTableExt.oStdClasses, {
"sWrapper": "dataTables_wrapper form-inline"
} );
/* API method to get paging information */
$.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings )
{
return {
"iStart": oSettings._iDisplayStart,
"iEnd": oSettings.fnDisplayEnd(),
"iLength": oSettings._iDisplayLength,
"iTotal": oSettings.fnRecordsTotal(),
"iFilteredTotal": oSettings.fnRecordsDisplay(),
"iPage": Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ),
"iTotalPages": Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength )
};
}
/* Bootstrap style pagination control */
$.extend( $.fn.dataTableExt.oPagination, {
"bootstrap": {
"fnInit": function( oSettings, nPaging, fnDraw ) {
var oLang = oSettings.oLanguage.oPaginate;
var fnClickHandler = function ( e ) {
e.preventDefault();
if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) {
fnDraw( oSettings );
}
};
$(nPaging).addClass('pagination').append(
'<ul>'+
'<li class="prev disabled"><a href="#">&larr; '+oLang.sPrevious+'</a></li>'+
'<li class="next disabled"><a href="#">'+oLang.sNext+' &rarr; </a></li>'+
'</ul>'
);
var els = $('a', nPaging);
$(els[0]).bind( 'click.DT', { action: "previous" }, fnClickHandler );
$(els[1]).bind( 'click.DT', { action: "next" }, fnClickHandler );
},
"fnUpdate": function ( oSettings, fnDraw ) {
var iListLength = 5;
var oPaging = oSettings.oInstance.fnPagingInfo();
var an = oSettings.aanFeatures.p;
var i, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2);
if ( oPaging.iTotalPages < iListLength) {
iStart = 1;
iEnd = oPaging.iTotalPages;
}
else if ( oPaging.iPage <= iHalf ) {
iStart = 1;
iEnd = iListLength;
} else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) {
iStart = oPaging.iTotalPages - iListLength + 1;
iEnd = oPaging.iTotalPages;
} else {
iStart = oPaging.iPage - iHalf + 1;
iEnd = iStart + iListLength - 1;
}
for ( i=0, iLen=an.length ; i<iLen ; i++ ) {
// Remove the middle elements
$('li:gt(0)', an[i]).filter(':not(:last)').remove();
// Add the new list items and their event handlers
for ( j=iStart ; j<=iEnd ; j++ ) {
sClass = (j==oPaging.iPage+1) ? 'class="active"' : '';
$('<li '+sClass+'><a href="#">'+j+'</a></li>')
.insertBefore( $('li:last', an[i])[0] )
.bind('click', function (e) {
e.preventDefault();
oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength;
fnDraw( oSettings );
} );
}
// Add / remove disabled classes from the static elements
if ( oPaging.iPage === 0 ) {
$('li:first', an[i]).addClass('disabled');
} else {
$('li:first', an[i]).removeClass('disabled');
}
if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) {
$('li:last', an[i]).addClass('disabled');
} else {
$('li:last', an[i]).removeClass('disabled');
}
}
}
}
} );
/* Table initialisation */
$(document).ready(function() {
$('#example').dataTable( {
"sDom": "<'row'<'span6'l><'span6'f>r>t<'row'<'span6'i><'span6'p>>",
"sPaginationType": "bootstrap",
"oLanguage": {
"sLengthMenu": "_MENU_ records per page"
}
} );
} );

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,125 @@
<?php
/**
*
* Provides a simple error class for Savant.
*
* @package Savant3
*
* @author Paul M. Jones <pmjones@ciaweb.net>
*
* @license http://www.gnu.org/copyleft/lesser.html LGPL
*
* @version $Id: Error.php,v 1.5 2005/05/27 14:03:50 pmjones Exp $
*
*/
/**
*
* Provides a simple error class for Savant.
*
* @package Savant3
*
* @author Paul M. Jones <pmjones@ciaweb.net>
*
*/
class Savant3_Error {
/**
*
* The error code, typically a Savant 'ERR_*' string.
*
* @access public
*
* @var string
*
*/
public $code = null;
/**
*
* An array of error-specific information.
*
* @access public
*
* @var array
*
*/
public $info = array();
/**
*
* The error severity level.
*
* @access public
*
* @var int
*
*/
public $level = E_USER_ERROR;
/**
*
* A debug backtrace for the error, if any.
*
* @access public
*
* @var array
*
*/
public $trace = null;
/**
*
* Constructor.
*
* @access public
*
* @param array $conf An associative array where the key is a
* Savant3_Error property and the value is the value for that
* property.
*
*/
public function __construct($conf = array())
{
// set public properties
foreach ($conf as $key => $val) {
$this->$key = $val;
}
// add a backtrace
if ($conf['trace'] === true) {
$this->trace = debug_backtrace();
}
}
/**
*
* Magic method for output dump.
*
* @access public
*
* @return void
*/
public function __toString()
{
ob_start();
echo get_class($this) . ': ';
print_r(get_object_vars($this));
return ob_get_clean();
}
}
?>

View File

@ -0,0 +1,29 @@
<?php
/**
*
* Throws PHP5 exceptions for Savant.
*
* @package Savant3
*
* @author Paul M. Jones <pmjones@ciaweb.net>
*
* @license http://www.gnu.org/copyleft/lesser.html LGPL
*
* @version $Id: Exception.php,v 1.1 2005/05/27 14:04:36 pmjones Exp $
*
*/
/**
*
* A simple Savant3_Exception class.
*
* @package Savant3
*
* @author Paul M. Jones <pmjones@ciaweb.net>
*
*/
class Savant3_Exception extends Exception {
}
?>

View File

@ -0,0 +1,85 @@
<?php
/**
*
* Abstract Savant3_Filter class.
*
* @package Savant3
*
* @author Paul M. Jones <pmjones@ciaweb.net>
*
* @license http://www.gnu.org/copyleft/lesser.html LGPL
*
* @version $Id: Filter.php,v 1.5 2005/04/29 16:23:50 pmjones Exp $
*
*/
/**
*
* Abstract Savant3_Filter class.
*
* You have to extend this class for it to be useful; e.g., "class
* Savant3_Filter_example extends Savant3_Filter".
*
* @package Savant3
*
* @author Paul M. Jones <pmjones@ciaweb.net>
*
*/
abstract class Savant3_Filter {
/**
*
* Optional reference to the calling Savant object.
*
* @access protected
*
* @var object
*
*/
protected $Savant = null;
/**
*
* Constructor.
*
* @access public
*
* @param array $conf An array of configuration keys and values for
* this filter.
*
* @return void
*
*/
public function __construct($conf = null)
{
settype($conf, 'array');
foreach ($conf as $key => $val) {
$this->$key = $val;
}
}
/**
*
* Stub method for extended behaviors.
*
* @access public
*
* @param string $text The text buffer to filter.
*
* @return string The text buffer after it has been filtered.
*
*/
public static function filter($text)
{
return $text;
}
}
?>

View File

@ -0,0 +1,67 @@
<?php
/**
*
* Abstract Savant3_Plugin class.
*
* @package Savant3
*
* @author Paul M. Jones <pmjones@ciaweb.net>
*
* @license http://www.gnu.org/copyleft/lesser.html LGPL
*
* @version $Id: Plugin.php,v 1.5 2005/04/29 16:23:50 pmjones Exp $
*
*/
/**
*
* Abstract Savant3_Plugin class.
*
* You have to extend this class for it to be useful; e.g., "class
* Savant3_Plugin_example extends Savant2_Plugin". Be sure to add a
* method named for the plugin itself; e.g., "function example()".
*
* @package Savant3
*
* @author Paul M. Jones <pmjones@ciaweb.net>
*
*/
abstract class Savant3_Plugin {
/**
*
* Reference to the calling Savant object.
*
* @access protected
*
* @var object
*
*/
protected $Savant = null;
/**
*
* Constructor.
*
* @access public
*
* @param array $conf An array of configuration keys and values for
* this plugin.
*
* @return void
*
*/
public function __construct($conf = null)
{
settype($conf, 'array');
foreach ($conf as $key => $val) {
$this->$key = $val;
}
}
}
?>

View File

@ -0,0 +1,147 @@
<?php
/**
*
* Filter to remove extra white space within the text.
*
* @package Savant3
*
* @author Monte Ohrt <monte@ispi.net>
*
* @author Contributions from Lars Noschinski <lars@usenet.noschinski.de>
*
* @author Converted to a Savant3 filter by Paul M. Jones <pmjones@ciaweb.net>
*
* @license http://www.gnu.org/copyleft/lesser.html LGPL
*
* @version $Id: Savant3_Filter_trimwhitespace.php,v 1.4 2005/05/29 15:27:07 pmjones Exp $
*
*/
/**
*
* Filter to remove extra white space within the text.
*
* @package Savant3
*
* @author Monte Ohrt <monte@ispi.net>
*
* @author Contributions from Lars Noschinski <lars@usenet.noschinski.de>
*
* @author Converted to a Savant3 filter by Paul M. Jones <pmjones@ciaweb.net>
*
*/
class Savant3_Filter_trimwhitespace extends Savant3_Filter {
/**
*
* Removes extra white space within the text.
*
* Trim leading white space and blank lines from template source
* after it gets interpreted, cleaning up code and saving bandwidth.
* Does not affect <pre></pre>, <script></script>, or
* <textarea></textarea> blocks.
*
* @access public
*
* @param string $buffer The source text to be filtered.
*
* @return string The filtered text.
*
*/
public static function filter($buffer)
{
// Pull out the script blocks
preg_match_all("!<script[^>]+>.*?</script>!is", $buffer, $match);
$script_blocks = $match[0];
$buffer = preg_replace(
"!<script[^>]+>.*?</script>!is",
'@@@SAVANT:TRIM:SCRIPT@@@',
$buffer
);
// Pull out the pre blocks
preg_match_all("!<pre[^>]*>.*?</pre>!is", $buffer, $match);
$pre_blocks = $match[0];
$buffer = preg_replace(
"!<pre[^>]*>.*?</pre>!is",
'@@@SAVANT:TRIM:PRE@@@',
$buffer
);
// Pull out the textarea blocks
preg_match_all("!<textarea[^>]+>.*?</textarea>!is", $buffer, $match);
$textarea_blocks = $match[0];
$buffer = preg_replace(
"!<textarea[^>]+>.*?</textarea>!is",
'@@@SAVANT:TRIM:TEXTAREA@@@',
$buffer
);
// remove all leading spaces, tabs and carriage returns NOT
// preceeded by a php close tag.
$buffer = trim(preg_replace('/((?<!\?>)\n)[\s]+/m', '\1', $buffer));
// replace script blocks
Savant3_Filter_trimwhitespace::replace(
"@@@SAVANT:TRIM:SCRIPT@@@",
$script_blocks,
$buffer
);
// replace pre blocks
Savant3_Filter_trimwhitespace::replace(
"@@@SAVANT:TRIM:PRE@@@",
$pre_blocks,
$buffer
);
// replace textarea blocks
Savant3_Filter_trimwhitespace::replace(
"@@@SAVANT:TRIM:TEXTAREA@@@",
$textarea_blocks,
$buffer
);
return $buffer;
}
/**
*
* Does a simple search-and-replace on the source text.
*
* @access protected
*
* @param string $search The string to search for.
*
* @param string $replace Replace with this text.
*
* @param string &$buffer The source text.
*
* @return string The text after search-and-replace.
*
*/
protected static function replace($search, $replace, &$buffer)
{
$len = strlen($search);
$pos = 0;
$count = count($replace);
for ($i = 0; $i < $count; $i++) {
// does the search-string exist in the buffer?
$pos = strpos($buffer, $search, $pos);
if ($pos !== false) {
// replace the search-string
$buffer = substr_replace($buffer, $replace[$i], $pos, $len);
} else {
break;
}
}
}
}
?>

View File

@ -0,0 +1,109 @@
<?php
/**
*
* Generates an <a href="">...</a> tag.
*
* @package Savant3
*
* @author Paul M. Jones <pmjones@ciaweb.net>
*
* @license http://www.gnu.org/copyleft/lesser.html LGPL
*
* @version $Id: Savant3_Plugin_ahref.php,v 1.4 2005/08/09 12:56:14 pmjones Exp $
*
*/
/**
*
* Generates an <a href="">...</a> tag.
*
* @package Savant3
*
* @author Paul M. Jones <pmjones@ciaweb.net>
*
*/
class Savant3_Plugin_ahref extends Savant3_Plugin {
/**
*
* Generate an HTML <a href="">...</a> tag.
*
* @access public
*
* @param string|array $href A string URL for the resulting tag. May
* also be an array with any combination of the keys 'scheme',
* 'host', 'path', 'query', and 'fragment' (c.f. PHP's native
* parse_url() function).
*
* @param string $text The displayed text of the link.
*
* @param string|array $attr Any extra attributes for the <a> tag.
*
* @return string The <a href="">...</a> tag.
*
*/
public function ahref($href, $text, $attr = null)
{
$html = '<a href="';
if (is_array($href)) {
// add the HREF from an array
$tmp = '';
if (isset($href['scheme'])) {
$tmp .= $href['scheme'] . ':';
if (strtolower($href['scheme']) != 'mailto') {
$tmp .= '//';
}
}
if (isset($href['host'])) {
$tmp .= $href['host'];
}
if (isset($href['path'])) {
$tmp .= $href['path'];
}
if (isset($href['query'])) {
$tmp .= '?' . $href['query'];
}
if (isset($href['fragment'])) {
$tmp .= '#' . $href['fragment'];
}
$html .= htmlspecialchars($tmp);
} else {
// add the HREF from a scalar
$html .= htmlspecialchars($href);
}
$html .= '"';
// add attributes
if (is_array($attr)) {
// from array
foreach ($attr as $key => $val) {
$key = htmlspecialchars($key);
$val = htmlspecialchars($val);
$html .= " $key=\"$val\"";
}
} elseif (! is_null($attr)) {
// from scalar
$html .= htmlspecialchars(" $attr");
}
// set the link text, close the tag, and return
$html .= '>' . $text . '</a>';
return $html;
}
}
?>

View File

@ -0,0 +1,123 @@
<?php
/**
*
* Plugin to generate a formatted date using strftime() conventions.
*
* @package Savant3
*
* @author Paul M. Jones <pmjones@ciaweb.net>
*
* @license http://www.gnu.org/copyleft/lesser.html LGPL
*
* @version $Id: Savant3_Plugin_date.php,v 1.3 2005/03/07 14:40:16 pmjones Exp $
*
*/
/**
*
* Plugin to generate a formatted date using strftime() conventions.
*
* @package Savant3
*
* @author Paul M. Jones <pmjones@ciaweb.net>
*
*/
class Savant3_Plugin_date extends Savant3_Plugin {
/**
*
* The default strftime() format string.
*
* @access public
*
* @var array
*
*/
public $default = '%c';
/**
*
* Custom strftime() format strings to use for dates.
*
* You can preset the format strings via Savant3::setPluginConf().
*
* <code>
* $conf = array(
* 'custom' => array(
* 'mydate' => '%Y-%m-%d',
* 'mytime' => '%R'
* )
* );
*
* $Savant->setPluginConf('date', $conf);
* </code>
*
* ... and in your template, to use a preset custom string by name:
*
* <code>
* echo $this->date($value, 'mydate');
* </code>
*
* @access public
*
* @var array
*
*/
public $custom = array(
'date' => '%Y-%m-%d',
'time' => '%H:%M:%S'
);
/**
*
* Outputs a formatted date using strftime() conventions.
*
* @access public
*
* @param string $datestring Any date-time string suitable for
* strtotime().
*
* @param string $format The strftime() formatting string, or a named
* custom string key from $this->custom.
*
* @return string The formatted date string.
*
*/
function date($datestring, $format = null)
{
settype($format, 'string');
if (is_null($format)) {
$format = $this->default;
}
// does the format string have a % sign in it?
if (strpos($format, '%') === false) {
// no, look for a custom format string
if (! empty($this->custom[$format])) {
// found a custom format string
$format = $this->custom[$format];
} else {
// did not find the custom format, revert to default
$format = $this->default;
}
}
// convert the date string to the specified format
if (trim($datestring != '')) {
return strftime($format, strtotime($datestring));
} else {
// no datestring, return VOID
return;
}
}
}
?>

View File

@ -0,0 +1,63 @@
<?php
/**
*
* Plugin to convert an associative array to a string of tag attributes.
*
* @package Savant3
*
* @author Paul M. Jones <pmjones@ciaweb.net>
*
* @license http://www.gnu.org/copyleft/lesser.html LGPL
*
* @version $Id: Savant3_Plugin_htmlAttribs.php,v 1.3 2005/09/12 17:49:27 pmjones Exp $
*
*/
/**
*
* Plugin to convert an associative array to a string of tag attributes.
*
* @package Savant3
*
* @author Paul M. Jones <pmjones@ciaweb.net>
*
*/
class Savant3_Plugin_htmlAttribs extends Savant3_Plugin {
/**
*
* Converts an associative array to a string of tag attributes.
*
* @access public
*
* @param array $attribs From this array, each key-value pair is
* converted to an attribute name and value.
*
* @return string The XHTML for the attributes.
*
*/
public function htmlAttribs($attribs)
{
$xhtml = '';
foreach ((array) $attribs as $key => $val) {
if ($val === null) {
continue;
}
if (is_array($val)) {
$val = implode(' ', $val);
}
$key = htmlspecialchars($key);
$val = htmlspecialchars($val);
$xhtml .= " $key=\"$val\"";
}
return $xhtml;
}
}
?>

View File

@ -0,0 +1,199 @@
<?php
/**
*
* Plugin to generate an <img ... /> tag.
*
* @package Savant3
*
* @author Paul M. Jones <pmjones@ciaweb.net>
*
* @license http://www.gnu.org/copyleft/lesser.html LGPL
*
* @version $Id: Savant3_Plugin_image.php,v 1.7 2005/08/12 14:34:09 pmjones Exp $
*
*/
/**
*
* Plugin to generate an <img ... /> tag.
*
* Support for alpha transparency of PNG files in Microsoft IE added by
* Edward Ritter; thanks, Edward.
*
* @package Savant3
*
* @author Paul M. Jones <pmjones@ciaweb.net>
*
*/
class Savant3_Plugin_image extends Savant3_Plugin {
/**
*
* The document root.
*
* @access public
*
* @var string
*
*/
protected $documentRoot = null;
/**
*
* The base directory for images within the document root.
*
* @access public
*
* @var string
*
*/
protected $imageDir = null;
/**
*
* Outputs an <img ... /> tag.
*
* Microsoft IE alpha PNG support added by Edward Ritter.
*
* @access public
*
* @param string $file The path to the image on the local file system
* relative to $this->imageDir.
*
* @param string $alt Alternative descriptive text for the image;
* defaults to the filename of the image.
*
* @param int $border The border width for the image; defaults to zero.
*
* @param int $width The displayed image width in pixels; defaults to
* the width of the image.
*
* @param int $height The displayed image height in pixels; defaults to
* the height of the image.
*
* @return string An <img ... /> tag.
*
*/
public function image($file, $alt = null, $height = null, $width = null,
$attr = null)
{
// is the document root set?
if (is_null($this->documentRoot) && isset($_SERVER['DOCUMENT_ROOT'])) {
// no, so set it
$this->documentRoot = $_SERVER['DOCUMENT_ROOT'];
}
// make sure there's a DIRECTORY_SEPARATOR between the docroot
// and the image dir
if (substr($this->documentRoot, -1) != DIRECTORY_SEPARATOR &&
substr($this->imageDir, 0, 1) != DIRECTORY_SEPARATOR) {
$this->documentRoot .= DIRECTORY_SEPARATOR;
}
// make sure there's a separator between the imageDir and the
// file name
if (substr($this->imageDir, -1) != DIRECTORY_SEPARATOR &&
substr($file, 0, 1) != DIRECTORY_SEPARATOR) {
$this->imageDir .= DIRECTORY_SEPARATOR;
}
// the image file type code (PNG = 3)
$type = null;
// get the file information
$info = false;
if (strpos($file, '://') === false) {
// no "://" in the file, so it's local
$file = $this->imageDir . $file;
$tmp = $this->documentRoot . $file;
$info = @getimagesize($tmp);
} else {
// don't attempt to get file info from streams, it takes
// way too long.
$info = false;
}
// did we find the file info?
if (is_array($info)) {
// capture type info regardless
$type = $info[2];
// capture size info where both not specified
if (is_null($width) && is_null($height)) {
$width = $info[0];
$height = $info[1];
}
}
// clean up
unset($info);
// is the file a PNG? if so, check user agent, we will need to
// make special allowances for Microsoft IE.
if (stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE') && $type === 3) {
// support alpha transparency for PNG files in MSIE
$html = '<span style="position: relative;';
if ($height) {
$html .= ' height: ' . $height . 'px;';
}
if ($width) {
$html .= ' width: ' . $width . 'px;';
}
$html .= ' filter:progid:DXImageTransform.Microsoft.AlphaImageLoader';
$html .= "(src='" . htmlspecialchars($file) . "',sizingMethod='scale');\"";
$html .= ' title="' . htmlspecialchars($alt) . '"';
$html .= $this->Savant->htmlAttribs($attr);
// done
$html .= '></span>';
} else {
// not IE, so build a normal image tag.
$html = '<img';
$html .= ' src="' . htmlspecialchars($file) . '"';
// add the alt attribute
if (is_null($alt)) {
$alt = basename($file);
}
$html .= ' alt="' . htmlspecialchars($alt) . '"';
// add the height attribute
if ($height) {
$html .= ' height="' . htmlspecialchars($height) . '"';
}
// add the width attribute
if ($width) {
$html .= ' width="' . htmlspecialchars($width) . '"';
}
$html .= $this->Savant->htmlAttribs($attr);
// done
$html .= ' />';
}
// done!
return $html;
}
}
?>

View File

@ -2,7 +2,7 @@
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
* Copyright (C) 2004 Sebastien DiCintio <sdicintio@ressource-toi.org>
* Copyright (C) 2007-2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2007-2012 Laurent Destailleur <eldy@users.sourceforge.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -24,9 +24,11 @@
* \brief File that define environment for support pages
*/
define('DOL_VERSION','3.3.0-alpha'); // Also defined in htdocs/master.inc.php (Ex: x.y.z-alpha, x.y.z)
// Just to define version DOL_VERSION
if (! defined('DOL_INC_FOR_VERSION_ERROR')) define('DOL_INC_FOR_VERSION_ERROR','1');
require_once('../filefunc.inc.php');
// Define DOL_DOCUMENT_ROOT an ADODB_PATH used for install/upgrade process
// Define DOL_DOCUMENT_ROOT and ADODB_PATH used for install/upgrade process
if (! defined('DOL_DOCUMENT_ROOT')) define('DOL_DOCUMENT_ROOT', '..');
if (! defined('ADODB_PATH'))
{
@ -35,22 +37,20 @@ if (! defined('ADODB_PATH'))
define('ADODB_PATH', $foundpath);
}
require_once('../core/class/translate.class.php');
require_once('../core/lib/functions.lib.php');
require_once('../core/lib/admin.lib.php');
require_once('../core/lib/files.lib.php');
require_once(DOL_DOCUMENT_ROOT.'/core/class/translate.class.php');
require_once(DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php');
require_once(DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php');
require_once(DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php');
require_once(ADODB_PATH.'adodb-time.inc.php');
error_reporting(E_ALL); // To have all errors without disabled E_STRICT
// IMPORTANT with strict mode E_STRICT
// Avoid warnings with strict mode E_STRICT
$conf = new stdClass(); // instantiate $conf explicitely
$conf->global = (object) array();
$conf->file = (object) array();
$conf->db = (object) array();
$conf->syslog = (object) array();
// Define $_REQUEST["logtohtml"]
// Force $_REQUEST["logtohtml"]
$_REQUEST["logtohtml"]=1;
// Correction PHP_SELF (ex pour apache via caudium) car PHP_SELF doit valoir URL relative
@ -61,27 +61,6 @@ if (isset($_SERVER["DOCUMENT_URI"]) && $_SERVER["DOCUMENT_URI"])
}
// Define syslog constants
if (! defined('LOG_DEBUG'))
{
if (function_exists("define_syslog_variables"))
{
define_syslog_variables(); // Deprecated since php 5.3.0, syslog variables no longer need to be initialized
}
else
{
// Pour PHP sans syslog (comme sous Windows)
define('LOG_EMERG',0);
define('LOG_ALERT',1);
define('LOG_CRIT',2);
define('LOG_ERR',3);
define('LOG_WARNING',4);
define('LOG_NOTICE',5);
define('LOG_INFO',6);
define('LOG_DEBUG',7);
}
}
$includeconferror='';
@ -100,7 +79,9 @@ if (! defined('DONOTLOADCONF') && file_exists($conffile))
$result=include_once($conffile); // Load conf file
if ($result)
{
// Clean parameters
if (empty($dolibarr_main_db_type)) $dolibarr_main_db_type='mysql'; // For backward compatibility
// Clean parameters
$dolibarr_main_data_root =isset($dolibarr_main_data_root)?trim($dolibarr_main_data_root):'';
$dolibarr_main_url_root =isset($dolibarr_main_url_root)?trim($dolibarr_main_url_root):'';
$dolibarr_main_url_root_alt =isset($dolibarr_main_url_root_alt)?trim($dolibarr_main_url_root_alt):'';
@ -251,7 +232,8 @@ if (function_exists('get_magic_quotes_gpc')) // magic_quotes_* removed in PHP 5.
// Defini objet langs
$langs = new Translate('..',$conf);
$langs->setDefaultLang('auto');
if (GETPOST('lang')) $langs->setDefaultLang(GETPOST('lang'));
else $langs->setDefaultLang('auto');
$bc[false]=' class="bg1"';
$bc[true]=' class="bg2"';
@ -316,9 +298,9 @@ function conf($dolibarr_main_document_root)
/**
* Show header of install pages
* Show HTML header of install pages
*
* @param string $soutitre Sous titre
* @param string $soutitre Title
* @param string $next Next
* @param string $action Action code ('set' or 'upgrade')
* @param string $param Param
@ -338,7 +320,7 @@ function pHeader($soutitre,$next,$action='set',$param='')
print '<html>'."\n";
print '<head>'."\n";
print '<meta http-equiv="content-type" content="text/html; charset='.$conf->file->character_set_client.'">'."\n";
print '<link rel="stylesheet" type="text/css" href="./default.css">'."\n";
print '<link rel="stylesheet" type="text/css" href="default.css">'."\n";
print '<link rel="stylesheet" type="text/css" href="../includes/jquery/css/smoothness/jquery-ui-latest.custom.css" type="text/css">'."\n";
print '<script type="text/javascript" src="../includes/jquery/js/jquery-latest.min.js"></script>'."\n";
print '<script type="text/javascript" src="../includes/jquery/js/jquery-ui-latest.custom.min.js"></script>'."\n";
@ -361,10 +343,10 @@ function pHeader($soutitre,$next,$action='set',$param='')
}
/**
* Output footer of install pages
* Print HTML footer of install pages
*
* @param string $nonext No next
* @param string $setuplang Setup lang
* @param string $nonext No button "Next step"
* @param string $setuplang Language code
* @param string $jscheckfunction Add a javascript check function
* @return void
*/

View File

@ -156,6 +156,8 @@ ALTER TABLE llx_categorie_fournisseur DROP INDEX fk_categorie;
ALTER TABLE llx_categorie_fournisseur ADD PRIMARY KEY pk_categorie_fournisseur (fk_categorie, fk_societe);
ALTER TABLE llx_categorie_fournisseur ADD INDEX idx_categorie_fournisseur_fk_categorie (fk_categorie);
ALTER TABLE llx_categorie_fournisseur ADD INDEX idx_categorie_fournisseur_fk_societe (fk_societe);
DELETE FROM llx_categorie_fournisseur WHERE fk_categorie NOT IN (SELECT rowid FROM llx_categorie);
DELETE FROM llx_categorie_fournisseur WHERE fk_societe NOT IN (SELECT rowid FROM llx_societe);
ALTER TABLE llx_categorie_fournisseur ADD CONSTRAINT fk_categorie_fournisseur_categorie_rowid FOREIGN KEY (fk_categorie) REFERENCES llx_categorie (rowid);
ALTER TABLE llx_categorie_fournisseur ADD CONSTRAINT fk_categorie_fournisseur_fk_soc FOREIGN KEY (fk_societe) REFERENCES llx_societe (rowid);

View File

@ -105,8 +105,10 @@ ErrorBothFieldCantBeNegative=Els camps %s i %s no poden ser negatius
ErrorNoActivatedBarcode=Cap tipus de codi de barres activat
ErrorWebServerUserHasNotPermission=El compte d'execució del servidor web <b>%s</b> no disposa dels permisos per això
ErrorNoActivatedBarcode=No hi ha activat cap tipus de codi de barres
ErrorOSSystem=La instal·lació en línia no suporta el seu sistema operatiu. <br> Instal·leu l'extensió manualment.
ErrorUncompFile=No és possible instal·lar el paquet %s
ErrUnzipFails=No s'ha pogut descomprimir el fitxer %s amb ZipArchive
ErrNoZipEngine=En aquest PHP no hi ha motor per descomprimir l'arxiu %s
ErrorFileMustBeADolibarrPackage=El fitxer %s ha de ser un paquet Dolibarr en format zip
ErrorFileRequired=Es requereix un fitxer de paquet Dolibarr en format zip
# Warnings
WarningSafeModeOnCheckExecDir=Atenció, està activada l'opció PHP <b>safe_mode</b>, la comanda ha d'estar dins d'un directori declarat dins del paràmetre php <b>safe_mode_exec_dir</b>.

View File

@ -80,4 +80,5 @@ ConfirmDeleteWarehouse=Esteu segur que voleu eliminar el magatzem <b>%s</b> ?
PersonalStock=Stoc personal %s
ThisWarehouseIsPersonalStock=Aquest magatzem representa l'estoc personal de %s %s
SelectWarehouseForStockDecrease=Seleccioneu el magatzem a usar en el decrement d'estoc
SelectWarehouseForStockIncrease=Seleccioneu el magatzem a utilitzar en l'increment d'estoc
SelectWarehouseForStockIncrease=Seleccioneu el magatzem a utilitzar en l'increment d'estoc
LastWaitingSupplierOrders=Comandes en espera de recepció

View File

@ -13,8 +13,19 @@ VersionLastUpgrade=Version der letzten Aktualisierung
VersionExperimental=Experimentell
VersionDevelopment=Entwicklung
VersionUnknown=Unbekannt
VersionRecommanded=Empfohlen
VersioSessionSaveHandlernRecommanded=Empfohlen
SessionId=Sitzungs ID
SessionSaveHandler=Handler für Sitzungsspeicherung
SessionSavePath=Pfad für Sitzungsdatenspeicherung
PurgeSessions=Sitzungsdaten löschen
ConfirmPurgeSessions=Wollen Sie wirklich alle Sitzungsdaten löschen? Damit wird zugleich jeder Benutzer (außer Ihnen) vom System abgemeldet.
NoSessionListWithThisHandler=Anzeige der aktiven Sitzungen mit Ihrer PHP-Konfiguration nicht möglich.
LockNewSessions=Keine neuen Sitzungen zulassen
ConfirmLockNewSessions=Möchten Sie wirklich alle Sitzungen bis auf Ihre eigene blocken? Nur Benutzer <b>%s</b> kann danach noch eine Verbindung aufbauen.
UnlockNewSessions=Sperrung neuer Sitzungen aufheben
YourSession=Ihre Sitzung
Sessions=Sitzungen
NoSessionFound=Ihre PHP -Konfiguration scheint keine Liste aktiver Sitzungen zuzulassen. Eventuell ist die Speicherung im Verzeichnis (<b>%s</b>) aktiviert und fehlerhafte Dateizugriffsberechtigungen blockieren den Zugriff (z.B. open_basedir-Beschränkungen).
HTMLCharset=Zeichensatz für die generierten HTML-Seiten
DBStoringCharset=Zeichensatz der Datenbank-Speicherung
DBSortingCharset=Zeichensatz der Datenbank-Sortierung
@ -29,6 +40,10 @@ ExternalUsers=Externe Benutzer
GlobalSetup=Allgemeine Einstellungen
GUISetup=Anzeige
SetupArea=Einstellungsübersicht
FormToTestFileUploadForm=Formular für das Testen von Datei-Uplads (je nach Konfiguration)
IfModuleEnabled=Anmerkung: Ist nur wirksam wenn Modul <b>%s</b> aktiviert ist
RemoveLock=Entfernen Sie die Datei <b>%s</b> falls vorhanden, um das Aktualisierungs-Tool auszuführen
RestoreLock=Ersetzen Sie die Datei <b>%s</b> mit einer Datei ohne Schreibberechtigung um jegliche Nutzung des Aktualisierungs-Tools zu verhindern.
SecuritySetup=Sicherheitseinstellungen
ErrorModuleRequirePHPVersion=Fehler: Dieses Modul benötigt PHP Version %s oder höher
ErrorModuleRequireDolibarrVersion=Fehler: Dieses Moduls erfordert Dolibarr Version %s oder höher
@ -36,18 +51,23 @@ ErrorDecimalLargerThanAreForbidden=Fehler: Eine höhere Genauigkeit als <b>%s</b
DictionnarySetup=Wörterbucheinstellungen
DisableJavascript=JavaScript- und Ajax-Funktionen deaktivieren
ConfirmAjax=Ajax-Bestätigungs-Popups verwenden
UseSearchToSelectCompany=Suchfeld statt Listenansicht für Partnerauswahl verwenden
ActivityStateToSelectCompany= Setzt einen Filter um Partner ein-/ausblenden, welche aktiv oder inaktiv sind.
SearchFilter=Suchfilter Optionen
NumberOfKeyToSearch=Anzahl der Buchstaben um eine Suche auszulösen: %s
ViewFullDateActions=Zeige alle Terminaktionen in der Partneransicht
NotAvailableWhenAjaxDisabled=Bei deaktiviertem Ajax nicht verfügbar
JavascriptDisabled=JavaScript deaktiviert
UsePopupCalendar=Popups für die Datumseingabe verwenden
UsePreviewTabs=Vorschautabs verwenden
ShowPreview=Zeige Vorschau
PreviewNotAvailable=Vorschau nicht verfügbar
ThemeCurrentlyActive=Derzeit aktivierte Oberfläche
CurrentTimeZone=Aktuelle Zeitzone des PHP-Servers
Space=Raum
Fields=Felder
Mask=Maske
NextValue=Nächste Wert
NextValue=Nächster Wert
NextValueForInvoices=Nächster Wert (Rechnungen)
NextValueForCreditNotes=Nächster Wert (Gutschriften)
MustBeLowerThanPHPLimit=Hinweis: Ihre PHP-Einstellungen beschränken die Größe für Dateiuploads auf <b>%s</b>%s
@ -55,6 +75,10 @@ NoMaxSizeByPHPLimit=Hinweis: In Ihren PHP-Einstellungen sind keine Größenbesch
MaxSizeForUploadedFiles=Maximale Größe für Dateiuploads (0 verbietet jegliche Uploads)
UseCaptchaCode=Captcha-Code auf der Anmeldeseite verwenden
UseAvToScanUploadedFiles=Virenschutz zur Überprüfung von Dateiuploads verwenden
AntiVirusCommand=Vollständiger Pfad zum installierten Virenschutz
AntiVirusCommandExample=Beispiel für ClamWin: c:\Program Files (x86)\ClamWin\bin\clamscan.exe <br>Beispiel für ClamAV: /usr/bin/clamscan
AntiVirusParam=Weitere Parameter auf der Kommandozeile
AntiVirusParamExample=Beispiel für ClamWin: --database="C:\Program Files (x86)\ClamWin\lib"
ComptaSetup=Buchhaltungsmoduls-Einstellungen
UserSetup=Benutzerverwaltungs-Einstellunen
MenuSetup=Menüverwaltungs-Einstellungen
@ -75,19 +99,23 @@ CurrentValueSeparatorDecimal=Dezimaltrennzeichen
CurrentValueSeparatorThousand=Tausendertrennzeichen
Modules=Module
ModulesCommon=Hauptmodule
ModulesInterfaces=Schnittstellenmodule
ModulesOther=Weitere Module
ModulesJob=Geschäfttypenmodule
ModulesInterfaces=Schnittstellenmodule
ModulesSpecial=Spezialmodule
ParameterInDolibarr=Parameter %s
LanguageParameter=Sprachparameter %s
LanguageBrowserParameter=Parameter %s
LocalisationDolibarrParameters=Länderspezifische Parameter
ClientTZ=Zeitzone Kunde (Benutzer)
ClientHour=Uhrzeit (Benutzer)
OSTZ=Zeitzone des Serverbetriebssystems
PHPTZ=Zeitzone der PHP-Version
PHPServerOffsetWithGreenwich=PHP-Server Zeit-Offset Greenwich-Breite (Sekunden)
ClientOffsetWithGreenwich=Benutzer/Browser Zeit-Offset Greenwich-Breite (Sekunden)
DaylingSavingTime=Sommerzeit (Benutzer)
CurrentHour=Aktuelle Stunde
CompanyTZ=Unternehmenszeitzone (Hauptunternehmen)
CompanyHour=Unternehmenszeit (Hauptunternehmen)
CurrentSessionTimeOut=Aktuelle Session timeout
OSEnv=Betriebssystemumgebung
Box=Box
@ -105,6 +133,7 @@ SystemTools=Systemwerkzeuge
SystemToolsArea=Systemwerkzeugsübersicht
SystemToolsAreaDesc=In diesem Bereich finden Sie die Verwaltungsfunktionen. Verwenden Sie das linke Menü zur Auswahl der gesuchten Funktion.
PurgeAreaDesc=Hier können Sie alle vom System erzeugten und gespeicherten Dateien löschen (temporäre Dateien oder alle Dateien im Verzeichnis <b>%s</b>). Diese Funktion ist nicht erforderlich und richtet sich vorwiegend an Benutzer ohne Zugriff auf das Dateisystem des Webservers (z.B. Hostingpakete)
PurgeDeleteLogFile=Löschen der Protokolldatei <b>%s</b> des Systemprotokollmoduls (kein Risiko des Datenverlusts)
PurgeDeleteTemporaryFiles=Alle temporären Dateien löschen (kein Datenverlustrisiko)
PurgeDeleteAllFilesInDocumentsDir=Alle Datein im Verzeichnis <b>%s</b> löschen. Dies beinhaltet temporäre Dateien ebenso wie Datenbanksicherungen, Dokumente (Partner, Rechnungen, ...) und alle Inhalte des ECM-Moduls.
PurgeRunNow=Jetzt löschen
@ -117,21 +146,26 @@ GenerateBackup=Sicherung erzeugen
Backup=Sichern
Restore=Wiederherstellen
RunCommandSummary=Die Sicherung wird über folgenden Befehl ausgeführt
RunCommandSummaryToLaunch=Die Sicherung kann über folgenden Befehl ausgeführt werden
WebServerMustHavePermissionForCommand=Ihr Webserver muss die Ausführung des entsprechenden Befehls unterstützen
BackupResult=Sicherungszusammenfassung
BackupFileSuccessfullyCreated=Sicherungsdatei erfolgreich erzeugt
YouCanDownloadBackupFile=Sie können die erstellte Sicherungsdatei jetzt herunterladen
NoBackupFileAvailable=Keine verfügbare Sicherungsdatei
ExportMethod=Exportmethode
ImportMethod=Importmethode
ToBuildBackupFileClickHere=Um eine Sicherungsdatei zu erstellen klicken Sie bitte <a href="%s">hier</a>.
ImportMySqlDesc=Zum Wiederherstellen einer Sicherungsdatei müssen Sie folgenden Befehl über die Kommandozeile ausführen:
ImportMySqlDesc=Zum Wiederherstellen einer Sicherungsdatei müssen Sie folgenden MySql Befehl über die Kommandozeile ausführen:
ImportPostgreSqlDesc=Zum Wiederherstellen einer Sicherungsdatei müssen Sie folgenden pg_restore Befehl über die Kommandozeile ausführen:
ImportMySqlCommand=%s %s < mybackupfile.sql
ImportPostgreSqlCommand=%s %s mybackupfile.sql
FileNameToGenerate=Name der zu erstellenden Datei
CommandsToDisableForeignKeysForImport=Befehl zur Deaktivierung der Fremdschlüsselüberprüfung
ExportCompatibility=Kompatibilität der erzeugten Exportdatei
MySqlExportParameters=MySQL-Exportparameter
UseTransactionnalMode=Transaktionsmodus verwenden
FullPathToMysqldumpCommand=Vollständiger Pfad zum mysqldump-Befehl
FullPathToPostgreSQLdumpCommand=Vollständiger Pfad zum pg_dump-Befehl
ExportOptions=Exportoptionen
AddDropDatabase=DROP DATABASE Befehl hinzufügen
AddDropTable=DROP TABLE Befehl hinzufügen
@ -140,6 +174,7 @@ NameColumn=Name der Spalten
ExtendedInsert=Erweiterte INSERTS
DelayedInsert=Verzögerte INSERTS
EncodeBinariesInHexa=Hexadezimal-Verschlüsselung für Binärdateien
IgnoreDuplicateRecords=Datensatzduplikate ignorieren (INSERT IGNORE)
Yes=Ja
No=Nein
AutoDetectLang=Automatische Erkennung (Browser-Sprache)
@ -151,6 +186,11 @@ ModulesDesc=Hier können Sie die verfügbaren Module und Funktionen auswählen.
ModulesInterfaceDesc=Die Schnittstellenmodule erlauben Ihnen das Einbinden weiterer Funktionen auf Basis externer Software, Systeme oder Services
ModulesSpecialDesc=Spezialmodule sind für sehr spezifische Anwendungsfälle gedacht und oft nicht verwendet
ModulesJobDesc=Die Geschäftstypenmodule erlauben eine einfache Einrichtung des Systems für gängige Anwendungsfälle/Unternehmenstypen.
ModulesMarketPlaceDesc=Hier finden Sie weitere Module auf externen Web-Sites
ModulesMarketPlaces=Sie können zusätzliche Module im Web finden...
DoliStoreDesc=DoliStore, der offizielle Marktplatz für dolibarr Module/Erweiterungen
WebSiteDesc=Website-Anbieter für Ihre Suche nach weiteren Modulen
URL=Link
BoxesAvailable=Verfügbare Boxen
BoxesActivated=Aktivierte Boxen
ActivateOn=Aktiv ab
@ -164,7 +204,10 @@ Security=Sicherheit
Passwords=Passwörter
DoNotStoreClearPassword=Passwörter in der Datenbank nicht im Klartext speichern (Empfohlene Einstellung)
MainDbPasswordFileConfEncrypted=Datenbankpasswort in der Konfigurationsdatei verschlüsselt speichern (Empfohlene Einstellung)
ConfigFileIsInReadOnly=Die Konfigurationsdatei conf.php kann nur gelesen werden, bitte überprüfen Sie die Berechtigungen.
InstrucToEncodePass=Um das Passwort in der Konfigurationsdatei <b>conf.php</b> zu verschlüsseln, ersetzen Sie die Zeile <br><b>$dolibarr_main_db_pass="..."</b><br>durch<br><b>$dolibarr_main_db_pass="crypted:%s"</b>
InstrucToClearPass=Um das Passwort unverschlüsselt (Klartext) in der Konfigurationsdatei <b>conf.php</b> zu speichern, ersetzen Sie die Zeile<br><b>$dolibarr_main_db_pass="crypted:..."</b><br>durch<br><b>$dolibarr_main_db_pass="%s"</b>
ProtectAndEncryptPdfFiles=PDF-Dokumentschutz aktivieren (Die Aktivierung ist nicht empfohlen, weil dadurch die Stapelerzeugung von PDFs nicht mehr funktioniert)
ProtectAndEncryptPdfFilesDesc=Die Aktivierung des PDF-Dokumentschutzes erhält die Lesbarkeit und Druckfähigkeit des Dokuments, Bearbeitung und Kopien sind jedoch nicht mehr möglich. Bitte beachten Sie, dass über die Aktivierung dieser Funktion auch die Stapelverarbeitung von PDF-Dokumenten (z.B. aller offenen Rechnungen) nicht mehr funktioniert
Feature=Funktion
DolibarrLicense=Lizenz
DolibarrProjectLeader=Projektleiter
@ -172,9 +215,17 @@ Developpers=Entwickler/Mitwirkende
OtherDeveloppers=Andere Entwickler/Mitwirkende
OfficialWebSite=Offizielle Website
OfficialWebSiteFr=Französische Website
OfficialWikiFr=Französisches Wiki
OfficialWiki=Dolibarr Wiki
OfficialDemo=Dolibarr Offizielle Demo
OfficialMarketPlace=Offizieller Marktplatz für Module/Erweiterungen
ForDocumentationSeeWiki=Für Benutzer-und Entwickler-Dokumentation (DOC, ...), FAQs <br> Werfen Sie einen Blick auf die Dolibarr Wiki: <br> <a href="%s" target="_blank"><b> %s</b></a>
ForAnswersSeeForum=Für alle anderen Fragen / Hilfe, können Sie die Dolibarr Forum: <br> <a href="%s" target="_blank"><b> %s</b></a>
HelpCenterDesc1=In diesem Bereich können Sie sich ein Hilfe-Support-Service auf Dolibarr.
HelpCenterDesc2=Ein Teil dieses Dienstes sind <b>nur</b> in <b>Englisch</b> verfügbar.
CurrentTopMenuHandler=Aktuelle Top-Menü-Handler
CurrentLeftMenuHandler=Aktuelle linken Menü-Handler
CurrentMenuHandler=Aktuelle Menü-Handler
CurrentSmartphoneMenuHandler=Aktuelle Smartphone-Menü-Handler
MeasuringUnit=Maßeinheit
Emails=E-Mails
EMailsSetup=E-Mail-Adressen einrichten
@ -184,8 +235,18 @@ MAIN_MAIL_SMTP_SERVER=SMTP-Host (standardmäßig in php.ini: <b>%s</b>)
MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS-Port (nicht in PHP definiert in Unix-Umgebungen)
MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP-Host (nicht in PHP definiert auf Unix-Umgebungen)
MAIN_MAIL_EMAIL_FROM=E-Mail-Absender für automatisch erzeugte Mails (standardmäßig in php.ini: <b>%s</b>)
MAIN_MAIL_ERRORS_TO=E-Mail-Absender für rückkehrende fehlerhafte E-Mails
MAIN_MAIL_AUTOCOPY_TO=Senden Sie automatisch eine Blindkopie aller gesendeten Mails an
MAIN_DISABLE_ALL_MAILS=Alle E-Mail-Funktionen abschalten (für Test- oder Demozwecke)
MAIN_MAIL_SENDMODE=Methode zum Senden von E-Mails
MAIN_MAIL_SMTPS_ID=SMTP ID, wenn Authentifizierung erforderlich
MAIN_MAIL_SMTPS_PW=SMTP Passwort, wenn Authentifizierung erforderlich
MAIN_MAIL_EMAIL_TLS=TLS (SSL)-Verschlüsselung verwenden
MAIN_DISABLE_ALL_SMS=Alle SMS-Funktionen abschalten (für Test- oder Demozwecke)
MAIN_SMS_SENDMODE=Methode zum Senden von SMS
MAIN_MAIL_SMS_FROM=Standard Versendetelefonnummer der SMS-Funktion
FeatureNotAvailableOnLinux=Diese Funktion ist auf Unix-Umgebungen nicht verfügbar. Testen Sie Ihr Programm sendmail lokal.
SubmitTranslation=Sollte die Übersetzung für eine Sprache nicht vollständig sein oder Fehler beinhalten, können Sie die entsprechenden Sprachdateien im Verzeichnis <b>langs/%s</b> bearbeiten und anschließend Ihre Änderungen mit der Entwicklergemeinschaft auf www.dolibarr.org teilen.
ModuleSetup=Moduleinstellunen
ModulesSetup=Moduleinstellungen
ModuleFamilyBase=System
@ -202,6 +263,7 @@ MenuHandlers=Menü-Handler
MenuAdmin=Menü-Editor
ThisIsProcessToFollow=So führen Sie die Installation/Aktualisierung des Systems durch:
StepNb=Schritt %s
FindPackageFromWebSite=Finden Sie ein Paket, das die gewünschten Funktionen beinhaltet (zum Beispiel auf der offiziellen Website %s).
DownloadPackageFromWebSite=Herunterladen des Installationspakets von der Website %s
UnpackPackageInDolibarrRoot=Entpacken des Pakets in den Stammordner der Systeminstallation <b>%s</b>
SetupIsReadyForUse=Die Installation ist abgeschlossen und das System zur Verwendung der neuen Komponente bereit.
@ -209,6 +271,11 @@ CurrentVersion=Aktuelle dolibarr-Version
CallUpdatePage=Zur Aktualisierung der Daten und Datenbankstrukturen gehen Sie zur Seite %s.
LastStableVersion=Letzte stabile Version
GenericMaskCodes=Sie können ein beliebiges Numerierungsschema wählen. Dieses Schema könnte z.B. so aussehen:<br><b>{000000}</b> steht für eine 6-stellige Nummer, die sich bei jedem neuen %s automatisch erhöht. Wählen Sie die Anzahl der Nullen je nach gewünschter Nummernlänge. Der Zähler füllt sich automatisch bis zum linken Ende mit Nullen um das gewünschte Format abzubilden. <br><b>{000000+000}</b> führt zu einem ähnlichen Ergebnis, allerdings mit einem Wertsprung in Höhe des Werts rechts des Pluszeichens, der beim ersten %s angewandt wird. <br><b>{000000@x}</b> wie zuvor, jedoch stellt sich der Zähler bei Erreichen des Monats x (zwischen 1 und 12) automatisch auf 0 zurück. Ist diese Option gewählt und x hat den Wert 2 oder höher, ist die Folge {mm}{yy} or {mm}{yyyy} ebenfalls erfoderlich. <br><b>{dd}</b> Tag (01 bis 31).<br><b>{mm}</b> Monat (01 bis 12).<br><b>{yy}</b>, <b>{yyyy}</b> or <b>{y}</b> Jahreszahl 1-, 2- oder 4-stellig. <br>
GenericMaskCodes2=<b>(cccc)</b> den Client-Code <br> <b>() cccc000</b> den Client-Code auf n Zeichen ist, gefolgt von einer Client-ref Zähler ohne Offset-und zeroized mit der globalen Zähler. <br>
GenericMaskCodes3=Alle anderen Zeichen in der Maske bleiben. <br> Leerzeichen sind nicht zulässig. <br>
GenericMaskCodes4a=<u>Beispiel auf der 99. %s des Dritten thecompany Geschehen 2007-01-31:</u> <br>
GenericMaskCodes4b=<u>Beispiel für Dritte erstellt am 2007-03-01:</u> <br>
GenericMaskCodes5=<b>ABC (yy) (mm) - (000000)</b> wird <b>ABC0701-000099</b> <br> <b>(0000 +100)-ZZZ / tt () / XXX</b> wird <b>0199-ZZZ/31/XXX</b>
GenericNumRefModelDesc=Liefert eine anpassbare Nummer nach vordefiniertem Schema
ServerAvailableOnIPOrPort=Server ist verfügbar unter der Adresse <b>%s</b> auf Port <b>%s</b>
ServerNotAvailableOnIPOrPort=Server nicht verfügbar unter Adresse <b>%s</b> auf Port <b>%s</b>
@ -218,6 +285,37 @@ DoTestSendHTML=HTML-Test senden
ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Fehler: Kann Option @ nicht verwenden, wenn Sequenz {mm}{yy} oder {mm}{yyyy} nicht im Schema verwendet werden.
UMask=Umask Parameter für neue Dateien auf Unix/Linux/BSD-Dateisystemen.
UMaskExplanation=Über diesen Parameter können Sie die standardmäßigen Dateiberechtigungen für vom System erzeugte/verwaltete Inhalte festlegen. <br>Erforderlich ist ein Oktalwert (0666 bedeutet z.B. Lesen und Schreiben für alle). <br>Auf Windows-Umgebungen haben diese Einstellungen keinen Effekt.
SeeWikiForAllTeam=Werfen Sie einen Blick auf die Wiki-Seite für eine vollständige Liste aller Akteure und deren Organisationen
UseACacheDelay=Verzögerung für den Export der Cache-Antwort in Sekunden (0 oder leer für kein Caching)
DisableLinkToHelpCenter=Link mit "<b>Benötigen Sie Hilfe oder Unterstützung</b>" auf der Anmeldeseite ausblenden
DisableLinkToHelp=Link zur "<b>%s Online-Hilfe</b>" auf der linken Seite ausblenden
AddCRIfTooLong=Kein automatischer Zeilenumbruch. Entsprechend müssen Sie, falls die Länge Ihrer Zeilen die Dokumentenbreite übersteigt, manuelle Zeilenschaltungen im Textbereich einfügen.
ModuleDisabled=Modul deaktiviert
ModuleDisabledSoNoEvent=Modul deaktiviert und Eintrag deshalb nie erstellt
ConfirmPurge=Möchten Sie die Löschung wirklich durchführen? <br>Dies wird alle Ihre Dateien unwiderbringlich entfernen (ECM-Dateien, Dateien, ...)!
MinLength=Mindestlänge
LanguageFilesCachedIntoShmopSharedMemory=.lang-Sprachdateien in gemeinsamen Cache geladen
ExamplesWithCurrentSetup=Beispiele mit der derzeitigen Systemkonfiguration
ListOfDirectories=Liste der OpenDocument-Vorlagenverzeichnisse
ListOfDirectoriesForModelGenODT=Liste der Verzeichnisse mit Vorlagendateien mit OpenDocument-Format.<br><br>Fügen Sie hier den vollständigen Pfad der Verzeichnisse ein.<br>Trennen Sie jedes Verzeichnis mit einer Zeilenschaltung<br>Verzeichnisse des ECM-Moduls fügen Sie z.B. so ein <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br> Dateien in diesen Verzeichnissen müssen auf <b>.odt</b> enden.
NumberOfModelFilesFound=Anzahl der in diesen Verzeichnissen gefundenen .odt-Dokumentvorlagen
ExampleOfDirectoriesForModelGen=Beispiele für Syntax:<br>c:\mydir<br>/Home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
FollowingSubstitutionKeysCanBeUsed=<br>Lesen Sie die Wiki Dokumentation um zu wissen, wie Sie Ihre odt Dokumentenvorlage erstellen, bevor Sie diese in den Kategorien speichern:
FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template
FirstnameNamePosition=Reihenfolge von Vor- und Nachname
DescWeather=Die folgenden Bilder werden auf der Übersichtansicht angezeigt, wenn die Anzahl der verspäteten Aufgaben diese Werte erreichen:
KeyForWebServicesAccess=Schlüssel um Web Services (Parameter "dolibarrkey" in webservices) zu benützen
TestSubmitForm=Testbereich
ThisForceAlsoTheme=Dieser Menü-Manager wird sein eigenes Theme benutzen, unabhängig der Wahl des Nutzers. Auch wenn dieser Menü-Manager für Smartphones ausgelegt ist kann er nicht auf allen Smartphones angezeigt werden. Verwenden Sie ein anderes Menü-Manager, wenn Sie Probleme bemerken.
ThemeDir=Theme Ordner
ConnectionTimeout=Verbindung Timeout
ResponseTimeout=Antwort Timeout
SmsTestMessage=Test Nachricht von __PHONEFROM__ zu __PHONETO__
ModuleMustBeEnabledFirst=Modul <b>%s</b> muss erst aktiviert werden bevor diese Funktion verfügbar ist.
SecurityToken=Schlüssel um die URLs zu entschlüsseln
NoSmsEngine=Kein SMS Sende Manager verfügbar. SMS Sende Manager sind nicht installiert (weil diese von externen Lieferanten abhängig sind) aber Sie können welche auf http://www.dolistore.com finden.
# Modules
Module0Name=Benutzer und Gruppen
Module0Desc=Benutzer- und Gruppenverwaltung
Module1Name=Partner
@ -230,6 +328,8 @@ Module20Name=Angebote
Module20Desc=Angeboteverwaltung
Module22Name=E-Mail-Kampagnen
Module22Desc=E-Mail-Kampagnenverwaltung
Module23Name=Energie
Module23Desc=Überwachung des Energieverbrauchs
Module25Name=Kundenbestellungen
Module25Desc=Kundenbestellungsverwaltung
Module30Name=Rechnungen
@ -242,10 +342,12 @@ Module49Name=Bearbeiter
Module49Desc=Bearbeiterverwaltung
Module50Name=Produkte
Module50Desc=Produktverwaltung
Module51Name=Postwurfsendungen
Module51Desc=Verwaltung von Postwurf-/Massensendungen
Module52Name=Produktbestände
Module52Desc=Produktbestandsverwaltung
Module53Name=Services
Module53Desc=Services-Verwaltung
Module53Name=Leistungen
Module53Desc=Leistungs-Verwaltung
Module54Name=Verträge
Module54Desc=Vertragsverwaltung
Module55Name=Barcodes
@ -258,14 +360,16 @@ Module58Name=ClickToDial
Module58Desc=ClickToDial-Integration
Module59Name=Bookmark4u
Module59Desc=Neues Bookmark4u Konto zu Systembenutzerkonto hinzufügen
Module70Name=Eingriffe
Module70Desc=Eingriffsverwaltung
Module70Name=Service
Module70Desc=Serviceverwaltung
Module75Name=Reise- und Fahrtspesen
Module75Desc=Reise- und Fahrtspesenverwaltung
Module80Name=Sendungen
Module80Desc=Sendungs-u und Lieferscheinverwaltung
Module85Name=Banken und Geld
Module85Desc=Verwaltung von Bank- oder Bargeldkonten
Module100Name=Externe Website
Module100Desc=Erlaubt die Einbindung einer externen Website in die Menüs von dolibarr und die Anzeige der Seite innerhalb eines Frames
Module200Name=LDAP
Module200Desc=LDAP-Verzeichnissynchronisation
Module210Name=PostNuke
@ -275,7 +379,7 @@ Module240Desc=Werkzeug zum Datenexport(mit Assistenten)
Module250Name=Datenimport
Module250Desc=Werkzeug zum Dateinport (mit Assistenten)
Module310Name=Mitglieder
Module310Desc=Mitgliederverwaltun
Module310Desc=Mitgliederverwaltung
Module320Name=RSS-Feed
Module320Desc=RSS-Feed-Bildschirm innerhalb des Systems anzeigen
Module330Name=Lesezeichen
@ -300,6 +404,8 @@ Module1400Name=Buchhaltung
Module1400Desc=Buchhaltung für Experten (doppelte Buchhaltung)
Module1780Name=Kategorien
Module1780Desc=Kategorienverwaltung (Produkte, Lieferanten und Kunden)
Module2000Name=FCKeditor
Module2000Desc=WYSIWYG-Editor
Module2200Name=Verleihrechte
Module2200Desc=Verleihrechteverwaltung
Module2300Name=Menüs
@ -308,8 +414,22 @@ Module2400Name=Agenda
Module2400Desc=Maßnahmen/Aufgaben und Agendaverwaltung
Module2500Name=Inhaltsverwaltung(ECM)
Module2500Desc=Speicherung und Verteilung von Dokumenten
Module50100Name=Kassa
Module2600Name=WebServices
Module2600Desc=Aktivieren Sie Verwendung von Webservices
Module2700Name=Gravatar
Module2700Desc=Verwenden Sie den online Gravatar-Dienst (www.gravatar.com) für die Anzeige von Benutzer- und Mitgliederbildern (Zuordnung über E-Mail-Adressen). Hierfür benötigen Sie eine aktive Internetverbindung
Module2900Name=GeoIPMaxmind
Module2900Desc=GeoIP Maxmind Konvertierung
Module5000Name=Mandantenfähigkeit
Module5000Desc=Ermöglicht Ihnen die Verwaltung mehrerer Firmen
Module13452Name=SpeedFinder
Module13452Desc=AJAX-basierte Suchmaschine für die rasche Zuordnung von Namen zu (Teilen) einer Telefonnummer (innerhalb von 2 Sekunden)
Module50000Name=PayBox
Module50000Desc=Über dieses Modul können Sie online Kreditkartenzahlungen entgegennehmen
Module50100Name=Kasse
Module50100Desc=Kassenmodul
Module50200Name= Paypal
Module50200Desc= Mit diesem Modul können Sie via PayPal Online Kreditkartenzahlungen entgegennehmen
Permission11=Rechnungen einsehen
Permission12=Rechnungen erstellen/bearbeiten
Permission13=Rechnungsfreigabe aufheben
@ -323,17 +443,19 @@ Permission24=Angebote freigeben
Permission25=Angeobte per E-Mail versenden
Permission26=Angebot schließen
Permission27=Angeobte löschen
Permission31=Produkte/Services einsehen
Permission32=Produkte/Services erstellen/bearbeiten
Permission33=Produkte/Services freigeben
Permission34=Produkte/Services löschen
Permission36=Projekte/Services exportieren
Permission28=Angebote exportieren
Permission31=Produkte/Leistungen einsehen
Permission32=Produkte/Leistungen erstellen/bearbeiten
Permission34=Produkte/Leistungen löschen
Permission36=Projekte/Leistungen exportieren
Permission38=Produkte exportieren
Permission41=Projekte/Aufgaben einsehen
Permission42=Projekte/Aufgaben erstellen/bearbeiten (Meine)
Permission44=Projekte löschen
Permission61=Eingriffe ansehen
Permission62=Eingriffe erstellen/bearbeiten
Permission64=Eingriffe löschen
Permission61=Service ansehen
Permission62=Service erstellen/bearbeiten
Permission64=Service löschen
Permission67=Service exportieren
Permission71=Mitglieder einsehen
Permission72=Mitglieder erstellen/bearbeiten
Permission74=Mitglieder löschen
@ -351,6 +473,7 @@ Permission89=Kundenbestellungen löschen
Permission91=Steuern/Sozialbeiträge einsehen
Permission92=Steuern/Sozialbeiträge erstellen/bearbeiten
Permission93=Steuern/Sozialbeiträge löschen
Permission94=Sozialbeiträge exportieren
Permission95=Berichte einsehen
Permission96=Verbuchung einstellen
Permission97=Rechnungszuweisung einsehen
@ -370,13 +493,25 @@ Permission121=Mit Benutzer verbundene Partner einsehen
Permission122=Mit Benutzer verbundene Partner erstellen/bearbeiten
Permission125=Mit Benutzer verbundene Partner löschen
Permission126=Partner exportieren
Permission141=Aufgaben einsehen
Permission142=Aufgaben erstellen/bearbeiten
Permission144=Aufgaben löschen
Permission146=Lieferanten einsehen
Permission147=Statistiken einsehen
Permission151=Daueraufträge einsehen
Permission152=Dauerauftragsanträge erstellen/bearbeiten
Permission153=Dauerauftragsbelege einsehen
Permission153=Dauerauftragsbelege übertragen
Permission154=Dauerauftragsbelege kreditieren/ablehnen
Permission161=Veträge einsehen
Permission162=Verträge erstellen/bearbeiten
Permission163=Dienstleistungen in Verträgen aktivieren
Permission164=Dienstleistungen in Verträgen deaktivieren
Permission165=Verträge löschen
Permission171=Reisen lesen
Permission172=Reisen erstellen/bearbeiten
Permission173=Reisen löschen
Permission178=Reisen exportieren
Permission180=Lieferanten einsehen
Permission181=Lieferantenbestellungen einsehen
Permission182=Lieferantenbestellungen erstellen/bearbeiten
@ -386,6 +521,19 @@ Permission185=Lieferantenbestellungen übermitteln
Permission186=Lieferantenbestellungen empfangen
Permission187=Lieferantenbestellungen schließen
Permission188=Lieferantenbestellungen verwerfen
Permission192=Leitungen erstellen
Permission193=Leitungen abbrechen
Permission194=Read the bandwith lines
Permission202=ADSL Verbindungen erstellen
Permission203=Order connections orders
Permission204=Order connections
Permission205=Verbindungen verwalten
Permission206=Verbindungen lesen
Permission211=Telefonie lesen
Permission212=Order lines
Permission213=Leitung aktivieren
Permission214=Telefonie einrichten
Permission215=Anbieter einrichten
Permission221=E-Mail-Kampagnen einsehen
Permission222=E-Mail-Kampagnen erstellen/bearbeiten (Thema, Empfänger, ...)
Permission223=E-Mail-Kampagnen freigeben (erlaubt das Senden)
@ -400,30 +548,53 @@ Permission242=Kategorien erstellen/bearbeiten
Permission243=Kategorien löschen
Permission244=Inhalte versteckter Kategorien einsehen
Permission251=Andere Benutzer und Gruppen einsehen
Permission252=Andere Benutzer und Gruppen erstellen/bearbeiten (inkl. Rechteverwaltung)
Permission253=Passwörter anderer Benutzer ändern
Permission254=Andere Benutzer löschen oder deaktivieren
Permission255=Eigene Benutzereinstellungen setzen/bearbeiten
Permission256=Eigenes Passwort ändern
Permission261=Zugang zum Vertriebsmenü
PermissionAdvanced251=Andere Benutzer einsehen
Permission252=Berechtigungen andere Benutzer einsehen
Permission253=Andere Benutzer und Gruppen erstellen/bearbeiten (inkl. Rechteverwaltung)
PermissionAdvanced253=Andere interne/externe Benutzer und Gruppen erstellen/bearbeiten (inkl. Rechteverwaltung)
Permission254=Nur externe Benutzer erstellen/bearbeiten
Permission255=Andere Passwörter ändern
Permission256=Andere Benutzer löschen oder deaktivieren
Permission262=Zugang auf alle Partner erweitern (nicht nur diejenigen im Zusammenhang mit Benutzer). Nicht wirksam für externe Nutzer (immer auf sich selbst beschränkt).
Permission271=Read CA
Permission272=Read invoices
Permission273=Issue invoices
Permission281=Kontakte einsehen
Permission282=Kontakte erstellen/bearbeiten
Permission283=Kontakte löschen
Permission286=Kontakte exportieren
Permission291=Tarife lesen
Permission292=Berechtigungen der Tarife einstellen
Permission293=Kundentarife ändern
Permission300=Barcodes einsehen
Permission301=Barcodes erstellen/bearbeiten
Permission302=Barcodes löschen
Permission311=Leistungen lesen
Permission312=Leistungen einem Vertrag zuordnen
Permission331=Lesezeichen einsehen
Permission332=Lesezeichen erstellen/bearbeiten
Permission333=Lesezeichen löschen
Permission341=Eigene Berechtigungen lesen
Permission342=Eigene Benutzerinformationen erstellen/bearbeiten
Permission343=Eigenes Passwort ändern
Permission344=Eigene Berechtigungen bearbeiten
Permission351=Gruppen einsehen
Permission352=Gruppenberechtigungen einsehen
Permission353=Gruppen erstellen/bearbeiten
Permission354=Gruppen löschen oder deaktivieren
Permission358=Benutzer exportieren
Permission401=Rabatte einsehen
Permission402=Rabatte erstellen/bearbeiten
Permission403=Rabatte freigeben
Permission404=Rabatte löschen
Permission700=Spenden einsehen
Permission701=Spenden erstellen/bearbeiten
Permission702=Spenden löschen
Permission531=Leistungen einsehen
Permission532=Leistungen erstellen/bearbeiten
Permission534=Leistungen löschen
Permission536=Versteckte Leistungen einsehen/verwalten
Permission538=Leistungen exportieren
Permission701=Spenden einsehen
Permission702=Spenden erstellen/bearbeiten
Permission703=Spenden löschen
Permission1001=Warenbestände einsehen
Permission1002=Warenbestände erstellen/bearbeiten
Permission1003=Warenbestände löschen
@ -447,15 +618,24 @@ Permission1231=Lieferantenrechnungen einsehen
Permission1232=Lieferantenrechnungen erstellen/bearbeiten
Permission1233=Lieferantenrechnungen freigeben
Permission1234=Lieferantenrechnungen löschen
Permission1235=Lieferantenrechnungen per E-Mail versenden
Permission1236=Lieferantenrechnungen, -attribute und zahlungen exportieren
Permission1251=Massenimports von externen Daten ausführen (data load)
Permission1321=Kundenrechnungen, -attribute und -zahlungen exportieren
Permission1421=Kundenbestellungen und Attribute exportieren
Permission2401=Maßnahmen (Termine/Aufgaben) in Verbindung mit eigenem Konto einsehen
Permission2402=Maßnahmen (Termine/Aufgaben) in Verbindung mit eigenem Konto erstellen/bearbeiten
Permission2403=Maßnahmen (Termine/Aufgaben) Anderer einsehen
Permission2405=Maßnahmen (Termine/Aufgaben) Anderer erstellen/bearbeiten
Permission2500=Dokumente einsehen
Permission2501=Dokumente hochladen oder löschen
Permission2403=Maßnahmen (Termine/Aufgaben) in Verbindung mit eigenem Konto löschen
Permission2411=Maßnahmen (Termine/Aufgaben) in Anderer einsehen
Permission2412=Maßnahmen (Termine/Aufgaben) in Anderer erstellen/bearbeiten
Permission2413=Maßnahmen (Termine/Aufgaben) in Anderer löschen
Permission2501=Dokumente herunterladen oder einsehen
Permission2502=Dokumente herunterladen
Permission2503=Dokumente bestätigen oder löschen
Permission2515=Dokumentverzeichnisse verwalten
Permission50001=Kassenmodul verwenden
Permission50201= Transaktionen einsehen
Permission50202= Transaktionen importieren
DictionnaryCompanyType=Art des Unternehmens
DictionnaryCompanyJuridicalType=Rechtsform
DictionnaryProspectLevel=Geschäftsaussicht
@ -473,18 +653,37 @@ DictionnaryTypeContact=Kontaktarten
DictionnaryEcotaxe=Ökosteuern (WEEE)
DictionnaryPaperFormat=Papierformate
DictionnaryFees=Gebührenarten
DictionnarySendingMethods=Versandarten
DictionnaryStaff=Mitarbeiter
DictionnaryAvailability=Lieferverzug
DictionnaryOrderMethods=Bestellmethoden
DictionnarySource=Quelle der Angebote/Bestellungen
SetupSaved=Setup gespeichert
BackToModuleList=Zurück zur Modulübersicht
BackToDictionnaryList=Zurück zur Wörterbuchübersicht
VATReceivedOnly=Nur Mehtwertsteuererhalt
VATReceivedOnly=Nur Mehrwertsteuererhalt
VATManagement=MwSt-Verwaltung
VATIsUsedDesc=Der standardmäßige MwSt.-Satz für die Erstellung von Leads, Rechnungen, Bestellungen, etc. folgt der folgenden, aktiven Regel:<br>Ist der Verkäufer mehrwertsteuerpflichtig, ist die MwSt. standardmäßig 0. Ende der Regel.<br>Ist das Verkaufsland gleich dem Einkaufsland, ist die MwSt. standardmäßig die MwSt. des Produkts im Verkaufsland. Ende der Regel. <br>Sind Verkäufer und Käufer beide aus Europäischen Mitgliedsstaaten und die Produkte physisch transportfähig (Auto, Schiff, Flugzeug), ist die MwSt. standardmäßig 0. (Die MwSt. sollte durch den Käufer beim eigenen Zollamt entrichtet werden, nicht durch den Verkäufer. Ende der Regel.<br>Sind Verkäufer und Käufer beide aus Europäischen Mitgliedsstaaten, der Käufer jedoch kein Unternehmen so ist die MwSt. standardmäßig die MwSt. des verkauften Produkts. Ende der Regel.<br>Sind Verkäufer und Käufer beide Unternehmen im Europäischen Gemeinschaftsraum, so ist die MwSt. standardmäßig 0. Ende der Regel.<br>Trifft keine der obigen Regeln zu, ist die MwSt. standardmäßig 0.
VATIsNotUsedDesc=Die vorgeschlagene MwSt. ist standardmäßig 0 für alle Fälle wie Stiftungen, Einzelpersonen oder Kleinunternehmen-
VATIsUsedExampleFR=In France, it means companies or organisations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared.
VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organisations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration. This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices.
VATIsNotUsedDesc=Die vorgeschlagene MwSt. ist standardmäßig 0 für alle Fälle wie Stiftungen, Einzelpersonen oder Kleinunternehmen.
VATIsUsedExampleFR=-
VATIsNotUsedExampleFR=-
##### Local Taxes #####
LocalTax1ManagementES=RE Management
LocalTax1IsUsedDescES=Die RE Rate standardmäßig beim Erstellen Aussichten, Rechnungen, Bestellungen etc. folgen die aktive Standard-Regel: <br> Wenn te Käufer ist nicht unterworfen RE, RE standardmäßig = 0 ist. Ende der Regel. <br> Ist der Käufer unterzogen, um dann die RE RE standardmäßig. Ende der Regel. <br>
LocalTax1IsNotUsedDescES=Standardmäßig werden die vorgeschlagenen RE 0 ist. Ende der Regel.
LocalTax1IsUsedExampleES=In Spanien sind sie Profis unterliegen bestimmten Abschnitten der spanischen IAE.
LocalTax1IsNotUsedExampleES=In Spanien sind sie professionelle und Gesellschaften und vorbehaltlich bestimmter Abschnitte der spanischen IAE.
LocalTax2ManagementES=IRPF Management
LocalTax2IsUsedDescES=Die RE Rate standardmäßig beim Erstellen Aussichten, Rechnungen, Bestellungen etc. folgen die aktive Standard-Regel: <br> Ist der Verkäufer nicht zu IRPF ausgesetzt, dann durch IRPF default = 0. Ende der Regel. <br> Ist der Verkäufer zur IRPF dann der Einkommenssteuer unterworfen standardmäßig. Ende der Regel. <br>
LocalTax2IsNotUsedDescES=Standardmäßig werden die vorgeschlagenen IRPF 0 ist. Ende der Regel.
LocalTax2IsUsedExampleES=In Spanien, Freiberufler und unabhängigen Fachleuten, die ihre Dienstleistungen und Unternehmen, die das Steuersystem von Modulen gewählt haben.
LocalTax2IsNotUsedExampleES=In Spanien sind sie bussines nicht der Steuer unterliegen System von Modulen.
LabelUsedByDefault=Standardmäßig verwendete Bezeichnung falls keine Übersetzung vorhanden ist
LabelOnDocuments=Bezeichnung auf Dokumenten
NbOfDays=Anzahl der Tage
### SNE BIS HIER ###
AtEndOfMonth=Am Ende des Monats
Offset=Wertsprung
AlwaysActive=Immer aktiv
@ -565,8 +764,8 @@ DelaysOfToleranceActionsToDo=Verzögerungstoleranz (in Tagen) vor Benachrichtigu
DelaysOfToleranceOrdersToProcess=Verzögerungstoleranz (in Tagen) vor Benachrichtigung noch nicht bearbeitete Aufträge
DelaysOfTolerancePropalsToClose=Verzögerungstoleranz (in Tagen) vor Benachrichtigung über abzuschließende Angebote
DelaysOfTolerancePropalsToBill=Verzögerungstoleranz (in Tagen) vor Benachrichtigung über nicht in Rechnung gestellte Angebote
DelaysOfToleranceNotActivatedServices=Verzögerungstoleranz (in Tagen) vor Benachrichtigung über zu aktivierende Services
DelaysOfToleranceRunningServices=Verzögerungstoleranz (in Tagen) vor Benachrichtigung zu überfälligen Services
DelaysOfToleranceNotActivatedServices=Verzögerungstoleranz (in Tagen) vor Benachrichtigung über zu aktivierende Leistungen
DelaysOfToleranceRunningServices=Verzögerungstoleranz (in Tagen) vor Benachrichtigung zu überfälligen Leistungen
DelaysOfToleranceSupplierBillsToPay=Verzögerungstoleranz (in Tagen) vor Benachrichtigung über unbezahlte Lieferantenrechnungen
DelaysOfToleranceTransactionsToConciliate=Verzögerungstoleranz (in Tagen) vor Benachrichtigung über Bankkontenabgleich
DelaysOfToleranceChequesToDeposit=Verzögerungstoleranz (in Tagen) vor der Benachrichtigung über einzulösende Schecks
@ -693,7 +892,7 @@ WatermarkOnDraftInterventionCards=Wasserzeichen auf Intervention Karte Dokumente
ClickToDialSetup=Click-to-Dial-Moduleinstellungen
ClickToDialUrlDesc=Definieren Sie hier die URL, die bei einem Klick auf das Telefonsymbol aufgerufen werden soll. In dieser URL können Sie Tags verwenden<br><b>%%1$s</b> wird durch die Telefonnummer des Angerufenen ersetzt<br><b>%%2$s</b> wird durch die Telefonnummer des Anrufers (Ihre) ersetzt<br><b>%%3$s</b> wird durch Ihren Benutzernamen für Click-to-Dial ersetzt (siehe Benutzerdatenblatt)<br><b>%%4$s</b> wird durch Ihr Click-to-Dial-Passwort ersetzt (siehe Benutzerdatenblatt).
Bookmark4uSetup=Bookmark4u Moduleinstellungen
InterventionsSetup=Eingriffsmoduleinstellungen
InterventionsSetup=Servicemoduleinstellungen
MemberMainOptions=Haupteinstellungen
AddSubscriptionIntoAccount=Bei Einrichtung eines neuen Abonnements automatisch Zahlungserstellung im Bankmodul vorschlagen
AdherentMailRequired=Für das Anlegen eines neuen Mitglieds ist eine E-Mail-Adresse erforderlich
@ -934,80 +1133,16 @@ CashDeskThirdPartyForSell=Standardpartner für Kassenverkäufe (erforderlich)
CashDeskBankAccountForSell=Standard-Bargeldkonto für Kassenverkäufe (erforderlich)
CashDeskIdWareHouse=Standard-Warenlager für Kassenverkauf (optional)
SessionSavePath=Pfad für Sitzungsdatenspeicherung
IfModuleEnabled=Anmerkung: Ist nur wirksam wenn Modul <b>%s</b> aktiviert ist
RemoveLock=Entfernen Sie die Datei <b>%s</b> falls vorhanden, um das Aktualisierungs-Tool auszuführen
RestoreLock=Ersetzen Sie die Datei <b>%s</b> mit einer Datei ohne Schreibberechtigung um jegliche Nutzung des Aktualisierungs-Tools zu verhindern.
ClientHour=Uhrzeit (Benutzer)
CompanyTZ=Unternehmenszeitzone (Hauptunternehmen)
CompanyHour=Unternehmenszeit (Hauptunternehmen)
PurgeDeleteLogFile=Löschen der Protokolldatei <b>%s</b> des Systemprotokollmoduls (kein Risiko des Datenverlusts)
OfficialWiki=Dolibarr Wiki
OfficialDemo=Dolibarr Offizielle Demo
ForDocumentationSeeWiki=Für Benutzer-und Entwickler-Dokumentation (DOC, ...), FAQs <br> Werfen Sie einen Blick auf die Dolibarr Wiki: <br> <a href="%s" target="_blank"><b> %s</b></a>
ForAnswersSeeForum=Für alle anderen Fragen / Hilfe, können Sie die Dolibarr Forum: <br> <a href="%s" target="_blank"><b> %s</b></a>
HelpCenterDesc1=In diesem Bereich können Sie sich ein Hilfe-Support-Service auf Dolibarr.
HelpCenterDesc2=Ein Teil dieses Dienstes sind <b>nur</b> in <b>Englisch</b> verfügbar.
MAIN_MAIL_SENDMODE=Methode zum Senden von E-Mails
MAIN_MAIL_SMTPS_ID=SMTP ID, wenn Authentifizierung erforderlich
MAIN_MAIL_SMTPS_PW=SMTP Passwort, wenn Authentifizierung erforderlich
GenericMaskCodes2=<b>(cccc)</b> den Client-Code <br> <b>() cccc000</b> den Client-Code auf n Zeichen ist, gefolgt von einer Client-ref Zähler ohne Offset-und zeroized mit der globalen Zähler. <br>
GenericMaskCodes3=Alle anderen Zeichen in der Maske bleiben. <br> Leerzeichen sind nicht zulässig. <br>
GenericMaskCodes4a=<u>Beispiel auf der 99. %s des Dritten thecompany Geschehen 2007-01-31:</u> <br>
GenericMaskCodes4b=<u>Beispiel für Dritte erstellt am 2007-03-01:</u> <br>
GenericMaskCodes5=<b>ABC (yy) (mm) - (000000)</b> wird <b>ABC0701-000099</b> <br> <b>(0000 +100)-ZZZ / tt () / XXX</b> wird <b>0199-ZZZ/31/XXX</b>
SeeWikiForAllTeam=Werfen Sie einen Blick auf die Wiki-Seite für eine vollständige Liste aller Akteure und deren Organisationen
UseACacheDelay=Verzögerung für den Export der Cache-Antwort in Sekunden (0 oder leer für kein Caching)
DisableLinkToHelpCenter=Link mit "<b>Benötigen Sie Hilfe oder Unterstützung</b>" auf der Anmeldeseite ausblenden
DisableLinkToHelp=Link zur "<b>%s Online-Hilfe</b>" auf der linken Seite ausblenden
AddCRIfTooLong=Kein automatischer Zeilenumbruch. Entsprechend müssen Sie, falls die Länge Ihrer Zeilen die Dokumentenbreite übersteigt, manuelle Zeilenschaltungen im Textbereich einfügen.
ModuleDisabled=Modul deaktiviert
ModuleDisabledSoNoEvent=Modul deaktiviert und Eintrag deshalb nie erstellt
ConfirmPurge=Möchten Sie die Löschung wirklich durchführen? <br>Dies wird alle Ihre Dateien unwiderbringlich entfernen (ECM-Dateien, Dateien, ...)!
Module51Name=Postwurfsendungen
Module51Desc=Verwaltung von Postwurf-/Massensendungen
Module5000Name=Mandantenfähigkeit
Module5000Desc=Ermöglicht Ihnen die Verwaltung mehrerer Firmen
Module10000Name=PayBox
Module10000Desc=Über dieses Modul können Sie online Kreditkartenzahlungen entgegennehmen
Permission28=Angebote exportieren
Permission38=Produkte exportieren
Permission67=Eingriffe exportieren
Permission94=Sozialbeiträge exportieren
Permission146=Lieferanten einsehen
Permission147=Statistiken einsehen
Permission170=Reise- und Fahrtspesen einsehen
Permission171=Reisen erstellen/bearbeiten
Permission172=Reisen löschen
Permission178=Reisen exportieren
Permission192=Leitungen anlegen
Permission193=Leitungen verwerfen
Permission194=Breitbandverbindungen einsehen
Permission202=ADSL-Anschlüsse anlegen
Permission203=Anschlussbestellungen übermitteln
Permission204=Anschlussbestellungen
Permission205=Anschlüsse verwalten
Permission206=Anschlüsse einsehen
Permission211=Telefonie einsehen
Permission212=Leitungen bestellen
Permission213=Leitungen aktivieren
Permission214=Telefonie einstellen
Permission215=Anbieter einstellen
Permission258=Benutzer exportieren
Permission271=CA einsehen
Permission272=Rechnungen einsehen
Permission273=Rechnungen erstellen
Permission291=Tarife einsehen
Permission292=Festlegen von Berechtigungen für die Tarife
Permission293=Kundentarife ändern
Permission311=Services einsehen
Permission312=Services Verträgen zuweisen
Permission531=Services einsehen
Permission532=Services erstellen/bearbeiten
Permission534=Services löschen
Permission538=Services exportieren
Permission1251=Massenimport von Daten in die Datenbank (Systemlast!)
Permission1421=Kundenbestellungen und -attribute exportieren
DictionnarySendingMethods=Versandarten
SetupDescription5=Andere Einträge verwalten optionale Parameter.
BackupDesc=Um eine vollständige Systemsicherung durchzuführen müssen Sie:
@ -1042,65 +1177,37 @@ BankSetupModule=Bankmoduleinstellungen
FreeLegalTextOnChequeReceipts=Freier Rechtstext für Scheckbelege
MultiCompanySetup=Multi-Company-Moduleinstellungen
UseSearchToSelectCompany=Suchfeld statt Listenansicht für Partnerauswahl verwenden
ProtectAndEncryptPdfFilesDesc=Die Aktivierung des PDF-Dokumentschutzes erhält die Lesbarkeit und Druckfähigkeit des Dokuments, Bearbeitung und Kopien sind jedoch nicht mehr möglich. Bitte beachten Sie, dass über die Aktivierung dieser Funktion auch die Stapelverarbeitung von PDF-Dokumenten (z.B. aller offenen Rechnungen) nicht mehr funktioniert
DelaysOfToleranceCustomerBillsUnpaid=Verzögerungstoleranz (in Tagen) vor Benachrichtigung über unbezahlte Kundenrechnungen
UseSearchToSelectProduct=Suchfeld statt Listenansicht für die Produktauswahl verwenden
SessionSaveHandler=Handler für Sitzungsspeicherung
PurgeSessions=Sitzungsdaten löschen
ConfirmPurgeSessions=Wollen Sie wirklich alle Sitzungsdaten löschen? Damit wird zugleich jeder Benutzer (außer Ihnen) vom System abgemeldet.
NoSessionListWithThisHandler=Anzeige der aktiven Sitzungen mit Ihrer PHP-Konfiguration nicht möglich.
LockNewSessions=Keine neuen Sitzungen zulassen
ConfirmLockNewSessions=Möchten Sie wirklich alle Sitzungen bis auf Ihre eigene blocken? Nur Benutzer <b>%s</b> kann danach noch eine Verbindung aufbauen.
UnlockNewSessions=Sperrung neuer Sitzungen aufheben
YourSession=Ihre Sitzung
Sessions=Sitzungen
NoSessionFound=Ihre PHP -Konfiguration scheint keine Liste aktiver Sitzungen zuzulassen. Eventuell ist die Speicherung im Verzeichnis (<b>%s</b>) aktiviert und fehlerhafte Dateizugriffsberechtigungen blockieren den Zugriff (z.B. open_basedir-Beschränkungen).
FormToTestFileUploadForm=Formular für das Testen von Datei-Uplads (je nach Konfiguration)
PreviewNotAvailable=Vorschau nicht verfügbar
AntiVirusCommand=Vollständiger Pfad zum installierten Virenschutz
AntiVirusCommandExample=Beispiel für ClamWin: c:\Program Files (x86)\ClamWin\bin\clamscan.exe <br>Beispiel für ClamAV: /usr/bin/clamscan
AntiVirusParam=Weitere Parameter auf der Kommandozeile
AntiVirusParamExample=Beispiel für ClamWin: --database="C:\Program Files (x86)\ClamWin\lib"
YouCanDownloadBackupFile=Sie können die erstellte Sicherungsdatei jetzt herunterladen
IgnoreDuplicateRecords=Datensatzduplikate ignorieren (INSERT IGNORE)
InstrucToEncodePass=Um das Passwort in der Konfigurationsdatei <b>conf.php</b> zu verschlüsseln, ersetzen Sie die Zeile <br><b>$dolibarr_main_db_pass="..."</b><br>durch<br><b>$dolibarr_main_db_pass="crypted:%s"</b>
InstrucToClearPass=Um das Passwort unverschlüsselt (Klartext) in der Konfigurationsdatei <b>conf.php</b> zu speichern, ersetzen Sie die Zeile<br><b>$dolibarr_main_db_pass="crypted:..."</b><br>durch<br><b>$dolibarr_main_db_pass="%s"</b>
ProtectAndEncryptPdfFiles=PDF-Dokumentschutz aktivieren (Die Aktivierung ist nicht empfohlen, weil dadurch die Stapelerzeugung von PDFs nicht mehr funktioniert)
MAIN_MAIL_EMAIL_TLS=TLS (SSL)-Verschlüsselung verwenden
SubmitTranslation=Sollte die Übersetzung für eine Sprache nicht vollständig sein oder Fehler beinhalten, können Sie die entsprechenden Sprachdateien im Verzeichnis <b>langs/%s</b> bearbeiten und anschließend Ihre Änderungen mit der Entwicklergemeinschaft auf www.dolibarr.org teilen.
FindPackageFromWebSite=Finden Sie ein Paket, das die gewünschten Funktionen beinhaltet (zum Beispiel auf der offiziellen Website %s).
MinLength=Mindestlänge
LanguageFilesCachedIntoShmopSharedMemory=.lang-Sprachdateien in gemeinsamen Cache geladen
ExamplesWithCurrentSetup=Beispiele mit der derzeitigen Systemkonfiguration
ListOfDirectories=Liste der OpenDocument-Vorlagenverzeichnisse
ListOfDirectoriesForModelGenODT=Liste der Verzeichnisse mit Vorlagendateien mit OpenDocument-Format.<br><br>Fügen Sie hier den vollständigen Pfad der Verzeichnisse ein.<br>Trennen Sie jedes Verzeichnis mit einer Zeilenschaltung<br>Verzeichnisse des ECM-Moduls fügen Sie z.B. so ein <b>DOL_DATA_ROOT/ecm/yourdirectoryname</b>.<br><br> Dateien in diesen Verzeichnissen müssen auf <b>.odt</b> enden.
NumberOfModelFilesFound=Anzahl der in diesen Verzeichnissen gefundenen .odt-Dokumentvorlagen
ExampleOfDirectoriesForModelGen=Beispiele für Syntax:<br>c:\mydir<br>/Home/mydir<br>DOL_DATA_ROOT/ecm/ecmdir
FirstnameNamePosition=Reihenfolge von Vor- und Nachname
Module23Name=Energie
Module23Desc=Überwachung des Energieverbrauchs
Module100Name=Externe Website
Module100Desc=Erlaubt die Einbindung einer externen Website in die Menüs von dolibarr und die Anzeige der Seite innerhalb eines Frames
Module2000Name=FCKeditor
Module2000Desc=WYSIWYG-Editor
Module2600Name=WebServices
Module2600Desc=Aktivieren Sie Verwendung von Webservices
Module2700Name=Gravatar
Module2700Desc=Verwenden Sie den online Gravatar-Dienst (www.gravatar.com) für die Anzeige von Benutzer- und Mitgliederbildern (Zuordnung über E-Mail-Adressen). Hierfür benötigen Sie eine aktive Internetverbindung
Module2900Name=GeoIPMaxmind
Module2900Desc=GeoIP Maxmind Konvertierung
Module13452Name=SpeedFinder
Module13452Desc=AJAX-basierte Suchmaschine für die rasche Zuordnung von Namen zu (Teilen) einer Telefonnummer (innerhalb von 2 Sekunden)
Permission141=Aufgaben einsehen
Permission142=Aufgaben erstellen/bearbeiten
Permission144=Aufgaben löschen
Permission536=Versteckte Services einsehen/verwalten
Permission536=Versteckte Leistungen einsehen/verwalten
Permission2411=Maßnahmen (Termine oder Aufgaben) Anderer einsehen
Permission2412=Maßnahmen (Termine oder Aufgaben) Anderer erstellen/bearbeiten
Permission2413=Maßnahmen (Termine oder Aufgaben) Anderer löschen
DictionnaryStaff=Mitarbeiter
LocalTax1ManagementES=RE Management
LocalTax1IsUsedDescES=Die RE Rate standardmäßig beim Erstellen Aussichten, Rechnungen, Bestellungen etc. folgen die aktive Standard-Regel: <br> Wenn te Käufer ist nicht unterworfen RE, RE standardmäßig = 0 ist. Ende der Regel. <br> Ist der Käufer unterzogen, um dann die RE RE standardmäßig. Ende der Regel. <br>
LocalTax1IsNotUsedDescES=Standardmäßig werden die vorgeschlagenen RE 0 ist. Ende der Regel.
@ -1157,15 +1264,27 @@ ProjectsNumberingModules=Projektnumerierungsmodul
ProjectsSetup=Projekteinstellungenmodul
ProjectsModelModule=Projektvorlagenmodul
ModulesMarketPlaceDesc=Hier finden Sie weitere Module auf externen Web-Sites
ModulesMarketPlaces=Sie können zusätzliche Module im Web finden...
DoliStoreDesc=DoliStore, der offizielle Marktplatz für dolibarr Module/Erweiterungen
WebSiteDesc=Website-Anbieter für Ihre Suche nach weiteren Modulen
URL=Link
OfficialMarketPlace=Offizieller Marktplatz für Module/Erweiterungen
MAIN_MAIL_AUTOCOPY_TO=Senden Sie automatisch eine Blindkopie aller gesendeten Mails an
FreeLegalTextOnInterventions=Freier Rechtstext für Eingriffe
FreeLegalTextOnInterventions=Freier Rechtstext für Services
ModulesJob=Geschäfttypenmodule
ConfigFileIsInReadOnly=Die Konfigurationsdatei conf.php kann nur gelesen werden, bitte überprüfen Sie die Berechtigungen.
OfficialWikiFr=Französisches Wikiei mit Maxmind IP to Country Übersetzung. <br> Beispiel: / usr / local / share / GeoIP / GeoIP.dat
NoteOnPathLocation=Bitte beachten Sie, dass Ihre IP-Länder-Datei in einem von PHP lesbaren Verzeichnis liegen muss (Überprüfen Sie Ihre PHP open_basedir-Einstellungen und die Dateisystem-Berechtigungen).
YouCanDownloadFreeDatFileTo=Eine <b>kostenlose Demo-Version</b> der Maxmind-GeoIP Datei finden Sie hier: %s
YouCanDownloadAdvancedDatFileTo=Eine <b>vollständigere Version mit Updates</b> der Maxmind-GeoIP Datei können Sie hier herunterladen: %s
TestGeoIPResult=Test einer Umwandlung IP -> Land
##### NumberWords #####
NumberWordsSetup=NumberWords Moduleinstellungen
DescNumberWords=Dieses Modul bietet Funktionen zur Konvertierung von Zahlen und Beträgen in formatierte Zeichenketten. Es ersetzt auch die folgende Zeichenfolgen __TOTAL_TTC_WORDS__, __TOTAL_HT_WORDS__ oder __TOTAL_VAT_WORDS__ durch 'Bruttosumme', 'Nettosumme' oder 'Steuersumme' in allen verwendeten Texten (freier Text auf Rechnungen, ...)
##### Projects #####
ProjectsNumberingModules=Projektnumerierungsmodul
ProjectsSetup=Projekteinstellungenmodul
ProjectsModelModule=Projektvorlagenmodul
MAIN_NOT_INSTALLED=Setup wird ausgeführt
MAIN_FEATURES_LEVEL=Level der freigeschaltenen Funktionen(0=nur stable, 1=stable+experimentell, 2=stable+experimentell+Entwicklung)
// START - Lines generated via autotranslator.php tool (2012-02-29 16:03:27).
// Reference language: en_US -> de_DE
WebUserGroup=Web-Server-Benutzer / Gruppe
@ -1286,3 +1405,14 @@ BankOrderESDesc=Spanisch Anzeigereihenfolge
MailmanSpipSetup=Mailman und Spip Modul-Setup
SuppliersInvoiceModel=Vollständige Vorlage der Lieferantenrechnung (logo. ..)
// STOP - Lines generated via autotranslator.php tool (2012-02-29 16:05:18).
// START - Lines generated via autotranslator.php tool (2012-05-02 17:27:54).
// Reference language: en_US -> de_DE
VersionRecommanded=Empfohlene
PostgreSqlExportParameters=PostgreSQL Export-Parameter
OfficialWebHostingService=Offizielle Web-Hosting-Service (Cloud Hosting)
AlphaNumOnlyCharsAndNoSpace=nur alphanumericals Zeichen ohne Leerzeichen
TranslationSetup=Configuration de la traduction
TranslationDesc=Wahl der Sprache auf dem Bildschirm sichtbar verändert werden kann: <br> * Weltweit aus dem Menü <strong>Start - Einstellungen - Anzeige</strong> <br> * Für die Benutzer nur von <strong>Benutzer-Registerkarte Anzeige</strong> von Benutzer-Karte (klicken Sie auf Login-Bildschirm auf der Oberseite).
// STOP - Lines generated via autotranslator.php tool (2012-05-02 17:28:38).

View File

@ -16,6 +16,7 @@ DoneBy=Erldedigt von
Events=Veranstaltungen
ListOfActions=Veranstaltungsliste
Location=Ort
EventOnFullDay=Ganztägig
SearchAnAction=Suche Maßnahme / Aufgabe
MenuToDoActions=Alle unvollständigen Maßnahmen
MenuDoneActions=Alle abgeschlossenen Maßnahmen
@ -27,16 +28,28 @@ ActionsToDoBy=Maßnahmen zugewiesen an
ActionsDoneBy=Maßnahmen erledigt von
AllMyActions=Alle meine Maßnahmen / Aufgaben
AllActions=Alle Maßnahmen / Aufgaben
ViewList=Liste anzeigen
ViewCal=Kalender anzeigen
ViewList=Listenansicht
ViewCal=Kalenderansicht
ViewDay=Tagesansicht
ViewWeek=Wochenansicht
ViewWithPredefinedFilters=Ansicht mit vordefinierten Filtern
AutoActions=Automatische Befüllung der Tagesordnung
AgendaAutoActionDesc=Definieren Sie hier Maßnahmen zur automatischen Übernahme in die Agenda. Ist nichts aktviert (Standard), umfasst die Agenda nur manuell eingetragene Maßnahmen.
AgendaSetupOtherDesc=Diese Seite ermöglicht die Konfiguration anderer Parameter des Tagesordnungsmoduls.
AgendaExtSitesDesc=Diese Seite erlaubt Ihnen externe Kalender zu konfigurieren.
ActionsEvents=Veranstaltungen zur automatischen Übernahme in die Agenda
PropalValidatedInDolibarr=Angebot freigegeben
InvoiceValidatedInDolibarr=Rechnung freigegeben
OrderValidatedInDolibarr=Bestellung freigegeben
InvoiceBackToDraftInDolibarr=Rechnung %s in den Entwurf Status zurücksetzen
OrderValidatedInDolibarr=Bestellung %s freigegeben
InterventionValidatedInDolibarr=Service %s freigegeben
ProposalSentByEMail=Angebot %s per E-Mail versendet
OrderSentByEMail=Kundenbestellung %s per E-Mail versendet
InvoiceSentByEMail=Kundenrechnung %s per E-Mail versendet
SupplierOrderSentByEMail=Lieferantenbestellung %s per E-Mail versendet
SupplierInvoiceSentByEMail=Lieferantenrechnung %s per E-Mail versendet
ShippingSentByEMail=Lieferschein %s per E-Mail versendet
InterventionSentByEMail=Service %s per E-Mail versendet
NewCompanyToDolibarr=Partner erstellt
DateActionPlannedStart=Geplantes Startdatum
DateActionPlannedEnd=Geplantes Enddatum
@ -51,7 +64,15 @@ AgendaUrlOptions4=<b>logint=%s</b> begrenzt die Ausgabe auf von Benutzer <b>%s</
AgendaUrlOptions5=<b>logind=%s</b> begrenzt die Ausgabe auf von Benutzer <b>%s</b> erledigte Maßnahmen.
AgendaShowBirthdayEvents=Zeige Geburtstage
AgendaHideBirthdayEvents=Geburtstage ausblenden
InterventionValidatedInDolibarr=Eingriff %s freigegeben
ExtSites=Externe Kalender
# External Sites ical
ExtSites=Externe Kalender
ExtSitesEnableThisTool=Zeige externe Kalender in der Agenda
ExtSitesNbOfAgenda=Anzahl der Kalender
AgendaExtNb=Kalender Anzahl %s
ExtSiteUrlAgenda=URL Adresse um .ical Datei zu erreichen
ExtSiteNoLabel=Keine Beschreibung
// START - Lines generated via autotranslator.php tool (2012-02-29 16:03:27).

View File

@ -18,7 +18,7 @@ BankAccount=Finanzkontenübersicht
BankAccounts=Kontenübersicht
AccountRef=Konto-Referenz
AccountLabel=Kontobezeichnung
CashAccount=Kassa
CashAccount=Kasse
CashAccounts=Kassen
MainAccount=Hauptkonto
CurrentAccount=Girokonto
@ -48,29 +48,28 @@ AccountStatements=Kontoauszüge
LastAccountStatements=Letzte Kontoauszüge
Rapprochement=Zahlungsabgleich
IOMonthlyReporting=Monatsbericht
BankAccountDomiciliation=Konto-Adresse
BankAccountDomiciliation=BLZ
BankAccountCountry=Bankkonto Land
BankAccountOwner=Kontoinhaber
BankAccountOwnerAddress=Kontoinhaber-Adresse
RIBControlError=Prüfung auf Vollständigkeit fehlgeschlagen. Informationen zu Bankkonto sind nicht vollständig oder falsch (Land überprüfen, Zahlen und IBAN).
CreateAccount=Konto anlegen
StandingOrderToProcess=Daueraufträge zu bearbeiten
StandingOrderProcessed=Bearbeitete Daueraufträge
NewAccount=Neues Konto
NewBankAccount=Neues Bankkonto
NewFinancialAccount=Neues Finanzkonto
MenuNewFinancialAccount=Neues Finanzkonto
NewCurrentAccount=Neues Girokonto
NewSavingAccount=Neues Sparkonto
NewCashAccount=Neue Kassa
NewCashAccount=Neue Kasse
EditFinancialAccount=Konto bearbeiten
AccountSetup=Finanzielle Konten einrichten
SearchBankMovement=Suche Bankbewegung
Debts=Schulden
LabelBankCashAccount=Bank- oder Kassabezeichnung
LabelBankCashAccount=Bank- oder Kassebezeichnung
AccountType=Kontoart
BankType0=Sparkonto
BankType1=Girokonto
BankType2=Kassa
BankType2=Kasse
IfBankAccount=Falls Bankkonto
AccountsArea=Finanzkonten
AccountCard=Konto-Karte
@ -94,7 +93,7 @@ Conciliable=Ausgleichsfähig
Conciliate=Ausgleichen
Conciliation=Ausgleich
ConciliationForAccount=Dieses Konto ausgleichen
IncludeClosedAccount=Geschlossene konten miteinbeziehen
IncludeClosedAccount=Geschlossene Konten miteinbeziehen
OnlyOpenedAccount=Nur geöffnete Konten
AccountToCredit=Konto für Gutschrift
AccountToDebit=Zu belastendes Konto
@ -112,6 +111,7 @@ DateConciliating=Ausgleichsdatum
BankLineConciliated=Transaktion ausgeglichen
CustomerInvoicePayment=Kundenzahlung
SupplierInvoicePayment=Lieferantenzahlung
WithdrawalPayment=Entnahme Zahlung
SocialContributionPayment=Sozialbeitragszahlung
FinancialAccountJournal=Finanzkonto-Journal
BankTransfer=Kontentransfer
@ -127,6 +127,7 @@ DeleteCheckReceipt=Scheck löschen
ConfirmDeleteCheckReceipt=Möchten Sie diesen Scheck wirklich löschen?
BankChecks=Bankschecks
BankChecksToReceipt=Schecks zur Einlösung
ShowCheckReceipt=Zeige Scheck Einzahlungsbeleg
NumberOfCheques=Anzahl der Schecks
DeleteTransaction=Transaktion löschen
ConfirmDeleteTransaction=Möchten Sie diese Transaktion wirklich löschen?
@ -134,8 +135,10 @@ ThisWillAlsoDeleteBankRecord=Dies löscht auch erstellte Bankbewegungen
BankMovements=Bankbewegungen
CashBudget=Bargeldbestand
PlannedTransactions=Geplante Transaktionen
Graph=Grafiken
ExportDataset_banque_1=Bankbewegungen und Kontoauszug
TransactionOnTheOtherAccount=Transaktion auf dem anderem Konto
TransactionWithOtherAccount=Konto Transaktion
PaymentNumberUpdateSucceeded=Zahlungsnummer erfolgreich aktualisiert
PaymentNumberUpdateFailed=Zahlungsnummer konnte nicht aktualisiert werden
PaymentDateUpdateSucceeded=Zahlungsdatum erfolgreich aktualisiert
@ -144,8 +147,9 @@ BankTransactionLine=Banküberweisung
AllAccounts=Alle Finanzkonten
BackToAccount=Zurück zum Konto
ShowAllAccounts=Alle Finanzkonten
BankAccountCountry=Bankkonto Land
FutureTransaction=Zukünftige Transaktionen.
SelectChequeTransactionAndGenerate=Schecks auswählen/filtern um Sie in den Einzahlungsbeleg zu integrieren und auf "Erstellen" klicken.
Transactions=Transaktionen
// START - Lines generated via autotranslator.php tool (2011-10-10 02:45:33).
// Reference language: en_US -> de_DE

View File

@ -26,11 +26,15 @@ ReplacementInvoice=Ersatzrechnung
ReplacedByInvoice=Ersetzt durch Rechnung %s
ReplacementByInvoice=Ersetzt durch Rechnung
CorrectInvoice=Korrigiere Rechnung %s
CorrectInvoice=Korrigiere Rechnung %s
CorrectionInvoice=Rechungskorrektur
UsedByInvoice=Zur Bezahlung der Rechnung %s
ConsumedBy=Verbraucht von
NotConsumed=Nicht verbrauchte
NoReplacableInvoice=Keine ersatzfähige Rechnungsnummer
NoInvoiceToCorrect=Keine zu korrigierende Rechnung
InvoiceHasAvoir=Korrigiert durch eine oder mehrere Rechnungen
CardBill=Rechnungskarte
CardBill=Übersicht
PredefinedInvoices=Vordefinierte Rechnungen
Invoice=Rechnung
Invoices=Rechnungen
@ -63,6 +67,7 @@ PaymentConditions=Zahlungskonditionen
PaymentConditionsShort=Konditionen
PaymentAmount=Zahlungsbetrag
PaymentHigherThanReminderToPay=Zahlungsbetrag übersteigt Zahlungserinnerung
HelpPaymentHigherThanReminderToPay=Achtung, die Zahlung eines oder mehrerer Rechnungen ist höher als der Rest zu zahlen. <br> Bearbeiten Sie Ihre Eingabe, sonst bestätigen und denken über die Schaffung einer Gutschrift von mehr als der für jede overpaid Rechnungen.
ClassifyPaid=Als 'bezahlt' markieren
ClassifyPaidPartially=Als 'teilweise bezahlt' markieren
ClassifyCanceled=Als 'storniert' markieren
@ -73,7 +78,6 @@ DeleteBill=Lösche Rechnung
SearchACustomerInvoice=Suche Kundenrechnung
SearchASupplierInvoice=Suche Lieferantenrechnung
CancelBill=Rechnung stornieren
SendByMail=Per E-Mail senden
SendRemindByMail=Zahlungserinnerung per E-Mail senden
DoPayment=Zahlung tätigen
DoPaymentBack=Rückzahlung tätigen
@ -87,18 +91,22 @@ BillStatus=Rechnungsstatus
BillStatusDraft=Entwurf (freizugeben)
BillStatusPaid=Bezahlt
BillStatusPaidBackOrConverted=Bezahlt oder in Rabatt umgewandelt
BillStatusConverted=Umgerechnet auf Rabatt
BillStatusCanceled=Storniert
BillStatusValidated=Freigegeben (zu bezahlen)
BillStatusStarted=Begonnen
BillStatusNotPaid=Offen
BillStatusClosedUnpaid=Geschlossen (unbezahlt)
BillStatusClosedPaidPartially=Bezahlt (teilweise)
BillShortStatusDraft=Entwurf
BillShortStatusPaid=Bezahlt
BillShortStatusPaidBackOrConverted=Bearbeitet
BillShortStatusConverted=Verarbeitete
BillShortStatusCanceled=Storniert
BillShortStatusValidated=Freigegeben
BillShortStatusStarted=Begonnen
BillShortStatusNotPaid=Offen
BillShortStatusClosedUnpaid=Geschlossen
BillShortStatusClosedPaidPartially=Bezahlt (teilweise)
PaymentStatusToValidShort=Freizugeben
ErrorVATIntraNotConfigured=Intrakommunale UID-Nr. noch nicht definiert
@ -114,8 +122,8 @@ BillFrom=Von
BillTo=An
ActionsOnBill=Maßnahmen zu dieser Rechnung
NewBill=Neue Rechnung
Pr<EFBFBD>l<EFBFBD>vements=Dauerauftrag
Pr<EFBFBD>l<EFBFBD>vements=Daueraufträge
Prélèvements=Dauerauftrag
Prélèvements=Daueraufträge
LastBills=%s neueste Rechnungen
LastCustomersBills=%s neueste Kundenrechnungen
LastSuppliersBills=Letzte %s Lieferantenrechnungen
@ -124,10 +132,12 @@ OtherBills=Sonstige Rechnungen
DraftBills=Rechnungsentwürfe
CustomersDraftInvoices=Entwürfe Kundenrechnungen
SuppliersDraftInvoices=Entwürfe Lieferantenrechnungen
Unpaid=Unbezahlte
ConfirmDeleteBill=Möchten Sie diese Rechnung wirklich löschen?
ConfirmValidateBill=Möchten Sie die Rechnung Nr. <b>%s</b> wirklich freigeben?
ConfirmClassifyPaidBill=Sind Sie sicher, dass Sie ändern möchten <b>Rechnung %s,</b> um den Status bezahlt?
ConfirmCancelBill=Möchten Sie die Rechnung <b>%s</b> wirklich stornieren?
ConfirmCancelBillQuestion=Warum wollen Sie klassifizieren diese Rechnung "aufgegeben"?
ConfirmClassifyPaidPartially=Möchten Sie die Rechnung <b>%s</b> wirklich als 'teilweise bezahlt' markieren?
ConfirmClassifyPaidPartiallyQuestion=Diese Rechnung wurde nicht vollständig bezahlt. Was sind Gründe für das Schließen dieser Rechnung?
ConfirmClassifyPaidPartiallyReasonAvoir=Der offene Zahlbetrag <b>( %s %s)</b> resultiert aus einem gewährten Skonto. Zur Korrektur der MwSt. lege ich eine Gutschrift an.
@ -136,6 +146,7 @@ ConfirmClassifyPaidPartiallyReasonDiscountVat=Der offene Zahlbetrag <b>( %s %s)<
ConfirmClassifyPaidPartiallyReasonBadCustomer=Kundenverschulden
ConfirmClassifyPaidPartiallyReasonProductReturned=Produkte teilweise retourniert
ConfirmClassifyPaidPartiallyReasonOther=Betrag aus anderen Gründen uneinbringlich
ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Diese Wahl ist möglich, wenn Sie Ihre Rechnung mit passenden Kommentar versehen sein. (Beispiel «Nur die Steuer entsprechend dem Preis, der gezahlt worden tatsächlich gibt Rechte an Abzug»)
ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=Diese Option steht Ihnen nur dann offen, falls Ihre Rechnung einen entsprechenden Vermerk enthält. (Beispiel: Nur der tatsächlich bezahlte Preis ist abzugsfähig)
ConfirmClassifyPaidPartiallyReasonAvoirDesc=Mit dieser Wahl, wenn alle anderen nicht passt
ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Unter <b>Kundenverschulden</b> fallen vor allem Zahlungsunwilligkeit-, bzw. -unfähigkeit (Insolvenz).
@ -144,9 +155,10 @@ ConfirmClassifyPaidPartiallyReasonOtherDesc=Wählen Sie diese Option, falls kein
ConfirmClassifyAbandonReasonOther=Andere
ConfirmClassifyAbandonReasonOtherDesc=Wählen Sie diese Option in allen anderen Fällen, z.B. wenn Sie planen, eine Ersatzrechnung anzulegen.
ConfirmCustomerPayment=Bestätigen Sie diesen Zahlungseingang für <b>%s</b>, %s?
ConfirmValidatePayment=Sind Sie sicher, dass Sie, um diese Zahlung? Keine Änderung kann erfolgen, wenn paiement ist validiert.
ValidateBill=Rechnung freigeben
NumberOfBills=Anzahl der Rechnungen
NumberOfBillsByMonthHT=Anzahl der Rechnungen/Monat (nach Steuern)
NumberOfBillsByMonth=Anzahl der Rechnungen pro Monat
AmountOfBills=Anzahl der Rechnungen
AmountOfBillsByMonth=Anzahl der Rechnungen/Monat
ShowSocialContribution=Zeige Sozialbeitrag
@ -154,9 +166,12 @@ ShowBill=Zeige Rechnung
ShowInvoice=Zeige Rechnung
ShowInvoiceReplace=Zeige Ersatzrechnung
ShowInvoiceAvoir=Zeige Gutschrift
ShowInvoiceDeposit=Show Anzahlung Rechnung
ShowPayment=Zeige Zahlung
File=Datei
AlreadyPaid=Bereits bezahlt
AlreadyPaidNoCreditNotesNoDeposits=Bereits bezahlte (ohne Gutschriften und Einlagen)
Abandoned=Weggefallen
RemainderToPay=Zu zahlender Restbetrag
RemainderToTake=Einzuhebender Restbetrag
AmountExpected=Höhe der Forderung
@ -181,11 +196,15 @@ DateEcheance=Zahlungsfrist (Limit)
DateInvoice=Rechnungsdatum
NoInvoice=Keine Rechnung
ClassifyBill=Rechnung einordnen
NoSupplierBillsUnpaid=Nr. Lieferanten Rechnungen unbezahlt
SupplierBillsToPay=Zu zahlende Lieferantenrechnungen
CustomerBillsUnpaid=Offene Kundenrechnungen
DispenseMontantLettres=Automatisch generierte Dokumente unterliegen nicht den Formvorschriften eines Briefs.
DispenseMontantLettres=Automatisch generierte Dokumente unterliegen nicht den Formvorschriften eines Briefs.
NonPercuRecuperable=Nicht erstattungsfähig
SetConditions=Zahlungskonditionen einstellen
SetMode=Definiere Zahlungsart
SetDate=Datum
Billed=In Rechnung gestellt
RepeatableInvoice=Rechnungsvorlage
RepeatableInvoices=Rechnungsvorlagen
@ -205,13 +224,21 @@ Reductions=Ermäßigungen
ReductionsShort=Ermäßigungen
Discount=Rabatt
Discounts=Rabatte
AddDiscount=Absoluten Rabatt erstellen
AddCreditNote=Gutschrift erstellen
ShowDiscount=Zeige Rabatt
RelativeDiscount=Relativer Rabatt
GlobalDiscount=Rabattregel
CreditNote=Gutschrift
CreditNotes=Gutschriften
Deposit=Anzahlung
Deposits=Einlagen
DiscountFromCreditNote=Rabatt aus Gutschrift %s
DiscountFromDeposit=Die Zahlungen aus Anzahlung Rechnung %s
AbsoluteDiscountUse=Diese Art von Krediten verwendet werden kann auf der Rechnung vor der Validierung
CreditNoteDepositUse=Rechnung muss validiert werden, um mit diesem König von Krediten
NewGlobalDiscount=Neue Rabattregel
NewRelativeDiscount=Neue relative Rabatt
NoteReason=Anmerkung/Begründung
ReasonDiscount=Rabattgrund
AddDiscount=Rabattregel hinzufügen
@ -223,6 +250,8 @@ BillAddress=Rechnungsanschrift
HelpEscompte=Bei diesem Rabatt handelt es sich um einen Skonto.
HelpAbandonBadCustomer=Dieser Betrag wurde aufgegeben (Kundennverschulden) ist als uneinbringlich zu werten.
HelpAbandonOther=Dieser Betrag wurde auf Grund eines Fehlers aufgegeben (falsche Rechnung oder an falschen Kunden)
IdSocialContribution=Sozialbeitrags id
PaymentId=Zahlung id
InvoiceId=Rechnungs ID
InvoiceRef=Rechnungs Nr.
InvoiceDateCreation=Datum der Rechnungserstellung
@ -232,12 +261,23 @@ InvoicePaid=Rechnung bezahlt
PaymentNumber=Zahlung Nr.
RemoveDiscount=Rabatt entfernen
WatermarkOnDraftBill=Wasserzeichen auf den Rechnungsentwürfen (nichts, falls leer)
InvoiceNotChecked=Keine Rechnung ausgewählt
CloneInvoice=Rechnung duplizieren
CloneMainAttributes=Duplikat mit den Haupteigenschaften
ConfirmCloneInvoice=Möchten sie die Rechnung <b>%s</b> wirklich duplizieren?
DisabledBecauseReplacedInvoice=Aktion unzulässig, da die betreffende Rechnung ersetzt wurde
DescTaxAndDividendsArea=Dieser Bereich stellt eine Übersicht über alle Zahlungen, die für die Steuer-oder Sozialabgaben. Nur Datensätze mit der Bezahlung während der festgesetzten Jahr hier.
NbOfPayments=Zahl der Zahlungen
SplitDiscount=Split Rabatt in zwei
ConfirmSplitDiscount=Sind Sie sicher, dass Sie teilen wollen diesen Rabatt <b>von %s %s</b> in 2 niedrigere Rabatte?
TypeAmountOfEachNewDiscount=Input für jeden der zwei Teile:
TotalOfTwoDiscountMustEqualsOriginal=Insgesamt zwei neue Rabatt muss gleich zu den ursprünglichen Betrag Rabatt.
ConfirmRemoveDiscount=Sind Sie sicher, dass Sie möchten, entfernen Sie diesen Rabatt?
RelatedBill=Ähnliche Rechnung
RelatedBills=Ähnliche Rechnungen
# PaymentConditions
PaymentConditionShortRECEP=Prompt
PaymentConditionRECEP=Prompt nach Rechnungserhalt
PaymentConditionRECEP=Sofort nach Erhalt
PaymentConditionShort30D=30 Tage
PaymentCondition30D=30 Tage netto
PaymentConditionShort30DENDMONTH=30 Tage ab Monatsende
@ -246,6 +286,7 @@ PaymentConditionShort60D=60 Tage
PaymentCondition60D=60 Tage
PaymentConditionShort60DENDMONTH=60 Tage ab Monatsende
PaymentCondition60DENDMONTH=60 Tage ab Ende des Monats
# PaymentType
PaymentTypeVIR=Banküberweisung
PaymentTypeShortVIR=Banküberweisung
PaymentTypePRE=Bankeinzug/Lastschrift
@ -282,7 +323,6 @@ NetToBePaid=Netto Zahlbetrag
PhoneNumber=Tel
FullPhoneNumber=Telefon
TeleFax=Fax
PrettyLittleSentence=Nehmen Sie die Höhe der Zahlungen, die aufgrund von Schecks, die in meinem Namen als Mitglied eines Accounting Association, die von der Steuerverwaltung.
IntracommunityVATNumber=Innergemeinschaftliche MwSt-Nummer
PaymentByChequeOrderedTo=Zahlung per Scheck zu zahlen sind, um %s an
@ -296,105 +336,46 @@ LawApplicationPart3=der Verkäufer bis zur vollständigen Einlösung des
LawApplicationPart4=ihren Preis.
LimitedLiabilityCompanyCapital=SARL mit einem Kapital von
UseDiscount=Verwenden
UseCredit=Verwenden Sie diese Gutschrift
UseCreditNoteInInvoicePayment=Reduzieren Sie die Zahlung mit dieser Gutschrift
MenuChequeDeposits=Schecks Einlagen
MenuChequeDeposits=Scheckeinlagen
MenuCheques=Schecks
MenuChequesReceipts=Schecks Einnahmen
NewChequeDeposit=Neue Hinterlegung
ChequesReceipts=Schecks Einnahmen
ChequesArea=Schecks Einlagen Bereich
ChequeDeposits=Schecks Einlagen
MenuChequesReceipts=Scheckeinnahmen
NewChequeDeposit=Neuer Scheck
ChequesReceipts=Scheckeinnahmen
ChequesArea=Schecks
ChequeDeposits=Scheckeinlagen
Cheques=Schecks
CreditNoteConvertedIntoDiscount=Diese Gutschrift wurde in %s
UsBillingContactAsIncoiveRecipientIfExist=Verwenden Sie Kunden Abrechnung Kontakt-Adresse anstelle von Dritten als Empfänger-Adresse für Rechnungen
Of=Von
PDFBerniqueDescription=Rechnung Modell Bernique
PDFBigorneauDescription=Rechnung Modell Bigorneau
PDFBulotDescription=Rechnung Modell Bulot
PDFCrabeDescription=Rechnung Modell Crabe. Eine vollständige Rechnung Modell (Support Mehrwertsteuer Option, Rabatte, Zahlungen Bedingungen, Logos, etc. ..)
PDFHuitreDescription=Rechnung Modell Huitre
PDFOursinDescription=Rechnung Modell oursin
PDFTourteauDescription=Rechnung Modell Tourteau
TerreNumRefModelDesc1=Zurück NUMERO mit Format %syymm-nnnn für Standardrechnungen und syymm%-nnnn für Gutschriften, wo ist JJ Jahr, MM Monat und nnnn ist eine Folge ohne Pause und keine Rückkehr auf 0
TerreNumRefModelError=Eine Rechnung, beginnend mit $ syymm existiert bereits und ist nicht kompatibel mit diesem Modell der Reihe. Entfernen oder umbenennen, um dieses Modul.
OrionNumRefModelDesc1=Gibt die Anzahl der unter Format FAYYNNNNN wenn JJ das Jahr und die Erhöhung der Zahl NNNNN ab 1.
OrionNumRefModelDesc2=Das Jahr ist um 1 ohne eine Initialisierungssequenz auf Null zu Beginn des Geschäftsjahres.
OrionNumRefModelDesc3=Definieren Sie die Variable SOCIETE_FISCAL_MONTH_START mit dem Monat zu Beginn des Geschäftsjahres an, Beispiel: 9 für September.
OrionNumRefModelDesc4=In diesem Beispiel werden wir auf den 1. September 2006 eine Rechnung Namen FA700354.
TitanNumRefModelDesc1=Gibt die Anzahl mit Format FAYYNNNNN wo YY ist das Jahr, und NNNNN ist die Erhöhung der Zahl ab 1.
TitanNumRefModelDesc2=Das Jahr ist um 1 erhöht und die Erhöhung der Zahl initialisiert auf Null zu Beginn des Geschäftsjahres.
TitanNumRefModelDesc3=Definieren Sie die Variable SOCIETE_FISCAL_MONTH_START mit dem Monat zu Beginn des Geschäftsjahres an, Beispiel: 9 für September.
TitanNumRefModelDesc4=In diesem Beispiel werden wir auf den 1. September 2006 eine Rechnung Namen FA0700001
PlutonNumRefModelDesc1=Zurück eine anpassbare Rechnungsnummer nach einem definierten Maske.
InvoiceDeposit=Anzahlung Rechnung
InvoiceDepositAsk=Anzahlung Rechnung
InvoiceDepositDesc=Diese Art der Rechnung erfolgt, wenn eine Anzahlung eingegangen ist.
InvoiceProForma=Proforma Rechnung
InvoiceProFormaAsk=Proforma Rechnung
InvoiceProFormaDesc=<b>Proforma Rechnung</b> ist ein Bild eines echten Rechnung, hat aber keine Buchhaltung Wert.
UsedByInvoice=Zur Bezahlung der Rechnung %s
ConsumedBy=Consumed von
NotConsumed=Nicht verbrauchte
HelpPaymentHigherThanReminderToPay=Achtung, die Zahlung eines oder mehrerer Rechnungen ist höher als der Rest zu zahlen. <br> Bearbeiten Sie Ihre Eingabe, sonst bestätigen und denken über die Schaffung einer Gutschrift von mehr als der für jede overpaid Rechnungen.
BillStatusConverted=Umgerechnet auf Rabatt
BillShortStatusConverted=Verarbeitete
Prélèvements=Dauerauftrag
Prélèvements=Daueraufträge
ShowInvoiceDeposit=Show Anzahlung Rechnung
SetDate=Datum
Deposit=Anzahlung
Deposits=Einlagen
DiscountFromDeposit=Die Zahlungen aus Anzahlung Rechnung %s
AbsoluteDiscountUse=Diese Art von Krediten verwendet werden kann auf der Rechnung vor der Validierung
CreditNoteDepositUse=Rechnung muss validiert werden, um mit diesem König von Krediten
NewRelativeDiscount=Neue relative Rabatt
IdSocialContribution=Sozialbeitrags id
PaymentId=Zahlung id
DescTaxAndDividendsArea=Dieser Bereich stellt eine Übersicht über alle Zahlungen, die für die Steuer-oder Sozialabgaben. Nur Datensätze mit der Bezahlung während der festgesetzten Jahr hier.
NbOfPayments=Zahl der Zahlungen
SplitDiscount=Split Rabatt in zwei
ConfirmSplitDiscount=Sind Sie sicher, dass Sie teilen wollen diesen Rabatt <b>von %s %s</b> in 2 niedrigere Rabatte?
TypeAmountOfEachNewDiscount=Input für jeden der zwei Teile:
TotalOfTwoDiscountMustEqualsOriginal=Insgesamt zwei neue Rabatt muss gleich zu den ursprünglichen Betrag Rabatt.
ConfirmRemoveDiscount=Sind Sie sicher, dass Sie möchten, entfernen Sie diesen Rabatt?
UseCredit=Verwenden Sie die Credit
ShowUnpaidAll=Zeige alle unbezahlten Rechnungen
ShowUnpaidLateOnly=Zeige nur verspätete unbezahlte Rechnung
PaymentInvoiceRef=Die Zahlung der Rechnung %s
BillsCustomersUnpaid=Kunden wegen eines nicht bezahlten Rechnungen
BillsCustomersUnpaidForCompany=Kunden wegen eines nicht bezahlten Rechnungen für %s
BillsSuppliersUnpaid=Lieferanten nicht bezahlten Rechnungen
BillsUnpaid=Unbezahlte
BillStatusClosedUnpaid=Geschlossen (unbezahlt)
BillShortStatusClosedUnpaid=Geschlossen
Unpaid=Unbezahlte
ConfirmCancelBillQuestion=Warum wollen Sie klassifizieren diese Rechnung "aufgegeben"?
ConfirmValidatePayment=Sind Sie sicher, dass Sie, um diese Zahlung? Keine Änderung kann erfolgen, wenn paiement ist validiert.
Abandoned=Abandoned
NoSupplierBillsUnpaid=Nr. Lieferanten Rechnungen unbezahlt
CustomerBillsUnpaid=Kunden wegen eines nicht bezahlten Rechnungen
ShowUnpaidLateOnly=Show Ende unbezahlte Rechnung nur
ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Diese Wahl ist möglich, wenn Sie Ihre Rechnung mit passenden Kommentar versehen sein. (Beispiel «Nur die Steuer entsprechend dem Preis, der gezahlt worden tatsächlich gibt Rechte an Abzug»)
AlreadyPaidNoCreditNotesNoDeposits=Bereits bezahlte (ohne Gutschriften und Einlagen)
RelatedBill=Verwandte Rechnung
RelatedBills=Ähnliche Rechnungen
ValidateInvoice=Validate Rechnung
ValidateInvoice=Rechnung freigeben
Cash=Bargeld
Reported=Verspätet
DisabledBecausePayments=Nicht möglich, da gibt es einige Zahlungen
CantRemovePaymentWithOneInvoicePaid=Kann die Zahlung nicht entfernen, da es zumindest auf der Rechnung bezahlt klassifiziert
ExpectedToPay=Erwartete Zahlung
PayedByThisPayment=Bezahlt durch diese Zahlung
TypeContact_facture_internal_SALESREPFOLL=Repräsentative Follow-up Debitorenrechnung
TypeContact_facture_external_BILLING=Debitorenrechnung Kontakt
TypeContact_facture_external_SHIPPING=Customer Versand Kontakt
TypeContact_facture_external_SERVICE=Kundenservice kontaktieren
ClosePaidInvoicesAutomatically=Makiert alle Standard- oder Ersatzrechnungen als "bezahlt" wenn diese vollständig beglichen sind.
AllCompletelyPayedInvoiceWillBeClosed=Alle Rechnungen ohne ausstehende Zahlungen werden automatisch geschlossen und als "bezahlt" makiert.
##### Types de contacts #####
TypeContact_facture_internal_SALESREPFOLL=Repräsentative Follow-up Kundenrechnung
TypeContact_facture_external_BILLING=Kundenrechnung Kontakt
TypeContact_facture_external_SHIPPING=Kundenversand Kontakt
TypeContact_facture_external_SERVICE=Kundenservice Kontakt
TypeContact_facture_fourn_internal_SALESREPFOLL=Repräsentative Follow-up Lieferantenrechnung
TypeContact_facture_fourn_external_BILLING=Lieferantenrechnung Kontakt
TypeContact_facture_fourn_external_SHIPPING=Supplier Versand Kontakt
TypeContact_facture_fourn_external_SERVICE=Supplier Service Kontakt
PDFLinceDescription=Eine vollständige Rechnung Modell mit spanischen und RE IRPF
TypeContact_facture_fourn_external_SHIPPING=Lieferantenversand Kontakt
TypeContact_facture_fourn_external_SERVICE=Lieferantenservice Kontakt
# crabe PDF Model
PDFCrabeDescription=Rechnung Modell Crabe. Eine vollständige Rechnung Modell (Empfohlene Vorlage)
# oursin PDF Model
PDFOursinDescription=Rechnung Modell oursin. Eine vollständige Rechnung Modell (Alternative Vorlage)
# NumRef Modules
TerreNumRefModelDesc1=Zurück NUMERO mit Format %syymm-nnnn für Standardrechnungen und syymm%-nnnn für Gutschriften, wo ist JJ Jahr, MM Monat und nnnn ist eine Folge ohne Pause und keine Rückkehr auf 0
TerreNumRefModelError=Eine Rechnung, beginnend mit $ syymm existiert bereits und ist nicht kompatibel mit diesem Modell der Reihe. Entfernen oder umbenennen, um dieses Modul.
// START - Lines generated via autotranslator.php tool (2012-02-29 16:03:27).
@ -416,3 +397,19 @@ ShowUnpaidAll=Alle unbezahlten Rechnungen
ClosePaidInvoicesAutomatically=Klassifizieren &quot;Bezahlt&quot; alle Standard-oder den Ersatz Rechnungen entierely bezahlt.
AllCompletelyPayedInvoiceWillBeClosed=Alle Rechnungen bleiben ohne zu bezahlen wird automatisch auf den Status &quot;Bezahlt&quot; geschlossen werden.
// STOP - Lines generated via autotranslator.php tool (2012-02-29 16:04:14).
// START - Lines generated via autotranslator.php tool (2012-05-02 17:27:54).
// Reference language: en_US -> de_DE
BillsCustomersUnpaid=Unbezahlte Rechnungen des Kunden
BillsCustomersUnpaidForCompany=Unbezahlte Rechnungen für Kunden %s
BillsSuppliersUnpaid=Unbezahlte Rechnungen des Lieferanten
BillsUnpaid=Unbezahlt
InvoiceDeposit=Anzahlungsrechnung
InvoiceDepositAsk=Anzahlungsrechnung
InvoiceDepositDesc=Diese Art der Rechnung erfolgt, wenn eine Anzahlung eingegangen ist.
InvoiceProForma=Proforma-Rechnung
InvoiceProFormaAsk=Proforma-Rechnung
InvoiceProFormaDesc=<b>Proforma-Rechnung</b> ist ein Bild von einer wahren Rechnung, hat aber keine Buchhaltung Wert.
EditRelativeDiscount=Bearbeiten relativen Rabatt
// STOP - Lines generated via autotranslator.php tool (2012-05-02 17:28:15).

View File

@ -1,14 +1,11 @@
/*
* Language code: de_DE
* Automatic generated via autotranslator.php tool
* Generation date 2009-08-13 20:42:36
* Manually translated by modula71.de
* Generation date 2010-04-02
*/
// START - Lines generated via autotranslator.php tool (2009-08-13 20:42:36).
// Reference language: en_US
CHARSET=UTF-8
Bookm=Lesezeichen
NewBookmark=Neue Lesezeichen
AddThisPageToBookmarks=Fügen Sie diese Seite zu Lesezeichen
// STOP - Lines generated via autotranslator.php tool (2009-08-13 20:42:36).
NewBookmark=Neues Lesezeichen
AddThisPageToBookmarks=Fügen Sie diese Seite zu Ihren Lesezeichen hinzu

Some files were not shown because too many files have changed in this diff Show More