Merge branch 'develop' of https://github.com/Dolibarr/dolibarr into develop
This commit is contained in:
commit
96111a2206
@ -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 *****
|
||||
|
||||
@ -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`;
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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");
|
||||
|
||||
@ -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>';
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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)."')";
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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"))
|
||||
{
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
@ -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>';
|
||||
}
|
||||
|
||||
@ -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"> </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).'"> </a><input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">';
|
||||
print ' <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).'&code='.$obj->code.'&id='.$id.'&action=edit#'.($obj->rowid?$obj->rowid:$obj->code).'">'.img_edit().'</a></td>';
|
||||
else print '<td> </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).'&code='.$obj->code.'&id='.$id.'&action=delete">'.img_delete().'</a></td>';
|
||||
else print '<td> </td>';
|
||||
|
||||
@ -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>';
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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>';
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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>';
|
||||
|
||||
@ -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> </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"> ';
|
||||
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").'"> <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").'"> <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";
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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) )
|
||||
{
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
@ -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'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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&socid='.$object->socid.'&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&socid='.$object->socid.'&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();
|
||||
?>
|
||||
@ -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');
|
||||
}
|
||||
|
||||
@ -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&socid='.$object->socid.'&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
|
||||
{
|
||||
|
||||
@ -380,8 +380,9 @@ if ($resql)
|
||||
print '<a href="'.DOL_URL_ROOT.'/compta/bank/ligne.php?rowid='.$objp->rowid.'&account='.$acct->id.'&orig_account='.$acct->id.'">';
|
||||
print img_edit();
|
||||
print '</a> ';
|
||||
|
||||
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&rowid='.$objp->rowid.'&account='.$acct->id.'">';
|
||||
print img_delete();
|
||||
print '</a>';
|
||||
|
||||
@ -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)."'";
|
||||
|
||||
@ -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."'";
|
||||
|
||||
@ -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
|
||||
{
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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.= ")";
|
||||
|
||||
|
||||
@ -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");
|
||||
|
||||
|
||||
@ -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");
|
||||
|
||||
@ -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">';
|
||||
|
||||
@ -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 : ' ';
|
||||
$this->tpl['remise_percent'] = (($line->info_bits & 2) != 2) ? vatrate($line->remise_percent, true) : ' ';
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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) )
|
||||
{
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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")
|
||||
{
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
?>
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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&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&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&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&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&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__);
|
||||
|
||||
@ -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";
|
||||
}
|
||||
|
||||
|
||||
@ -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&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&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&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&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&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&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&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&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&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&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";
|
||||
}
|
||||
|
||||
|
||||
@ -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
|
||||
{
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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);
|
||||
@ -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;
|
||||
@ -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;
|
||||
|
||||
@ -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();
|
||||
|
||||
|
||||
@ -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);
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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>
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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");
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
}
|
||||
Binary file not shown.
106
htdocs/includes/jquery/plugins/datatables/extras/Bootstrap/js/DT_bootstrap.js
vendored
Normal file
106
htdocs/includes/jquery/plugins/datatables/extras/Bootstrap/js/DT_bootstrap.js
vendored
Normal 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="#">← '+oLang.sPrevious+'</a></li>'+
|
||||
'<li class="next disabled"><a href="#">'+oLang.sNext+' → </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"
|
||||
}
|
||||
} );
|
||||
} );
|
||||
1337
htdocs/includes/savant/Savant3.php
Normal file
1337
htdocs/includes/savant/Savant3.php
Normal file
File diff suppressed because it is too large
Load Diff
125
htdocs/includes/savant/Savant3/Error.php
Normal file
125
htdocs/includes/savant/Savant3/Error.php
Normal 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();
|
||||
}
|
||||
}
|
||||
?>
|
||||
29
htdocs/includes/savant/Savant3/Exception.php
Normal file
29
htdocs/includes/savant/Savant3/Exception.php
Normal 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 {
|
||||
}
|
||||
?>
|
||||
85
htdocs/includes/savant/Savant3/Filter.php
Normal file
85
htdocs/includes/savant/Savant3/Filter.php
Normal 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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
67
htdocs/includes/savant/Savant3/Plugin.php
Normal file
67
htdocs/includes/savant/Savant3/Plugin.php
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
123
htdocs/includes/savant/Savant3/resources/Savant3_Plugin_date.php
Normal file
123
htdocs/includes/savant/Savant3/resources/Savant3_Plugin_date.php
Normal 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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@ -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
|
||||
*/
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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>.
|
||||
|
||||
@ -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ó
|
||||
@ -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).
|
||||
|
||||
@ -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).
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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 "Bezahlt" alle Standard-oder den Ersatz Rechnungen entierely bezahlt.
|
||||
AllCompletelyPayedInvoiceWillBeClosed=Alle Rechnungen bleiben ohne zu bezahlen wird automatisch auf den Status "Bezahlt" 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).
|
||||
|
||||
@ -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
Loading…
Reference in New Issue
Block a user