forked from Wavyzz/dolibarr
Compare commits
47 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
268a4b67e9 | ||
|
|
206ded3f2b | ||
|
|
94c2b504cb | ||
|
|
0e7b861086 | ||
|
|
e4e27a0071 | ||
|
|
29841f2606 | ||
|
|
6c5517b757 | ||
|
|
0cac22376a | ||
|
|
cd68538d2d | ||
|
|
8bd5327d02 | ||
|
|
9bf77eac4c | ||
|
|
ffe47141ff | ||
|
|
b0eec3ef3a | ||
|
|
c74f68d14a | ||
|
|
970b332bd8 | ||
|
|
d7485f5823 | ||
|
|
24b002fbe6 | ||
|
|
5cd329a320 | ||
|
|
63c5f3433a | ||
|
|
93dc6b5fc0 | ||
|
|
0216bdd311 | ||
|
|
ac6049f0b3 | ||
|
|
8b129f1af0 | ||
|
|
2cabd97da8 | ||
|
|
27a1e11ea5 | ||
|
|
9ecd566580 | ||
|
|
ac1cfd3d23 | ||
|
|
72dbeadc49 | ||
|
|
8fec37d5ad | ||
|
|
b826a6b559 | ||
|
|
085dee1ab1 | ||
|
|
5e9a9a48f3 | ||
|
|
ec17511e01 | ||
|
|
99c461b9d1 | ||
|
|
4a2c38a1c1 | ||
|
|
585d1b0587 | ||
|
|
b4ad2887a0 | ||
|
|
6aebf470f6 | ||
|
|
24721eb3e8 | ||
|
|
4a74ebc1f9 | ||
|
|
80bbeaa9b5 | ||
|
|
1038e86616 | ||
|
|
217b4ea15f | ||
|
|
0b0a30d362 | ||
|
|
19e0c66efc | ||
|
|
48eec88cba | ||
|
|
f8f3b2dc39 |
83
.travis.yml
Normal file
83
.travis.yml
Normal file
@@ -0,0 +1,83 @@
|
||||
# This script is used by Travis CI to run automatically Continuous test integration
|
||||
# from Dolibarr GitHub repository.
|
||||
# Command run is phpunit
|
||||
# For syntax, see http://about.travis-ci.org/docs/user/languages/php/
|
||||
|
||||
services:
|
||||
- memcached # will start memcached
|
||||
|
||||
# This will tell travis to run phpunit
|
||||
language: php
|
||||
php:
|
||||
- "5.3"
|
||||
|
||||
env:
|
||||
- DB=mysql
|
||||
# - DB=postgres
|
||||
|
||||
before_script:
|
||||
- echo Start travis
|
||||
- echo Current dir is `pwd`
|
||||
- echo Home dir is `echo ~`
|
||||
- echo Update composer
|
||||
# - ~/.phpenv/versions/$(phpenv version-name)/bin/composer.phar self-update
|
||||
- echo Create dir $(pwd)/htdocs/documents
|
||||
- sudo mkdir -p $(pwd)/htdocs/documents/admin/temp;
|
||||
- sudo touch $(pwd)/htdocs/documents/dolibarr.log;
|
||||
- sudo chmod a+rwx /home; sudo chmod a+rwx /home/travis; sudo chmod -R a+rwx /home/travis/build;
|
||||
- sudo chmod -R a+rwx $(pwd);
|
||||
- sudo chown -R www-data:travis $(pwd)/htdocs/documents;
|
||||
- find $(pwd)/htdocs/documents -type d -exec ls -alt {} \;
|
||||
- echo Edit php.ini file
|
||||
- echo 'date.timezone = "Europe/Paris"' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
|
||||
- echo "extension = apc.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
|
||||
# - echo "extension = memcache.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
|
||||
- echo "extension = memcached.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
|
||||
- echo "zend_extension_ts = xdebug.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
|
||||
- cat ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
|
||||
- echo Init database
|
||||
- sh -c "if [ '$DB' = 'pgsql' ]; then psql -c 'DROP DATABASE IF EXISTS myapp_test;' -U postgres; fi"
|
||||
- sh -c "if [ '$DB' = 'pgsql' ]; then psql -c 'CREATE DATABASE myapp_test;' -U postgres; fi"
|
||||
- sh -c "if [ '$DB' = 'mysql' ]; then mysql -e 'DROP DATABASE IF EXISTS myapp_test;'; fi"
|
||||
- sh -c "if [ '$DB' = 'mysql' ]; then mysql -e 'CREATE DATABASE IF NOT EXISTS myapp_test;'; fi"
|
||||
- sh -c "if [ '$DB' = 'mysql' ]; then mysql -D myapp_test < $(pwd)/dev/initdata/mysqldump_dolibarr_3.2.0.sql; fi"
|
||||
- echo Create config file htdocs/conf/conf.php
|
||||
- echo '<?php ' > htdocs/conf/conf.php
|
||||
- sh -c "if [ '$DB' = 'pgsql' ]; then echo '$'dolibarr_main_db_type=\'pgsql\'';' >> htdocs/conf/conf.php; fi"
|
||||
- sh -c "if [ '$DB' = 'mysql' ]; then echo '$'dolibarr_main_db_type=\'mysqli\'';' >> htdocs/conf/conf.php; fi"
|
||||
- echo '$'dolibarr_main_url_root=\'http://localhost/\'';' >> htdocs/conf/conf.php
|
||||
- echo '$'dolibarr_main_document_root=\'$(pwd)/htdocs\'';' >> htdocs/conf/conf.php
|
||||
- echo '$'dolibarr_main_data_root=\'$(pwd)/htdocs/documents\'';' >> htdocs/conf/conf.php
|
||||
- echo '$'dolibarr_main_db_host=\'localhost\'';' >> htdocs/conf/conf.php
|
||||
- echo '$'dolibarr_main_db_name=\'myapp_test\'';' >> htdocs/conf/conf.php
|
||||
- echo '$'dolibarr_main_db_user=\'travis\'';' >> htdocs/conf/conf.php
|
||||
- echo '$'dolibarr_main_authentication=\'dolibarr\'';' >> htdocs/conf/conf.php
|
||||
- echo '?>' >> htdocs/conf/conf.php
|
||||
- echo Show conf.php content
|
||||
- cat htdocs/conf/conf.php
|
||||
- echo Install apache server
|
||||
- sudo apt-get update > /dev/null
|
||||
- sudo apt-get install -y --force-yes apache2 libapache2-mod-php5 php5-curl php5-mysql php5-pgsql php5-intl
|
||||
- sudo sed -i -e "s,/var/www,$(pwd)/htdocs,g" /etc/apache2/sites-available/default
|
||||
- echo Show default virtual host
|
||||
- sudo cat /etc/apache2/sites-available/default
|
||||
- sudo /etc/init.d/apache2 restart
|
||||
- wget http://localhost/
|
||||
- cat index.html
|
||||
|
||||
|
||||
|
||||
# Omitting "script:" will default to phpunit
|
||||
# use the $DB env variable to determine the phpunit.xml to use
|
||||
#script: phpunit -d memory_limit=-1 --configuration test/phpunit/phpunittest.xml --coverage-text test/phpunit/AllTests.php
|
||||
#script: phpunit -d memory_limit=-1 --configuration test/phpunit/phpunittest.xml --coverage-text test/phpunit/BuildDocTest.php
|
||||
#script: phpunit -d memory_limit=-1 --configuration test/phpunit/phpunittest.xml test/phpunit/WebservicesOtherTest.php
|
||||
script:
|
||||
# - phpcs -s --report-summary --standard=dev/codesniffer/ruleset.xml --tab-width=4 --ignore=/build/html/,/documents/,/includes/,/test/report/ .
|
||||
- phpunit -d memory_limit=-1 --configuration test/phpunit/phpunittest.xml test/phpunit/AllTests.php
|
||||
|
||||
after_script:
|
||||
# - echo Output dolibarr log file; cat $(pwd)/htdocs/documents/dolibarr.log
|
||||
- echo Output apache log file; sudo cat /var/log/apache2/error.log
|
||||
- echo End travis
|
||||
|
||||
18
ChangeLog
18
ChangeLog
@@ -3,6 +3,24 @@ English Dolibarr ChangeLog
|
||||
--------------------------------------------------------------
|
||||
|
||||
|
||||
***** ChangeLog for 3.2.3 compared to 3.2.2 *****
|
||||
|
||||
- Fix: Some permission into agenda module.
|
||||
- Fix: Generation of PDF was not using correct font for some languages.
|
||||
- Fix some translations.
|
||||
- Fix: [ bug #607 ] Nom de société avec guillemets.
|
||||
- Fix: Option MAIN_MAIL_SENDMAIL_FORCE_BA and MAIN_FIX_BUGGED_MTA was not
|
||||
complete.
|
||||
- Fix: comaptiblity with multicompany module.
|
||||
- Fix: Bad label when validating/paying an invoice from POS module.
|
||||
- Fix: Correct recipient into rouget template.
|
||||
- Fix: A lot of fix into PDF pagebreak management.
|
||||
- Update VAT for some countries.
|
||||
- Firstname was missing when sending email from file list.
|
||||
- Added en_SA language.
|
||||
|
||||
|
||||
|
||||
***** ChangeLog for 3.2.2 compared to 3.2.1 *****
|
||||
|
||||
- Fix: Modify spanish VAT to new rates.
|
||||
|
||||
@@ -10,7 +10,7 @@ use Cwd;
|
||||
$PROJECT="dolibarr";
|
||||
$MAJOR="3";
|
||||
$MINOR="2";
|
||||
$BUILD="3"; # Mettre x pour release, x-dev pour dev, x-beta pour beta, x-rc pour release candidate
|
||||
$BUILD="4"; # Mettre x pour release, x-dev pour dev, x-beta pour beta, x-rc pour release candidate
|
||||
$RPMSUBVERSION="auto"; # auto use value found into BUILD
|
||||
|
||||
@LISTETARGET=("TGZ","ZIP","RPM_GENERIC","RPM_FEDORA","RPM_MANDRIVA","RPM_OPENSUSE","DEB","APS","EXEDOLIWAMP","SNAPSHOT"); # Possible packages
|
||||
|
||||
11
htdocs/.gitignore
vendored
11
htdocs/.gitignore
vendored
@@ -1,2 +1,11 @@
|
||||
/test.php
|
||||
/custom*
|
||||
/custom*
|
||||
/extensions*
|
||||
/nltechno*
|
||||
/bootstrap*
|
||||
/google*
|
||||
/multicompany*
|
||||
/numberingpack*
|
||||
/ovh*
|
||||
/pos
|
||||
/ultimatepdf*
|
||||
@@ -126,15 +126,22 @@ clearstatcache();
|
||||
//if ($mesg) print "<br>$mesg<br>";
|
||||
print "<br>";
|
||||
|
||||
|
||||
// Define $urlwithroot
|
||||
$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root));
|
||||
$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
|
||||
//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
|
||||
|
||||
|
||||
// Show message
|
||||
$message='';
|
||||
$urlvcal='<a href="'.DOL_MAIN_URL_ROOT.'/public/agenda/agendaexport.php?format=vcal&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY):'...').'" target="_blank">'.DOL_MAIN_URL_ROOT.'/public/agenda/agendaexport.php?format=vcal&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY):'KEYNOTDEFINED').'</a>';
|
||||
$urlvcal='<a href="'.$urlwithroot.'/public/agenda/agendaexport.php?format=vcal&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY):'...').'" target="_blank">'.$urlwithroot.'/public/agenda/agendaexport.php?format=vcal&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY):'KEYNOTDEFINED').'</a>';
|
||||
$message.=img_picto('','object_globe.png').' '.$langs->trans("WebCalUrlForVCalExport",'vcal',$urlvcal);
|
||||
$message.='<br>';
|
||||
$urlical='<a href="'.DOL_MAIN_URL_ROOT.'/public/agenda/agendaexport.php?format=ical&type=event&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY):'...').'" target="_blank">'.DOL_MAIN_URL_ROOT.'/public/agenda/agendaexport.php?format=ical&type=event&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY):'KEYNOTDEFINED').'</a>';
|
||||
$urlical='<a href="'.$urlwithroot.'/public/agenda/agendaexport.php?format=ical&type=event&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY):'...').'" target="_blank">'.$urlwithroot.'/public/agenda/agendaexport.php?format=ical&type=event&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY):'KEYNOTDEFINED').'</a>';
|
||||
$message.=img_picto('','object_globe.png').' '.$langs->trans("WebCalUrlForVCalExport",'ical/ics',$urlical);
|
||||
$message.='<br>';
|
||||
$urlrss='<a href="'.DOL_MAIN_URL_ROOT.'/public/agenda/agendaexport.php?format=rss&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY):'...').'" target="_blank">'.DOL_MAIN_URL_ROOT.'/public/agenda/agendaexport.php?format=rss&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY):'KEYNOTDEFINED').'</a>';
|
||||
$urlrss='<a href="'.$urlwithroot.'/public/agenda/agendaexport.php?format=rss&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY):'...').'" target="_blank">'.$urlwithroot.'/public/agenda/agendaexport.php?format=rss&exportkey='.($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY?urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY):'KEYNOTDEFINED').'</a>';
|
||||
$message.=img_picto('','object_globe.png').' '.$langs->trans("WebCalUrlForVCalExport",'rss',$urlrss);
|
||||
$message.='<br>';
|
||||
$message.='<br>';
|
||||
|
||||
@@ -355,7 +355,6 @@ foreach ($dirmodels as $reldir)
|
||||
// Info
|
||||
$htmltooltip='';
|
||||
$htmltooltip.=''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>';
|
||||
$facture->type=0;
|
||||
$nextval=$module->getNextValue($mysoc,$commande);
|
||||
if ("$nextval" != $langs->trans("NotAvailable")) // Keep " on nextval
|
||||
{
|
||||
|
||||
@@ -878,8 +878,11 @@ class ActionComm extends CommonObject
|
||||
$event['location']=$obj->location;
|
||||
$event['transparency']='TRANSPARENT'; // OPAQUE (busy) or TRANSPARENT (not busy)
|
||||
$event['category']=$obj->libelle; // libelle type action
|
||||
$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',$dolibarr_main_url_root);
|
||||
$url=$urlwithouturlroot.DOL_URL_ROOT.'/comm/action/fiche.php?id='.$obj->id;
|
||||
// Define $urlwithroot
|
||||
$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root));
|
||||
$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
|
||||
//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
|
||||
$url=$urlwithroot.'/comm/action/fiche.php?id='.$obj->id;
|
||||
$event['url']=$url;
|
||||
$event['created']=$this->db->jdate($obj->datec);
|
||||
$event['modified']=$this->db->jdate($obj->datem);
|
||||
|
||||
@@ -142,6 +142,7 @@ if ($socid) $param.="&socid=".$socid;
|
||||
if ($showbirthday) $param.="&showbirthday=1";
|
||||
if ($pid) $param.="&projectid=".$pid;
|
||||
if ($_GET["type"]) $param.="&type=".$_REQUEST["type"];
|
||||
if ($actioncode) $param.="&actioncode=".$actioncode;
|
||||
|
||||
$sql = "SELECT s.nom as societe, s.rowid as socid, s.client,";
|
||||
$sql.= " a.id, a.datep as dp, a.datep2 as dp2,";
|
||||
|
||||
@@ -2710,7 +2710,6 @@ class PropaleLigne
|
||||
}
|
||||
$sql.= " , marge_tx='".$this->marge_tx."'";
|
||||
$sql.= " , marque_tx='".$this->marque_tx."'";
|
||||
$sql.= " , info_bits=".$this->info_bits;
|
||||
if (strlen($this->special_code)) $sql.= " , special_code=".$this->special_code;
|
||||
$sql.= " , fk_parent_line=".($this->fk_parent_line>0?$this->fk_parent_line:"null");
|
||||
if (! empty($this->rang)) $sql.= ", rang=".$this->rang;
|
||||
|
||||
@@ -2108,9 +2108,10 @@ class Commande extends CommonObject
|
||||
* @param int $type Type of line (0=product, 1=service)
|
||||
* @param int $fk_parent_line Parent line id
|
||||
* @param int $skip_update_total Skip update of total
|
||||
* @param int $special_code Special code
|
||||
* @return int < 0 if KO, > 0 if OK
|
||||
*/
|
||||
function updateline($rowid, $desc, $pu, $qty, $remise_percent, $txtva, $txlocaltax1=0,$txlocaltax2=0, $price_base_type='HT', $info_bits=0, $date_start='', $date_end='', $type=0, $fk_parent_line=0, $skip_update_total=0)
|
||||
function updateline($rowid, $desc, $pu, $qty, $remise_percent, $txtva, $txlocaltax1=0,$txlocaltax2=0, $price_base_type='HT', $info_bits=0, $date_start='', $date_end='', $type=0, $fk_parent_line=0, $skip_update_total=0, $special_code=0)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
@@ -2129,6 +2130,7 @@ class Commande extends CommonObject
|
||||
if (empty($txlocaltax2)) $txlocaltax2=0;
|
||||
if (empty($remise)) $remise=0;
|
||||
if (empty($remise_percent)) $remise_percent=0;
|
||||
if (empty($special_code) || $special_code == 3) $special_code=0;
|
||||
$remise_percent=price2num($remise_percent);
|
||||
$qty=price2num($qty);
|
||||
$pu = price2num($pu);
|
||||
@@ -2181,7 +2183,7 @@ class Commande extends CommonObject
|
||||
$this->line->remise_percent=$remise_percent;
|
||||
$this->line->subprice=$subprice;
|
||||
$this->line->info_bits=$info_bits;
|
||||
$this->line->special_code=0; // To remove special_code=3 coming from proposals copy
|
||||
$this->line->special_code=$special_code;
|
||||
$this->line->total_ht=$total_ht;
|
||||
$this->line->total_tva=$total_tva;
|
||||
$this->line->total_localtax1=$total_localtax1;
|
||||
|
||||
@@ -117,11 +117,6 @@ if (is_numeric($credit)) {
|
||||
$si++;
|
||||
$sqlw[$si] .= " b.amount = " . $credit;
|
||||
}
|
||||
// Search criteria description
|
||||
if ($description) {
|
||||
$si++;
|
||||
$sqlw[$si] .= " b.label like '%" . $description . "%'";
|
||||
}
|
||||
// Other search criteria
|
||||
for ($i = 1 ; $i <= $si; $i++) {
|
||||
$sql .= " AND " . $sqlw[$i];
|
||||
@@ -195,75 +190,87 @@ if ($resql)
|
||||
{
|
||||
$objp = $db->fetch_object($resql);
|
||||
|
||||
$var=!$var;
|
||||
|
||||
print "<tr $bc[$var]>";
|
||||
|
||||
// Ref
|
||||
print '<td align="left" nowrap="nowrap">';
|
||||
print "<a href=\"ligne.php?rowid=".$objp->rowid.'">'.img_object($langs->trans("ShowPayment"),"payment").' '.$objp->rowid."</a> ";
|
||||
print '</td>';
|
||||
|
||||
// Date ope
|
||||
print '<td align="center" nowrap="nowrap">'.dol_print_date($db->jdate($objp->do),"day")."</td>\n";
|
||||
|
||||
// Date value
|
||||
print '<td align="center" nowrap="nowrap">'.dol_print_date($db->jdate($objp->dv),"day")."</td>\n";
|
||||
|
||||
// Payment type
|
||||
print "<td align=\"center\">";
|
||||
$labeltype=($langs->trans("PaymentTypeShort".$objp->fk_type)!="PaymentTypeShort".$objp->fk_type)?$langs->trans("PaymentTypeShort".$objp->fk_type):$langs->getLabelFromKey($db,$objp->fk_type,'c_paiement','code','libelle');
|
||||
if ($labeltype == 'SOLD') print ' '; //$langs->trans("InitialBankBalance");
|
||||
else print $labeltype;
|
||||
print "</td>\n";
|
||||
|
||||
// Num
|
||||
print '<td nowrap>'.($objp->num_chq?$objp->num_chq:"")."</td>\n";
|
||||
|
||||
// Description
|
||||
print "<td>";
|
||||
|
||||
print "<a href=\"ligne.php?rowid=".$objp->rowid."&account=".$objp->fk_account."\">";
|
||||
$reg=array();
|
||||
preg_match('/\((.+)\)/i',$objp->label,$reg); // Si texte entoure de parenthee on tente recherche de traduction
|
||||
if ($reg[1] && $langs->trans($reg[1])!=$reg[1]) print $langs->trans($reg[1]);
|
||||
else print dol_trunc($objp->label,40);
|
||||
print "</a> ";
|
||||
|
||||
print '</td>';
|
||||
|
||||
// Third party
|
||||
print "<td>";
|
||||
if ($objp->url_id)
|
||||
{
|
||||
$companystatic->id=$objp->url_id;
|
||||
$companystatic->nom=$objp->labelurl;
|
||||
print $companystatic->getNomUrl(1);
|
||||
$printline=false;
|
||||
//Search Description
|
||||
if ($description) {
|
||||
preg_match('/\((.+)\)/i',$objp->label,$reg); // Si texte entoure de parenthee on tente recherche de traduction
|
||||
if ($reg[1]) {
|
||||
if ($langs->transnoentities($reg[1])==$description) {
|
||||
$printline=true;
|
||||
}
|
||||
}elseif ($objp->label==$description) {$printline=true;}
|
||||
}else {$printline=true;}
|
||||
|
||||
if ($printline) {
|
||||
$var=!$var;
|
||||
|
||||
print "<tr $bc[$var]>";
|
||||
|
||||
// Ref
|
||||
print '<td align="left" nowrap="nowrap">';
|
||||
print "<a href=\"ligne.php?rowid=".$objp->rowid.'">'.img_object($langs->trans("ShowPayment"),"payment").' '.$objp->rowid."</a> ";
|
||||
print '</td>';
|
||||
|
||||
// Date ope
|
||||
print '<td align="center" nowrap="nowrap">'.dol_print_date($db->jdate($objp->do),"day")."</td>\n";
|
||||
|
||||
// Date value
|
||||
print '<td align="center" nowrap="nowrap">'.dol_print_date($db->jdate($objp->dv),"day")."</td>\n";
|
||||
|
||||
// Payment type
|
||||
print "<td align=\"center\">";
|
||||
$labeltype=($langs->trans("PaymentTypeShort".$objp->fk_type)!="PaymentTypeShort".$objp->fk_type)?$langs->trans("PaymentTypeShort".$objp->fk_type):$langs->getLabelFromKey($db,$objp->fk_type,'c_paiement','code','libelle');
|
||||
if ($labeltype == 'SOLD') print ' '; //$langs->trans("InitialBankBalance");
|
||||
else print $labeltype;
|
||||
print "</td>\n";
|
||||
|
||||
// Num
|
||||
print '<td nowrap>'.($objp->num_chq?$objp->num_chq:"")."</td>\n";
|
||||
|
||||
// Description
|
||||
print "<td>";
|
||||
|
||||
print "<a href=\"ligne.php?rowid=".$objp->rowid."&account=".$objp->fk_account."\">";
|
||||
$reg=array();
|
||||
preg_match('/\((.+)\)/i',$objp->label,$reg); // Si texte entoure de parenthee on tente recherche de traduction
|
||||
if ($reg[1] && $langs->trans($reg[1])!=$reg[1]) print $langs->trans($reg[1]);
|
||||
else print dol_trunc($objp->label,40);
|
||||
print "</a> ";
|
||||
|
||||
print '</td>';
|
||||
|
||||
// Third party
|
||||
print "<td>";
|
||||
if ($objp->url_id)
|
||||
{
|
||||
$companystatic->id=$objp->url_id;
|
||||
$companystatic->nom=$objp->labelurl;
|
||||
print $companystatic->getNomUrl(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
print ' ';
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
// Debit/Credit
|
||||
if ($objp->amount < 0)
|
||||
{
|
||||
print "<td align=\"right\">".price($objp->amount * -1)."</td><td> </td>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
print "<td> </td><td align=\"right\">".price($objp->amount)."</td>\n";
|
||||
}
|
||||
|
||||
// Bank account
|
||||
print '<td align="left" nowrap="nowrap">';
|
||||
$bankaccountstatic->id=$objp->bankid;
|
||||
$bankaccountstatic->label=$objp->bankref;
|
||||
print $bankaccountstatic->getNomUrl(1);
|
||||
print "</td>\n";
|
||||
print "</tr>";
|
||||
}
|
||||
else
|
||||
{
|
||||
print ' ';
|
||||
}
|
||||
print '</td>';
|
||||
|
||||
// Debit/Credit
|
||||
if ($objp->amount < 0)
|
||||
{
|
||||
print "<td align=\"right\">".price($objp->amount * -1)."</td><td> </td>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
print "<td> </td><td align=\"right\">".price($objp->amount)."</td>\n";
|
||||
}
|
||||
|
||||
// Bank account
|
||||
print '<td align="left" nowrap="nowrap">';
|
||||
$bankaccountstatic->id=$objp->bankid;
|
||||
$bankaccountstatic->label=$objp->bankref;
|
||||
print $bankaccountstatic->getNomUrl(1);
|
||||
print "</td>\n";
|
||||
print "</tr>";
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
|
||||
@@ -2911,7 +2911,7 @@ else
|
||||
{
|
||||
print '<div class="tabsAction">';
|
||||
|
||||
// Editer une facture deja validee, sans paiement effectue et pas exporte en compta
|
||||
// Modify a validated invoice with no payments and not already exported into accountancy
|
||||
if ($object->statut == 1)
|
||||
{
|
||||
// On verifie si les lignes de factures ont ete exportees en compta et/ou ventilees
|
||||
|
||||
@@ -126,8 +126,8 @@ class FactureRec extends Facture
|
||||
$sql.= ", '".$facsrc->socid."'";
|
||||
$sql.= ", ".$conf->entity;
|
||||
$sql.= ", ".$this->db->idate(mktime());
|
||||
$sql.= ", '".$facsrc->amount."'";
|
||||
$sql.= ", '".$facsrc->remise."'";
|
||||
$sql.= ", ".(!empty($facsrc->amount)?$facsrc->amount:'0');
|
||||
$sql.= ", ".(!empty($facsrc->remise)?$this->remise:'0');
|
||||
$sql.= ", '".$this->db->escape($this->note)."'";
|
||||
$sql.= ", '".$user->id."'";
|
||||
$sql.= ", ".($facsrc->fk_project?"'".$facsrc->fk_project."'":"null");
|
||||
|
||||
@@ -2033,6 +2033,7 @@ class Facture extends CommonObject
|
||||
// Clean parameters
|
||||
if (empty($qty)) $qty=0;
|
||||
if (empty($fk_parent_line) || $fk_parent_line < 0) $fk_parent_line=0;
|
||||
if (empty($special_code) || $special_code == 3) $special_code=0;
|
||||
|
||||
$remise_percent = price2num($remise_percent);
|
||||
$qty = price2num($qty);
|
||||
|
||||
@@ -128,6 +128,20 @@ if ($action == "builddoc" && $user->rights->facture->lire)
|
||||
}
|
||||
}
|
||||
|
||||
// Remove file
|
||||
if ($action == 'remove_file')
|
||||
{
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||
|
||||
$langs->load("other");
|
||||
$upload_dir = $diroutputpdf;
|
||||
$file = $upload_dir . '/' . GETPOST('file');
|
||||
$ret=dol_delete_file($file,0,0,0,'');
|
||||
if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('urlfile')));
|
||||
else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), 'errors');
|
||||
$action='';
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@@ -140,7 +140,7 @@ if ($action == 'setnum' && ! empty($_POST['num_paiement']))
|
||||
}
|
||||
}
|
||||
|
||||
if ($action == 'setdate' && ! empty($_POST['datepday']))
|
||||
if ($action == 'setdatep' && ! empty($_POST['datepday']))
|
||||
{
|
||||
$object->fetch($id);
|
||||
$datepaye = dol_mktime(12, 0, 0, $_POST['datepmonth'], $_POST['datepday'], $_POST['datepyear']);
|
||||
|
||||
@@ -205,11 +205,14 @@ $dolibarr_main_authentication='dolibarr';
|
||||
//##################
|
||||
|
||||
// dolibarr_main_force_https
|
||||
// This parameter allows to force the HTTPS mode.
|
||||
// This parameter allows to force the HTTPS mode.
|
||||
// 0 = No forced redirect
|
||||
// 1 = Force redirect to https until SCRIPT_URI start with https
|
||||
// 2 = Force redirect to https until SERVER["HTTPS"] is 'on'
|
||||
// Warning: If you enable this parameter, your web server must be configured
|
||||
// to respond URL with https protocol.
|
||||
// Default value: 0
|
||||
// Possible values: 0 or 1
|
||||
// Possible values: 0, 1 or 2
|
||||
// Examples:
|
||||
// $dolibarr_main_force_https='0';
|
||||
//
|
||||
@@ -292,4 +295,4 @@ $dolibarr_main_prod='0';
|
||||
// Examples:
|
||||
// $multicompany_transverse_mode='1';
|
||||
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -2991,19 +2991,19 @@ class Form
|
||||
//print "name=$name, selectedrate=$selectedrate, seller=".$societe_vendeuse->country_code." buyer=".$societe_acheteuse->country_code." buyer is company=".$societe_acheteuse->isACompany()." idprod=$idprod, info_bits=$info_bits type=$type";
|
||||
//exit;
|
||||
|
||||
// Get list of all VAT rates to show
|
||||
// Define list of countries to use to search VAT rates to show
|
||||
// First we defined code_pays to use to find list
|
||||
if (is_object($societe_vendeuse))
|
||||
{
|
||||
$code_pays="'".$societe_vendeuse->country_code."'";
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
$code_pays="'".$mysoc->country_code."'"; // Pour compatibilite ascendente
|
||||
}
|
||||
if (! empty($conf->global->SERVICE_ARE_ECOMMERCE_200238EC)) // If option to have vat for end customer for services is on
|
||||
{
|
||||
if (! $societe_vendeuse->isInEEC() && $societe_acheteuse->isInEEC() && ! $societe_acheteuse->isACompany())
|
||||
if (! $societe_vendeuse->isInEEC() && (! is_object($societe_acheteuse) || ($societe_acheteuse->isInEEC() && ! $societe_acheteuse->isACompany())))
|
||||
{
|
||||
// We also add the buyer
|
||||
if (is_numeric($type))
|
||||
|
||||
@@ -172,26 +172,30 @@ class Notify
|
||||
$message.= "\n";
|
||||
$message.= $texte;
|
||||
// Add link
|
||||
$link='';
|
||||
switch($objet_type)
|
||||
{
|
||||
case 'ficheinter':
|
||||
$link=DOL_URL_ROOT.'/fichinter/fiche.php?id='.$objet_id;
|
||||
$link='/fichinter/fiche.php?id='.$objet_id;
|
||||
break;
|
||||
case 'propal':
|
||||
$link=DOL_URL_ROOT.'/comm/propal.php?id='.$objet_id;
|
||||
$link='/comm/propal.php?id='.$objet_id;
|
||||
break;
|
||||
case 'facture':
|
||||
$link=DOL_URL_ROOT.'/compta/facture.php?facid='.$objet_id;
|
||||
$link='/compta/facture.php?facid='.$objet_id;
|
||||
break;
|
||||
case 'order':
|
||||
$link=DOL_URL_ROOT.'/commande/fiche.php?facid='.$objet_id;
|
||||
$link='/commande/fiche.php?facid='.$objet_id;
|
||||
break;
|
||||
case 'order_supplier':
|
||||
$link=DOL_URL_ROOT.'/fourn/commande/fiche.php?facid='.$objet_id;
|
||||
$link='/fourn/commande/fiche.php?facid='.$objet_id;
|
||||
break;
|
||||
}
|
||||
$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',$dolibarr_main_url_root);
|
||||
if ($link) $message.="\n".$urlwithouturlroot.$link;
|
||||
// Define $urlwithroot
|
||||
$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root));
|
||||
$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
|
||||
//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
|
||||
if ($link) $message.="\n".$urlwithroot.$link;
|
||||
|
||||
$filename = basename($file);
|
||||
|
||||
|
||||
@@ -399,7 +399,7 @@ class Translate
|
||||
if ($tmparray2[0]==$key) { $str=$tmparray2[1]; break; }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (! preg_match('/^Format/',$key)) $str=sprintf($str,$param1,$param2,$param3,$param4); // Replace %s and %d except for FormatXXX strings.
|
||||
|
||||
if ($maxsize) $str=dol_trunc($str,$maxsize);
|
||||
@@ -460,7 +460,7 @@ class Translate
|
||||
function transnoentitiesnoconv($key, $param1='', $param2='', $param3='', $param4='')
|
||||
{
|
||||
global $conf;
|
||||
|
||||
|
||||
if (! empty($this->tab_translate[$key])) // Translation is available
|
||||
{
|
||||
$str=$this->tab_translate[$key];
|
||||
@@ -476,7 +476,7 @@ class Translate
|
||||
if ($tmparray2[0]==$key) { $str=$tmparray2[1]; break; }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (! preg_match('/^Format/',$key)) $str=sprintf($str,$param1,$param2,$param3,$param4); // Replace %s and %d except for FormatXXX strings.
|
||||
}
|
||||
else
|
||||
@@ -616,7 +616,7 @@ class Translate
|
||||
$newdir=dol_osencode($dir);
|
||||
|
||||
// Check if directory exists
|
||||
if (! dol_is_dir($dir)) continue;
|
||||
if (! is_dir($newdir)) continue; // We must not use dol_is_dir here, function may not be loaded
|
||||
|
||||
$fonc='numberwords';
|
||||
if (file_exists($newdir.'/functions_'.$fonc.'.lib.php'))
|
||||
|
||||
@@ -1069,7 +1069,7 @@ function pdf_getlineupexcltax($object,$i,$outputlangs,$hidedetails=0,$hookmanage
|
||||
}
|
||||
else
|
||||
{
|
||||
if (empty($hidedetails) || $hidedetails > 1) return price($sign * $object->lines[$i]->subprice);
|
||||
if (empty($hidedetails) || $hidedetails > 1) return price($sign * $object->lines[$i]->subprice, 0, $outputlangs);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1095,7 +1095,7 @@ function pdf_getlineupwithtax($object,$i,$outputlangs,$hidedetails=0)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (empty($hidedetails) || $hidedetails > 1) return price(($object->lines[$i]->subprice) + ($object->lines[$i]->subprice)*($object->lines[$i]->tva_tx)/100);
|
||||
if (empty($hidedetails) || $hidedetails > 1) return price(($object->lines[$i]->subprice) + ($object->lines[$i]->subprice)*($object->lines[$i]->tva_tx)/100, 0, $outputlangs);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1279,7 +1279,7 @@ function pdf_getlinetotalexcltax($object,$i,$outputlangs,$hidedetails=0,$hookman
|
||||
}
|
||||
else
|
||||
{
|
||||
if (empty($hidedetails) || $hidedetails > 1) return price($sign * $object->lines[$i]->total_ht);
|
||||
if (empty($hidedetails) || $hidedetails > 1) return price($sign * $object->lines[$i]->total_ht, 0, $outputlangs);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1313,7 +1313,7 @@ function pdf_getlinetotalwithtax($object,$i,$outputlangs,$hidedetails=0)
|
||||
else
|
||||
{
|
||||
if (empty($hidedetails) || $hidedetails > 1) return
|
||||
price(($object->lines[$i]->total_ht) + ($object->lines[$i]->total_ht)*($object->lines[$i]->tva_tx)/100);
|
||||
price(($object->lines[$i]->total_ht) + ($object->lines[$i]->total_ht)*($object->lines[$i]->tva_tx)/100, 0, $outputlangs);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -322,8 +322,11 @@ function build_rssfile($format,$title,$desc,$events_array,$outputfile,$filter=''
|
||||
'<lastBuildDate>'.$date.'</lastBuildDate>'."\n".
|
||||
'<generator>Dolibarr</generator>'."\n";
|
||||
|
||||
$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',$dolibarr_main_url_root);
|
||||
$url=$urlwithouturlroot.DOL_URL_ROOT.'/public/agenda/agendaexport.php?format=rss&exportkey='.urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY);
|
||||
// Define $urlwithroot
|
||||
$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root));
|
||||
$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
|
||||
//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
|
||||
$url=$urlwithroot.'/public/agenda/agendaexport.php?format=rss&exportkey='.urlencode($conf->global->MAIN_AGENDA_XCAL_EXPORTKEY);
|
||||
$form.='<link><![CDATA['.$url.']]></link>'."\n";
|
||||
|
||||
//print $form;
|
||||
@@ -517,4 +520,4 @@ function quotedPrintDecode($str)
|
||||
return trim($out);
|
||||
}
|
||||
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -62,6 +62,19 @@ class pdf_paiement
|
||||
$this->line_per_page = 25;
|
||||
$this->tab_height = 230; //$this->line_height * $this->line_per_page;
|
||||
|
||||
$this->posxdate=$this->marge_gauche+2;
|
||||
$this->posxpaymenttype=42;
|
||||
$this->posxinvoice=82;
|
||||
$this->posxinvoiceamount=122;
|
||||
$this->posxpaymentamount=162;
|
||||
if ($this->page_largeur < 210) // To work with US executive format
|
||||
{
|
||||
$this->posxpaymenttype-=10;
|
||||
$this->posxinvoice-=0;
|
||||
$this->posxinvoiceamount-=10;
|
||||
$this->posxpaymentamount-=20;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -104,6 +117,7 @@ class pdf_paiement
|
||||
$file = $dir . "/payments-".$year."-".$month.".pdf";
|
||||
|
||||
$pdf=pdf_getInstance($this->format);
|
||||
$default_font_size = pdf_getPDFFontSize($outputlangs); // Must be after pdf_getInstance
|
||||
|
||||
if (class_exists('TCPDF'))
|
||||
{
|
||||
@@ -143,7 +157,7 @@ class pdf_paiement
|
||||
$var=!$var;
|
||||
|
||||
$lines[$i][0] = $objp->facnumber;
|
||||
$lines[$i][1] = dol_print_date($this->db->jdate($objp->dp),"%d %B %Y",false,$outputlangs,true);
|
||||
$lines[$i][1] = dol_print_date($this->db->jdate($objp->dp),"day",false,$outputlangs,true);
|
||||
$lines[$i][2] = $langs->transnoentities("PaymentTypeShort".$objp->paiement_code);
|
||||
$lines[$i][3] = $objp->num_paiement;
|
||||
$lines[$i][4] = price($objp->paiement_amount);
|
||||
@@ -223,44 +237,46 @@ class pdf_paiement
|
||||
// Do not add the BACKGROUND as this is a report
|
||||
//pdf_pagehead($pdf,$outputlangs,$this->page_hauteur);
|
||||
|
||||
$default_font_size = pdf_getPDFFontSize($outputlangs);
|
||||
|
||||
$title=$outputlangs->transnoentities("ListOfCustomerPayments");
|
||||
$title.=' - '.dol_print_date(dol_mktime(0,0,0,$this->month,1,$this->year),"%B %Y",false,$outputlangs,true);
|
||||
$pdf->SetFont('','B',12);
|
||||
$pdf->SetXY(10,10);
|
||||
$pdf->MultiCell(200, 2, $title, 0, 'C');
|
||||
$pdf->SetFont('','B',$default_font_size + 1);
|
||||
$pdf->SetXY($this->marge_gauche,10);
|
||||
$pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->marge_gauche, 2, $title, 0, 'C');
|
||||
|
||||
$pdf->SetFont('','',10);
|
||||
$pdf->SetFont('','',$default_font_size);
|
||||
|
||||
$pdf->SetXY(11, 16);
|
||||
$pdf->SetXY($this->posxdate, 16);
|
||||
$pdf->MultiCell(80, 2, $outputlangs->transnoentities("DateBuild")." : ".dol_print_date(time(),"day",false,$outputlangs,true), 0, 'L');
|
||||
|
||||
$pdf->SetXY(11, 22);
|
||||
$pdf->SetXY($this->posxdate, 22);
|
||||
$pdf->MultiCell(80, 2, $outputlangs->transnoentities("Page")." : ".$page, 0, 'L');
|
||||
|
||||
|
||||
// Title line
|
||||
$pdf->SetXY($this->posxdate, $this->tab_top+2);
|
||||
$pdf->MultiCell($this->posxpaymenttype - $this->posxdate, 2, 'Date');
|
||||
|
||||
$pdf->SetXY(11, $this->tab_top+2);
|
||||
$pdf->MultiCell(30, 2, 'Date');
|
||||
$pdf->line($this->posxpaymenttype - 1, $this->tab_top, $this->posxpaymenttype - 1, $this->tab_top + $this->tab_height + 10);
|
||||
$pdf->SetXY($this->posxpaymenttype, $this->tab_top+2);
|
||||
$pdf->MultiCell($this->posxinvoice - $this->posxpaymenttype, 2, $outputlangs->transnoentities("PaymentMode"), 0, 'L');
|
||||
|
||||
$pdf->line(40, $this->tab_top, 40, $this->tab_top + $this->tab_height + 10);
|
||||
$pdf->SetXY(42, $this->tab_top+2);
|
||||
$pdf->MultiCell(40, 2, $outputlangs->transnoentities("PaymentMode"), 0, 'L');
|
||||
$pdf->line($this->posxinvoice - 1, $this->tab_top, $this->posxinvoice - 1, $this->tab_top + $this->tab_height + 10);
|
||||
$pdf->SetXY($this->posxinvoice, $this->tab_top+2);
|
||||
$pdf->MultiCell($this->posxinvoiceamount - $this->posxinvoice, 2, $outputlangs->transnoentities("Invoice"), 0, 'L');
|
||||
|
||||
$pdf->line(80, $this->tab_top, 80, $this->tab_top + $this->tab_height + 10);
|
||||
$pdf->SetXY(82, $this->tab_top+2);
|
||||
$pdf->MultiCell(40, 2, $outputlangs->transnoentities("Invoice"), 0, 'L');
|
||||
$pdf->line($this->posxinvoiceamount - 1, $this->tab_top, $this->posxinvoiceamount - 1, $this->tab_top + $this->tab_height + 10);
|
||||
$pdf->SetXY($this->posxinvoiceamount, $this->tab_top+2);
|
||||
$pdf->MultiCell($this->posxpaymentamount - $this->posxinvoiceamount - 1, 2, $outputlangs->transnoentities("AmountInvoice"), 0, 'R');
|
||||
|
||||
$pdf->line(120, $this->tab_top, 120, $this->tab_top + $this->tab_height + 10);
|
||||
$pdf->SetXY(122, $this->tab_top+2);
|
||||
$pdf->MultiCell(40, 2, $outputlangs->transnoentities("AmountInvoice"), 0, 'L');
|
||||
$pdf->line($this->posxpaymentamount - 1, $this->tab_top, $this->posxpaymentamount - 1, $this->tab_top + $this->tab_height + 10);
|
||||
$pdf->SetXY($this->posxpaymentamount, $this->tab_top+2);
|
||||
$pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxpaymentamount - 1, 2, $outputlangs->transnoentities("AmountPayment"), 0, 'R');
|
||||
|
||||
$pdf->line(160, $this->tab_top, 160, $this->tab_top + $this->tab_height + 10);
|
||||
$pdf->SetXY(162, $this->tab_top+2);
|
||||
$pdf->MultiCell(40, 2, $outputlangs->transnoentities("AmountPayment"), 0, 'L');
|
||||
$pdf->line($this->marge_gauche, $this->tab_top + 10, $this->page_largeur - $this->marge_droite, $this->tab_top + 10);
|
||||
|
||||
$pdf->line(10, $this->tab_top + 10, 200, $this->tab_top + 10);
|
||||
|
||||
$pdf->Rect(9, $this->tab_top, 192, $this->tab_height + 10);
|
||||
$pdf->Rect($this->marge_gauche, $this->tab_top, $this->page_largeur - $this->marge_gauche - $this->marge_droite, $this->tab_height + 10);
|
||||
}
|
||||
|
||||
|
||||
@@ -275,7 +291,9 @@ class pdf_paiement
|
||||
*/
|
||||
function Body(&$pdf, $page, $lines, $outputlangs)
|
||||
{
|
||||
$pdf->SetFont('','', 9);
|
||||
$default_font_size = pdf_getPDFFontSize($outputlangs);
|
||||
|
||||
$pdf->SetFont('','', $default_font_size - 1);
|
||||
$oldprowid = 0;
|
||||
$pdf->SetFillColor(220,220,220);
|
||||
$yp = 0;
|
||||
@@ -290,33 +308,35 @@ class pdf_paiement
|
||||
$page++;
|
||||
$pdf->AddPage();
|
||||
$this->_pagehead($pdf, $page, 0, $outputlangs);
|
||||
$pdf->SetFont('','', 9);
|
||||
$pdf->SetFont('','', $default_font_size - 1);
|
||||
$yp = 0;
|
||||
}
|
||||
|
||||
$pdf->SetXY(10, $this->tab_top + 10 + $yp);
|
||||
$pdf->MultiCell(30, $this->line_height, $lines[$j][1], 0, 'L', 1);
|
||||
$pdf->SetXY($this->posxdate - 1, $this->tab_top + 10 + $yp);
|
||||
$pdf->MultiCell($this->posxpaymenttype - $this->posxdate + 1, $this->line_height, $lines[$j][1], 0, 'L', 1);
|
||||
|
||||
$pdf->SetXY(40, $this->tab_top + 10 + $yp);
|
||||
$pdf->MultiCell(80, $this->line_height, $lines[$j][2].' '.$lines[$j][3], 0, 'L', 1);
|
||||
$pdf->SetXY($this->posxpaymenttype, $this->tab_top + 10 + $yp);
|
||||
$pdf->MultiCell($this->posxinvoiceamount - $this->posxpaymenttype, $this->line_height, $lines[$j][2].' '.$lines[$j][3], 0, 'L', 1);
|
||||
|
||||
$pdf->SetXY(120, $this->tab_top + 10 + $yp);
|
||||
$pdf->MultiCell(40, $this->line_height, '', 0, 'R', 1);
|
||||
$pdf->SetXY($this->posxinvoiceamount, $this->tab_top + 10 + $yp);
|
||||
$pdf->MultiCell($this->posxpaymentamount- $this->posxinvoiceamount, $this->line_height, '', 0, 'R', 1);
|
||||
|
||||
$pdf->SetXY(160, $this->tab_top + 10 + $yp);
|
||||
$pdf->MultiCell(40, $this->line_height, $lines[$j][4], 0, 'R', 1);
|
||||
$pdf->SetXY($this->posxpaymentamount, $this->tab_top + 10 + $yp);
|
||||
$pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxpaymentamount, $this->line_height, $lines[$j][4], 0, 'R', 1);
|
||||
$yp = $yp + 5;
|
||||
}
|
||||
|
||||
// Invoice number
|
||||
$pdf->SetXY(80, $this->tab_top + 10 + $yp);
|
||||
$pdf->MultiCell(40, $this->line_height, $lines[$j][0], 0, 'L', 0);
|
||||
$pdf->SetXY($this->posxinvoice, $this->tab_top + 10 + $yp);
|
||||
$pdf->MultiCell($this->posxinvoiceamount - $this->posxdate, $this->line_height, $lines[$j][0], 0, 'L', 0);
|
||||
|
||||
$pdf->SetXY(120, $this->tab_top + 10 + $yp);
|
||||
$pdf->MultiCell(40, $this->line_height, $lines[$j][5], 0, 'R', 0);
|
||||
// Invoice amount
|
||||
$pdf->SetXY($this->posxinvoiceamount, $this->tab_top + 10 + $yp);
|
||||
$pdf->MultiCell($this->posxpaymentamount- $this->posxinvoiceamount - 1, $this->line_height, $lines[$j][5], 0, 'R', 0);
|
||||
|
||||
$pdf->SetXY(160, $this->tab_top + 10 + $yp);
|
||||
$pdf->MultiCell(40, $this->line_height, $lines[$j][6], 0, 'R', 0);
|
||||
// Payment amount
|
||||
$pdf->SetXY($this->posxpaymentamount, $this->tab_top + 10 + $yp);
|
||||
$pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxpaymentamount, $this->line_height, $lines[$j][6], 0, 'R', 0);
|
||||
$yp = $yp + 5;
|
||||
|
||||
if ($oldprowid <> $lines[$j][7])
|
||||
|
||||
@@ -516,8 +516,8 @@ if ($action == 'send' && ! GETPOST('cancel','alpha') && (empty($conf->global->MA
|
||||
}
|
||||
else // Id du contact
|
||||
{
|
||||
$sendto = $object->client->contact_get_email(GETPOST('receiver','alpha'));
|
||||
$sendtoid = GETPOST('receiver','alpha');
|
||||
$sendto = $object->client->contact_get_property(GETPOST('receiver'),'email');
|
||||
$sendtoid = GETPOST('receiver','alpha');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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.2.3'); // Also defined in htdocs/install/inc.php (Ex: x.y.z-alpha, x.y.z)
|
||||
if (! defined('DOL_VERSION')) define('DOL_VERSION','3.2.4'); // Also defined in htdocs/install/inc.php (Ex: x.y.z-alpha, x.y.z)
|
||||
if (! defined('EURO')) define('EURO',chr(128));
|
||||
|
||||
// Define syslog constants
|
||||
@@ -170,7 +170,7 @@ if (! $found) // If autodetect fails (Ie: when using apache alias that point out
|
||||
{
|
||||
$tmp=$dolibarr_main_url_root;
|
||||
}
|
||||
else $tmp='http'.((empty($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] != 'on')?'':'s').'://'.$_SERVER["SERVER_NAME"].((empty($_SERVER["SERVER_PORT"])||$_SERVER["SERVER_PORT"]==80)?'':':'.$_SERVER["SERVER_PORT"]).($tmp3?(preg_match('/^\//',$tmp3)?'':'/').$tmp3:'');
|
||||
else $tmp='http'.(((empty($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] != 'on') && (empty($_SERVER["SERVER_PORT"])||$_SERVER["SERVER_PORT"]!=443))?'':'s').'://'.$_SERVER["SERVER_NAME"].((empty($_SERVER["SERVER_PORT"])||$_SERVER["SERVER_PORT"]==80||$_SERVER["SERVER_PORT"]==443)?'':':'.$_SERVER["SERVER_PORT"]).($tmp3?(preg_match('/^\//',$tmp3)?'':'/').$tmp3:'');
|
||||
//print "tmp1=".$tmp1." tmp2=".$tmp2." tmp3=".$tmp3." tmp=".$tmp;
|
||||
|
||||
if (! empty($dolibarr_main_force_https)) $tmp=preg_replace('/^http:/i','https:',$tmp);
|
||||
|
||||
@@ -35,6 +35,7 @@ require_once DOL_DOCUMENT_ROOT."/fourn/class/fournisseur.commande.class.php";
|
||||
require_once DOL_DOCUMENT_ROOT."/fourn/class/fournisseur.product.class.php";
|
||||
require_once DOL_DOCUMENT_ROOT."/core/lib/fourn.lib.php";
|
||||
require_once(DOL_DOCUMENT_ROOT."/core/lib/functions2.lib.php");
|
||||
require_once(DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php');
|
||||
if ($conf->produit->enabled) require_once DOL_DOCUMENT_ROOT."/product/class/product.class.php";
|
||||
if ($conf->projet->enabled) require_once(DOL_DOCUMENT_ROOT.'/projet/class/project.class.php');
|
||||
|
||||
@@ -551,7 +552,7 @@ else if ($action == 'builddoc' && $user->rights->fournisseur->commande->creer) /
|
||||
// Sauvegarde le dernier module choisi pour generer un document
|
||||
$object->fetch($id);
|
||||
$object->fetch_thirdparty();
|
||||
|
||||
|
||||
if ($_REQUEST['model'])
|
||||
{
|
||||
$object->setDocModel($user, $_REQUEST['model']);
|
||||
@@ -584,7 +585,7 @@ else if ($action == 'remove_file' && $user->rights->fournisseur->commande->creer
|
||||
if ($object->fetch($id))
|
||||
{
|
||||
$object->fetch_thirdparty();
|
||||
|
||||
|
||||
$langs->load("other");
|
||||
$upload_dir = $conf->fournisseur->commande->dir_output;
|
||||
$file = $upload_dir . '/' . GETPOST('file');
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2004 Christophe Combelles <ccomb@free.fr>
|
||||
* Copyright (C) 2005 Marc Barilley <marc@ocebo.fr>
|
||||
* Copyright (C) 2005-2012 Regis Houssin <regis@dolibarr.fr>
|
||||
* Copyright (C) 2005-2013 Regis Houssin <regis@dolibarr.fr>
|
||||
* Copyright (C) 2010-2012 Juanjo Menent <jmenent@2byte.es>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@@ -33,6 +33,7 @@ require_once(DOL_DOCUMENT_ROOT.'/core/modules/supplier_invoice/modules_facturefo
|
||||
require_once(DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php');
|
||||
require_once(DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php');
|
||||
require_once(DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php');
|
||||
require_once(DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php');
|
||||
require_once(DOL_DOCUMENT_ROOT.'/product/class/product.class.php');
|
||||
if ($conf->projet->enabled) require_once(DOL_DOCUMENT_ROOT.'/projet/class/project.class.php');
|
||||
|
||||
@@ -581,6 +582,8 @@ elseif ($action == 'edit' && $user->rights->fournisseur->facture->creer)
|
||||
$outputlangs->setDefaultLang($_REQUEST['lang_id']);
|
||||
}
|
||||
//if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) supplier_invoice_pdf_create($db, $object->id, $object->modelpdf, $outputlangs);
|
||||
|
||||
$action='';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1749,7 +1752,7 @@ else
|
||||
$form->select_produits_fournisseurs($object->socid,'','idprodfournprice','',$filtre);
|
||||
|
||||
if (empty($conf->global->PRODUIT_USE_SEARCH_TO_SELECT)) print '<br>';
|
||||
|
||||
|
||||
if (is_object($hookmanager))
|
||||
{
|
||||
$parameters=array('filtre'=>$filtre,'htmlname'=>'idprodfournprice');
|
||||
@@ -1760,7 +1763,7 @@ else
|
||||
if (! empty($conf->global->MAIN_INPUT_DESC_HEIGHT)) $nbrows=$conf->global->MAIN_INPUT_DESC_HEIGHT;
|
||||
$doleditor = new DolEditor('np_desc', GETPOST('np_desc'), '', 100, 'dolibarr_details', '', false, true, $conf->global->FCKEDITOR_ENABLE_DETAILS, $nbrows, 70);
|
||||
$doleditor->Create();
|
||||
|
||||
|
||||
print '</td>';
|
||||
print '<td align="right"><input type="text" name="qty" value="1" size="1"></td>';
|
||||
print '<td> </td>';
|
||||
@@ -1777,14 +1780,19 @@ else
|
||||
|
||||
if ($action != 'presend')
|
||||
{
|
||||
|
||||
/*
|
||||
* Boutons actions
|
||||
*/
|
||||
*/
|
||||
|
||||
print '<div class="tabsAction">';
|
||||
|
||||
// Reopen a standard paid invoice
|
||||
// Modify a validated invoice with no payments
|
||||
if ($object->statut == 1 && $action != 'edit' && $object->getSommePaiement() == 0 && $user->rights->fournisseur->facture->creer)
|
||||
{
|
||||
print '<a class="butAction" href="'.$_SERVER['PHP_SELF'].'?id='.$object->id.'&action=edit">'.$langs->trans('Modify').'</a>';
|
||||
}
|
||||
|
||||
// Reopen a standard paid invoice
|
||||
if (($object->type == 0 || $object->type == 1) && ($object->statut == 2 || $object->statut == 3)) // A paid invoice (partially or completely)
|
||||
{
|
||||
if (! $facidnext && $object->close_code != 'replaced') // Not replaced by another invoice
|
||||
|
||||
@@ -126,7 +126,7 @@ if ($_GET["filtre"])
|
||||
|
||||
if (GETPOST("search_ref"))
|
||||
{
|
||||
$sql .= " AND fac.rowid like '%".$db->escape(GETPOST("search_ref"))."%'";
|
||||
$sql .= " AND fac.rowid = ".$db->escape(GETPOST("search_ref"));
|
||||
}
|
||||
if (GETPOST("search_ref_supplier"))
|
||||
{
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
* \brief File that define environment for support pages
|
||||
*/
|
||||
|
||||
define('DOL_VERSION','3.2.3'); // Also defined in htdocs/master.inc.php (Ex: x.y.z-alpha, x.y.z)
|
||||
define('DOL_VERSION','3.2.4'); // Also defined in htdocs/master.inc.php (Ex: x.y.z-alpha, x.y.z)
|
||||
|
||||
// Define DOL_DOCUMENT_ROOT an ADODB_PATH used for install/upgrade process
|
||||
if (! defined('DOL_DOCUMENT_ROOT')) define('DOL_DOCUMENT_ROOT', '..');
|
||||
|
||||
@@ -3304,15 +3304,21 @@ function migrate_mode_reglement($db,$langs,$conf)
|
||||
|
||||
$db->begin();
|
||||
|
||||
$sqla = "UPDATE ".MAIN_DB_PREFIX."paiement SET ";
|
||||
$sqla.= "fk_paiement = ".$elements['new_id'][$key];
|
||||
$sqla.= " WHERE fk_paiement = ".$old_id;
|
||||
$sqla.= " AND fk_paiement IN (SELECT id FROM ".MAIN_DB_PREFIX."c_paiement WHERE id = ".$old_id." AND code = '".$elements['code'][$key]."')";
|
||||
$resqla = $db->query($sqla);
|
||||
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."c_paiement SET ";
|
||||
$sql.= "id = ".$elements['new_id'][$key];
|
||||
$sql.= " WHERE id = ".$old_id;
|
||||
$sql.= " AND code = '".$elements['code'][$key]."'";
|
||||
|
||||
$resql = $db->query($sql);
|
||||
if ($resql)
|
||||
|
||||
if ($resqla && $resql)
|
||||
{
|
||||
foreach($elements['tables'] as $table)
|
||||
foreach($elements['tables'] as $table) // FIXME We must not update tables if oldid is not renamed
|
||||
{
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX.$table." SET ";
|
||||
$sql.= "fk_mode_reglement = ".$elements['new_id'][$key];
|
||||
@@ -3681,4 +3687,4 @@ update llx_facture set paye=1, fk_statut=2 where close_code is null
|
||||
and rowid in (...)
|
||||
*/
|
||||
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -259,8 +259,8 @@ LastStableVersion = Laatste stabiele versie
|
||||
GenericMaskCodes = U kunt elk gewenst maskernummer invoeren. In dit masker, kunnen de volgende tags worden gebruikt:<br><b>{000000}</b> correspondeert met een nummer welke vermeerderd zal worden op elke %s. Voer zoveel nullen in als de gewenste lengte van de teller. De teller wordt aangevuld met nullen vanaf links zodat er zoveel nullen zijn als in het masker.<br><b>{000000+000}</b> hetzelfde als voorgaand maar een offset corresponderend met het nummer aan de rechterkant van het + teken is toegevoegd startend op de eerste %s. <br><b>{000000@x}</b> hetzelfde als voorgaande maar de teller wordt gereset naar nul, wanneer maand x is bereikt (x tussen 1 en 12). Als deze optie is gebruikt en x is 2 of hoger, dan is de volgorde {yy}{mm} of {yyyy}{mm} ook vereist. <br><b>{dd}</b> dag (01 t/m 31).<br><b>{mm}</b> maand (01 t/m 12).<br><b>{yy}</b>, <b>{yyyy}</b> of <b>{y}</b> jaat over 2, 4 of 1 nummer(s). <br>
|
||||
GenericMaskCodes2 = <b>{cccc}</b> de afnermerscode<br><b>{cccc000}</b> de afnermerscode en n karakters wordt opgevolgd door een afnermersreferentieteller zonder offset en gereset met de globale teller.<br><b>{tttt}</b> De code van bedrijfstype op n karakters (Zie het menu 'constantent' voor de bedrijfstypes<br>
|
||||
GenericMaskCodes3 = Alle andere karakters in het masker zullen intact blijven.<br>Spaties zijn niet toegestaan.<br>
|
||||
GenericMaskCodes4a = <u>Voorbeeld van de 99e %s van de derde partij 'HetBedrijf' gedaan op 2007-01-31:</u><br>
|
||||
GenericMaskCodes4b = <u>Voorbeeld van een derde partij gecreëerd op 2007-03-01:</u><br>
|
||||
GenericMaskCodes4a = <u>Voorbeeld van de 99e %s van de Klant 'HetBedrijf' gedaan op 2007-01-31:</u><br>
|
||||
GenericMaskCodes4b = <u>Voorbeeld van een Klant gecreëerd op 2007-03-01:</u><br>
|
||||
GenericMaskCodes5 = <b>ABC{jj}{mm}-{000000}</b> zal <b>ABC0701-000099</b> geven<br><b>{0000+100}-ZZZ/{dd}/XXX</b> zal <b>0199-ZZZ/31/XXX</b> geven
|
||||
GenericNumRefModelDesc = Geeft een aanpasbaar nummer volgens een gedefinieerd masker.
|
||||
ServerAvailableOnIPOrPort = Server is beschikbaar op het IP-adres <b>%s</b> met poort <b>%s</b>
|
||||
@@ -296,7 +296,7 @@ TestSubmitForm = Invoer testformulier
|
||||
Module0Name = Gebruikers & groepen
|
||||
Module0Desc = Beheer gebruikers en groepen
|
||||
Module1Name = Beheer derde partijen
|
||||
Module1Desc = Beheer van derde partijen (afnemers, leveranciers en contactpersonen). Ook kunt u hier sjabloondocumenten uploaden.
|
||||
Module1Desc = Beheer van derde partijen (klanten, leveranciers en contactpersonen). Ook kunt u hier sjabloondocumenten uploaden.
|
||||
Module2Name = Commercieel
|
||||
Module2Desc = Commercieel beheer
|
||||
Module10Name = Boekhouding
|
||||
@@ -307,10 +307,10 @@ Module22Name = EMailings
|
||||
Module22Desc = Administratie en verzending van bulk-e-mails
|
||||
Module23Name = Energie
|
||||
Module23Desc = Monitoring van het verbruik van energie
|
||||
Module25Name = Afnemersopdrachten
|
||||
Module25Desc = Verkoopopdrachten
|
||||
Module25Name = Bestellingen klanten
|
||||
Module25Desc = Beheer van de bestellingen door klanten
|
||||
Module30Name = Facturen
|
||||
Module30Desc = Factuur- en creditnotabeheer voor afnemers. Factuurbeheer voor leveranciers
|
||||
Module30Desc = Factuur- en creditnotabeheer voor klanten. Factuurbeheer voor leveranciers
|
||||
Module40Name = Leveranciers
|
||||
Module40Desc = Leveranciersbeheer (inkoopopdrachten en -facturen)
|
||||
Module42Name = Syslog
|
||||
@@ -341,7 +341,7 @@ Module70Name = Interventies
|
||||
Module70Desc = Interventiesbeheer
|
||||
Module75Name = Reisnotities en -kosten
|
||||
Module75Desc = Beheer van reisnotities en -kosten
|
||||
Module80Name = Expedities
|
||||
Module80Name = Verzendingen
|
||||
Module80Desc = Beheer afnemersverzending en -ontvangst
|
||||
Module85Name = Bank en Contant
|
||||
Module85Desc = Beheer van bank- en / of kasrekeningen
|
||||
@@ -529,7 +529,7 @@ PermissionAdvanced253 = Creëer / wijzig de rechten van internet / externe gebru
|
||||
Permission254 = Verwijderen of uitschakelen van andere gebruikers
|
||||
Permission255 = Creëren / wijzigen eigen gebruikersgegevens
|
||||
Permission256 = Wijzigen eigen wachtwoord
|
||||
Permission262 = Uitbreiden van de toegang tot iedereen die verbonden is aan de derde partij (niet alleen die welke verband houden met de gebruiker). Niet functioneel voor externe gebruikers (altijd beperkt tot zichzelf).
|
||||
Permission262 = Uitbreiden van de toegang tot iedereen die verbonden is aan de Klant (niet alleen die welke verband houden met de gebruiker). Niet functioneel voor externe gebruikers (altijd beperkt tot zichzelf).
|
||||
Permission271 = Lees CA
|
||||
Permission272 = Facturen inzien
|
||||
Permission273 = Facturen uitgeven
|
||||
@@ -836,7 +836,7 @@ UserMailRequired = E-mail verplicht om een nieuwe gebruiker creëren
|
||||
CompanySetup = Derde partijenmoduleinstellingen
|
||||
CompanyCodeChecker = Module voor de generatie en toetsing van codes voor derde partijen (afnemer of leverancier)
|
||||
AccountCodeManager = Module voor de generatie van boekhoudkundige codes (afnemer of leverancier)
|
||||
ModuleCompanyCodeAquarium = Geef een boekhoudkundige code terug opgebouwd uit "401", gevolgd door de de leverancierscode(Wanneer het een leverancier betreft) of een afnemerscode van de derde partij (Wanneer het een afnemer betreft).
|
||||
ModuleCompanyCodeAquarium = Geef een boekhoudkundige code terug opgebouwd uit "401", gevolgd door de de leverancierscode(Wanneer het een leverancier betreft) of een afnemerscode van de Klant (Wanneer het een afnemer betreft).
|
||||
ModuleCompanyCodePanicum = Geef een lege boekhoudkundige code terug.
|
||||
ModuleCompanyCodeDigitaria = Boekhoudkundige-code is afhankelijk van derden code. De code bestaat uit het teken "C" in de eerste positie, gevolgd door de eerste 5 tekens van de derden code.
|
||||
UseNotifications = Gebruik kennisgevingen
|
||||
@@ -1201,7 +1201,7 @@ ClickToDialDesc = Deze module maakt het mogelijk om een icoontje te tonen achter
|
||||
##### Point Of Sales (CashDesk) ##### =
|
||||
CashDesk = Verkooppunten
|
||||
CashDeskSetup = Verkooppuntenmoduleinstellingen
|
||||
CashDeskThirdPartyForSell = Algemene derde partij te gebruiken bij verkopen
|
||||
CashDeskThirdPartyForSell = Algemene Klant te gebruiken bij verkopen
|
||||
CashDeskBankAccountForSell = Te gebruiken rekening voor ontvangst van contacte betalingen
|
||||
CashDeskBankAccountForCheque = Te gebruiken rekening voor ontvangst van betalingen per cheque
|
||||
CashDeskBankAccountForCB = Te gebruiken rekening voor ontvangst van betalingen per CreditCard
|
||||
|
||||
@@ -223,9 +223,9 @@ ExportDataset_invoice_1 = Afnemersfacturen en factuurregels
|
||||
ExportDataset_invoice_2 = Afnemersfacturen en -betalingen
|
||||
ProformaBill = Proforma factuur:
|
||||
Reduction = Vermindering
|
||||
ReductionShort = Minder
|
||||
ReductionShort = Korting
|
||||
Reductions = Verminderingen
|
||||
ReductionsShort = Minder
|
||||
ReductionsShort = Korting
|
||||
Discount = Korting
|
||||
Discounts = Kortingen
|
||||
ShowDiscount = Toon korting
|
||||
|
||||
@@ -46,9 +46,9 @@ WasAddedSuccessfully = <b>%s</b> is succesvol toegevoegd.
|
||||
ObjectAlreadyLinkedToCategory = Element is al gekoppeld aan deze categorie.
|
||||
CategorySuccessfullyCreated = De categorie %s is met succes toegevoegd.
|
||||
ProductIsInCategories = Product / dienst is eigenaar van de volgende categorieën
|
||||
SupplierIsInCategories = Derde partij is eigenaar van de volgende leverancierscategorieën
|
||||
CompanyIsInCustomersCategories = Deze derde partij is eigenaar van de volgende afnemers- / prospectencategorieën
|
||||
CompanyIsInSuppliersCategories = Deze derde partij is eigenaar van de volgende leverancierscategorieën
|
||||
SupplierIsInCategories = Klant is eigenaar van de volgende leverancierscategorieën
|
||||
CompanyIsInCustomersCategories = Deze Klant is eigenaar van de volgende afnemers- / prospectencategorieën
|
||||
CompanyIsInSuppliersCategories = Deze Klant is eigenaar van de volgende leverancierscategorieën
|
||||
MemberIsInCategories = Dit lid is eigenaar van de volgende ledencategorieën
|
||||
ProductHasNoCategory = Dit product / dienst behoort tot geen enkele categorie
|
||||
SupplierHasNoCategory = Deze leverancier behoort tot geen enkele categorie
|
||||
|
||||
@@ -4,8 +4,8 @@ Commercial = Commercieel
|
||||
CommercialArea = Commerciële gedeelte
|
||||
CommercialCard = Commerciele details
|
||||
CustomerArea = Afnemersdetails
|
||||
Customer = Afnemer
|
||||
Customers = Afnemers
|
||||
Customer = Klant
|
||||
Customers = Klanten
|
||||
Prospect = Prospect
|
||||
Prospects = Prospecten
|
||||
DeleteAction = Verwijder een actie
|
||||
|
||||
@@ -3,11 +3,11 @@ CHARSET = UTF-8
|
||||
ErrorCompanyNameAlreadyExists = De bedrijfsnaam %s bestaat al. kies een andere.
|
||||
ErrorPrefixAlreadyExists = De prefix %s bestaat al. kies een andere.
|
||||
ErrorSetACountryFirst = Stel eerst het land in
|
||||
DeleteThirdParty = Verwijder een derde partij
|
||||
DeleteThirdParty = Verwijder een Klant
|
||||
ConfirmDeleteCompany = Weet u zeker dat u dit bedrijf en alle geërfde gegevens wilt verwijderen?
|
||||
DeleteContact = Contactpersoon verwijderen
|
||||
ConfirmDeleteContact = Weet u zeker dat u deze contactpersoon en alle geërfde gegevens wilt verwijderen ?
|
||||
MenuNewThirdParty = Nieuwe derde partij
|
||||
MenuNewThirdParty = Nieuwe Klant
|
||||
MenuNewCompany = Nieuwe onderneming
|
||||
MenuNewCustomer = Nieuwe afnemer
|
||||
MenuNewProspect = Nieuw prospect
|
||||
@@ -15,33 +15,33 @@ MenuNewSupplier = Nieuwe leverancier
|
||||
MenuNewPrivateIndividual = Nieuwe particulier
|
||||
MenuSocGroup = Groepen
|
||||
NewCompany = Nieuwe bedrijf (prospect, afnemer, leverancier)
|
||||
NewThirdParty = Nieuwe derde partij (prospect, afnemer, leverancier)
|
||||
NewThirdParty = Nieuwe Klant (prospect, afnemer, leverancier)
|
||||
NewSocGroup = Nieuwe bedrijfsgroep
|
||||
NewPrivateIndividual = Nieuwe particulier (prospect, afnemer, leverancier)
|
||||
ProspectionArea = Prospectenoverzicht
|
||||
SocGroup = Bedrijfsgroep
|
||||
IdThirdParty = ID derde partij
|
||||
IdThirdParty = ID Klant
|
||||
IdCompany = ID bedrijf
|
||||
IdContact = ID contactpersoon
|
||||
Contacts = Contactpersonen
|
||||
ContactsAddresses = Contacpersonen / adressen
|
||||
ThirdPartyContacts = Contacten van derde partij
|
||||
ThirdPartyContact = Contactpersoon van derde partij
|
||||
ThirdPartyContacts = Contacten van Klant
|
||||
ThirdPartyContact = Contactpersoon van Klant
|
||||
StatusContactValidated = Status van contactpersoon
|
||||
CustomerContact = Afnemerscontactpersoon
|
||||
Company = Bedrijf
|
||||
CompanyName = Bedrijfsnaam
|
||||
Companies = Bedrijven
|
||||
CountryIsInEEC = Lidstaat van de Europese Unie
|
||||
ThirdPartyName = Naam van derde partij
|
||||
ThirdParty = Derde partij
|
||||
ThirdParties = Derde partij
|
||||
ThirdPartyAll = Derde partijen (alle)
|
||||
ThirdPartyName = Naam van Klant
|
||||
ThirdParty = Klant
|
||||
ThirdParties = Klant
|
||||
ThirdPartyAll = Klanten (alle)
|
||||
ThirdPartyProspects = Prospecten
|
||||
ThirdPartyCustomers = Afnemers
|
||||
ThirdPartyCustomersWithIdProf12 = Afnemers met %s of %s
|
||||
ThirdPartySuppliers = Leveranciers
|
||||
ThirdPartyType = Type derde partij
|
||||
ThirdPartyType = Type Klant
|
||||
Company/Fundation = Bedrijf / stichting
|
||||
Individual = Particulier
|
||||
ToCreateContactWithSameName = Maakt automatisch een contactpersoon met dezelfde informatie
|
||||
@@ -173,10 +173,10 @@ Supplier = Leverancier
|
||||
CompanyList = Bedrijvenoverzicht
|
||||
AddContact = Contactpersoon toevoegen
|
||||
Contact = Contactpersoon
|
||||
NoContactDefined = Geen contactpersoon ingesteld voor deze derde partij
|
||||
NoContactDefined = Geen contactpersoon ingesteld voor deze Klant
|
||||
DefaultContact = Standaard contactpersoon
|
||||
AddCompany = Bedrijf toevoegen
|
||||
AddThirdParty = Derde partij toevoegen
|
||||
AddThirdParty = Klant toevoegen
|
||||
DeleteACompany = Bedrijf verwijderen
|
||||
PersonalInformations = Persoonlijke gegevens
|
||||
AccountancyCode = Boekhoudkundige code
|
||||
@@ -186,8 +186,8 @@ CustomerAccount = Afnemersrekening
|
||||
SupplierAccount = Leveranciersrekening
|
||||
CustomerCodeDesc = Afnemerscode, uniek voor alle afnemers
|
||||
SupplierCodeDesc = Leverancierscode, uniek voor alle leveranciers
|
||||
RequiredIfCustomer = Vereist als derde partij een afnemer of prospect is
|
||||
RequiredIfSupplier = Vereist als derde partij een leverancier is
|
||||
RequiredIfCustomer = Vereist als Klant een afnemer of prospect is
|
||||
RequiredIfSupplier = Vereist als Klant een leverancier is
|
||||
ValidityControledByModule = Geldigheid gecontroleerd door module
|
||||
ThisIsModuleRules = Dit zijn de regels voor deze module
|
||||
LastProspect = Laatste prospect
|
||||
@@ -234,7 +234,7 @@ ProspectLevel = Prospectpotentieel
|
||||
ContactPrivate = Privé
|
||||
ContactPublic = Gedeeld
|
||||
ContactVisibility = Zichtbaarheid
|
||||
OthersNotLinkedToThirdParty = Anderen, niet gebonden aan een derde partij
|
||||
OthersNotLinkedToThirdParty = Anderen, niet gebonden aan een Klant
|
||||
ProspectStatus = Prospectstatus
|
||||
PL_NONE = Geen
|
||||
PL_UNKNOWN = Onbekend
|
||||
@@ -269,7 +269,7 @@ NoRIB = Geen bank ingesteld
|
||||
NoParentCompany = Geen
|
||||
ExportImport = Import - Export
|
||||
ExportCardToFormat = Export details naar formaat
|
||||
ContactNotLinkedToCompany = Contact niet gekoppeld aan enige derde partij
|
||||
ContactNotLinkedToCompany = Contact niet gekoppeld aan enige Klant
|
||||
DolibarrLogin = Dolibarr login
|
||||
NoDolibarrAccess = Geen Dolibarr toegang
|
||||
ExportDataset_company_1 = Bedrijven / instellingen en eigenschappen
|
||||
@@ -292,12 +292,12 @@ DeleteFile = Bestand verwijderen
|
||||
ConfirmDeleteFile = Weet u zeker dat u dit bestand wilt verwijderen?
|
||||
AllocateCommercial = Toewijzing
|
||||
SelectCountry = Selecteer een land
|
||||
SelectCompany = Selecteer een derde partij
|
||||
SelectCompany = Selecteer een Klant
|
||||
Organization = Organisatie
|
||||
AutomaticallyGenerated = Automatisch gegenereerd
|
||||
FiscalYearInformation = Informatie over het fiscale jaar
|
||||
FiscalMonthStart = Startmaand van het fiscale jaar
|
||||
YouMustCreateContactFirst = U dient voor de derde partij eerst contactpersonen met een e-mailadres instellen, voordat u kennisgevingen per e-mail kunt sturen.
|
||||
YouMustCreateContactFirst = U dient voor de Klant eerst contactpersonen met een e-mailadres instellen, voordat u kennisgevingen per e-mail kunt sturen.
|
||||
ListSuppliersShort = Leveranciersoverzicht
|
||||
ListProspectsShort = Prospectenoverzicht
|
||||
ListCustomersShort = Afnemersoverzicht
|
||||
|
||||
@@ -74,7 +74,7 @@ OtherPropals = Andere offertes
|
||||
CopyPropalFrom = Maak offerte door het kopiëren van een bestaande offerte
|
||||
CreateEmptyPropal = Creëer een lege offerte of uit de lijst van producten / diensten
|
||||
DefaultProposalDurationValidity = Standaardgeldigheid offerte (in dagen)
|
||||
UseCustomerContactAsPropalRecipientIfExist = Gebruik, indien ingesteld, het afnemerscontactadres als offerteontvangstadres in plaats van het adres van de derde partij
|
||||
UseCustomerContactAsPropalRecipientIfExist = Gebruik, indien ingesteld, het afnemerscontactadres als offerteontvangstadres in plaats van het adres van de Klant
|
||||
ClonePropal = Kloon offerte
|
||||
ConfirmClonePropal = Weet u zeker dat u deze offerte <b>%s</b> wilt klonen?
|
||||
ProposalsAndProposalsLines = Offertes en offerteregels
|
||||
|
||||
@@ -195,9 +195,9 @@ if (isset($_SERVER["HTTP_USER_AGENT"]))
|
||||
if (! empty($conf->file->main_force_https))
|
||||
{
|
||||
$newurl='';
|
||||
if ($conf->file->main_force_https == '1')
|
||||
if (is_numeric($conf->file->main_force_https))
|
||||
{
|
||||
if (! empty($_SERVER["SCRIPT_URI"])) // If SCRIPT_URI supported by server
|
||||
if ($conf->file->main_force_https == '1' && ! empty($_SERVER["SCRIPT_URI"])) // If SCRIPT_URI supported by server
|
||||
{
|
||||
if (preg_match('/^http:/i',$_SERVER["SCRIPT_URI"]) && ! preg_match('/^https:/i',$_SERVER["SCRIPT_URI"])) // If link is http
|
||||
{
|
||||
@@ -215,7 +215,12 @@ if (! empty($conf->file->main_force_https))
|
||||
}
|
||||
else
|
||||
{
|
||||
$newurl=$conf->file->main_force_https.$_SERVER["REQUEST_URI"];
|
||||
// Check HTTPS environment variable (Apache/mod_ssl only)
|
||||
// $_SERVER["HTTPS"] is 'on' when link is https, otherwise $_SERVER["HTTPS"] is empty or 'off'
|
||||
if (empty($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] != 'on') // If link is http
|
||||
{
|
||||
$newurl=$conf->file->main_force_https.$_SERVER["REQUEST_URI"];
|
||||
}
|
||||
}
|
||||
// Start redirect
|
||||
if ($newurl)
|
||||
|
||||
@@ -134,9 +134,22 @@ else
|
||||
$sql.= MAIN_DB_PREFIX.'product as p';
|
||||
$sql.= ') ';
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_fournisseur_price as pfp ON p.rowid = pfp.fk_product";
|
||||
// multilang
|
||||
if ($conf->global->MAIN_MULTILANGS) // si l'option est active
|
||||
{
|
||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product_lang as pl ON pl.fk_product = p.rowid AND pl.lang = '".$langs->getDefaultLang() ."'";
|
||||
}
|
||||
$sql.= ' WHERE p.entity IN ('.getEntity('product', 1).')';
|
||||
if ($search_categ) $sql.= " AND p.rowid = cp.fk_product"; // Join for the needed table to filter by categ
|
||||
if ($sall) $sql.= " AND (p.ref LIKE '%".$db->escape($sall)."%' OR p.label LIKE '%".$db->escape($sall)."%' OR p.description LIKE '%".$db->escape($sall)."%' OR p.note LIKE '%".$db->escape($sall)."%')";
|
||||
if ($sall)
|
||||
{
|
||||
// multilang
|
||||
if ($conf->global->MAIN_MULTILANGS) // si l'option est active
|
||||
{
|
||||
$sql.= " AND (p.ref LIKE '%".$db->escape($sall)."%' OR p.label LIKE '%".$db->escape($sall)."%' OR p.description LIKE '%".$db->escape($sall)."%' OR p.note LIKE '%".$db->escape($sall)."%' OR pl.label LIKE '%".$db->escape($sall)."%' OR pl.description LIKE '%".$db->escape($sall)."%' OR pl.note LIKE '%".$db->escape($sall)."%' )";
|
||||
}
|
||||
else $sql.= " AND (p.ref LIKE '%".$db->escape($sall)."%' OR p.label LIKE '%".$db->escape($sall)."%' OR p.description LIKE '%".$db->escape($sall)."%' OR p.note LIKE '%".$db->escape($sall)."%')";
|
||||
}
|
||||
// if the type is not 1, we show all products (type = 0,2,3)
|
||||
if (dol_strlen($type))
|
||||
{
|
||||
@@ -145,7 +158,15 @@ else
|
||||
}
|
||||
if ($sref) $sql.= " AND p.ref LIKE '%".$sref."%'";
|
||||
if ($sbarcode) $sql.= " AND p.barcode LIKE '%".$sbarcode."%'";
|
||||
if ($snom) $sql.= " AND p.label LIKE '%".$db->escape($snom)."%'";
|
||||
if ($snom)
|
||||
{
|
||||
// multilang
|
||||
if ($conf->global->MAIN_MULTILANGS) // si l'option est active
|
||||
{
|
||||
$sql.= " AND (p.label LIKE '%".$db->escape($snom)."%' OR (pl.label IS NOT null AND pl.label LIKE '%".$db->escape($snom)."%'))";
|
||||
}
|
||||
else $sql.= " AND p.label LIKE '%".$db->escape($snom)."%'";
|
||||
}
|
||||
if (isset($tosell) && dol_strlen($tosell) > 0) $sql.= " AND p.tosell = ".$db->escape($tosell);
|
||||
if (isset($tobuy) && dol_strlen($tobuy) > 0) $sql.= " AND p.tobuy = ".$db->escape($tobuy);
|
||||
if (dol_strlen($canvas) > 0) $sql.= " AND p.canvas = '".$db->escape($canvas)."'";
|
||||
|
||||
@@ -41,6 +41,9 @@ if (empty($conf->global->MAILING_EMAIL_UNSUBSCRIBE)) accessforbidden('Option not
|
||||
|
||||
if ($id!='')
|
||||
{
|
||||
//escape id avoiding SQL Injection
|
||||
$id=$db->escape($id);
|
||||
|
||||
$statut='2';
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."mailing_cibles SET statut=".$statut." WHERE tag='".$id."'";
|
||||
dol_syslog("public/emailing/mailing-read.php : Mail read : ".$sql, LOG_DEBUG);
|
||||
|
||||
@@ -29,7 +29,7 @@ define("NOLOGIN",1); // This means this output page does not require to be logg
|
||||
define("NOCSRFCHECK",1); // We accept to go on this page from external web site.
|
||||
|
||||
require("../../main.inc.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/lib/company.lib.php");
|
||||
require_once(DOL_DOCUMENT_ROOT."/core/lib/company.lib.php");
|
||||
|
||||
global $user, $conf, $langs;
|
||||
|
||||
@@ -48,6 +48,9 @@ if (empty($conf->global->MAILING_EMAIL_UNSUBSCRIBE)) accessforbidden('Option not
|
||||
|
||||
if (($id!='') && ($unsuscrib=='1'))
|
||||
{
|
||||
//escape id avoiding SQL Injection
|
||||
$id=$db->escape($id);
|
||||
|
||||
//Udate status of mail in Destinaries maling list
|
||||
$statut='3';
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."mailing_cibles SET statut=".$statut." WHERE tag='".$id."'";
|
||||
|
||||
@@ -75,9 +75,13 @@ if (! GETPOST("action"))
|
||||
}
|
||||
}
|
||||
|
||||
// Define $urlwithroot
|
||||
$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root));
|
||||
$urlok=$urlwithouturlroot.DOL_URL_ROOT.'/public/paybox/paymentok.php?';
|
||||
$urlko=$urlwithouturlroot.DOL_URL_ROOT.'/public/paybox/paymentko.php?';
|
||||
$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
|
||||
//$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
|
||||
|
||||
$urlok=$urlwithroot.'/public/paybox/paymentok.php?';
|
||||
$urlko=$urlwithroot.'/public/paybox/paymentko.php?';
|
||||
|
||||
// Complete urls
|
||||
$SOURCE=GETPOST("source",'alpha');
|
||||
|
||||
@@ -84,9 +84,13 @@ if (! GETPOST("action"))
|
||||
}
|
||||
}
|
||||
|
||||
$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root));
|
||||
$urlok=$urlwithouturlroot.DOL_URL_ROOT.'/public/paypal/paymentok.php?';
|
||||
$urlko=$urlwithouturlroot.DOL_URL_ROOT.'/public/paypal/paymentko.php?';
|
||||
// Define $urlwithroot
|
||||
//$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root));
|
||||
//$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
|
||||
$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
|
||||
|
||||
$urlok=$urlwithroot.'/public/paypal/paymentok.php?';
|
||||
$urlko=$urlwithroot.'/public/paypal/paymentko.php?';
|
||||
|
||||
// Complete urls for post treatment
|
||||
$SOURCE=GETPOST("source",'alpha');
|
||||
|
||||
@@ -182,6 +182,9 @@ form {
|
||||
padding: 0em 0em 0em 0em;
|
||||
margin: 0em 0em 0em 0em;
|
||||
}
|
||||
.dolibarrcombobox {
|
||||
height: 22px;
|
||||
}
|
||||
|
||||
/* ============================================================================== */
|
||||
/* Styles to hide objects */
|
||||
|
||||
@@ -1410,17 +1410,10 @@ class User extends CommonObject
|
||||
$outputlangs=$langs;
|
||||
}
|
||||
|
||||
// Define urlwithouturlroot
|
||||
if (! empty($_SERVER["HTTP_HOST"])) // Autodetect main url root
|
||||
{
|
||||
$urlwithouturlroot='http://'.preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',$_SERVER["HTTP_HOST"]);
|
||||
}
|
||||
else
|
||||
{
|
||||
$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',$dolibarr_main_url_root);
|
||||
}
|
||||
if (! empty($dolibarr_main_force_https)
|
||||
|| (! empty($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == 'on')) $urlwithouturlroot=preg_replace('/http:/i','https:',$urlwithouturlroot);
|
||||
// Define $urlwithroot
|
||||
//$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root));
|
||||
//$urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file
|
||||
$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current
|
||||
|
||||
// TODO Use outputlangs to translate messages
|
||||
if (! $changelater)
|
||||
@@ -1430,7 +1423,7 @@ class User extends CommonObject
|
||||
$mesg.= $langs->trans("Login")." : $this->login\n";
|
||||
$mesg.= $langs->trans("Password")." : $password\n\n";
|
||||
$mesg.= "\n";
|
||||
$url = $urlwithouturlroot.DOL_URL_ROOT;
|
||||
$url = $urlwithroot;
|
||||
$mesg.= 'Click here to go to Dolibarr: '.$url."\n\n";
|
||||
$mesg.= "--\n";
|
||||
$mesg.= $user->getFullName($langs); // Username that make then sending
|
||||
@@ -1443,7 +1436,7 @@ class User extends CommonObject
|
||||
$mesg.= $langs->trans("Password")." : $password\n\n";
|
||||
$mesg.= "\n";
|
||||
$mesg.= "You must click on the folowing link to validate its change.\n";
|
||||
$url = $urlwithouturlroot.DOL_URL_ROOT.'/user/passwordforgotten.php?action=validatenewpassword&username='.$this->login."&passwordmd5=".dol_hash($password);
|
||||
$url = $urlwithroot.'/user/passwordforgotten.php?action=validatenewpassword&username='.$this->login."&passwordmd5=".dol_hash($password);
|
||||
$mesg.= $url."\n\n";
|
||||
$mesg.= "If you didn't ask anything, just forget this email\n\n";
|
||||
dol_syslog(get_class($this)."::send_password url=".$url);
|
||||
|
||||
@@ -219,10 +219,6 @@ if ($action == 'add' && $canadduser)
|
||||
$edituser->entity = (empty($_POST["entity"]) ? 0 : $_POST["entity"]);
|
||||
}
|
||||
}
|
||||
else if (! empty($_POST["admin"]))
|
||||
{
|
||||
$edituser->entity=0;
|
||||
}
|
||||
else
|
||||
{
|
||||
$edituser->entity = (empty($_POST["entity"]) ? 0 : $_POST["entity"]);
|
||||
@@ -337,10 +333,6 @@ if ($action == 'update' && ! $_POST["cancel"])
|
||||
$edituser->entity = (empty($_POST["entity"]) ? 0 : $_POST["entity"]);
|
||||
}
|
||||
}
|
||||
else if(! empty($_POST["admin"]))
|
||||
{
|
||||
$edituser->entity=0;
|
||||
}
|
||||
else
|
||||
{
|
||||
$edituser->entity = (empty($_POST["entity"]) ? 0 : $_POST["entity"]);
|
||||
@@ -1445,7 +1437,7 @@ else
|
||||
print '<form action="'.$_SERVER['PHP_SELF'].'?id='.$fuser->id.'" method="POST" name="updateuser" enctype="multipart/form-data">';
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
print '<input type="hidden" name="action" value="update">';
|
||||
print '<input type="hidden" name="entity" value="'.$conf->entity.'">';
|
||||
print '<input type="hidden" name="entity" value="'.$fuser->entity.'">';
|
||||
print '<table width="100%" class="border">';
|
||||
|
||||
$rowspan=12;
|
||||
|
||||
Reference in New Issue
Block a user