Merge remote-tracking branch 'dolibarr/develop' into develop

This commit is contained in:
Grand Philippe 2012-04-15 16:32:45 +02:00
commit 548bbe78e6
186 changed files with 13992 additions and 4778 deletions

View File

@ -18,7 +18,7 @@ GeoIP 2004 LGPL 2.1 Yes Sample code to m
NuSoap 0.9.5 LGPL 2.1 Yes Library to develop SOAP Web services (not into rpm and deb package) NuSoap 0.9.5 LGPL 2.1 Yes Library to develop SOAP Web services (not into rpm and deb package)
OdtPHP 1.0.1 GPL 2.0 Yes Library to build/edit ODT files OdtPHP 1.0.1 GPL 2.0 Yes Library to build/edit ODT files
PHPExcel 1.7.6 LGPL 2.1 Yes Read/Write XLS files, read ODS files PHPExcel 1.7.6 LGPL 2.1 Yes Read/Write XLS files, read ODS files
TCPDF 5.9.098 LGPL 3.0 Yes PDF generation TCPDF 5.9.156 LGPL 3.0 Yes PDF generation
JS libraries: JS libraries:
jQuery 1.7.1 GPL and MIT Licence Yes JS library jQuery 1.7.1 GPL and MIT Licence Yes JS library

View File

@ -2,8 +2,13 @@
English Dolibarr ChangeLog English Dolibarr ChangeLog
-------------------------------------------------------------- --------------------------------------------------------------
***** ChangeLog for 3.3 compared to 3.2 *****
***** ChangeLog for 3.3 compared to 3.2 *****
For users:
- New: Add supplier ref on supplier orders.
- New: Can export supplier orders.
For developers:
***** ChangeLog for 3.2 compared to 3.1 ***** ***** ChangeLog for 3.2 compared to 3.1 *****

View File

@ -8,9 +8,7 @@ script to build a package, ready to be distributed,
with format .DEB (for Debian, Ubuntu, ...). with format .DEB (for Debian, Ubuntu, ...).
# To build a debian package, you need first # To build a debian package, you need first
# apt-get -i debhelper # apt-get -i debhelper dpkg-source gpg lintian
# apt-get -i dpkg-source
# apt-get -i gpg
# This is standard command to work on Debian packaging: # This is standard command to work on Debian packaging:
@ -35,7 +33,8 @@ with format .DEB (for Debian, Ubuntu, ...).
# dpkg --purge Remove config files and interactive saved answers # dpkg --purge Remove config files and interactive saved answers
# #
# dpkg-buildpackage -us -uc Build a source and binary package # dpkg-buildpackage -us -uc Build a source and binary package
#
# gdebi package.deb Install a package + dependencies
To submit a package to Debian: To submit a package to Debian:

View File

@ -9,13 +9,11 @@ Build-Depends: debhelper (>= 7), po-debconf, dpatch
Package: dolibarr Package: dolibarr
Depends: libapache2-mod-php5 | libapache2-mod-php5filter | php5-cgi | php5-fpm | php5, Depends: libapache2-mod-php5 | libapache2-mod-php5filter | php5-cgi | php5-fpm | php5,
php5-mysql | php5-mysqli, php5-mysql | php5-mysqli,
php5-cli, php5-curl, php5-gd, php5-ldap, php-pear, php-mail-mime, php5-geoip, php-fpdf, php5-cli, php5-curl, php5-gd, php5-ldap, php-pear, php-mail-mime, php5-geoip,
libphp-adodb, libphp-adodb,
libfpdi-php,
libfpdf-tpl-php,
libnusoap-php, libnusoap-php,
libphp-pclzip, libphp-pclzip,
libjs-jquery, libjs-jquery-ui, libjs-flot, ckeditor, libjs-jquery, libjs-jquery-ui, ckeditor,
ttf-dejavu-core, ttf-dejavu-core,
xdg-utils, xdg-utils,
mysql-server, mysql-server,

View File

@ -6,11 +6,10 @@ Installed-Size: 61200
Depends: libapache2-mod-php5 | libapache2-mod-php5filter | php5-cgi | php5-fpm | php5, Depends: libapache2-mod-php5 | libapache2-mod-php5filter | php5-cgi | php5-fpm | php5,
php5-mysql | php5-mysqli, php5-mysql | php5-mysqli,
php5-cli, php5-curl, php5-gd, php5-ldap, php-pear, php-mail-mime, php5-geoip, php5-cli, php5-curl, php5-gd, php5-ldap, php-pear, php-mail-mime, php5-geoip,
libphp-adodb,
libnusoap-php, libnusoap-php,
libphp-pclzip, libphp-pclzip,
libfpdi-php, libjs-jquery, libjs-jquery-ui, ckeditor,
libfpdf-tpl-php,
ckeditor,
ttf-dejavu-core, ttf-dejavu-core,
xdg-utils, xdg-utils,
mysql-server mysql-server
@ -27,6 +26,7 @@ Description: Web based software to manage a small company or foundation
. .
Dolibarr was designed to be easy to use. Only features you need are Dolibarr was designed to be easy to use. Only features you need are
visible, depending on which module were activated. visible, depending on which module were activated.
Most common used modules are:
. .
Customers, Suppliers or Prospects directory, Customers, Suppliers or Prospects directory,
Contacts directory, Contacts directory,

View File

@ -83,8 +83,9 @@ case "$1" in
chown -R root:www-data $installconfig chown -R root:www-data $installconfig
chmod -R 660 $installconfig chmod -R 660 $installconfig
if [ ! -s $config ] # If a conf already exists and its content was already completed by installer
then if [ ! -s $config ] || ! grep -q "File generated by" $config
then
# Create an empty conf.php with permission to web server # Create an empty conf.php with permission to web server
echo Create empty file $config echo Create empty file $config
touch $config touch $config
@ -93,17 +94,17 @@ case "$1" in
else else
# File already exist. We add params not found. # File already exist. We add params not found.
echo Add new params to overwrite path to use shared libraries/fonts echo Add new params to overwrite path to use shared libraries/fonts
grep -q -c "dolibarr_lib_ADODB_PATH" $config || echo "<?php \$dolibarr_lib_ADODB_PATH='/usr/share/php/adodb'; ?>" >> $config grep -q -c "dolibarr_lib_ADODB_PATH" $config || [ ! -d "/usr/share/php/adodb" ] || echo "<?php \$dolibarr_lib_ADODB_PATH='/usr/share/php/adodb'; ?>" >> $config
grep -q -c "dolibarr_lib_FPDI_PATH" $config || echo "<?php \$dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi'; ?>" >> $config grep -q -c "dolibarr_lib_FPDI_PATH" $config || [ ! -d "/usr/share/php/fpdi" ] || echo "<?php \$dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi'; ?>" >> $config
grep -q -c "dolibarr_lib_GEOIP_PATH" $config || echo "<?php \$dolibarr_lib_GEOIP_PATH=''; ?>" >> $config #grep -q -c "dolibarr_lib_GEOIP_PATH" $config || echo "<?php \$dolibarr_lib_GEOIP_PATH=''; ?>" >> $config
grep -q -c "dolibarr_lib_NUSOAP_PATH" $config || echo "<?php \$dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap'; ?>" >> $config grep -q -c "dolibarr_lib_NUSOAP_PATH" $config || [ ! -d "/usr/share/php/nusoap" ] || echo "<?php \$dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap'; ?>" >> $config
grep -q -c "dolibarr_lib_ODTPHP_PATHTOPCLZIP" $config || echo "<?php \$dolibarr_lib_ODTPHP_PATHTOPCLZIP='/usr/share/php/libphp-pclzip'; ?>" >> $config grep -q -c "dolibarr_lib_ODTPHP_PATHTOPCLZIP" $config || [ ! -d "/usr/share/php/libphp-pclzip" ] || echo "<?php \$dolibarr_lib_ODTPHP_PATHTOPCLZIP='/usr/share/php/libphp-pclzip'; ?>" >> $config
grep -q -c "dolibarr_lib_PHPEXCEL_PATH" $config || echo "<?php \$dolibarr_lib_PHPEXCEL_PATH=''; ?>" >> $config #grep -q -c "dolibarr_lib_PHPEXCEL_PATH" $config || echo "<?php \$dolibarr_lib_PHPEXCEL_PATH=''; ?>" >> $config
grep -q -c "dolibarr_lib_TCPDF_PATH" $config || echo "<?php \$dolibarr_lib_TCPDF_PATH=''; ?>" >> $config #grep -q -c "dolibarr_lib_TCPDF_PATH" $config || echo "<?php \$dolibarr_lib_TCPDF_PATH=''; ?>" >> $config
grep -q -c "dolibarr_js_CKEDITOR" $config || echo "<?php \$dolibarr_js_CKEDITOR='/javascript/ckeditor'; ?>" >> $config grep -q -c "dolibarr_js_CKEDITOR" $config || [ ! -d "/usr/share/javascript/ckeditor" ] || echo "<?php \$dolibarr_js_CKEDITOR='/javascript/ckeditor'; ?>" >> $config
grep -q -c "dolibarr_js_JQUERY" $config || echo "<?php \$dolibarr_js_JQUERY='/javascript/jquery'; ?>" >> $config grep -q -c "dolibarr_js_JQUERY" $config || [ ! -d "/usr/share/javascript/jquery" ] || echo "<?php \$dolibarr_js_JQUERY='/javascript/jquery'; ?>" >> $config
grep -q -c "dolibarr_js_JQUERY_UI" $config || echo "<?php \$dolibarr_js_JQUERY_UI='/javascript/jquery-ui'; ?>" >> $config grep -q -c "dolibarr_js_JQUERY_UI" $config || [ ! -d "/usr/share/javascript/jquery-ui" ] || echo "<?php \$dolibarr_js_JQUERY_UI='/javascript/jquery-ui'; ?>" >> $config
grep -q -c "dolibarr_js_JQUERY_FLOT" $config || echo "<?php \$dolibarr_js_JQUERY_FLOT='/javascript/flot'; ?>" >> $config grep -q -c "dolibarr_js_JQUERY_FLOT" $config || [ ! -d "/usr/share/javascript/flot" ] || echo "<?php \$dolibarr_js_JQUERY_FLOT='/javascript/flot'; ?>" >> $config
grep -q -c "dolibarr_font_DOL_DEFAULT_TTF_BOLD" $config || echo "<?php \$dolibarr_font_DOL_DEFAULT_TTF_BOLD='/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf'; ?>" >> $config grep -q -c "dolibarr_font_DOL_DEFAULT_TTF_BOLD" $config || echo "<?php \$dolibarr_font_DOL_DEFAULT_TTF_BOLD='/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf'; ?>" >> $config
fi fi

View File

@ -3,7 +3,8 @@
# #
# see: dh_installdeb(1) # see: dh_installdeb(1)
set -e #set -e
set +e
# summary of how this script can be called: # summary of how this script can be called:
# * <postrm> `remove' # * <postrm> `remove'

View File

@ -27,7 +27,7 @@ $force_install_lockinstall='444';
// Value to overwrite path to use shared libraries/fonts instead of embedded one // Value to overwrite path to use shared libraries/fonts instead of embedded one
$force_dolibarr_lib_ADODB_PATH='/usr/share/php/adodb'; $force_dolibarr_lib_ADODB_PATH='/usr/share/php/adodb';
$force_dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi'; //$force_dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi';
$force_dolibarr_lib_GEOIP_PATH=''; $force_dolibarr_lib_GEOIP_PATH='';
$force_dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap'; $force_dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap';
$force_dolibarr_lib_ODTPHP_PATHTOPCLZIP='/usr/share/php/libphp-pclzip'; $force_dolibarr_lib_ODTPHP_PATHTOPCLZIP='/usr/share/php/libphp-pclzip';
@ -36,7 +36,7 @@ $force_dolibarr_lib_TCPDF_PATH='';
$force_dolibarr_js_CKEDITOR='/javascript/ckeditor'; $force_dolibarr_js_CKEDITOR='/javascript/ckeditor';
$force_dolibarr_js_JQUERY='/javascript/jquery'; $force_dolibarr_js_JQUERY='/javascript/jquery';
$force_dolibarr_js_JQUERY_UI='/javascript/jquery-ui'; $force_dolibarr_js_JQUERY_UI='/javascript/jquery-ui';
$force_dolibarr_js_JQUERY_FLOT='/javascript/flot'; //$force_dolibarr_js_JQUERY_FLOT='/javascript/flot';
$force_dolibarr_font_DOL_DEFAULT_TTF_BOLD='/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf'; $force_dolibarr_font_DOL_DEFAULT_TTF_BOLD='/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf';
?> ?>

View File

@ -104,6 +104,7 @@ clean:
rm -fr htdocs/includes/jquery/plugins/jstree rm -fr htdocs/includes/jquery/plugins/jstree
rm -fr htdocs/includes/jquery/plugins/lightbox rm -fr htdocs/includes/jquery/plugins/lightbox
rm -fr htdocs/includes/jquery/plugins/mobile rm -fr htdocs/includes/jquery/plugins/mobile
rm -fr htdocs/includes/jquery/plugins/multiselect
rm -fr htdocs/includes/phpexcel/PHPExcel/Shared/PDF rm -fr htdocs/includes/phpexcel/PHPExcel/Shared/PDF
rm -fr htdocs/includes/phpexcel/PHPExcel/Shared/PCLZip rm -fr htdocs/includes/phpexcel/PHPExcel/Shared/PCLZip
rm -fr htdocs/includes/tcpdf/fonts/dejavu-fonts-ttf-2.33 rm -fr htdocs/includes/tcpdf/fonts/dejavu-fonts-ttf-2.33

View File

@ -31,7 +31,7 @@ PROJECT_NAME = dolibarr
# This could be handy for archiving the generated documentation or # This could be handy for archiving the generated documentation or
# if some version control system is used. # if some version control system is used.
PROJECT_NUMBER = 3.2.0 PROJECT_NUMBER = 3.3.0
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put. # base path where the generated documentation will be put.

View File

@ -217,6 +217,26 @@ echo Create document directory $docdir
# Set correct owner on config files # Set correct owner on config files
%{__chown} -R root:$apachegroup /etc/dolibarr/* %{__chown} -R root:$apachegroup /etc/dolibarr/*
# If a conf already exists and its content was already completed by installer
export config=%{_sysconfdir}/dolibarr/conf.php
if [ -s $config ] && grep -q "File generated by" $config
then
# File already exist. We add params not found.
echo Add new params to overwrite path to use shared libraries/fonts
grep -q -c "dolibarr_lib_ADODB_PATH" $config || [ ! -d "/usr/share/php/adodb" ] || echo "<?php \$dolibarr_lib_ADODB_PATH='/usr/share/php/adodb'; ?>" >> $config
grep -q -c "dolibarr_lib_FPDI_PATH" $config || [ ! -d "/usr/share/php/fpdi" ] || echo "<?php \$dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi'; ?>" >> $config
#grep -q -c "dolibarr_lib_GEOIP_PATH" $config || echo "<?php \$dolibarr_lib_GEOIP_PATH=''; ?>" >> $config
grep -q -c "dolibarr_lib_NUSOAP_PATH" $config || [ ! -d "/usr/share/php/nusoap" ] || echo "<?php \$dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap'; ?>" >> $config
grep -q -c "dolibarr_lib_ODTPHP_PATHTOPCLZIP" $config || [ ! -d "/usr/share/php/libphp-pclzip" ] || echo "<?php \$dolibarr_lib_ODTPHP_PATHTOPCLZIP='/usr/share/php/libphp-pclzip'; ?>" >> $config
#grep -q -c "dolibarr_lib_PHPEXCEL_PATH" $config || echo "<?php \$dolibarr_lib_PHPEXCEL_PATH=''; ?>" >> $config
#grep -q -c "dolibarr_lib_TCPDF_PATH" $config || echo "<?php \$dolibarr_lib_TCPDF_PATH=''; ?>" >> $config
grep -q -c "dolibarr_js_CKEDITOR" $config || [ ! -d "/usr/share/javascript/ckeditor" ] || echo "<?php \$dolibarr_js_CKEDITOR='/javascript/ckeditor'; ?>" >> $config
grep -q -c "dolibarr_js_JQUERY" $config || [ ! -d "/usr/share/javascript/jquery" ] || echo "<?php \$dolibarr_js_JQUERY='/javascript/jquery'; ?>" >> $config
grep -q -c "dolibarr_js_JQUERY_UI" $config || [ ! -d "/usr/share/javascript/jquery-ui" ] || echo "<?php \$dolibarr_js_JQUERY_UI='/javascript/jquery-ui'; ?>" >> $config
grep -q -c "dolibarr_js_JQUERY_FLOT" $config || [ ! -d "/usr/share/javascript/flot" ] || echo "<?php \$dolibarr_js_JQUERY_FLOT='/javascript/flot'; ?>" >> $config
grep -q -c "dolibarr_font_DOL_DEFAULT_TTF_BOLD" $config || echo "<?php \$dolibarr_font_DOL_DEFAULT_TTF_BOLD='/usr/share/fonts/dejavu/DejaVuSans-Bold.ttf'; ?>" >> $config
fi
# Create config for se $seconfig # Create config for se $seconfig
echo Add SE Linux permissions for dolibarr echo Add SE Linux permissions for dolibarr
# semanage add records into /etc/selinux/targeted/contexts/files/file_contexts.local # semanage add records into /etc/selinux/targeted/contexts/files/file_contexts.local

View File

@ -254,6 +254,26 @@ fi
# Set correct owner on config files # Set correct owner on config files
%{__chown} -R root:$apachegroup /etc/dolibarr/* %{__chown} -R root:$apachegroup /etc/dolibarr/*
# If a conf already exists and its content was already completed by installer
export config=%{_sysconfdir}/dolibarr/conf.php
if [ -s $config ] && grep -q "File generated by" $config
then
# File already exist. We add params not found.
echo Add new params to overwrite path to use shared libraries/fonts
grep -q -c "dolibarr_lib_ADODB_PATH" $config || [ ! -d "/usr/share/php/adodb" ] || echo "<?php \$dolibarr_lib_ADODB_PATH='/usr/share/php/adodb'; ?>" >> $config
grep -q -c "dolibarr_lib_FPDI_PATH" $config || [ ! -d "/usr/share/php/fpdi" ] || echo "<?php \$dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi'; ?>" >> $config
#grep -q -c "dolibarr_lib_GEOIP_PATH" $config || echo "<?php \$dolibarr_lib_GEOIP_PATH=''; ?>" >> $config
grep -q -c "dolibarr_lib_NUSOAP_PATH" $config || [ ! -d "/usr/share/php/nusoap" ] || echo "<?php \$dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap'; ?>" >> $config
grep -q -c "dolibarr_lib_ODTPHP_PATHTOPCLZIP" $config || [ ! -d "/usr/share/php/libphp-pclzip" ] || echo "<?php \$dolibarr_lib_ODTPHP_PATHTOPCLZIP='/usr/share/php/libphp-pclzip'; ?>" >> $config
#grep -q -c "dolibarr_lib_PHPEXCEL_PATH" $config || echo "<?php \$dolibarr_lib_PHPEXCEL_PATH=''; ?>" >> $config
#grep -q -c "dolibarr_lib_TCPDF_PATH" $config || echo "<?php \$dolibarr_lib_TCPDF_PATH=''; ?>" >> $config
grep -q -c "dolibarr_js_CKEDITOR" $config || [ ! -d "/usr/share/javascript/ckeditor" ] || echo "<?php \$dolibarr_js_CKEDITOR='/javascript/ckeditor'; ?>" >> $config
grep -q -c "dolibarr_js_JQUERY" $config || [ ! -d "/usr/share/javascript/jquery" ] || echo "<?php \$dolibarr_js_JQUERY='/javascript/jquery'; ?>" >> $config
grep -q -c "dolibarr_js_JQUERY_UI" $config || [ ! -d "/usr/share/javascript/jquery-ui" ] || echo "<?php \$dolibarr_js_JQUERY_UI='/javascript/jquery-ui'; ?>" >> $config
grep -q -c "dolibarr_js_JQUERY_FLOT" $config || [ ! -d "/usr/share/javascript/flot" ] || echo "<?php \$dolibarr_js_JQUERY_FLOT='/javascript/flot'; ?>" >> $config
grep -q -c "dolibarr_font_DOL_DEFAULT_TTF_BOLD" $config || echo "<?php \$dolibarr_font_DOL_DEFAULT_TTF_BOLD='/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf'; ?>" >> $config
fi
# Create config for se $seconfig # Create config for se $seconfig
if [ "x$os" = "xfedora-redhat" -a -s /sbin/restorecon ]; then if [ "x$os" = "xfedora-redhat" -a -s /sbin/restorecon ]; then
echo Add SE Linux permissions for dolibarr echo Add SE Linux permissions for dolibarr

View File

@ -214,6 +214,26 @@ echo Create document directory $docdir
# Set correct owner on config files # Set correct owner on config files
%{__chown} -R root:$apachegroup /etc/dolibarr/* %{__chown} -R root:$apachegroup /etc/dolibarr/*
# If a conf already exists and its content was already completed by installer
export confcomplete=`grep -c "File generated by" %{_sysconfdir}/dolibarr/conf.php 2>/dev/null`
if [ -s %{_sysconfdir}/dolibarr/conf.php -a "x$confcomplete" != "x0" ]
then
# File already exist. We add params not found.
echo Add new params to overwrite path to use shared libraries/fonts
grep -q -c "dolibarr_lib_ADODB_PATH" $config || [ ! -d "/usr/share/php/adodb" ] || echo "<?php \$dolibarr_lib_ADODB_PATH='/usr/share/php/adodb'; ?>" >> $config
grep -q -c "dolibarr_lib_FPDI_PATH" $config || [ ! -d "/usr/share/php/fpdi" ] || echo "<?php \$dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi'; ?>" >> $config
#grep -q -c "dolibarr_lib_GEOIP_PATH" $config || echo "<?php \$dolibarr_lib_GEOIP_PATH=''; ?>" >> $config
grep -q -c "dolibarr_lib_NUSOAP_PATH" $config || [ ! -d "/usr/share/php/nusoap" ] || echo "<?php \$dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap'; ?>" >> $config
grep -q -c "dolibarr_lib_ODTPHP_PATHTOPCLZIP" $config || [ ! -d "/usr/share/php/libphp-pclzip" ] || echo "<?php \$dolibarr_lib_ODTPHP_PATHTOPCLZIP='/usr/share/php/libphp-pclzip'; ?>" >> $config
#grep -q -c "dolibarr_lib_PHPEXCEL_PATH" $config || echo "<?php \$dolibarr_lib_PHPEXCEL_PATH=''; ?>" >> $config
#grep -q -c "dolibarr_lib_TCPDF_PATH" $config || echo "<?php \$dolibarr_lib_TCPDF_PATH=''; ?>" >> $config
grep -q -c "dolibarr_js_CKEDITOR" $config || [ ! -d "/usr/share/javascript/ckeditor" ] || echo "<?php \$dolibarr_js_CKEDITOR='/javascript/ckeditor'; ?>" >> $config
grep -q -c "dolibarr_js_JQUERY" $config || [ ! -d "/usr/share/javascript/jquery" ] || echo "<?php \$dolibarr_js_JQUERY='/javascript/jquery'; ?>" >> $config
grep -q -c "dolibarr_js_JQUERY_UI" $config || [ ! -d "/usr/share/javascript/jquery-ui" ] || echo "<?php \$dolibarr_js_JQUERY_UI='/javascript/jquery-ui'; ?>" >> $config
grep -q -c "dolibarr_js_JQUERY_FLOT" $config || [ ! -d "/usr/share/javascript/flot" ] || echo "<?php \$dolibarr_js_JQUERY_FLOT='/javascript/flot'; ?>" >> $config
grep -q -c "dolibarr_font_DOL_DEFAULT_TTF_BOLD" $config || echo "<?php \$dolibarr_font_DOL_DEFAULT_TTF_BOLD='/usr/share/fonts/TTF/dejavu/DejaVuSans-Bold.ttf'; ?>" >> $config
fi
# Create a config link dolibarr.conf # Create a config link dolibarr.conf
if [ ! -L $apachelink ]; then if [ ! -L $apachelink ]; then
echo Create dolibarr web server config link $apachelink echo Create dolibarr web server config link $apachelink

View File

@ -219,6 +219,26 @@ echo Create document directory $docdir
# Set correct owner on config files # Set correct owner on config files
%{__chown} -R root:$apachegroup /etc/dolibarr/* %{__chown} -R root:$apachegroup /etc/dolibarr/*
# If a conf already exists and its content was already completed by installer
export config=%{_sysconfdir}/dolibarr/conf.php
if [ -s $config ] && grep -q "File generated by" $config
then
# File already exist. We add params not found.
echo Add new params to overwrite path to use shared libraries/fonts
grep -q -c "dolibarr_lib_ADODB_PATH" $config || [ ! -d "/usr/share/php/adodb" ] || echo "<?php \$dolibarr_lib_ADODB_PATH='/usr/share/php/adodb'; ?>" >> $config
grep -q -c "dolibarr_lib_FPDI_PATH" $config || [ ! -d "/usr/share/php/fpdi" ] || echo "<?php \$dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi'; ?>" >> $config
#grep -q -c "dolibarr_lib_GEOIP_PATH" $config || echo "<?php \$dolibarr_lib_GEOIP_PATH=''; ?>" >> $config
grep -q -c "dolibarr_lib_NUSOAP_PATH" $config || [ ! -d "/usr/share/php/nusoap" ] || echo "<?php \$dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap'; ?>" >> $config
grep -q -c "dolibarr_lib_ODTPHP_PATHTOPCLZIP" $config || [ ! -d "/usr/share/php/libphp-pclzip" ] || echo "<?php \$dolibarr_lib_ODTPHP_PATHTOPCLZIP='/usr/share/php/libphp-pclzip'; ?>" >> $config
#grep -q -c "dolibarr_lib_PHPEXCEL_PATH" $config || echo "<?php \$dolibarr_lib_PHPEXCEL_PATH=''; ?>" >> $config
#grep -q -c "dolibarr_lib_TCPDF_PATH" $config || echo "<?php \$dolibarr_lib_TCPDF_PATH=''; ?>" >> $config
grep -q -c "dolibarr_js_CKEDITOR" $config || [ ! -d "/usr/share/javascript/ckeditor" ] || echo "<?php \$dolibarr_js_CKEDITOR='/javascript/ckeditor'; ?>" >> $config
grep -q -c "dolibarr_js_JQUERY" $config || [ ! -d "/usr/share/javascript/jquery" ] || echo "<?php \$dolibarr_js_JQUERY='/javascript/jquery'; ?>" >> $config
grep -q -c "dolibarr_js_JQUERY_UI" $config || [ ! -d "/usr/share/javascript/jquery-ui" ] || echo "<?php \$dolibarr_js_JQUERY_UI='/javascript/jquery-ui'; ?>" >> $config
grep -q -c "dolibarr_js_JQUERY_FLOT" $config || [ ! -d "/usr/share/javascript/flot" ] || echo "<?php \$dolibarr_js_JQUERY_FLOT='/javascript/flot'; ?>" >> $config
grep -q -c "dolibarr_font_DOL_DEFAULT_TTF_BOLD" $config || echo "<?php \$dolibarr_font_DOL_DEFAULT_TTF_BOLD='/usr/share/fonts/truetype/DejaVuSans-Bold.ttf'; ?>" >> $config
fi
# Create a config link dolibarr.conf # Create a config link dolibarr.conf
if [ ! -L $apachelink ]; then if [ ! -L $apachelink ]; then
echo Create dolibarr web server config link $apachelink echo Create dolibarr web server config link $apachelink

View File

@ -30,6 +30,6 @@ $force_dolibarr_lib_TCPDF_PATH='';
//$force_dolibarr_js_JQUERY='/javascript/jquery'; //$force_dolibarr_js_JQUERY='/javascript/jquery';
//$force_dolibarr_js_JQUERY_UI='/javascript/jquery-ui'; //$force_dolibarr_js_JQUERY_UI='/javascript/jquery-ui';
//$force_dolibarr_js_JQUERY_FLOT='/javascript/flot'; //$force_dolibarr_js_JQUERY_FLOT='/javascript/flot';
$force_dolibarr_font_DOL_DEFAULT_TTF_BOLD='/usr/share/fonts/truetype'; $force_dolibarr_font_DOL_DEFAULT_TTF_BOLD='/usr/share/fonts/truetype/DejaVuSans-Bold.ttf';
?> ?>

View File

@ -30,7 +30,7 @@ public function MultiCell($w, $h, $txt, $border=0, $align='J', $fill=false, $ln=
by by
public function MultiCell($w, $h, $txt, $border=0, $align='J', $fill=false, $ln=1, $x='', $y='', $reseth=true, $stretch=0, $ishtml=false, $autopadding=false, $maxh=0, $valign='T', $fitcell=false) { public function MultiCell($w, $h, $txt, $border=0, $align='J', $fill=false, $ln=1, $x='', $y='', $reseth=true, $stretch=0, $ishtml=false, $autopadding=false, $maxh=0, $valign='T', $fitcell=false) {
* Removed all fonts except dejavu* (greek, arab, persan, romanian, turkish), freemono* (russian), stsongstdlight* (chinese), helvetica* (all other) and useless directories (fonts/utils, docs, cache, images) * Removed all fonts except dejavu* (used by greek, arab, persan, romanian, turkish), freemono* (russian), stsongstdlight* (chinese), helvetica* (all other) and useless directories (fonts/utils, docs, cache, images)
* Replace in tcpdf_config.php * Replace in tcpdf_config.php
define ('K_PATH_CACHE', K_PATH_MAIN.'cache/'); define ('K_PATH_CACHE', K_PATH_MAIN.'cache/');

View File

@ -11,7 +11,7 @@
#------------------------------------------------------ #------------------------------------------------------
export dumpfile="mysqldump_dolibarr_3.1.0.sql" export dumpfile=`ls mysqldump_dolibarr_*.sql | sort | tail -n 1`
export mydir=`echo "$0" | sed -e 's/initdemo.sh//'`; export mydir=`echo "$0" | sed -e 's/initdemo.sh//'`;
if [ "x$mydir" = "x" ] if [ "x$mydir" = "x" ]
then then

File diff suppressed because one or more lines are too long

View File

@ -39,8 +39,12 @@ $langs->load("users");
$langs->load("mails"); $langs->load("mails");
$action=GETPOST('action','alpha');
$rowid=GETPOST('rowid','int');
$typeid=GETPOST('typeid','int');
// Security check // Security check
if (! $user->rights->adherent->cotisation->lire) accessforbidden(); $result=restrictedArea($user,'adherent',$rowid);
$object = new Adherent($db); $object = new Adherent($db);
$extrafields = new ExtraFields($db); $extrafields = new ExtraFields($db);
@ -50,10 +54,6 @@ $errmsg='';
$defaultdelay=1; $defaultdelay=1;
$defaultdelayunit='y'; $defaultdelayunit='y';
$action=GETPOST('action');
$rowid=GETPOST('rowid');
$typeid=GETPOST('typeid');
if ($rowid) if ($rowid)
{ {
// Load member // Load member

View File

@ -968,7 +968,7 @@ class Adherent extends CommonObject
*/ */
function fetch($rowid,$ref='',$fk_soc='') function fetch($rowid,$ref='',$fk_soc='')
{ {
global $conf, $langs; global $langs;
$sql = "SELECT d.rowid, d.civilite, d.prenom as firstname, d.nom as lastname, d.societe, d.fk_soc, d.statut, d.public, d.adresse as address, d.cp as zip, d.ville as town, d.note,"; $sql = "SELECT d.rowid, d.civilite, d.prenom as firstname, d.nom as lastname, d.societe, d.fk_soc, d.statut, d.public, d.adresse as address, d.cp as zip, d.ville as town, d.note,";
$sql.= " d.email, d.phone, d.phone_perso, d.phone_mobile, d.login, d.pass,"; $sql.= " d.email, d.phone, d.phone_perso, d.phone_mobile, d.login, d.pass,";
@ -989,10 +989,12 @@ class Adherent extends CommonObject
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as dep ON d.fk_departement = dep.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as dep ON d.fk_departement = dep.rowid";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u ON d.rowid = u.fk_member"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u ON d.rowid = u.fk_member";
$sql.= " WHERE d.fk_adherent_type = t.rowid"; $sql.= " WHERE d.fk_adherent_type = t.rowid";
$sql.= " AND d.entity = ".$conf->entity; if ($rowid) $sql.= " AND d.rowid=".$rowid;
if ($ref) $sql.= " AND d.rowid='".$ref."'"; elseif ($ref || $fk_soc) {
elseif ($fk_soc) $sql.= " AND d.fk_soc='".$fk_soc."'"; $sql.= " AND d.entity IN (".getEntity().")";
else $sql.= " AND d.rowid=".$rowid; if ($ref) $sql.= " AND d.rowid='".$ref."'";
elseif ($fk_soc) $sql.= " AND d.fk_soc='".$fk_soc."'";
}
dol_syslog(get_class($this)."::fetch sql=".$sql); dol_syslog(get_class($this)."::fetch sql=".$sql);
$resql=$this->db->query($sql); $resql=$this->db->query($sql);

View File

@ -1,7 +1,7 @@
<?php <?php
/* Copyright (C) 2002-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2002-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2007 Regis Houssin <regis@dolibarr.fr> * Copyright (C) 2005-2012 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
@ -31,18 +31,21 @@ require_once(DOL_DOCUMENT_ROOT."/core/class/html.formfile.class.php");
require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent.class.php"); require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent.class.php");
require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent_type.class.php"); require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent_type.class.php");
$langs->load("members");
$langs->load("companies"); $langs->load("companies");
$langs->load('other'); $langs->load('other');
$id=GETPOST('id','int');
$action=GETPOST('action','alpha');
$confirm=GETPOST('confirm','alpha');
$mesg = ""; $mesg = "";
// Security check // Security check
$id = GETPOST('id','int');
if ($user->societe_id > 0) if ($user->societe_id > 0)
{ {
$id = $user->societe_id; $id = $user->societe_id;
} }
//$result = restrictedArea($user, 'societe', $id); $result=restrictedArea($user,'adherent',$id);
// Get parameters // Get parameters
$sortfield = GETPOST("sortfield",'alpha'); $sortfield = GETPOST("sortfield",'alpha');
@ -65,7 +68,7 @@ $upload_dir = $conf->adherent->dir_output . "/" . get_exdir($id,2,0,1) . '/' . $
*/ */
// Envoie fichier // Envoie fichier
if ( $_POST["sendit"] && ! empty($conf->global->MAIN_UPLOAD_DOC)) if ($_POST["sendit"] && ! empty($conf->global->MAIN_UPLOAD_DOC))
{ {
require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"); require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
@ -96,7 +99,7 @@ if ( $_POST["sendit"] && ! empty($conf->global->MAIN_UPLOAD_DOC))
} }
// Suppression fichier // Suppression fichier
if ($_REQUEST['action'] == 'confirm_deletefile' && $_REQUEST['confirm'] == 'yes') if ($action == 'confirm_deletefile' && $confirm == 'yes')
{ {
$file = $upload_dir . "/" . $_GET['urlfile']; // Do not use urldecode here ($_GET and $_REQUEST are already decoded by PHP). $file = $upload_dir . "/" . $_GET['urlfile']; // Do not use urldecode here ($_GET and $_REQUEST are already decoded by PHP).
dol_delete_file($file); dol_delete_file($file);
@ -197,21 +200,21 @@ if ($id > 0)
/* /*
* Confirmation suppression fichier * Confirmation suppression fichier
*/ */
if ($_GET['action'] == 'delete') if ($action == 'delete')
{ {
$ret=$form->form_confirm($_SERVER["PHP_SELF"].'?id='.$_GET["id"].'&urlfile='.urldecode($_GET["urlfile"]), $langs->trans('DeleteFile'), $langs->trans('ConfirmDeleteFile'), 'confirm_deletefile', '', 0, 1); $ret=$form->form_confirm($_SERVER["PHP_SELF"].'?id='.$member->id.'&urlfile='.urldecode($_GET["urlfile"]), $langs->trans('DeleteFile'), $langs->trans('ConfirmDeleteFile'), 'confirm_deletefile', '', 0, 1);
if ($ret == 'html') print '<br>'; if ($ret == 'html') print '<br>';
} }
// Affiche formulaire upload // Affiche formulaire upload
$formfile=new FormFile($db); $formfile=new FormFile($db);
$formfile->form_attach_new_file(DOL_URL_ROOT.'/adherents/document.php?id='.$id,'',0,0,$user->rights->adherent->creer); $formfile->form_attach_new_file(DOL_URL_ROOT.'/adherents/document.php?id='.$member->id,'',0,0,$user->rights->adherent->creer);
// List of document // List of document
$param='&socid='.$societe->id; $param='&socid='.$societe->id;
$formfile->list_of_documents($filearray,$member,'member',$param, 0, get_exdir($id,2,0,1).'/'.$id.'/'); $formfile->list_of_documents($filearray,$member,'member',$param, 0, get_exdir($member->id,2,0,1).'/'.$member->id.'/');
print "<br><br>"; print "<br><br>";
} }
@ -226,9 +229,7 @@ else
print $langs->trans("ErrorRecordNotFound"); print $langs->trans("ErrorRecordNotFound");
} }
$db->close();
llxFooter(); llxFooter();
$db->close();
?> ?>

View File

@ -41,21 +41,22 @@ $langs->load("bills");
$langs->load("members"); $langs->load("members");
$langs->load("users"); $langs->load("users");
$action=GETPOST('action','alpha');
$confirm=GETPOST('confirm','alpha');
$rowid=GETPOST('rowid','int');
$typeid=GETPOST('typeid','int');
$userid=GETPOST('userid','int');
$socid=GETPOST('socid','int');
// Security check // Security check
if (! $user->rights->adherent->lire) accessforbidden(); $result=restrictedArea($user,'adherent',$rowid);
$object = new Adherent($db); $object = new Adherent($db);
$extrafields = new ExtraFields($db); $extrafields = new ExtraFields($db);
$errmsg=''; $errmsgs=array(); $errmsg=''; $errmsgs=array();
$action=GETPOST('action','alpha');
$confirm=GETPOST('confirm','alpha');
$rowid=GETPOST('rowid','int');
$typeid=GETPOST('typeid','int');
$userid=GETPOST('userid','int');
$socid=GETPOST('socid','int');
if ($rowid > 0) if ($rowid > 0)
{ {
// Load member // Load member
@ -67,16 +68,12 @@ if ($rowid > 0)
if ($object->user_id) if ($object->user_id)
{ {
// $user est le user qui edite, $object->user_id est l'id de l'utilisateur lies au membre edite // $user est le user qui edite, $object->user_id est l'id de l'utilisateur lies au membre edite
$caneditfielduser=( (($user->id == $object->user_id) && $user->rights->user->self->creer) $caneditfielduser=((($user->id == $object->user_id) && $user->rights->user->self->creer)
|| (($user->id != $object->user_id) && $user->rights->user->user->creer) ); || (($user->id != $object->user_id) && $user->rights->user->user->creer));
$caneditpassworduser=( (($user->id == $object->user_id) && $user->rights->user->self->password) $caneditpassworduser=((($user->id == $object->user_id) && $user->rights->user->self->password)
|| (($user->id != $object->user_id) && $user->rights->user->user->password) ); || (($user->id != $object->user_id) && $user->rights->user->user->password));
} }
} }
else
{
accessforbidden();
}
// Define variables to know what current user can do on members // Define variables to know what current user can do on members
$canaddmember=$user->rights->adherent->creer; $canaddmember=$user->rights->adherent->creer;

View File

@ -1,7 +1,8 @@
<?php <?php
/* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org> * Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
* Copyright (C) 2004-2012 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>
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -59,7 +60,10 @@ $AdherentType=array();
$sql = "SELECT t.rowid, t.libelle, t.cotisation,"; $sql = "SELECT t.rowid, t.libelle, t.cotisation,";
$sql.= " d.statut, count(d.rowid) as somme"; $sql.= " d.statut, count(d.rowid) as somme";
$sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as t"; $sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as t";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."adherent as d ON t.rowid = d.fk_adherent_type"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."adherent as d";
$sql.= " ON t.rowid = d.fk_adherent_type";
$sql.= " AND d.entity IN (".getEntity().")";
$sql.= " WHERE t.entity IN (".getEntity().")";
$sql.= " GROUP BY t.rowid, t.libelle, t.cotisation, d.statut"; $sql.= " GROUP BY t.rowid, t.libelle, t.cotisation, d.statut";
dol_syslog("index.php::select nb of members by type sql=".$sql, LOG_DEBUG); dol_syslog("index.php::select nb of members by type sql=".$sql, LOG_DEBUG);
@ -94,8 +98,9 @@ $now=dol_now();
// old rule: uptodate = if type does not need payment, that end date is null, if type need payment that end date is in future) // old rule: uptodate = if type does not need payment, that end date is null, if type need payment that end date is in future)
$sql = "SELECT count(*) as somme , d.fk_adherent_type"; $sql = "SELECT count(*) as somme , d.fk_adherent_type";
$sql.= " FROM ".MAIN_DB_PREFIX."adherent as d, ".MAIN_DB_PREFIX."adherent_type as t"; $sql.= " FROM ".MAIN_DB_PREFIX."adherent as d, ".MAIN_DB_PREFIX."adherent_type as t";
//$sql.= " WHERE d.statut = 1 AND ((t.cotisation = 0 AND d.datefin IS NULL) OR d.datefin >= ".$db->idate($now).')'; $sql.= " WHERE d.entity IN (".getEntity().")";
$sql.= " WHERE d.statut = 1 AND d.datefin >= ".$db->idate($now); //$sql.= " AND d.statut = 1 AND ((t.cotisation = 0 AND d.datefin IS NULL) OR d.datefin >= ".$db->idate($now).')';
$sql.= " AND d.statut = 1 AND d.datefin >= ".$db->idate($now);
$sql.= " AND t.rowid = d.fk_adherent_type"; $sql.= " AND t.rowid = d.fk_adherent_type";
$sql.= " GROUP BY d.fk_adherent_type"; $sql.= " GROUP BY d.fk_adherent_type";
@ -212,7 +217,8 @@ $sql = "SELECT a.rowid, a.statut, a.nom as lastname, a.prenom as firstname,";
$sql.= " a.tms as datem, datefin as date_end_subscription,"; $sql.= " a.tms as datem, datefin as date_end_subscription,";
$sql.= " ta.rowid as typeid, ta.libelle, ta.cotisation"; $sql.= " ta.rowid as typeid, ta.libelle, ta.cotisation";
$sql.= " FROM ".MAIN_DB_PREFIX."adherent as a, ".MAIN_DB_PREFIX."adherent_type as ta"; $sql.= " FROM ".MAIN_DB_PREFIX."adherent as a, ".MAIN_DB_PREFIX."adherent_type as ta";
$sql.= " WHERE a.fk_adherent_type = ta.rowid"; $sql.= " WHERE a.entity IN (".getEntity().")";
$sql.= " AND a.fk_adherent_type = ta.rowid";
$sql.= $db->order("a.tms","DESC"); $sql.= $db->order("a.tms","DESC");
$sql.= $db->plimit($max, 0); $sql.= $db->plimit($max, 0);
@ -264,7 +270,8 @@ $sql = "SELECT a.rowid, a.statut, a.nom, a.prenom,";
$sql.= " datefin as date_end_subscription,"; $sql.= " datefin as date_end_subscription,";
$sql.= " c.rowid as cid, c.tms as datem, c.datec as datec, c.dateadh as date_start, c.datef as date_end, c.cotisation"; $sql.= " c.rowid as cid, c.tms as datem, c.datec as datec, c.dateadh as date_start, c.datef as date_end, c.cotisation";
$sql.= " FROM ".MAIN_DB_PREFIX."adherent as a, ".MAIN_DB_PREFIX."cotisation as c"; $sql.= " FROM ".MAIN_DB_PREFIX."adherent as a, ".MAIN_DB_PREFIX."cotisation as c";
$sql.= " WHERE c.fk_adherent = a.rowid"; $sql.= " WHERE a.entity IN (".getEntity().")";
$sql.= " AND c.fk_adherent = a.rowid";
$sql.= $db->order("c.tms","DESC"); $sql.= $db->order("c.tms","DESC");
$sql.= $db->plimit($max, 0); $sql.= $db->plimit($max, 0);
@ -350,7 +357,8 @@ $numb=0;
$sql = "SELECT c.cotisation, c.dateadh"; $sql = "SELECT c.cotisation, c.dateadh";
$sql.= " FROM ".MAIN_DB_PREFIX."adherent as d, ".MAIN_DB_PREFIX."cotisation as c"; $sql.= " FROM ".MAIN_DB_PREFIX."adherent as d, ".MAIN_DB_PREFIX."cotisation as c";
$sql.= " WHERE d.rowid = c.fk_adherent"; $sql.= " WHERE d.entity IN (".getEntity().")";
$sql.= " AND d.rowid = c.fk_adherent";
if(isset($date_select) && $date_select != '') if(isset($date_select) && $date_select != '')
{ {
$sql .= " AND dateadh LIKE '$date_select%'"; $sql .= " AND dateadh LIKE '$date_select%'";
@ -406,7 +414,6 @@ print '</td></tr>';
print '</table>'; print '</table>';
$db->close();
llxFooter(); llxFooter();
$db->close();
?> ?>

View File

@ -1,6 +1,6 @@
<?php <?php
/* Copyright (C) 2005-2009 Laurent Destailleur <eldy@users.sourceforge.net> /* Copyright (C) 2005-2009 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2006 Regis Houssin <regis@dolibarr.fr> * Copyright (C) 2005-2012 Regis Houssin <regis@dolibarr.fr>
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -32,8 +32,10 @@ $langs->load("bills");
$langs->load("members"); $langs->load("members");
$langs->load("users"); $langs->load("users");
if (!$user->rights->adherent->lire) $id=(GETPOST('id','int') ? GETPOST('id','int') : GETPOST('rowid','int'));
accessforbidden();
// Security check
$result=restrictedArea($user,'adherent',$id);
/* /*
@ -43,9 +45,8 @@ if (!$user->rights->adherent->lire)
llxHeader('',$langs->trans("Member"),'EN:Module_Foundations|FR:Module_Adh&eacute;rents|ES:M&oacute;dulo_Miembros'); llxHeader('',$langs->trans("Member"),'EN:Module_Foundations|FR:Module_Adh&eacute;rents|ES:M&oacute;dulo_Miembros');
$adh = new Adherent($db); $adh = new Adherent($db);
$adh->id=$_GET["id"]; $adh->fetch($id);
$adh->fetch($_GET["id"]); $adh->info($id);
$adh->info($_GET["id"]);
$head = member_prepare_head($adh); $head = member_prepare_head($adh);
@ -59,7 +60,6 @@ print '</td></tr></table>';
print '</div>'; print '</div>';
$db->close();
llxFooter(); llxFooter();
$db->close();
?> ?>

View File

@ -27,14 +27,15 @@ require_once(DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php');
require_once(DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'); require_once(DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php');
require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent_type.class.php"); require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent_type.class.php");
$action=GETPOST('action'); $langs->load("companies");
$id=GETPOST('id','int'); $langs->load("members");
$langs->load("companies");
$langs->load("members");
$langs->load("bills"); $langs->load("bills");
if (!$user->rights->adherent->lire) accessforbidden(); $action=GETPOST('action','alpha');
$id=GETPOST('id','int');
// Security check
$result=restrictedArea($user,'adherent',$id);
$object = new Adherent($db); $object = new Adherent($db);
$result=$object->fetch($id); $result=$object->fetch($id);
@ -49,7 +50,7 @@ if ($result > 0)
* Actions * Actions
*/ */
if ($_POST["action"] == 'update' && $user->rights->adherent->creer && ! $_POST["cancel"]) if ($action == 'update' && $user->rights->adherent->creer && ! $_POST["cancel"])
{ {
$db->begin(); $db->begin();
@ -174,7 +175,7 @@ if ($id)
} }
$db->close();
llxFooter(); llxFooter();
$db->close();
?> ?>

View File

@ -73,7 +73,8 @@ if ($mode)
$data = array(); $data = array();
$sql.="SELECT COUNT(d.rowid) as nb, MAX(d.datevalid) as lastdate, c.code, c.libelle as label"; $sql.="SELECT COUNT(d.rowid) as nb, MAX(d.datevalid) as lastdate, c.code, c.libelle as label";
$sql.=" FROM ".MAIN_DB_PREFIX."adherent as d LEFT JOIN ".MAIN_DB_PREFIX."c_pays as c on d.pays = c.rowid"; $sql.=" FROM ".MAIN_DB_PREFIX."adherent as d LEFT JOIN ".MAIN_DB_PREFIX."c_pays as c on d.pays = c.rowid";
$sql.=" WHERE d.statut = 1"; $sql.=" WHERE d.entity IN (".getEntity().")";
$sql.=" AND d.statut = 1";
$sql.=" GROUP BY c.libelle, c.code"; $sql.=" GROUP BY c.libelle, c.code";
//print $sql; //print $sql;
} }
@ -88,7 +89,8 @@ if ($mode)
$sql.=" FROM ".MAIN_DB_PREFIX."adherent as d LEFT JOIN ".MAIN_DB_PREFIX."c_departements as c on d.fk_departement = c.rowid"; $sql.=" FROM ".MAIN_DB_PREFIX."adherent as d LEFT JOIN ".MAIN_DB_PREFIX."c_departements as c on d.fk_departement = c.rowid";
$sql.=" LEFT JOIN ".MAIN_DB_PREFIX."c_regions as r on c.fk_region = r.code_region"; $sql.=" LEFT JOIN ".MAIN_DB_PREFIX."c_regions as r on c.fk_region = r.code_region";
$sql.=" LEFT JOIN ".MAIN_DB_PREFIX."c_pays as p on d.pays = p.rowid"; $sql.=" LEFT JOIN ".MAIN_DB_PREFIX."c_pays as p on d.pays = p.rowid";
$sql.=" WHERE d.statut = 1"; $sql.=" WHERE d.entity IN (".getEntity().")";
$sql.=" AND d.statut = 1";
$sql.=" GROUP BY p.libelle, p.code, c.nom"; $sql.=" GROUP BY p.libelle, p.code, c.nom";
//print $sql; //print $sql;
} }
@ -102,7 +104,8 @@ if ($mode)
$sql.="SELECT COUNT(d.rowid) as nb, MAX(d.datevalid) as lastdate, p.code, p.libelle as label, d.ville as label2"; $sql.="SELECT COUNT(d.rowid) as nb, MAX(d.datevalid) as lastdate, p.code, p.libelle as label, d.ville as label2";
$sql.=" FROM ".MAIN_DB_PREFIX."adherent as d"; $sql.=" FROM ".MAIN_DB_PREFIX."adherent as d";
$sql.=" LEFT JOIN ".MAIN_DB_PREFIX."c_pays as p on d.pays = p.rowid"; $sql.=" LEFT JOIN ".MAIN_DB_PREFIX."c_pays as p on d.pays = p.rowid";
$sql.=" WHERE d.statut = 1"; $sql.=" WHERE d.entity IN (".getEntity().")";
$sql.=" AND d.statut = 1";
$sql.=" GROUP BY p.libelle, p.code, d.ville"; $sql.=" GROUP BY p.libelle, p.code, d.ville";
//print $sql; //print $sql;
} }

View File

@ -1,7 +1,7 @@
<?php <?php
/* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2009 Regis Houssin <regis@dolibarr.fr> * Copyright (C) 2005-2012 Regis Houssin <regis@dolibarr.fr>
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by

View File

@ -2,7 +2,7 @@
/* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org> * Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
* Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2011 Regis Houssin <regis@dolibarr.fr> * Copyright (C) 2005-2012 Regis Houssin <regis@dolibarr.fr>
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -49,8 +49,8 @@ $pagenext = $page + 1;
if (! $sortorder) { $sortorder="DESC"; } if (! $sortorder) { $sortorder="DESC"; }
if (! $sortfield) { $sortfield="d.nom"; } if (! $sortfield) { $sortfield="d.nom"; }
// Security check // Security check
if (! $user->rights->adherent->lire) accessforbidden(); $result=restrictedArea($user,'adherent',$rowid,'adherent_type');
if (GETPOST('button_removefilter')) if (GETPOST('button_removefilter'))
{ {
@ -153,7 +153,8 @@ if (! $rowid && $action != 'create' && $action != 'edit')
$sql = "SELECT d.rowid, d.libelle, d.cotisation, d.vote"; $sql = "SELECT d.rowid, d.libelle, d.cotisation, d.vote";
$sql .= " FROM ".MAIN_DB_PREFIX."adherent_type as d"; $sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as d";
$sql.= " WHERE d.entity IN (".getEntity().")";
$result = $db->query($sql); $result = $db->query($sql);
if ($result) if ($result)
@ -267,10 +268,8 @@ if ($rowid > 0)
if ($action != 'edit') if ($action != 'edit')
{ {
$adht = new AdherentType($db); $adht = new AdherentType($db);
$adht->id = $rowid;
$adht->fetch($rowid); $adht->fetch($rowid);
$h=0; $h=0;
$head[$h][0] = $_SERVER["PHP_SELF"].'?rowid='.$adht->id; $head[$h][0] = $_SERVER["PHP_SELF"].'?rowid='.$adht->id;
@ -344,7 +343,7 @@ if ($rowid > 0)
$sql.= " t.libelle as type, t.cotisation"; $sql.= " t.libelle as type, t.cotisation";
$sql.= " FROM ".MAIN_DB_PREFIX."adherent as d, ".MAIN_DB_PREFIX."adherent_type as t"; $sql.= " FROM ".MAIN_DB_PREFIX."adherent as d, ".MAIN_DB_PREFIX."adherent_type as t";
$sql.= " WHERE d.fk_adherent_type = t.rowid "; $sql.= " WHERE d.fk_adherent_type = t.rowid ";
$sql.= " AND d.entity = ".$conf->entity; $sql.= " AND d.entity IN (".getEntity().")";
$sql.= " AND t.rowid = ".$adht->id; $sql.= " AND t.rowid = ".$adht->id;
if ($sall) if ($sall)
{ {

View File

@ -156,7 +156,6 @@ if (is_resource($handle))
// Info // Info
$htmltooltip=''; $htmltooltip='';
$htmltooltip.=''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>'; $htmltooltip.=''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>';
$facture->type=0;
$nextval=$module->getNextValue($mysoc,$contract); $nextval=$module->getNextValue($mysoc,$contract);
if ("$nextval" != $langs->trans("NotAvailable")) // Keep " on nextval if ("$nextval" != $langs->trans("NotAvailable")) // Keep " on nextval
{ {

View File

@ -387,7 +387,6 @@ foreach ($dirmodels as $reldir)
// Info // Info
$htmltooltip=''; $htmltooltip='';
$htmltooltip.=''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>'; $htmltooltip.=''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>';
$facture->type=0;
$nextval=$module->getNextValue($mysoc,$expedition); $nextval=$module->getNextValue($mysoc,$expedition);
if ("$nextval" != $langs->trans("NotAvailable")) // Keep " on nextval if ("$nextval" != $langs->trans("NotAvailable")) // Keep " on nextval
{ {

View File

@ -4,7 +4,7 @@
* Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org> * Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org>
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be> * Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com> * Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
* Copyright (C) 2005-2011 Regis Houssin <regis@dolibarr.fr> * Copyright (C) 2005-2012 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2011-2012 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2011-2012 Juanjo Menent <jmenent@2byte.es>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
@ -292,7 +292,6 @@ foreach ($conf->file->dol_document_root as $dirroot)
// Info // Info
$htmltooltip=''; $htmltooltip='';
$htmltooltip.=''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>'; $htmltooltip.=''.$langs->trans("Version").': <b>'.$module->getVersion().'</b><br>';
$facture->type=0;
$nextval=$module->getNextValue($mysoc,$livraison); $nextval=$module->getNextValue($mysoc,$livraison);
if ("$nextval" != $langs->trans("NotAvailable")) // Keep " on nextval if ("$nextval" != $langs->trans("NotAvailable")) // Keep " on nextval
{ {

View File

@ -222,13 +222,13 @@ foreach ($dirmodels as $reldir)
print '</td>'."\n"; print '</td>'."\n";
print '<td align="center">'; print '<td align="center">';
if ($conf->global->PROJECT_ADDON == $classname) if ($conf->global->PROJECT_ADDON == 'mod_'.$classname)
{ {
print img_picto($langs->trans("Activated"),'switch_on'); print img_picto($langs->trans("Activated"),'switch_on');
} }
else else
{ {
print '<a href="'.$_SERVER["PHP_SELF"].'?action=setmod&amp;value='.$classname.'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"),'switch_off').'</a>'; print '<a href="'.$_SERVER["PHP_SELF"].'?action=setmod&amp;value=mod_'.$classname.'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"),'switch_off').'</a>';
} }
print '</td>'; print '</td>';

View File

@ -1,5 +1,5 @@
<?php <?php
/* Copyright (C) 2006-2010 Laurent Destailleur <eldy@users.sourceforge.net> /* Copyright (C) 2006-2012 Laurent Destailleur <eldy@users.sourceforge.net>
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -167,10 +167,11 @@ if (preg_match('/^confirm/i',$choice))
{ {
print '<br>'; print '<br>';
$formquestion=array(); $formquestion=array();
$ret=$form->form_confirm($_SERVER["PHP_SELF"].'?choice=allfiles',$langs->trans('Purge'),$langs->trans('ConfirmPurge').' '.img_warning(),'purge',$formquestion,'no',2); print $form->formconfirm($_SERVER["PHP_SELF"].'?choice=allfiles', $langs->trans('Purge'), $langs->trans('ConfirmPurge').' '.img_warning(), 'purge', $formquestion, 'no', 2);
if ($ret == 'html') print '<br>';
} }
llxFooter(); llxFooter();
$db->close();
?> ?>

View File

@ -87,7 +87,8 @@ $workflow=array(
//, 'propal' => array('WORKFLOW_PROPAL_AUTOCREATE_INVOICE') //, 'propal' => array('WORKFLOW_PROPAL_AUTOCREATE_INVOICE')
) )
); );
$workflow = array_merge($workflow, $conf->modules_parts['workflow']);
if (! empty($conf->modules_parts['workflow'])) $workflow = array_merge($workflow, $conf->modules_parts['workflow']);
foreach($workflow as $child => $parents) foreach($workflow as $child => $parents)
{ {

View File

@ -75,7 +75,7 @@ if ($id || $ref)
$objecttype = 'adherent&categorie'; $objecttype = 'adherent&categorie';
$objectid = isset($id)?$id:(isset($ref)?$ref:''); $objectid = isset($id)?$id:(isset($ref)?$ref:'');
$dbtablename = 'adherent'; $dbtablename = 'adherent';
$fieldid = isset($ref)?'ref':'rowid'; $fieldid = ! empty($ref)?'ref':'rowid';
} }
} }

View File

@ -55,14 +55,10 @@ class Categorie
* Constructor * Constructor
* *
* @param DoliDB $db Database handler * @param DoliDB $db Database handler
* @param int $id Id of category to fetch during init
*/ */
function Categorie($db, $id=-1) function __construct($db)
{ {
$this->db = $db; $this->db = $db;
$this->id = $id;
if ($id != -1) $this->fetch($this->id);
} }
/** /**

View File

@ -106,10 +106,8 @@ class Commande extends CommonObject
* *
* @param DoliDB $db Database handler * @param DoliDB $db Database handler
*/ */
function Commande($db) function __construct($db)
{ {
global $langs;
$langs->load('orders');
$this->db = $db; $this->db = $db;
$this->remise = 0; $this->remise = 0;

View File

@ -464,7 +464,28 @@ else if ($action == 'setconditions' && $user->rights->commande->creer)
{ {
$object->fetch($id); $object->fetch($id);
$result=$object->setPaymentTerms(GETPOST('cond_reglement_id','int')); $result=$object->setPaymentTerms(GETPOST('cond_reglement_id','int'));
if ($result < 0) dol_print_error($db,$object->error); if ($result < 0)
{
dol_print_error($db,$object->error);
}
else
{
if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE))
{
// Define output language
$outputlangs = $langs;
$newlang=GETPOST('lang_id','alpha');
if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang=$object->client->default_lang;
if (! empty($newlang))
{
$outputlangs = new Translate("",$conf);
$outputlangs->setDefaultLang($newlang);
}
$ret=$object->fetch($id); // Reload to get new records
commande_pdf_create($db, $object, $object->modelpdf, $outputlangs, GETPOST('hidedetails'), GETPOST('hidedesc'), GETPOST('hideref'), $hookmanager);
}
}
} }
else if ($action == 'setremisepercent' && $user->rights->commande->creer) else if ($action == 'setremisepercent' && $user->rights->commande->creer)

View File

@ -16,9 +16,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program. If not, see <http://www.gnu.org/licenses/>.
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* or see http://www.gnu.org/
*/ */
/** /**

View File

@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program. If not, see <http://www.gnu.org/licenses/>.
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
/** /**

View File

@ -357,7 +357,11 @@ class Conf
$this->product->limit_size=$this->global->PRODUIT_LIMIT_SIZE; $this->product->limit_size=$this->global->PRODUIT_LIMIT_SIZE;
// conf->theme et $this->css // conf->theme et $this->css
if (empty($this->global->MAIN_THEME)) $this->global->MAIN_THEME="eldy"; if (empty($this->global->MAIN_THEME))
{
if (isset($_SERVER["HTTP_USER_AGENT"]) && preg_match('/(epiphany|iceweasel)/i',$_SERVER["HTTP_USER_AGENT"])) $this->global->MAIN_THEME="auguria";
else $this->global->MAIN_THEME="eldy";
}
$this->theme=$this->global->MAIN_THEME; $this->theme=$this->global->MAIN_THEME;
$this->css = "/theme/".$this->theme."/style.css.php"; $this->css = "/theme/".$this->theme."/style.css.php";

View File

@ -2138,7 +2138,7 @@ class Form
* @param int $useajax 0=No, 1=Yes, 2=Yes but submit page with &confirm=no if choice is No, 'xxx'=preoutput confirm box with div id=dialog-confirm-xxx * @param int $useajax 0=No, 1=Yes, 2=Yes but submit page with &confirm=no if choice is No, 'xxx'=preoutput confirm box with div id=dialog-confirm-xxx
* @param int $height Force height of box * @param int $height Force height of box
* @param int $width Force width of bow * @param int $width Force width of bow
* @return string 'ajax' if a confirm ajax popup is shown, 'html' if it's an html form * @return string HTML ajax code if a confirm ajax popup is required, Pure HTML code if it's an html form
*/ */
function formconfirm($page, $title, $question, $action, $formquestion='', $selectedchoice="", $useajax=0, $height=170, $width=500) function formconfirm($page, $title, $question, $action, $formquestion='', $selectedchoice="", $useajax=0, $height=170, $width=500)
{ {
@ -2885,7 +2885,9 @@ class Form
* @return int Nb of loaded lines, 0 if already loaded, <0 if KO * @return int Nb of loaded lines, 0 if already loaded, <0 if KO
*/ */
function load_cache_vatrates($country_code) function load_cache_vatrates($country_code)
{ {
global $langs;
if (count($this->cache_vatrates)) return 0; // Cache deja charge if (count($this->cache_vatrates)) return 0; // Cache deja charge
$sql = "SELECT DISTINCT t.taux, t.recuperableonly"; $sql = "SELECT DISTINCT t.taux, t.recuperableonly";
@ -3389,7 +3391,7 @@ class Form
function selectarray($htmlname, $array, $id='', $show_empty=0, $key_in_label=0, $value_as_key=0, $option='', $translate=0, $maxlen=0, $disabled=0) function selectarray($htmlname, $array, $id='', $show_empty=0, $key_in_label=0, $value_as_key=0, $option='', $translate=0, $maxlen=0, $disabled=0)
{ {
global $langs; global $langs;
if ($value_as_key) $array=array_combine($array, $array); if ($value_as_key) $array=array_combine($array, $array);
$out='<select id="'.$htmlname.'" '.($disabled?'disabled="disabled" ':'').'class="flat" name="'.$htmlname.'" '.($option != ''?$option:'').'>'; $out='<select id="'.$htmlname.'" '.($disabled?'disabled="disabled" ':'').'class="flat" name="'.$htmlname.'" '.($option != ''?$option:'').'>';
@ -3411,7 +3413,7 @@ class Form
} }
$out.='>'; $out.='>';
$newval=($translate?$langs->trans(ucfirst($value)):$value); $newval=($translate?$langs->trans(ucfirst($value)):$value);
if ($key_in_label) if ($key_in_label)
{ {
@ -3432,7 +3434,7 @@ class Form
$out.="</select>"; $out.="</select>";
return $out; return $out;
} }
/** /**
* Show a multiselect form from an array. * Show a multiselect form from an array.
* *
@ -3472,7 +3474,7 @@ class Form
} }
} }
} }
if (! empty($array)) if (! empty($array))
{ {
foreach ($array as $key => $value) foreach ($array as $key => $value)
@ -3495,7 +3497,7 @@ class Form
$out.= ' selected="selected"'; $out.= ' selected="selected"';
} }
$out.= '>'; $out.= '>';
$newval = ($translate ? $langs->trans(ucfirst($value)) : $value); $newval = ($translate ? $langs->trans(ucfirst($value)) : $value);
$newval = ($key_in_label ? $key.' - '.$newval : $newval); $newval = ($key_in_label ? $key.' - '.$newval : $newval);
$out.= dol_htmlentitiesbr($newval); $out.= dol_htmlentitiesbr($newval);
@ -3504,7 +3506,7 @@ class Form
} }
} }
$out.= '</select>'."\n"; $out.= '</select>'."\n";
return $out; return $out;
} }

View File

@ -130,7 +130,7 @@ class InfoBox
{ {
//dol_print_error($db); //dol_print_error($db);
$this->error=$db->error(); $this->error=$db->error();
dol_syslog(get_class($this)."::listBoxes Error ".$this->error, LOG_ERR); dol_syslog(get_class()."::listBoxes Error ".$this->error, LOG_ERR);
return array(); return array();
} }
@ -155,7 +155,7 @@ class InfoBox
require_once(DOL_DOCUMENT_ROOT."/core/lib/functions2.lib.php"); require_once(DOL_DOCUMENT_ROOT."/core/lib/functions2.lib.php");
dol_syslog(get_class($this)."::saveboxorder zone=".$zone." userid=".$userid); dol_syslog(get_class()."::saveboxorder zone=".$zone." userid=".$userid);
if (! $userid || $userid == 0) return 0; if (! $userid || $userid == 0) return 0;
@ -182,7 +182,7 @@ class InfoBox
$sql.= " AND ".MAIN_DB_PREFIX."boxes.fk_user = ".$userid; $sql.= " AND ".MAIN_DB_PREFIX."boxes.fk_user = ".$userid;
$sql.= " AND ".MAIN_DB_PREFIX."boxes.position = ".$zone; $sql.= " AND ".MAIN_DB_PREFIX."boxes.position = ".$zone;
dol_syslog(get_class($this)."::saveboxorder sql=".$sql); dol_syslog(get_class()."::saveboxorder sql=".$sql);
$result = $db->query($sql); $result = $db->query($sql);
if ($result) if ($result)
{ {
@ -192,7 +192,7 @@ class InfoBox
$part=explode(':',$collist); $part=explode(':',$collist);
$colonne=$part[0]; $colonne=$part[0];
$list=$part[1]; $list=$part[1];
dol_syslog(get_class($this)."::saveboxorder column=".$colonne.' list='.$list); dol_syslog(get_class()."::saveboxorder column=".$colonne.' list='.$list);
$i=0; $i=0;
$listarray=explode(',',$list); $listarray=explode(',',$list);
@ -212,7 +212,7 @@ class InfoBox
$sql.= " ".$userid; $sql.= " ".$userid;
$sql.= ")"; $sql.= ")";
dol_syslog(get_class($this)."::saveboxorder sql=".$sql); dol_syslog(get_class()."::saveboxorder sql=".$sql);
$result = $db->query($sql); $result = $db->query($sql);
if ($result < 0) if ($result < 0)
{ {
@ -238,7 +238,7 @@ class InfoBox
{ {
$this->error=$db->lasterror(); $this->error=$db->lasterror();
$db->rollback(); $db->rollback();
dol_syslog(get_class($this)."::saveboxorder ".$this->error); dol_syslog(get_class()."::saveboxorder ".$this->error);
return -1; return -1;
} }
} }

View File

@ -2163,7 +2163,7 @@ function dol_print_error($db='',$error='')
$syslog.=", msg=".$msg; $syslog.=", msg=".$msg;
} }
} }
if (empty($dolibarr_main_prod) && $_SERVER['DOCUMENT_ROOT'] && function_exists('xdebug_call_file')) if (empty($dolibarr_main_prod) && $_SERVER['DOCUMENT_ROOT'] && function_exists('xdebug_print_function_stack') && function_exists('xdebug_call_file'))
{ {
xdebug_print_function_stack(); xdebug_print_function_stack();
$out.='<b>XDebug informations:</b>'."<br>\n"; $out.='<b>XDebug informations:</b>'."<br>\n";

View File

@ -241,7 +241,7 @@ class pdf_edison extends ModelePDFCommandes
$nblineFollowDesc = 0; $nblineFollowDesc = 0;
} }
if (($nexY+$nblineFollowDesc) > ($tab_top+$tab_height) && $i < ($nblignes - 1)) if ((($nexY+$nblineFollowDesc) > ($tab_top+$tab_height) && $i < ($nblignes - 1)) || (isset($object->lines[$i+1]->pagebreak) && $object->lines[$i+1]->pagebreak))
{ {
$this->_tableau($pdf, $tab_top, $tab_height, $nexY, $outputlangs); $this->_tableau($pdf, $tab_top, $tab_height, $nexY, $outputlangs);

View File

@ -350,7 +350,7 @@ class pdf_einstein extends ModelePDFCommandes
$tab_top_in_current_page=$tab_top_newpage; $tab_top_in_current_page=$tab_top_newpage;
$tab_height_in_current_page=$tab_height_newpage; $tab_height_in_current_page=$tab_height_newpage;
} }
if (($nexY+$nblineFollowDesc) > ($tab_top_in_current_page+$tab_height_in_current_page) && $i < ($nblignes - 1)) if ((($nexY+$nblineFollowDesc) > ($tab_top_in_current_page+$tab_height_in_current_page) && $i < ($nblignes - 1)) || (isset($object->lines[$i+1]->pagebreak) && $object->lines[$i+1]->pagebreak))
{ {
if ($pagenb == 1) if ($pagenb == 1)
{ {

View File

@ -71,7 +71,7 @@ class ModelNumRefContracts
/** /**
* Test if existing numbers make problems with numbering * Test if existing numbers make problems with numbering
* *
* @return boolean false if conflit, true if ok * @return boolean false if conflit, true if ok
*/ */
function canBeActivated() function canBeActivated()
{ {
@ -81,9 +81,11 @@ class ModelNumRefContracts
/** /**
* Return next value * Return next value
* *
* @return string Value * @param Societe $objsoc third party object
* @param Object $contract contract object
* @return string Value
*/ */
function getNextValue() function getNextValue($objsoc, $contrat)
{ {
global $langs; global $langs;
return $langs->trans("NotAvailable"); return $langs->trans("NotAvailable");

View File

@ -114,9 +114,11 @@ abstract class ModelNumRefExpedition
/** /**
* Return next value * Return next value
* *
* @return string Value * @param Societe $objsoc Third party object
* @param Object $shipment Shipment object
* @return string Value
*/ */
function getNextValue() function getNextValue($objsoc, $shipment)
{ {
global $langs; global $langs;
return $langs->trans("NotAvailable"); return $langs->trans("NotAvailable");

View File

@ -350,7 +350,7 @@ class pdf_crabe extends ModelePDFFactures
$tab_top_in_current_page=$tab_top_newpage; $tab_top_in_current_page=$tab_top_newpage;
$tab_height_in_current_page=$tab_height_newpage; $tab_height_in_current_page=$tab_height_newpage;
} }
if (($nexY+$nblineFollowDesc) > ($tab_top_in_current_page+$tab_height_in_current_page) && $i < ($nblignes - 1)) if ((($nexY+$nblineFollowDesc) > ($tab_top_in_current_page+$tab_height_in_current_page) && $i < ($nblignes - 1)) || (isset($object->lines[$i+1]->pagebreak) && $object->lines[$i+1]->pagebreak))
{ {
if ($pagenb == 1) if ($pagenb == 1)
{ {

View File

@ -260,7 +260,7 @@ class pdf_oursin extends ModelePDFFactures
$pdf->MultiCell(21, 3, $total_excl_tax, 0, 'R', 0); $pdf->MultiCell(21, 3, $total_excl_tax, 0, 'R', 0);
if ($nexY > 200 && $i < $nblignes - 1) if (($nexY > 200 && $i < $nblignes - 1) || (isset($object->lines[$i+1]->pagebreak) && $object->lines[$i+1]->pagebreak))
{ {
$this->_tableau($pdf, $tab_top, $tab_height, $nexY, $object, $outputlangs); $this->_tableau($pdf, $tab_top, $tab_height, $nexY, $object, $outputlangs);
$nexY = $iniY; $nexY = $iniY;

View File

@ -106,7 +106,7 @@ class mod_livraison_jade extends ModeleNumRefDeliveryOrder
* @param Object $object Object we need next value for * @param Object $object Object we need next value for
* @return string Value if KO, <0 if KO * @return string Value if KO, <0 if KO
*/ */
function getNextValue($objsoc=0,$object='') function getNextValue($objsoc,$object)
{ {
global $db,$conf; global $db,$conf;

View File

@ -102,16 +102,16 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
* Return next value * Return next value
* *
* @param Societe $objsoc Object third party * @param Societe $objsoc Object third party
* @param Object $livraison Object delivery * @param Object $object Object delivery
* @return string Value if OK, 0 if KO * @return string Value if OK, 0 if KO
*/ */
function getNextValue($objsoc=0,$livraison='') function getNextValue($objsoc,$object)
{ {
global $db,$conf; global $db,$conf;
require_once(DOL_DOCUMENT_ROOT ."/core/lib/functions2.lib.php"); require_once(DOL_DOCUMENT_ROOT ."/core/lib/functions2.lib.php");
// On d<EFBFBD>fini critere recherche compteur // On defini critere recherche compteur
$mask=$conf->global->LIVRAISON_SAPHIR_MASK; $mask=$conf->global->LIVRAISON_SAPHIR_MASK;
if (! $mask) if (! $mask)

View File

@ -116,9 +116,11 @@ abstract class ModeleNumRefDeliveryOrder
/** /**
* Renvoi prochaine valeur attribuee * Renvoi prochaine valeur attribuee
* *
* @return string Valeur * @param Societe $objsoc Object third party
* @param Object $object Object delivery
* @return string Valeur
*/ */
function getNextValue() function getNextValue($objsoc, $object)
{ {
global $langs; global $langs;
return $langs->trans("NotAvailable"); return $langs->trans("NotAvailable");

View File

@ -1,6 +1,6 @@
<?php <?php
/* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2011 Regis Houssin <regis@dolibarr.fr> * Copyright (C) 2005-2011 Regis Houssin <regis@dolibarr.fr>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
@ -28,8 +28,7 @@ include_once(DOL_DOCUMENT_ROOT ."/core/modules/DolibarrModules.class.php");
/** /**
* \class modFournisseur * Classe de description et activation du module Fournisseur
* \brief Classe de description et activation du module Fournisseur
*/ */
class modFournisseur extends DolibarrModules class modFournisseur extends DolibarrModules
{ {
@ -222,6 +221,13 @@ class modFournisseur extends DolibarrModules
$this->rights[$r][4] = 'facture'; $this->rights[$r][4] = 'facture';
$this->rights[$r][5] = 'export'; $this->rights[$r][5] = 'export';
$r++;
$this->rights[$r][0] = 1237;
$this->rights[$r][1] = 'Exporter les commande fournisseurs, attributs';
$this->rights[$r][2] = 'r';
$this->rights[$r][3] = 0;
$this->rights[$r][4] = 'commande';
$this->rights[$r][5] = 'export';
// Exports // Exports
//-------- //--------
@ -232,8 +238,8 @@ class modFournisseur extends DolibarrModules
$this->export_label[$r]='Factures fournisseurs et lignes de facture'; $this->export_label[$r]='Factures fournisseurs et lignes de facture';
$this->export_icon[$r]='bill'; $this->export_icon[$r]='bill';
$this->export_permission[$r]=array(array("fournisseur","facture","export")); $this->export_permission[$r]=array(array("fournisseur","facture","export"));
$this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.cp'=>'Zip','s.ville'=>'Town','c.code'=>'CountryCode','s.tel'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.tva_intra'=>'VATIntra','f.rowid'=>"InvoiceId",'f.facnumber'=>"InvoiceRef",'f.datec'=>"InvoiceDateCreation",'f.datef'=>"DateInvoice",'f.total_ht'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.total_tva'=>"TotalVAT",'f.paye'=>"InvoicePaid",'f.fk_statut'=>'InvoiceStatus','f.note'=>"InvoiceNote",'fd.rowid'=>'LineId','fd.description'=>"LineDescription",'fd.tva_tx'=>"LineVATRate",'fd.qty'=>"LineQty",'fd.total_ht'=>"LineTotalHT",'fd.total_ttc'=>"LineTotalTTC",'fd.tva'=>"LineTotalVAT",'fd.product_type'=>'TypeOfLineServiceOrProduct','fd.fk_product'=>'ProductId','p.ref'=>'ProductRef','p.label'=>'ProductLabel'); $this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.cp'=>'Zip','s.ville'=>'Town','c.code'=>'CountryCode','s.tel'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.idprof5'=>'ProfId5','s.idprof6'=>'ProfId6','s.tva_intra'=>'VATIntra','f.rowid'=>"InvoiceId",'f.facnumber'=>"InvoiceRef",'f.datec'=>"InvoiceDateCreation",'f.datef'=>"DateInvoice",'f.total_ht'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.total_tva'=>"TotalVAT",'f.paye'=>"InvoicePaid",'f.fk_statut'=>'InvoiceStatus','f.note'=>"InvoiceNote",'fd.rowid'=>'LineId','fd.description'=>"LineDescription",'fd.tva_tx'=>"LineVATRate",'fd.qty'=>"LineQty",'fd.total_ht'=>"LineTotalHT",'fd.total_ttc'=>"LineTotalTTC",'fd.tva'=>"LineTotalVAT",'fd.product_type'=>'TypeOfLineServiceOrProduct','fd.fk_product'=>'ProductId','p.ref'=>'ProductRef','p.label'=>'ProductLabel');
$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.cp'=>'company','s.ville'=>'company','c.code'=>'company','s.tel'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.tva_intra'=>'company','f.rowid'=>"invoice",'f.facnumber'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.total_ht'=>"invoice",'f.total_ttc'=>"invoice",'f.total_tva'=>"invoice",'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note'=>"invoice",'fd.rowid'=>'invoice_line','fd.description'=>"invoice_line",'fd.tva_tx'=>"invoice_line",'fd.qty'=>"invoice_line",'fd.total_ht'=>"invoice_line",'fd.total_ttc'=>"invoice_line",'fd.tva'=>"invoice_line",'fd.product_type'=>'invoice_line','fd.fk_product'=>'product','p.ref'=>'product','p.label'=>'product'); $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.cp'=>'company','s.ville'=>'company','c.code'=>'company','s.tel'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.idprof5'=>'company','s.idprof6'=>'company','s.tva_intra'=>'company','f.rowid'=>"invoice",'f.facnumber'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.total_ht'=>"invoice",'f.total_ttc'=>"invoice",'f.total_tva'=>"invoice",'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note'=>"invoice",'fd.rowid'=>'invoice_line','fd.description'=>"invoice_line",'fd.tva_tx'=>"invoice_line",'fd.qty'=>"invoice_line",'fd.total_ht'=>"invoice_line",'fd.total_ttc'=>"invoice_line",'fd.tva'=>"invoice_line",'fd.product_type'=>'invoice_line','fd.fk_product'=>'product','p.ref'=>'product','p.label'=>'product');
$this->export_sql_start[$r]='SELECT DISTINCT '; $this->export_sql_start[$r]='SELECT DISTINCT ';
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'societe as s'; $this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'societe as s';
@ -248,8 +254,8 @@ class modFournisseur extends DolibarrModules
$this->export_label[$r]='Factures fournisseurs et reglements'; $this->export_label[$r]='Factures fournisseurs et reglements';
$this->export_icon[$r]='bill'; $this->export_icon[$r]='bill';
$this->export_permission[$r]=array(array("fournisseur","facture","export")); $this->export_permission[$r]=array(array("fournisseur","facture","export"));
$this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.cp'=>'Zip','s.ville'=>'Town','c.code'=>'CountryCode','s.tel'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.tva_intra'=>'VATIntra','f.rowid'=>"InvoiceId",'f.facnumber'=>"InvoiceRef",'f.datec'=>"InvoiceDateCreation",'f.datef'=>"DateInvoice",'f.total_ht'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.total_tva'=>"TotalVAT",'f.paye'=>"InvoicePaid",'f.fk_statut'=>'InvoiceStatus','f.note'=>"InvoiceNote",'p.rowid'=>'PaymentId','pf.amount'=>'AmountPayment','p.datep'=>'DatePayment','p.num_paiement'=>'PaymentNumber'); $this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.cp'=>'Zip','s.ville'=>'Town','c.code'=>'CountryCode','s.tel'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.idprof5'=>'ProfId5','s.idprof6'=>'ProfId6','s.tva_intra'=>'VATIntra','f.rowid'=>"InvoiceId",'f.facnumber'=>"InvoiceRef",'f.datec'=>"InvoiceDateCreation",'f.datef'=>"DateInvoice",'f.total_ht'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.total_tva'=>"TotalVAT",'f.paye'=>"InvoicePaid",'f.fk_statut'=>'InvoiceStatus','f.note'=>"InvoiceNote",'p.rowid'=>'PaymentId','pf.amount'=>'AmountPayment','p.datep'=>'DatePayment','p.num_paiement'=>'PaymentNumber');
$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.cp'=>'company','s.ville'=>'company','c.code'=>'company','s.tel'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.tva_intra'=>'company','f.rowid'=>"invoice",'f.facnumber'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.total_ht'=>"invoice",'f.total_ttc'=>"invoice",'f.total_tva'=>"invoice",'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note'=>"invoice",'p.rowid'=>'payment','pf.amount'=>'payment','p.datep'=>'payment','p.num_paiement'=>'payment'); $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.cp'=>'company','s.ville'=>'company','c.code'=>'company','s.tel'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.idprof5'=>'company','s.idprof6'=>'company','s.tva_intra'=>'company','f.rowid'=>"invoice",'f.facnumber'=>"invoice",'f.datec'=>"invoice",'f.datef'=>"invoice",'f.total_ht'=>"invoice",'f.total_ttc'=>"invoice",'f.total_tva'=>"invoice",'f.paye'=>"invoice",'f.fk_statut'=>'invoice','f.note'=>"invoice",'p.rowid'=>'payment','pf.amount'=>'payment','p.datep'=>'payment','p.num_paiement'=>'payment');
$this->export_sql_start[$r]='SELECT DISTINCT '; $this->export_sql_start[$r]='SELECT DISTINCT ';
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'societe as s'; $this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'societe as s';
@ -259,6 +265,23 @@ class modFournisseur extends DolibarrModules
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'paiementfourn as p ON pf.fk_paiementfourn = p.rowid'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'paiementfourn as p ON pf.fk_paiementfourn = p.rowid';
$this->export_sql_end[$r] .=' WHERE f.fk_soc = s.rowid'; $this->export_sql_end[$r] .=' WHERE f.fk_soc = s.rowid';
$this->export_sql_end[$r] .=' AND f.entity = '.$conf->entity; $this->export_sql_end[$r] .=' AND f.entity = '.$conf->entity;
$r++;
$this->export_code[$r]=$this->rights_class.'_'.$r;
$this->export_label[$r]='Commandes fournisseurs et lignes de commandes';
$this->export_icon[$r]='order';
$this->export_permission[$r]=array(array("fournisseur","commande","export"));
$this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.cp'=>'Zip','s.ville'=>'Town','c.code'=>'CountryCode','s.tel'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.idprof5'=>'ProfId5','s.idprof6'=>'ProfId6','s.tva_intra'=>'VATIntra','f.rowid'=>"OrderId",'f.ref'=>"Ref",'f.ref_supplier'=>"RefSupplier",'f.date_creation'=>"DateCreation",'f.date_commande'=>"OrderDate",'f.total_ht'=>"TotalHT",'f.total_ttc'=>"TotalTTC",'f.tva'=>"TotalVAT",'f.fk_statut'=>'Status','f.note'=>"Note",'fd.rowid'=>'LineId','fd.description'=>"LineDescription",'fd.tva_tx'=>"LineVATRate",'fd.qty'=>"LineQty",'fd.total_ht'=>"LineTotalHT",'fd.total_ttc'=>"LineTotalTTC",'fd.total_tva'=>"LineTotalVAT",'fd.product_type'=>'TypeOfLineServiceOrProduct','fd.fk_product'=>'ProductId','p.ref'=>'ProductRef','p.label'=>'ProductLabel');
$this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.cp'=>'company','s.ville'=>'company','c.code'=>'company','s.tel'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.idprof5'=>'company','s.idprof6'=>'company','s.tva_intra'=>'company','f.rowid'=>"order",'f.ref'=>"order",'f.ref_supplier'=>"order",'f.date_creation'=>"order",'f.date_commande'=>"order",'f.total_ht'=>"order",'f.total_ttc'=>"order",'f.tva'=>"order",'f.fk_statut'=>'order','f.note'=>"order",'fd.rowid'=>'order_line','fd.description'=>"order_line",'fd.tva_tx'=>"order_line",'fd.qty'=>"order_line",'fd.total_ht'=>"order_line",'fd.total_ttc'=>"order_line",'fd.total_tva'=>"order_line",'fd.product_type'=>'order_line','fd.fk_product'=>'product','p.ref'=>'product','p.label'=>'product');
$this->export_sql_start[$r]='SELECT DISTINCT ';
$this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'societe as s';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_pays as c ON s.fk_pays = c.rowid,';
$this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'commande_fournisseur as f, '.MAIN_DB_PREFIX.'commande_fournisseurdet as fd';
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product as p on (fd.fk_product = p.rowid)';
$this->export_sql_end[$r] .=' WHERE f.fk_soc = s.rowid AND f.rowid = fd.fk_commande';
$this->export_sql_end[$r] .=' AND f.entity = '.$conf->entity;
} }

View File

@ -1,6 +1,6 @@
<?php <?php
/* Copyright (C) 2010 Regis Houssin <regis@dolibarr.fr> /* Copyright (C) 2010-2012 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2010 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2010 Laurent Destailleur <eldy@users.sourceforge.net>
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -102,7 +102,7 @@ class mod_project_simple extends ModeleNumRefProjects
* @param Project $project Object project * @param Project $project Object project
* @return string Value if OK, 0 if KO * @return string Value if OK, 0 if KO
*/ */
function getNextValue($objsoc=0,$project='') function getNextValue($objsoc,$project)
{ {
global $db,$conf; global $db,$conf;

View File

@ -104,7 +104,7 @@ class mod_project_universal extends ModeleNumRefProjects
* @param Project $project Object project * @param Project $project Object project
* @return string Value if OK, 0 if KO * @return string Value if OK, 0 if KO
*/ */
function getNextValue($objsoc=0,$project='') function getNextValue($objsoc,$project)
{ {
global $db,$conf; global $db,$conf;

View File

@ -110,10 +110,12 @@ abstract class ModeleNumRefProjects
/** /**
* Renvoi prochaine valeur attribuee * Renvoi prochaine valeur attribuee
* *
* @return string Valeur * @param Societe $objsoc Object third party
* @param Project $project Object project
* @return string Valeur
*/ */
function getNextValue() function getNextValue($objsoc, $project)
{ {
global $langs; global $langs;
return $langs->trans("NotAvailable"); return $langs->trans("NotAvailable");

View File

@ -332,7 +332,7 @@ class pdf_azur extends ModelePDFPropales
$tab_top_in_current_page=$tab_top_newpage; $tab_top_in_current_page=$tab_top_newpage;
$tab_height_in_current_page=$tab_height_middlepage; $tab_height_in_current_page=$tab_height_middlepage;
} }
if (($nexY+$nblineFollowDesc) > ($tab_top_in_current_page+$tab_height_in_current_page) && $i < ($nblignes - 1)) if ((($nexY+$nblineFollowDesc) > ($tab_top_in_current_page+$tab_height_in_current_page) && $i < ($nblignes - 1)) || (isset($object->lines[$i+1]->pagebreak) && $object->lines[$i+1]->pagebreak))
{ {
if ($pagenb == 1) if ($pagenb == 1)
{ {

View File

@ -332,7 +332,7 @@ class pdf_jaune extends ModelePDFPropales
$tab_top_in_current_page=$tab_top_newpage; $tab_top_in_current_page=$tab_top_newpage;
$tab_height_in_current_page=$tab_height_middlepage; $tab_height_in_current_page=$tab_height_middlepage;
} }
if (($nexY+$nblineFollowDesc) > ($tab_top_in_current_page+$tab_height_in_current_page) && $i < ($nblignes - 1)) if ((($nexY+$nblineFollowDesc) > ($tab_top_in_current_page+$tab_height_in_current_page) && $i < ($nblignes - 1)) || (isset($object->lines[$i+1]->pagebreak) && $object->lines[$i+1]->pagebreak))
{ {
if ($pagenb == 1) if ($pagenb == 1)
{ {

View File

@ -76,6 +76,12 @@ if (! $result && ! empty($_SERVER["GATEWAY_INTERFACE"])) // If install not do
exit; exit;
} }
// Disable php display errors
if (! empty($dolibarr_main_prod))
{
ini_set('display_errors','Off');
}
// Clean parameters // Clean parameters
$dolibarr_main_data_root=trim($dolibarr_main_data_root); $dolibarr_main_data_root=trim($dolibarr_main_data_root);
$dolibarr_main_url_root=trim($dolibarr_main_url_root); $dolibarr_main_url_root=trim($dolibarr_main_url_root);

View File

@ -41,17 +41,13 @@ class Fournisseur extends Societe
* *
* @param DoliDB $db Database handler * @param DoliDB $db Database handler
*/ */
function Fournisseur($db) function __construct($db)
{ {
global $config;
$this->db = $db; $this->db = $db;
$this->client = 0; $this->client = 0;
$this->fournisseur = 0; $this->fournisseur = 0;
$this->effectif_id = 0; $this->effectif_id = 0;
$this->forme_juridique_code = 0; $this->forme_juridique_code = 0;
return 0;
} }

View File

@ -31,8 +31,7 @@ require_once(DOL_DOCUMENT_ROOT."/commande/class/commande.class.php");
/** /**
* \class CommandeFournisseur * Class to manage predefined suppliers products
* \brief Class to manage predefined suppliers products
*/ */
class CommandeFournisseur extends Commande class CommandeFournisseur extends Commande
{ {
@ -47,12 +46,14 @@ class CommandeFournisseur extends Commande
var $ref_supplier; var $ref_supplier;
var $brouillon; var $brouillon;
var $statut; // 0=Draft -> 1=Validated -> 2=Approved -> 3=Process runing -> 4=Received partially -> 5=Received totally -> (reopen) 4=Received partially var $statut; // 0=Draft -> 1=Validated -> 2=Approved -> 3=Process runing -> 4=Received partially -> 5=Received totally -> (reopen) 4=Received partially
// -> 7=Canceled/Never received -> (reopen) 3=Process runing // -> 7=Canceled/Never received -> (reopen) 3=Process runing
// -> 6=Canceled -> (reopen) 2=Approved // -> 6=Canceled -> (reopen) 2=Approved
// -> 9=Refused -> (reopen) 1=Validated // -> 9=Refused -> (reopen) 1=Validated
var $socid; var $socid;
var $fourn_id; var $fourn_id;
var $date; var $date;
var $date_valid;
var $date_cloture;
var $date_commande; var $date_commande;
var $date_livraison; // Date livraison souhaitee var $date_livraison; // Date livraison souhaitee
var $total_ht; var $total_ht;
@ -69,7 +70,10 @@ class CommandeFournisseur extends Commande
var $cond_reglement_code; var $cond_reglement_code;
var $mode_reglement_id; var $mode_reglement_id;
var $mode_reglement_code; var $mode_reglement_code;
var $user_author_id;
var $user_valid_id;
var $user_cloture_id;
var $extraparams=array(); var $extraparams=array();
@ -111,8 +115,10 @@ class CommandeFournisseur extends Commande
// Check parameters // Check parameters
if (empty($id) && empty($ref)) return -1; if (empty($id) && empty($ref)) return -1;
$sql = "SELECT c.rowid, c.ref, c.date_creation, c.fk_soc, c.fk_user_author, c.fk_statut, c.amount_ht, c.total_ht, c.total_ttc, c.tva,"; $sql = "SELECT c.rowid, c.ref, ref_supplier, c.fk_soc, c.fk_statut, c.amount_ht, c.total_ht, c.total_ttc, c.tva,";
$sql.= " c.localtax1, c.localtax2, "; $sql.= " c.localtax1, c.localtax2, ";
$sql.= " c.date_creation, c.date_valid, c.date_cloture,";
$sql.= " c.fk_user_author, c.fk_user_valid, c.fk_user_cloture,";
$sql.= " c.date_commande as date_commande, c.date_livraison as date_livraison, c.fk_cond_reglement, c.fk_mode_reglement, c.fk_projet as fk_project, c.remise_percent, c.source, c.fk_methode_commande,"; $sql.= " c.date_commande as date_commande, c.date_livraison as date_livraison, c.fk_cond_reglement, c.fk_mode_reglement, c.fk_projet as fk_project, c.remise_percent, c.source, c.fk_methode_commande,";
$sql.= " c.note as note_private, c.note_public, c.model_pdf, c.extraparams,"; $sql.= " c.note as note_private, c.note_public, c.model_pdf, c.extraparams,";
$sql.= " cm.libelle as methode_commande,"; $sql.= " cm.libelle as methode_commande,";
@ -140,17 +146,22 @@ class CommandeFournisseur extends Commande
$this->id = $obj->rowid; $this->id = $obj->rowid;
$this->ref = $obj->ref; $this->ref = $obj->ref;
$this->ref_supplier = $obj->ref_supplier;
$this->socid = $obj->fk_soc; $this->socid = $obj->fk_soc;
$this->fourn_id = $obj->fk_soc; $this->fourn_id = $obj->fk_soc;
$this->statut = $obj->fk_statut; $this->statut = $obj->fk_statut;
$this->user_author_id = $obj->fk_user_author; $this->user_author_id = $obj->fk_user_author;
$this->user_valid_id = $obj->fk_user_valid;
$this->user_cloture_id = $obj->fk_user_cloture;
$this->total_ht = $obj->total_ht; $this->total_ht = $obj->total_ht;
$this->total_tva = $obj->tva; $this->total_tva = $obj->tva;
$this->total_localtax1 = $obj->localtax1; $this->total_localtax1 = $obj->localtax1;
$this->total_localtax2 = $obj->localtax2; $this->total_localtax2 = $obj->localtax2;
$this->total_ttc = $obj->total_ttc; $this->total_ttc = $obj->total_ttc;
$this->date_commande = $this->db->jdate($obj->date_commande); // date a laquelle la commande a ete transmise
$this->date = $this->db->jdate($obj->date_creation); $this->date = $this->db->jdate($obj->date_creation);
$this->date_valid = $this->db->jdate($obj->date_valid);
$this->date_cloture = $this->db->jdate($obj->date_cloture);
$this->date_commande = $this->db->jdate($obj->date_commande); // date a laquelle la commande a ete transmise
$this->date_livraison = $this->db->jdate($obj->date_livraison); $this->date_livraison = $this->db->jdate($obj->date_livraison);
$this->remise_percent = $obj->remise_percent; $this->remise_percent = $obj->remise_percent;
$this->methode_commande_id = $obj->fk_methode_commande; $this->methode_commande_id = $obj->fk_methode_commande;
@ -170,7 +181,7 @@ class CommandeFournisseur extends Commande
$this->note_private = $obj->note_private; $this->note_private = $obj->note_private;
$this->note_public = $obj->note_public; $this->note_public = $obj->note_public;
$this->modelpdf = $obj->model_pdf; $this->modelpdf = $obj->model_pdf;
$this->extraparams = (array) json_decode($obj->extraparams, true); $this->extraparams = (array) json_decode($obj->extraparams, true);
$this->db->free($resql); $this->db->free($resql);
@ -286,17 +297,18 @@ class CommandeFournisseur extends Commande
/** /**
* Validate an order * Validate an order
* *
* @param User $user Validator User * @param User $user Validator User
* @return int <0 if KO, >0 if OK * @param int $idwarehouse Id of warehouse to use for stock decrease
* @return int <0 if KO, >0 if OK
*/ */
function valid($user) function valid($user,$idwarehouse=0)
{ {
global $langs,$conf; global $langs,$conf;
require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"); require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
$error=0; $error=0;
dol_syslog("CommandeFournisseur::Valid"); dol_syslog(get_class($this)."::valid");
$result = 0; $result = 0;
if ($user->rights->fournisseur->commande->valider) if ($user->rights->fournisseur->commande->valider)
{ {
@ -327,7 +339,7 @@ class CommandeFournisseur extends Commande
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if (! $resql) if (! $resql)
{ {
dol_syslog("CommandeFournisseur::valid() Echec update - 10 - sql=".$sql, LOG_ERR); dol_syslog(get_class($this)."::valid Echec update - 10 - sql=".$sql, LOG_ERR);
dol_print_error($this->db); dol_print_error($this->db);
$error++; $error++;
} }
@ -345,7 +357,7 @@ class CommandeFournisseur extends Commande
$dirdest = $conf->fournisseur->dir_output.'/commande/'.$newref; $dirdest = $conf->fournisseur->dir_output.'/commande/'.$newref;
if (file_exists($dirsource)) if (file_exists($dirsource))
{ {
dol_syslog("CommandeFournisseur::valid() rename dir ".$dirsource." into ".$dirdest); dol_syslog(get_class($this)."::valid rename dir ".$dirsource." into ".$dirdest);
if (@rename($dirsource, $dirdest)) if (@rename($dirsource, $dirdest))
{ {
@ -381,7 +393,7 @@ class CommandeFournisseur extends Commande
} }
else else
{ {
dol_syslog("CommandeFournisseur::valid ".$this->error, LOG_ERR); dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR);
$this->db->rollback(); $this->db->rollback();
$this->error=$this->db->lasterror(); $this->error=$this->db->lasterror();
return -1; return -1;
@ -390,7 +402,7 @@ class CommandeFournisseur extends Commande
else else
{ {
$this->error='Not Authorized'; $this->error='Not Authorized';
dol_syslog("CommandeFournisseur::valid ".$this->error, LOG_ERR); dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR);
return -1; return -1;
} }
} }
@ -412,7 +424,7 @@ class CommandeFournisseur extends Commande
// Protection // Protection
if ($this->statut == 0) if ($this->statut == 0)
{ {
dol_syslog("CommandeFournisseur::set_draft already draft status", LOG_WARNING); dol_syslog(get_class($this)."::set_draft already draft status", LOG_WARNING);
return 0; return 0;
} }
@ -428,7 +440,7 @@ class CommandeFournisseur extends Commande
$sql.= " SET fk_statut = 0"; $sql.= " SET fk_statut = 0";
$sql.= " WHERE rowid = ".$this->id; $sql.= " WHERE rowid = ".$this->id;
dol_syslog("CommandeFournisseur::set_draft sql=".$sql, LOG_DEBUG); dol_syslog(get_class($this)."::set_draft sql=".$sql, LOG_DEBUG);
if ($this->db->query($sql)) if ($this->db->query($sql))
{ {
// If stock is incremented on validate order, we must redecrement it // If stock is incremented on validate order, we must redecrement it
@ -619,7 +631,7 @@ class CommandeFournisseur extends Commande
} }
else else
{ {
dol_print_error($db,"CommandeFournisseur::getNextNumRef ".$obj->error); dol_print_error($db, get_class($this)."::getNextNumRef ".$obj->error);
return -1; return -1;
} }
} }
@ -649,7 +661,7 @@ class CommandeFournisseur extends Commande
$error=0; $error=0;
dol_syslog(get_class($this)."::Approve"); dol_syslog(get_class($this)."::approve");
if ($user->rights->fournisseur->commande->approuver) if ($user->rights->fournisseur->commande->approuver)
{ {
@ -708,13 +720,13 @@ class CommandeFournisseur extends Commande
{ {
$this->db->rollback(); $this->db->rollback();
$this->error=$this->db->lasterror(); $this->error=$this->db->lasterror();
dol_syslog("CommandeFournisseur::Approve Error ",$this->error, LOG_ERR); dol_syslog(get_class($this)."::approve Error ",$this->error, LOG_ERR);
return -1; return -1;
} }
} }
else else
{ {
dol_syslog("CommandeFournisseur::Approve Not Authorized", LOG_ERR); dol_syslog(get_class($this)."::approve Not Authorized", LOG_ERR);
} }
return -1; return -1;
} }
@ -731,7 +743,7 @@ class CommandeFournisseur extends Commande
$error=0; $error=0;
dol_syslog("CommandeFournisseur::Refuse"); dol_syslog(get_class($this)."::refuse");
$result = 0; $result = 0;
if ($user->rights->fournisseur->commande->approuver) if ($user->rights->fournisseur->commande->approuver)
{ {
@ -755,13 +767,13 @@ class CommandeFournisseur extends Commande
} }
else else
{ {
dol_syslog("CommandeFournisseur::Refuse Error -1"); dol_syslog(get_class($this)."::refuse Error -1");
$result = -1; $result = -1;
} }
} }
else else
{ {
dol_syslog("CommandeFournisseur::Refuse Not Authorized"); dol_syslog(get_class($this)."::refuse Not Authorized");
} }
return $result ; return $result ;
} }
@ -789,7 +801,7 @@ class CommandeFournisseur extends Commande
$sql = "UPDATE ".MAIN_DB_PREFIX."commande_fournisseur SET fk_statut = ".$statut; $sql = "UPDATE ".MAIN_DB_PREFIX."commande_fournisseur SET fk_statut = ".$statut;
$sql .= " WHERE rowid = ".$this->id; $sql .= " WHERE rowid = ".$this->id;
dol_syslog("CommandeFournisseur::Cancel sql=".$sql); dol_syslog(get_class($this)."::cancel sql=".$sql);
if ($this->db->query($sql)) if ($this->db->query($sql))
{ {
$result = 0; $result = 0;
@ -818,13 +830,13 @@ class CommandeFournisseur extends Commande
{ {
$this->db->rollback(); $this->db->rollback();
$this->error=$this->db->lasterror(); $this->error=$this->db->lasterror();
dol_syslog("CommandeFournisseur::Cancel ".$this->error); dol_syslog(get_class($this)."::cancel ".$this->error);
return -1; return -1;
} }
} }
else else
{ {
dol_syslog("CommandeFournisseur::Cancel Not Authorized"); dol_syslog(get_class($this)."::cancel Not Authorized");
return -1; return -1;
} }
} }
@ -841,14 +853,14 @@ class CommandeFournisseur extends Commande
*/ */
function commande($user, $date, $methode, $comment='') function commande($user, $date, $methode, $comment='')
{ {
dol_syslog("CommandeFournisseur::Commande"); dol_syslog(get_class($this)."::commande");
$result = 0; $result = 0;
if ($user->rights->fournisseur->commande->commander) if ($user->rights->fournisseur->commande->commander)
{ {
$sql = "UPDATE ".MAIN_DB_PREFIX."commande_fournisseur SET fk_statut = 3, fk_methode_commande=".$methode.",date_commande=".$this->db->idate("$date"); $sql = "UPDATE ".MAIN_DB_PREFIX."commande_fournisseur SET fk_statut = 3, fk_methode_commande=".$methode.",date_commande=".$this->db->idate("$date");
$sql .= " WHERE rowid = ".$this->id; $sql .= " WHERE rowid = ".$this->id;
dol_syslog("CommandeFournisseur::Commande sql=".$sql, LOG_DEBUG); dol_syslog(get_class($this)."::commande sql=".$sql, LOG_DEBUG);
if ($this->db->query($sql)) if ($this->db->query($sql))
{ {
$result = 0; $result = 0;
@ -856,13 +868,13 @@ class CommandeFournisseur extends Commande
} }
else else
{ {
dol_syslog("CommandeFournisseur::Commande Error -1", LOG_ERR); dol_syslog(get_class($this)."::cCommande Error -1", LOG_ERR);
$result = -1; $result = -1;
} }
} }
else else
{ {
dol_syslog("CommandeFournisseur::Commande User not Authorized", LOG_ERR); dol_syslog(get_class($this)."::commande User not Authorized", LOG_ERR);
} }
return $result ; return $result ;
} }
@ -890,7 +902,7 @@ class CommandeFournisseur extends Commande
$sql.= ", entity"; $sql.= ", entity";
$sql.= ", fk_soc"; $sql.= ", fk_soc";
$sql.= ", date_creation"; $sql.= ", date_creation";
$sql.= ", date_livraison"; //$sql.= ", date_livraison";
$sql.= ", fk_user_author"; $sql.= ", fk_user_author";
$sql.= ", fk_statut"; $sql.= ", fk_statut";
$sql.= ", source"; $sql.= ", source";
@ -902,7 +914,7 @@ class CommandeFournisseur extends Commande
$sql.= ", ".$conf->entity; $sql.= ", ".$conf->entity;
$sql.= ", ".$this->socid; $sql.= ", ".$this->socid;
$sql.= ", ".$this->db->idate($now); $sql.= ", ".$this->db->idate($now);
$sql.= ", ".$this->db->idate($now); //$sql.= ", ".$this->db->idate($now);
$sql.= ", ".$user->id; $sql.= ", ".$user->id;
$sql.= ", 0"; $sql.= ", 0";
$sql.= ", 0"; $sql.= ", 0";
@ -974,7 +986,7 @@ class CommandeFournisseur extends Commande
{ {
global $langs,$mysoc; global $langs,$mysoc;
dol_syslog("FournisseurCommande::addline $desc, $pu_ht, $qty, $txtva, $txlocaltax1, $txlocaltax2. $fk_product, $fk_prod_fourn_price, $fourn_ref, $remise_percent, $price_base_type, $pu_ttc, $type"); dol_syslog(get_class($this)."::addline $desc, $pu_ht, $qty, $txtva, $txlocaltax1, $txlocaltax2. $fk_product, $fk_prod_fourn_price, $fourn_ref, $remise_percent, $price_base_type, $pu_ttc, $type");
include_once(DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php'); include_once(DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php');
// Clean parameters // Clean parameters
@ -1032,14 +1044,14 @@ class CommandeFournisseur extends Commande
{ {
$this->error="No price found for this quantity. Quantity may be too low ?"; $this->error="No price found for this quantity. Quantity may be too low ?";
$this->db->rollback(); $this->db->rollback();
dol_syslog("FournisseurCommande::addline result=".$result." - ".$this->error, LOG_DEBUG); dol_syslog(get_class($this)."::addline result=".$result." - ".$this->error, LOG_DEBUG);
return -1; return -1;
} }
if ($result < -1) if ($result < -1)
{ {
$this->error=$prod->error; $this->error=$prod->error;
$this->db->rollback(); $this->db->rollback();
dol_syslog("Fournisseur.commande::addline result=".$result." - ".$this->error, LOG_ERR); dol_syslog(get_class($this)."::addline result=".$result." - ".$this->error, LOG_ERR);
return -1; return -1;
} }
} }
@ -1093,7 +1105,7 @@ class CommandeFournisseur extends Commande
$sql.= "'".price2num($total_ttc)."'"; $sql.= "'".price2num($total_ttc)."'";
$sql.= ")"; $sql.= ")";
dol_syslog('FournisseurCommande::addline sql='.$sql); dol_syslog(get_class($this)."::addline sql=".$sql);
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
//print $sql; //print $sql;
if ($resql) if ($resql)
@ -1107,7 +1119,7 @@ class CommandeFournisseur extends Commande
{ {
$this->error=$this->db->error(); $this->error=$this->db->error();
$this->db->rollback(); $this->db->rollback();
dol_syslog('FournisseurCommande::addline '.$this->error, LOG_ERR); dol_syslog(get_class($this)."::addline ".$this->error, LOG_ERR);
return -1; return -1;
} }
} }
@ -1148,7 +1160,7 @@ class CommandeFournisseur extends Commande
$sql.= " (fk_commande,fk_product, qty, fk_entrepot, fk_user, datec) VALUES "; $sql.= " (fk_commande,fk_product, qty, fk_entrepot, fk_user, datec) VALUES ";
$sql.= " ('".$this->id."','".$product."','".$qty."',".($entrepot>0?"'".$entrepot."'":"null").",'".$user->id."','".$this->db->idate($now)."')"; $sql.= " ('".$this->id."','".$product."','".$qty."',".($entrepot>0?"'".$entrepot."'":"null").",'".$user->id."','".$this->db->idate($now)."')";
dol_syslog("CommandeFournisseur::DispatchProduct sql=".$sql); dol_syslog(get_class($this)."::DispatchProduct sql=".$sql);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if (! $resql) if (! $resql)
{ {
@ -1166,7 +1178,7 @@ class CommandeFournisseur extends Commande
if ($result < 0) if ($result < 0)
{ {
$this->error=$mouv->error; $this->error=$mouv->error;
dol_syslog("CommandeFournisseur::DispatchProduct ".$this->error, LOG_ERR); dol_syslog(get_class($this)."::DispatchProduct ".$this->error, LOG_ERR);
$error++; $error++;
} }
} }
@ -1236,14 +1248,14 @@ class CommandeFournisseur extends Commande
$this->db->begin(); $this->db->begin();
$sql = "DELETE FROM ".MAIN_DB_PREFIX."commande_fournisseurdet WHERE fk_commande =". $this->id ; $sql = "DELETE FROM ".MAIN_DB_PREFIX."commande_fournisseurdet WHERE fk_commande =". $this->id ;
dol_syslog("FournisseurCommande::delete sql=".$sql, LOG_DEBUG); dol_syslog(get_class($this)."::delete sql=".$sql, LOG_DEBUG);
if (! $this->db->query($sql) ) if (! $this->db->query($sql) )
{ {
$error++; $error++;
} }
$sql = "DELETE FROM ".MAIN_DB_PREFIX."commande_fournisseur WHERE rowid =".$this->id; $sql = "DELETE FROM ".MAIN_DB_PREFIX."commande_fournisseur WHERE rowid =".$this->id;
dol_syslog("FournisseurCommande::delete sql=".$sql, LOG_DEBUG); dol_syslog(get_class($this)."::delete sql=".$sql, LOG_DEBUG);
if ($resql = $this->db->query($sql) ) if ($resql = $this->db->query($sql) )
{ {
if ($this->db->affected_rows($resql) < 1) if ($this->db->affected_rows($resql) < 1)
@ -1265,7 +1277,7 @@ class CommandeFournisseur extends Commande
if ($result < 0) { $error++; $this->errors=$interface->errors; } if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers // Fin appel triggers
dol_syslog("CommandeFournisseur::delete : Success"); dol_syslog(get_class($this)."::delete : Success");
$this->db->commit(); $this->db->commit();
return 1; return 1;
} }
@ -1322,7 +1334,7 @@ class CommandeFournisseur extends Commande
{ {
$result = 0; $result = 0;
dol_syslog("CommandeFournisseur::Livraison"); dol_syslog(get_class($this)."::Livraison");
if ($user->rights->fournisseur->commande->receptionner) if ($user->rights->fournisseur->commande->receptionner)
{ {
@ -1340,7 +1352,7 @@ class CommandeFournisseur extends Commande
$sql.= " WHERE rowid = ".$this->id; $sql.= " WHERE rowid = ".$this->id;
$sql.= " AND fk_statut IN (3,4)"; // Process running or Partially received $sql.= " AND fk_statut IN (3,4)"; // Process running or Partially received
dol_syslog("CommandeFournisseur::Livraison sql=".$sql); dol_syslog(get_class($this)."::Livraison sql=".$sql);
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)
{ {
@ -1353,19 +1365,19 @@ class CommandeFournisseur extends Commande
{ {
$this->db->rollback(); $this->db->rollback();
$this->error=$this->db->lasterror(); $this->error=$this->db->lasterror();
dol_syslog("CommandeFournisseur::Livraison Error ".$this->error, LOG_ERR); dol_syslog(get_class($this)."::Livraison Error ".$this->error, LOG_ERR);
$result = -1; $result = -1;
} }
} }
else else
{ {
dol_syslog("CommandeFournisseur::Livraison Error -2", LOG_ERR); dol_syslog(get_class($this)."::Livraison Error -2", LOG_ERR);
$result = -2; $result = -2;
} }
} }
else else
{ {
dol_syslog("CommandeFournisseur::Livraison Not Authorized"); dol_syslog(get_class($this)."::Livraison Not Authorized");
$result = -3; $result = -3;
} }
return $result ; return $result ;
@ -1386,7 +1398,7 @@ class CommandeFournisseur extends Commande
$sql.= " SET date_livraison = ".($date_livraison ? "'".$this->db->idate($date_livraison)."'" : 'null'); $sql.= " SET date_livraison = ".($date_livraison ? "'".$this->db->idate($date_livraison)."'" : 'null');
$sql.= " WHERE rowid = ".$this->id; $sql.= " WHERE rowid = ".$this->id;
dol_syslog("CommandeFournisseur::set_date_livraison sql=".$sql,LOG_DEBUG); dol_syslog(get_class($this)."::set_date_livraison sql=".$sql,LOG_DEBUG);
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)
{ {
@ -1396,7 +1408,7 @@ class CommandeFournisseur extends Commande
else else
{ {
$this->error=$this->db->error(); $this->error=$this->db->error();
dol_syslog("CommandeFournisseur::set_date_livraison ".$this->error,LOG_ERR); dol_syslog(get_class($this)."::set_date_livraison ".$this->error,LOG_ERR);
return -1; return -1;
} }
} }
@ -1579,7 +1591,7 @@ class CommandeFournisseur extends Commande
$sql.= ",product_type='".$type."'"; $sql.= ",product_type='".$type."'";
$sql.= " WHERE rowid = ".$rowid; $sql.= " WHERE rowid = ".$rowid;
dol_syslog("CommandeFournisseur::updateline sql=".$sql); dol_syslog(get_class($this)."::updateline sql=".$sql);
$result = $this->db->query($sql); $result = $this->db->query($sql);
if ($result > 0) if ($result > 0)
{ {
@ -1592,7 +1604,7 @@ class CommandeFournisseur extends Commande
else else
{ {
$this->error=$this->db->error(); $this->error=$this->db->error();
dol_syslog("CommandeFournisseur::updateline ".$this->error, LOG_ERR); dol_syslog(get_class($this)."::updateline ".$this->error, LOG_ERR);
$this->db->rollback(); $this->db->rollback();
return -1; return -1;
} }
@ -1600,7 +1612,7 @@ class CommandeFournisseur extends Commande
else else
{ {
$this->error="Order status makes operation forbidden"; $this->error="Order status makes operation forbidden";
dol_syslog("CommandeFournisseur::updateline ".$this->error, LOG_ERR); dol_syslog(get_class($this)."::updateline ".$this->error, LOG_ERR);
return -2; return -2;
} }
} }
@ -1617,7 +1629,7 @@ class CommandeFournisseur extends Commande
{ {
global $user,$langs,$conf; global $user,$langs,$conf;
dol_syslog("CommandeFournisseur::initAsSpecimen"); dol_syslog(get_class($this)."::initAsSpecimen");
$now=dol_now(); $now=dol_now();
@ -1742,8 +1754,7 @@ class CommandeFournisseur extends Commande
/** /**
* \class CommandeFournisseurLigne * Classe de gestion des lignes de commande
* \brief Classe de gestion des lignes de commande
*/ */
class CommandeFournisseurLigne extends OrderLine class CommandeFournisseurLigne extends OrderLine
{ {

View File

@ -1,13 +1,13 @@
<?php <?php
//============================================================+ //============================================================+
// File name : 2dbarcodes.php // File name : 2dbarcodes.php
// Version : 1.0.009 // Version : 1.0.013
// Begin : 2009-04-07 // Begin : 2009-04-07
// Last Update : 2011-06-01 // Last Update : 2012-01-12
// Author : Nicola Asuni - Tecnick.com S.r.l - Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com // Author : Nicola Asuni - Tecnick.com LTD - Manor Coach House, Church Hill, Aldershot, Hants, GU12 4RQ, UK - www.tecnick.com - info@tecnick.com
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) // License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
// ------------------------------------------------------------------- // -------------------------------------------------------------------
// Copyright (C) 2009-2011 Nicola Asuni - Tecnick.com S.r.l. // Copyright (C) 2009-2012 Nicola Asuni - Tecnick.com LTD
// //
// This file is part of TCPDF software library. // This file is part of TCPDF software library.
// //
@ -37,14 +37,14 @@
* PHP class to creates array representations for 2D barcodes to be used with TCPDF. * PHP class to creates array representations for 2D barcodes to be used with TCPDF.
* @package com.tecnick.tcpdf * @package com.tecnick.tcpdf
* @author Nicola Asuni * @author Nicola Asuni
* @version 1.0.009 * @version 1.0.013
*/ */
/** /**
* @class TCPDF2DBarcode * @class TCPDF2DBarcode
* PHP class to creates array representations for 2D barcodes to be used with TCPDF (http://www.tcpdf.org). * PHP class to creates array representations for 2D barcodes to be used with TCPDF (http://www.tcpdf.org).
* @package com.tecnick.tcpdf * @package com.tecnick.tcpdf
* @version 1.0.009 * @version 1.0.013
* @author Nicola Asuni * @author Nicola Asuni
*/ */
class TCPDF2DBarcode { class TCPDF2DBarcode {
@ -63,7 +63,7 @@ class TCPDF2DBarcode {
* <li>$arrcode['num_cols'] required number of columns</li> * <li>$arrcode['num_cols'] required number of columns</li>
* <li>$arrcode['bcode'][$r][$c] value of the cell is $r row and $c column (0 = transparent, 1 = black)</li></ul> * <li>$arrcode['bcode'][$r][$c] value of the cell is $r row and $c column (0 = transparent, 1 = black)</li></ul>
* @param $code (string) code to print * @param $code (string) code to print
* @param $type (string) type of barcode: <ul><li>RAW: raw mode - comma-separad list of array rows</li><li>RAW2: raw mode - array rows are surrounded by square parenthesis.</li><li>QRCODE : QR-CODE Low error correction</li><li>QRCODE,L : QR-CODE Low error correction</li><li>QRCODE,M : QR-CODE Medium error correction</li><li>QRCODE,Q : QR-CODE Better error correction</li><li>QRCODE,H : QR-CODE Best error correction</li><li>PDF417 : PDF417 (ISO/IEC 15438:2006)</li><li>PDF417,a,e,t,s,f,o0,o1,o2,o3,o4,o5,o6 : PDF417 with parameters: a = aspect ratio (width/height); e = error correction level (0-8); t = total number of macro segments; s = macro segment index (0-99998); f = file ID; o0 = File Name (text); o1 = Segment Count (numeric); o2 = Time Stamp (numeric); o3 = Sender (text); o4 = Addressee (text); o5 = File Size (numeric); o6 = Checksum (numeric). NOTES: Parameters t, s and f are required for a Macro Control Block, all other parametrs are optional. To use a comma character ',' on text options, replace it with the character 255: "\xff".</li></ul> * @param $type (string) type of barcode: <ul><li>DATAMATRIX : Datamatrix (ISO/IEC 16022)</li><li>PDF417 : PDF417 (ISO/IEC 15438:2006)</li><li>PDF417,a,e,t,s,f,o0,o1,o2,o3,o4,o5,o6 : PDF417 with parameters: a = aspect ratio (width/height); e = error correction level (0-8); t = total number of macro segments; s = macro segment index (0-99998); f = file ID; o0 = File Name (text); o1 = Segment Count (numeric); o2 = Time Stamp (numeric); o3 = Sender (text); o4 = Addressee (text); o5 = File Size (numeric); o6 = Checksum (numeric). NOTES: Parameters t, s and f are required for a Macro Control Block, all other parametrs are optional. To use a comma character ',' on text options, replace it with the character 255: "\xff".</li><li>QRCODE : QRcode Low error correction</li><li>QRCODE,L : QRcode Low error correction</li><li>QRCODE,M : QRcode Medium error correction</li><li>QRCODE,Q : QRcode Better error correction</li><li>QRCODE,H : QR-CODE Best error correction</li><li>RAW: raw mode - comma-separad list of array rows</li><li>RAW2: raw mode - array rows are surrounded by square parenthesis.</li><li>TEST : Test matrix</li></ul>
*/ */
public function __construct($code, $type) { public function __construct($code, $type) {
$this->setBarcode($code, $type); $this->setBarcode($code, $type);
@ -84,8 +84,8 @@ class TCPDF2DBarcode {
* @param $color (string) Foreground color (in SVG format) for bar elements (background is transparent). * @param $color (string) Foreground color (in SVG format) for bar elements (background is transparent).
* @public * @public
*/ */
public function getBarcodeSVG($w=2, $h=3, $color='black') { public function getBarcodeSVG($w=3, $h=3, $color='black') {
// send XML headers // send headers
$code = $this->getBarcodeSVGcode($w, $h, $color); $code = $this->getBarcodeSVGcode($w, $h, $color);
header('Content-Type: application/svg+xml'); header('Content-Type: application/svg+xml');
header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1 header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
@ -114,11 +114,10 @@ class TCPDF2DBarcode {
$svg .= "\t".'<desc>'.strtr($this->barcode_array['code'], $repstr).'</desc>'."\n"; $svg .= "\t".'<desc>'.strtr($this->barcode_array['code'], $repstr).'</desc>'."\n";
$svg .= "\t".'<g id="elements" fill="'.$color.'" stroke="none">'."\n"; $svg .= "\t".'<g id="elements" fill="'.$color.'" stroke="none">'."\n";
// print barcode elements // print barcode elements
$xstart = 0;
$y = 0; $y = 0;
// for each row // for each row
for ($r = 0; $r < $this->barcode_array['num_rows']; ++$r) { for ($r = 0; $r < $this->barcode_array['num_rows']; ++$r) {
$x = $xstart; $x = 0;
// for each column // for each column
for ($c = 0; $c < $this->barcode_array['num_cols']; ++$c) { for ($c = 0; $c < $this->barcode_array['num_cols']; ++$c) {
if ($this->barcode_array['bcode'][$r][$c] == 1) { if ($this->barcode_array['bcode'][$r][$c] == 1) {
@ -134,22 +133,112 @@ class TCPDF2DBarcode {
return $svg; return $svg;
} }
/**
* Return an HTML representation of barcode.
* @param $w (int) Width of a single rectangle element in pixels.
* @param $h (int) Height of a single rectangle element in pixels.
* @param $color (string) Foreground color for bar elements (background is transparent).
* @return string HTML code.
* @public
*/
public function getBarcodeHTML($w=10, $h=10, $color='black') {
$html = '<div style="font-size:0;position:relative;width:'.($w * $this->barcode_array['num_cols']).'px;height:'.($h * $this->barcode_array['num_rows']).'px;">'."\n";
// print barcode elements
$y = 0;
// for each row
for ($r = 0; $r < $this->barcode_array['num_rows']; ++$r) {
$x = 0;
// for each column
for ($c = 0; $c < $this->barcode_array['num_cols']; ++$c) {
if ($this->barcode_array['bcode'][$r][$c] == 1) {
// draw a single barcode cell
$html .= '<div style="background-color:'.$color.';width:'.$w.'px;height:'.$h.'px;position:absolute;left:'.$x.'px;top:'.$y.'px;">&nbsp;</div>'."\n";
}
$x += $w;
}
$y += $h;
}
$html .= '</div>'."\n";
return $html;
}
/**
* Return a PNG image representation of barcode (requires GD or Imagick library).
* @param $w (int) Width of a single rectangle element in pixels.
* @param $h (int) Height of a single rectangle element in pixels.
* @param $color (array) RGB (0-255) foreground color for bar elements (background is transparent).
* @return image or false in case of error.
* @public
*/
public function getBarcodePNG($w=3, $h=3, $color=array(0,0,0)) {
// calculate image size
$width = ($this->barcode_array['num_cols'] * $w);
$height = ($this->barcode_array['num_rows'] * $h);
if (function_exists('imagecreate')) {
// GD library
$imagick = false;
$png = imagecreate($width, $height);
$bgcol = imagecolorallocate($png, 255, 255, 255);
imagecolortransparent($png, $bgcol);
$fgcol = imagecolorallocate($png, $color[0], $color[1], $color[2]);
} elseif (extension_loaded('imagick')) {
$imagick = true;
$bgcol = new imagickpixel('rgb(255,255,255');
$fgcol = new imagickpixel('rgb('.$color[0].','.$color[1].','.$color[2].')');
$png = new Imagick();
$png->newImage($width, $height, 'none', 'png');
$bar = new imagickdraw();
$bar->setfillcolor($fgcol);
} else {
return false;
}
// print barcode elements
$y = 0;
// for each row
for ($r = 0; $r < $this->barcode_array['num_rows']; ++$r) {
$x = 0;
// for each column
for ($c = 0; $c < $this->barcode_array['num_cols']; ++$c) {
if ($this->barcode_array['bcode'][$r][$c] == 1) {
// draw a single barcode cell
if ($imagick) {
$bar->rectangle($x, $y, ($x + $w), ($y + $h));
} else {
imagefilledrectangle($png, $x, $y, ($x + $w), ($y + $h), $fgcol);
}
}
$x += $w;
}
$y += $h;
}
// send headers
header('Content-Type: image/png');
header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
header('Pragma: public');
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
if ($imagick) {
$png->drawimage($bar);
echo $png;
} else {
imagepng($png);
imagedestroy($png);
}
}
/** /**
* Set the barcode. * Set the barcode.
* @param $code (string) code to print * @param $code (string) code to print
* @param $type (string) type of barcode: <ul><li>RAW: raw mode - comma-separad list of array rows</li><li>RAW2: raw mode - array rows are surrounded by square parenthesis.</li><li>QRCODE : QR-CODE Low error correction</li><li>QRCODE,L : QR-CODE Low error correction</li><li>QRCODE,M : QR-CODE Medium error correction</li><li>QRCODE,Q : QR-CODE Better error correction</li><li>QRCODE,H : QR-CODE Best error correction</li><li>PDF417 : PDF417 (ISO/IEC 15438:2006)</li><li>PDF417,a,e,t,s,f,o0,o1,o2,o3,o4,o5,o6 : PDF417 with parameters: a = aspect ratio (width/height); e = error correction level (0-8); t = total number of macro segments; s = macro segment index (0-99998); f = file ID; o0 = File Name (text); o1 = Segment Count (numeric); o2 = Time Stamp (numeric); o3 = Sender (text); o4 = Addressee (text); o5 = File Size (numeric); o6 = Checksum (numeric). NOTES: Parameters t, s and f are required for a Macro Control Block, all other parametrs are optional. To use a comma character ',' on text options, replace it with the character 255: "\xff".</li></ul> * @param $type (string) type of barcode: <ul><li>DATAMATRIX : Datamatrix (ISO/IEC 16022)</li><li>PDF417 : PDF417 (ISO/IEC 15438:2006)</li><li>PDF417,a,e,t,s,f,o0,o1,o2,o3,o4,o5,o6 : PDF417 with parameters: a = aspect ratio (width/height); e = error correction level (0-8); t = total number of macro segments; s = macro segment index (0-99998); f = file ID; o0 = File Name (text); o1 = Segment Count (numeric); o2 = Time Stamp (numeric); o3 = Sender (text); o4 = Addressee (text); o5 = File Size (numeric); o6 = Checksum (numeric). NOTES: Parameters t, s and f are required for a Macro Control Block, all other parametrs are optional. To use a comma character ',' on text options, replace it with the character 255: "\xff".</li><li>QRCODE : QRcode Low error correction</li><li>QRCODE,L : QRcode Low error correction</li><li>QRCODE,M : QRcode Medium error correction</li><li>QRCODE,Q : QRcode Better error correction</li><li>QRCODE,H : QR-CODE Best error correction</li><li>RAW: raw mode - comma-separad list of array rows</li><li>RAW2: raw mode - array rows are surrounded by square parenthesis.</li><li>TEST : Test matrix</li></ul>
* @return array * @return array
*/ */
public function setBarcode($code, $type) { public function setBarcode($code, $type) {
$mode = explode(',', $type); $mode = explode(',', $type);
$qrtype = strtoupper($mode[0]); $qrtype = strtoupper($mode[0]);
switch ($qrtype) { switch ($qrtype) {
case 'QRCODE': { // QR-CODE case 'DATAMATRIX': { // DATAMATRIX (ISO/IEC 16022)
require_once(dirname(__FILE__).'/qrcode.php'); require_once(dirname(__FILE__).'/datamatrix.php');
if (!isset($mode[1]) OR (!in_array($mode[1],array('L','M','Q','H')))) { $qrcode = new Datamatrix($code);
$mode[1] = 'L'; // Ddefault: Low error correction
}
$qrcode = new QRcode($code, strtoupper($mode[1]));
$this->barcode_array = $qrcode->getBarcodeArray(); $this->barcode_array = $qrcode->getBarcodeArray();
$this->barcode_array['code'] = $code; $this->barcode_array['code'] = $code;
break; break;
@ -185,6 +274,16 @@ class TCPDF2DBarcode {
$this->barcode_array['code'] = $code; $this->barcode_array['code'] = $code;
break; break;
} }
case 'QRCODE': { // QR-CODE
require_once(dirname(__FILE__).'/qrcode.php');
if (!isset($mode[1]) OR (!in_array($mode[1],array('L','M','Q','H')))) {
$mode[1] = 'L'; // Ddefault: Low error correction
}
$qrcode = new QRcode($code, strtoupper($mode[1]));
$this->barcode_array = $qrcode->getBarcodeArray();
$this->barcode_array['code'] = $code;
break;
}
case 'RAW': case 'RAW':
case 'RAW2': { // RAW MODE case 'RAW2': { // RAW MODE
// remove spaces // remove spaces

View File

@ -1,3 +1,227 @@
5.9.156 (2012-04-10)
- Bug item #3515885 "TOC and booklet: left and right page exchanged".
- SetAutoPageBreak(false) now works also in multicolumn mode.
5.9.155 (2012-04-02)
- Bug item #3512596 "font import problems" was fixed.
- Method addTTFfont() was modified to extract only specified Platform ID and Encoding ID (check the source code documentation).
- All fonts were updated.
- Bug item #3513867 "booklet and setHeaderTemplateAutoreset: header shifted left" was fixed.
- Bug item #3513749 "TCPDF Superscript/Subscript" was fixed.
5.9.154 (2012-03-29)
- A debug echo was removed.
5.9.153 (2012-03-28)
- A bug on font conversion was fixed.
- All fonts were updated.
- Method isCharDefined() was added to find if a character is defined on the selected font.
- Method replaceMissingChars() was added to automatically replace missing chars on selected font.
- SetFont() method was fixed.
5.9.152 (2012-03-23)
- The following overprint methods were added: setOverprint(), getOverprint().
- Signature of setAlpha() method was changed and method getAlpha() was added.
- stroke-opacity support was added on SVG.
- The following date methods were added: setDocCreationTimestamp(), setDocModificationTimestamp(), getDocCreationTimestamp(), getDocModificationTimestamp(), getFormattedDate(), getTimestamp().
- Signature of _datestring() method was changed.
- Method getFontBBox() was added.
- Method setPageBoxTypes() was aded.
5.9.151 (2012-03-22)
- Bug item #3509889 "Transform() distorts PDF" was fixed.
- Precision of real number were extended.
- ComboBox and ListBox methods were fixed.
- Bulgarian language file was added.
- addTOC() method was improved to include bookmark color and font style.
5.9.150 (2012-03-16)
- A bug related to form fields in PDF/A mode was fixed.
5.9.149 (2012-02-21)
- Bug item #3489933 "SVG Parser treats tspan like text" was fixed.
5.9.148 (2012-02-17)
- Bug item #3488600 "Multiple radiobutton sets get first set value" was fixed.
5.9.147 (2012-02-14)
- A problem with SVG gradients has been fixed.
5.9.146 (2012-02-12)
- Bug item #3486880 "$filehash undefine error" was fixed.
- The default font is now the one specified at PDF_FONT_NAME_MAIN constant.
5.9.145 (2012-01-28)
- Japanese language file was added.
- TCPDF license and README.TXT files were updated.
5.9.144 (2012-01-12)
- HTML output on barcode classes was improved.
5.9.143 (2012-01-08)
- Bug item #3471057 "setCreator() has no effect" was fixed.
5.9.142 (2011-12-23)
- Source code documentation was updated.
5.9.141 (2011-12-14)
- Some minor bugs were fixed.
5.9.140 (2011-12-13)
- SVG now supports embedded images encoded as base64.
5.9.139 (2011-12-11)
- Spot color methods were fixed.
5.9.138 (2011-12-10)
- cropMark() method was improved (check source code documentation).
- Example n. 56 was updated.
- Bug item #3452390 "Check Box still not ticked when set to true" was fixed.
5.9.137 (2011-12-01)
- Bug item #3447005 "Background color and border of Form Elements is printed" was fixed.
- Color support for Form elements was improved.
5.9.136 (2011-11-27)
- Bug item #3443387 "SetMargins with keep option does not work for top margin" was fixed.
5.9.135 (2011-11-04)
- Bug item #3433406 "Double keywords in description" was fixed.
5.9.134 (2011-10-29)
- The default value for $defcol parameter on convertHTMLColorToDec() method was fixed.
- Deafult HTTP headers were changed to avoid browser caching.
- Some deprecated syntax were replaced.
5.9.133 (2011-10-26)
- Bug item #3428446 "copyPage method not working when diskcache enabled" was fixed.
5.9.132 (2011-10-20)
- Bug item #3426167 "bug in function convertHTMLColorToDec()" was fixed.
5.9.131 (2011-10-13)
- An error message was added to ImagePngAlpha() method.
5.9.130 (2011-10-12)
- Now you can set image data strings on HTML img tag by encoding the image binary data in this way: $imgsrc = '@'.base64_encode($imgdata);
5.9.129 (2011-10-07)
- Core fonts metrics was fixed (replace all helvetica and times php files on fonts folder).
- Form fields support was improved and some problems were fixed (check the example n. 14).
- Bug item #3420249 "Issue with booklet and MultiCell" was fixed.
5.9.128 (2011-10-06)
- Method addTTFfont() was improved (check the source code documentation).
- Method setExtraXMP() to set custom XMP data was added.
5.9.127 (2011-10-04)
- Readonly mode option was activated for radiobuttons.
5.9.126 (2011-10-03)
- Bug item #3417989 "Graphics State operator in form XObject fails to render" was fixed.
- Xobjects problems with transparency, gradients and spot colors were fixed.
5.9.125 (2011-10-03)
- Support for 8-digit CMYK hexadecimal color representation was added (to be used with XHTML and SVG).
- Spot colors support was improved (check example n. 37).
- Color methods were improved.
5.9.124 (2011-10-02)
- Core fonts were updated.
5.9.123 (2011-10-02)
- The method addTTFfont() wad added to automatically convert TTF fonts (check the new fonts guide at http://www.tcpdf.org).
- Old font utils were removed.
- All fonts were updated and new arabic fonts were added (almohanad were removed and replaced by aefurat and aealarabiya).
- The file unicode_data.php was updated.
- The file encodings_maps.php was added.
- PDF/A files are now compressed to save space.
- XHTML input form fields now support text-alignment attribute.
5.9.122 (2011-09-29)
- PDF/A-1b compliance was improved to pass some online testing.
5.9.121 (2011-09-28)
- This version includes support for PDF/A-1b format (the class constructor signature was changed - see example n. 65).
- Method setSRGBmode() was added to force sRGB_IEC61966-2.1 black scaled ICC color profile for the whole document (file sRGB.icc was added).
- 14 new fonts were added to allow embedding core fonts (for PDF/A compliance).
- Font utils were fixed.
5.9.120 (2011-09-22)
- This version includes a fix for _getTrueTypeFontSubset() method.
5.9.119 (2011-09-19)
- This version includes a fix for extra page numbering on TOC.
5.9.118 (2011-09-17)
- This version includes some changes that allows you to add a bookmark for a page that do not exist.
5.9.117 (2011-09-15)
- TCPDFBarcode and TCPDF2DBarcode classes were extended to include a method for exporting barcodes as PNG images.
5.9.116 (2011-09-14)
- Datamatrix class was improved and documentation was fixed.
5.9.115 (2011-09-13)
- Datamatrix ECC200 barcode support was added (a new datamatrix.php file was added) - check example n. 50.
- getBarcodeHTML() method was added on TCPDFBarcode and TCPDF2DBarcode classes to return an HTML representation of the barcode.
- cURL options on Image() method were improved.
- A bug on write2DBarcode() was fixed.
5.9.114 (2011-09-04)
- A bug related to column position was fixed.
5.9.113 (2011-08-24)
- This release include two new experimental files for parsing an existing PDF document (the integration with TCPDF is under development).
5.9.112 (2011-08-18)
- A newline character was added after the 'trailer' keyword for compatibility with some parsers.
- Support for layers was improved.
5.9.111 (2011-08-17)
- Barcode CODE 39 default gap was restored at 1.
5.9.110 (2011-08-17)
- Barcode CODE 39 was fixed.
5.9.109 (2011-08-12)
- Method getNumLines() was fixed.
- A bug related to page break in multi-column mode was fixed.
5.9.108 (2011-08-09)
- A bug on PHP4 version was fixed.
5.9.107 (2011-08-08)
- This version includes a minor bugfix.
5.9.106 (2011-08-04)
- This version includes transparency groups: check the new parameter on startTemplate() method and example 62.
5.9.105 (2011-08-04)
- Bug item #3386153 "Check Box not ticked when set to true" was fixed.
5.9.104 (2011-08-01)
- Bug item #3383698 "imagemagick, resize and dpi" was fixed.
5.9.103 (2011-07-16)
- Alignment of XHTML lines was improved.
- Spell of the "length" word was fixed.
5.9.102 (2011-07-13)
- Methods startLayer() and endLayer() were added to support arbitrary PDF layers.
- Some improvements/fixes for images were added (thanks to Brendan Abbott).
5.9.101 (2011-07-07)
- Support for JPEG and PNG ICC Color Profiles was added.
- Method addEmptySignatureAppearance() was added to add empty signature fields (see example n. 52).
- Bug item #3354332 "Strange line spacing with reduced font-size in writeHTML" was fixed.
5.9.100 (2011-06-29)
- An SVG bug has been fixed.
5.9.099 (2011-06-27)
- Bug item #3335045 "Font freesans seems somehow corrupted in footer" was fixed.
5.9.098 (2011-06-23) 5.9.098 (2011-06-23)
- The Named Destination feature was fixed. - The Named Destination feature was fixed.
@ -13,7 +237,7 @@
- Font subsetting was fixed to include all parts of composite fonts. - Font subsetting was fixed to include all parts of composite fonts.
5.9.094 (2011-06-17) 5.9.094 (2011-06-17)
- Bug item #3317898 "Page Group numbering broken in 5.9.093" was fixed. - Bug item #3317898 "Page Group numbering broken in 5.9.093" was fixed.
5.9.093 (2011-06-16) 5.9.093 (2011-06-16)
- Method setStartingPageNumber() was added to set starting page number (for automatic page numbering). - Method setStartingPageNumber() was added to set starting page number (for automatic page numbering).

View File

@ -5,9 +5,7 @@
TCPDF is free software: you can redistribute it and/or modify it TCPDF is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation, either version 3 of the published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version. Additionally, License, or (at your option) any later version.
YOU CAN'T REMOVE ANY TCPDF COPYRIGHT NOTICE OR LINK FROM THE
GENERATED PDF DOCUMENTS.
********************************************************************** **********************************************************************
********************************************************************** **********************************************************************

View File

@ -8,16 +8,16 @@ http://sourceforge.net/donate/index.php?group_id=128076
------------------------------------------------------------ ------------------------------------------------------------
Name: TCPDF Name: TCPDF
Version: 5.9.098 Version: 5.9.156
Release date: 2011-06-23 Release date: 2012-04-10
Author: Nicola Asuni Author: Nicola Asuni
Copyright (c) 2002-2011: Copyright (c) 2002-2012:
Nicola Asuni Nicola Asuni
Tecnick.com s.r.l. Tecnick.com LTD
Via Della Pace, 11 Manor Coach House, Church Hill
09044 Quartucciu (CA) Aldershot, Hants, GU12 4RQ
ITALY UK
www.tecnick.com www.tecnick.com
URLs: URLs:
@ -31,13 +31,13 @@ Main Features:
* no external libraries are required for the basic functions; * no external libraries are required for the basic functions;
* all standard page formats, custom page formats, custom margins and units of measure; * all standard page formats, custom page formats, custom margins and units of measure;
* UTF-8 Unicode and Right-To-Left languages; * UTF-8 Unicode and Right-To-Left languages;
* TrueTypeUnicode, OpenTypeUnicode, TrueType, OpenType, Type1 and CID-0 fonts; * TrueTypeUnicode, OpenTypeUnicode v1, TrueType, OpenType v1, Type1 and CID-0 fonts;
* font subsetting; * font subsetting;
* methods to publish some XHTML + CSS code, Javascript and Forms; * methods to publish some XHTML + CSS code, Javascript and Forms;
* images, graphic (geometric figures) and transformation methods; * images, graphic (geometric figures) and transformation methods;
* supports JPEG, PNG and SVG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImagMagick (http: www.imagemagick.org/www/formats.html) * supports JPEG, PNG and SVG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImagMagick (http: www.imagemagick.org/www/formats.html)
* 1D and 2D barcodes: CODE 39, ANSI MH10.8M-1983, USD-3, 3 of 9, CODE 93, USS-93, Standard 2 of 5, Interleaved 2 of 5, CODE 128 A/B/C, 2 and 5 Digits UPC-Based Extention, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), KIX (Klant index - Customer index), Intelligent Mail Barcode, Onecode, USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS, QR-Code, PDF417; * 1D and 2D barcodes: CODE 39, ANSI MH10.8M-1983, USD-3, 3 of 9, CODE 93, USS-93, Standard 2 of 5, Interleaved 2 of 5, CODE 128 A/B/C, 2 and 5 Digits UPC-Based Extention, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), KIX (Klant index - Customer index), Intelligent Mail Barcode, Onecode, USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS, Datamatrix, QR-Code, PDF417;
* Grayscale, RGB, CMYK, Spot Colors and Transparencies; * JPEG and PNG ICC profiles, Grayscale, RGB, CMYK, Spot Colors and Transparencies;
* automatic page header and footer management; * automatic page header and footer management;
* document encryption up to 256 bit and digital signature certifications; * document encryption up to 256 bit and digital signature certifications;
* transactions to UNDO commands; * transactions to UNDO commands;
@ -53,6 +53,8 @@ Main Features:
* move and delete pages; * move and delete pages;
* page compression (requires php-zlib extension); * page compression (requires php-zlib extension);
* XOBject Templates; * XOBject Templates;
* Layers and object visibility.
* PDF/A-1b support.
Installation (full instructions on http: www.tcpdf.org): Installation (full instructions on http: www.tcpdf.org):
1. copy the folder on your Web server 1. copy the folder on your Web server
@ -60,21 +62,18 @@ Installation (full instructions on http: www.tcpdf.org):
3. call the examples/example_001.php page with your browser to see an example 3. call the examples/example_001.php page with your browser to see an example
Source Code Documentation: Source Code Documentation:
doc/index.html http://www.tcpdf.org
http://www.tcpdf.org/doc/
For Additional Documentation: Additional Documentation:
http://www.tcpdf.org http://www.tcpdf.org
License License
Copyright (C) 2002-2011 Nicola Asuni - Tecnick.com S.r.l. Copyright (C) 2002-2012 Nicola Asuni - Tecnick.com LTD
TCPDF is free software: you can redistribute it and/or modify it TCPDF is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation, either version 3 of the published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version. Additionally, License, or (at your option) any later version.
YOU CAN'T REMOVE ANY TCPDF COPYRIGHT NOTICE OR LINK FROM THE
GENERATED PDF DOCUMENTS.
TCPDF is distributed in the hope that it will be useful, but TCPDF is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of WITHOUT ANY WARRANTY; without even the implied warranty of
@ -87,4 +86,12 @@ License
See LICENSE.TXT file for more information. See LICENSE.TXT file for more information.
Third party fonts
This library includes third party font files released with different licenses.
These fonts are not required by TCPDF but have been included as you convenience.
The original TTF font files have been renamed for compatibility with TCPDF and compressed using the gzcompress PHP function that uses the ZLIB data format (.z files).
To get the original distribution archives please check the information on fonts subfolders:
- DejaVu fonts 2.33 (Bitstream) - Copyright, License and other info: fonts/dejavu-fonts-ttf-2.33
- GNU FreeFont (GNU-GPLv3) - Copyright, License and other info: fonts/freefont-20100919
============================================================ ============================================================

View File

@ -1,13 +1,13 @@
<?php <?php
//============================================================+ //============================================================+
// File name : barcodes.php // File name : barcodes.php
// Version : 1.0.017 // Version : 1.0.023
// Begin : 2008-06-09 // Begin : 2008-06-09
// Last Update : 2011-06-01 // Last Update : 2012-01-14
// Author : Nicola Asuni - Tecnick.com S.r.l - Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com // Author : Nicola Asuni - Tecnick.com LTD - Manor Coach House, Church Hill, Aldershot, Hants, GU12 4RQ, UK - www.tecnick.com - info@tecnick.com
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) // License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
// ------------------------------------------------------------------- // -------------------------------------------------------------------
// Copyright (C) 2008-2011 Nicola Asuni - Tecnick.com S.r.l. // Copyright (C) 2008-2012 Nicola Asuni - Tecnick.com LTD
// //
// This file is part of TCPDF software library. // This file is part of TCPDF software library.
// //
@ -37,14 +37,14 @@
* PHP class to creates array representations for common 1D barcodes to be used with TCPDF. * PHP class to creates array representations for common 1D barcodes to be used with TCPDF.
* @package com.tecnick.tcpdf * @package com.tecnick.tcpdf
* @author Nicola Asuni * @author Nicola Asuni
* @version 1.0.017 * @version 1.0.023
*/ */
/** /**
* @class TCPDFBarcode * @class TCPDFBarcode
* PHP class to creates array representations for common 1D barcodes to be used with TCPDF (http://www.tcpdf.org).<br> * PHP class to creates array representations for common 1D barcodes to be used with TCPDF (http://www.tcpdf.org).<br>
* @package com.tecnick.tcpdf * @package com.tecnick.tcpdf
* @version 1.0.017 * @version 1.0.023
* @author Nicola Asuni * @author Nicola Asuni
*/ */
class TCPDFBarcode { class TCPDFBarcode {
@ -91,7 +91,7 @@ class TCPDFBarcode {
* @public * @public
*/ */
public function getBarcodeSVG($w=2, $h=30, $color='black') { public function getBarcodeSVG($w=2, $h=30, $color='black') {
// send XML headers // send headers
$code = $this->getBarcodeSVGcode($w, $h, $color); $code = $this->getBarcodeSVGcode($w, $h, $color);
header('Content-Type: application/svg+xml'); header('Content-Type: application/svg+xml');
header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1 header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
@ -136,6 +136,93 @@ class TCPDFBarcode {
return $svg; return $svg;
} }
/**
* Return an HTML representation of barcode.
* @param $w (int) Width of a single bar element in pixels.
* @param $h (int) Height of a single bar element in pixels.
* @param $color (string) Foreground color for bar elements (background is transparent).
* @return string HTML code.
* @public
*/
public function getBarcodeHTML($w=2, $h=30, $color='black') {
$html = '<div style="font-size:0;position:relative;width:'.($this->barcode_array['maxw'] * $w).'px;height:'.($h).'px;">'."\n";
// print bars
$x = 0;
foreach ($this->barcode_array['bcode'] as $k => $v) {
$bw = round(($v['w'] * $w), 3);
$bh = round(($v['h'] * $h / $this->barcode_array['maxh']), 3);
if ($v['t']) {
$y = round(($v['p'] * $h / $this->barcode_array['maxh']), 3);
// draw a vertical bar
$html .= '<div style="background-color:'.$color.';width:'.$bw.'px;height:'.$bh.'px;position:absolute;left:'.$x.'px;top:'.$y.'px;">&nbsp;</div>'."\n";
}
$x += $bw;
}
$html .= '</div>'."\n";
return $html;
}
/**
* Return a PNG image representation of barcode (requires GD or Imagick library).
* @param $w (int) Width of a single bar element in pixels.
* @param $h (int) Height of a single bar element in pixels.
* @param $color (array) RGB (0-255) foreground color for bar elements (background is transparent).
* @return image or false in case of error.
* @public
*/
public function getBarcodePNG($w=2, $h=30, $color=array(0,0,0)) {
// calculate image size
$width = ($this->barcode_array['maxw'] * $w);
$height = $h;
if (function_exists('imagecreate')) {
// GD library
$imagick = false;
$png = imagecreate($width, $height);
$bgcol = imagecolorallocate($png, 255, 255, 255);
imagecolortransparent($png, $bgcol);
$fgcol = imagecolorallocate($png, $color[0], $color[1], $color[2]);
} elseif (extension_loaded('imagick')) {
$imagick = true;
$bgcol = new imagickpixel('rgb(255,255,255');
$fgcol = new imagickpixel('rgb('.$color[0].','.$color[1].','.$color[2].')');
$png = new Imagick();
$png->newImage($width, $height, 'none', 'png');
$bar = new imagickdraw();
$bar->setfillcolor($fgcol);
} else {
return false;
}
// print bars
$x = 0;
foreach ($this->barcode_array['bcode'] as $k => $v) {
$bw = round(($v['w'] * $w), 3);
$bh = round(($v['h'] * $h / $this->barcode_array['maxh']), 3);
if ($v['t']) {
$y = round(($v['p'] * $h / $this->barcode_array['maxh']), 3);
// draw a vertical bar
if ($imagick) {
$bar->rectangle($x, $y, ($x + $bw), ($y + $bh));
} else {
imagefilledrectangle($png, $x, $y, ($x + $bw), ($y + $bh), $fgcol);
}
}
$x += $bw;
}
// send headers
header('Content-Type: image/png');
header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
header('Pragma: public');
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
if ($imagick) {
$png->drawimage($bar);
echo $png;
} else {
imagepng($png);
imagedestroy($png);
}
}
/** /**
* Set the barcode. * Set the barcode.
* @param $code (string) code to print * @param $code (string) code to print
@ -284,50 +371,50 @@ class TCPDFBarcode {
* @protected * @protected
*/ */
protected function barcode_code39($code, $extended=false, $checksum=false) { protected function barcode_code39($code, $extended=false, $checksum=false) {
$chr['0'] = '111221211'; $chr['0'] = '111331311';
$chr['1'] = '211211112'; $chr['1'] = '311311113';
$chr['2'] = '112211112'; $chr['2'] = '113311113';
$chr['3'] = '212211111'; $chr['3'] = '313311111';
$chr['4'] = '111221112'; $chr['4'] = '111331113';
$chr['5'] = '211221111'; $chr['5'] = '311331111';
$chr['6'] = '112221111'; $chr['6'] = '113331111';
$chr['7'] = '111211212'; $chr['7'] = '111311313';
$chr['8'] = '211211211'; $chr['8'] = '311311311';
$chr['9'] = '112211211'; $chr['9'] = '113311311';
$chr['A'] = '211112112'; $chr['A'] = '311113113';
$chr['B'] = '112112112'; $chr['B'] = '113113113';
$chr['C'] = '212112111'; $chr['C'] = '313113111';
$chr['D'] = '111122112'; $chr['D'] = '111133113';
$chr['E'] = '211122111'; $chr['E'] = '311133111';
$chr['F'] = '112122111'; $chr['F'] = '113133111';
$chr['G'] = '111112212'; $chr['G'] = '111113313';
$chr['H'] = '211112211'; $chr['H'] = '311113311';
$chr['I'] = '112112211'; $chr['I'] = '113113311';
$chr['J'] = '111122211'; $chr['J'] = '111133311';
$chr['K'] = '211111122'; $chr['K'] = '311111133';
$chr['L'] = '112111122'; $chr['L'] = '113111133';
$chr['M'] = '212111121'; $chr['M'] = '313111131';
$chr['N'] = '111121122'; $chr['N'] = '111131133';
$chr['O'] = '211121121'; $chr['O'] = '311131131';
$chr['P'] = '112121121'; $chr['P'] = '113131131';
$chr['Q'] = '111111222'; $chr['Q'] = '111111333';
$chr['R'] = '211111221'; $chr['R'] = '311111331';
$chr['S'] = '112111221'; $chr['S'] = '113111331';
$chr['T'] = '111121221'; $chr['T'] = '111131331';
$chr['U'] = '221111112'; $chr['U'] = '331111113';
$chr['V'] = '122111112'; $chr['V'] = '133111113';
$chr['W'] = '222111111'; $chr['W'] = '333111111';
$chr['X'] = '121121112'; $chr['X'] = '131131113';
$chr['Y'] = '221121111'; $chr['Y'] = '331131111';
$chr['Z'] = '122121111'; $chr['Z'] = '133131111';
$chr['-'] = '121111212'; $chr['-'] = '131111313';
$chr['.'] = '221111211'; $chr['.'] = '331111311';
$chr[' '] = '122111211'; $chr[' '] = '133111311';
$chr['$'] = '121212111'; $chr['$'] = '131313111';
$chr['/'] = '121211121'; $chr['/'] = '131311131';
$chr['+'] = '121112121'; $chr['+'] = '131113131';
$chr['%'] = '111212121'; $chr['%'] = '111313131';
$chr['*'] = '121121211'; $chr['*'] = '131131311';
$code = strtoupper($code); $code = strtoupper($code);
if ($extended) { if ($extended) {
// extended mode // extended mode
@ -362,6 +449,7 @@ class TCPDFBarcode {
$bararray['maxw'] += $w; $bararray['maxw'] += $w;
++$k; ++$k;
} }
// intercharacter gap
$bararray['bcode'][$k] = array('t' => false, 'w' => 1, 'h' => 1, 'p' => 0); $bararray['bcode'][$k] = array('t' => false, 'w' => 1, 'h' => 1, 'p' => 0);
$bararray['maxw'] += 1; $bararray['maxw'] += 1;
++$k; ++$k;

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -0,0 +1,47 @@
<?php
//============================================================+
// File name : bul.php
// Begin : 2004-03-03
// Last Update : 2010-03-22
//
// Description : Language module for TCPDF
// (contains translated texts)
// Arabic
//
// Author: Nicola Asuni
//
// (c) Copyright:
// Nicola Asuni
// Tecnick.com LTD
// Manor Coach House, Church Hill
// Aldershot, Hants, GU12 4RQ
// UK
// www.tecnick.com
// info@tecnick.com
//============================================================+
/**
* TCPDF language file (contains translated texts).
* @package com.tecnick.tcpdf
* @brief TCPDF language file: Bulgarian
* @author Nicola Asuni
* @since 2012-03-22
*/
// Bulgarian
global $l;
$l = Array();
// PAGE META DESCRIPTORS --------------------------------------
$l['a_meta_charset'] = 'UTF-8';
$l['a_meta_dir'] = 'ltr';
$l['a_meta_language'] = 'bg';
// TRANSLATIONS --------------------------------------
$l['w_page'] = 'страница';
//============================================================+
// END OF FILE
//============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -2,7 +2,7 @@
//============================================================+ //============================================================+
// File name : ces.php // File name : ces.php
// Begin : 2010-10-26 // Begin : 2010-10-26
// Last Update : 2010-10-26 // Last Update : 2010-11-22
// //
// Description : Language module for TCPDF // Description : Language module for TCPDF
// (contains translated texts) // (contains translated texts)
@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+
@ -40,7 +40,7 @@ $l['a_meta_dir'] = 'ltr';
$l['a_meta_language'] = 'cs'; $l['a_meta_language'] = 'cs';
// TRANSLATIONS -------------------------------------- // TRANSLATIONS --------------------------------------
$l['w_page'] = 'stránky'; $l['w_page'] = 'stránka';
//============================================================+ //============================================================+
// END OF FILE // END OF FILE

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -0,0 +1,47 @@
<?php
//============================================================+
// File name : jpn.php
// Begin : 2011-01-24
// Last Update : 2011-01-24
//
// Description : Language module for TCPDF
// (contains translated texts)
// Japanese
//
// Author: Nicola Asuni - Translation by redcocker
//
// (c) Copyright:
// Nicola Asuni
// Tecnick.com LTD
// Manor Coach House, Church Hill
// Aldershot, Hants, GU12 4RQ
// UK
// www.tecnick.com
// info@tecnick.com
//============================================================+
/**
* TCPDF language file (contains translated texts).
* @package com.tecnick.tcpdf
* @brief TCPDF language file: Japanese
* @author Nicola Asuni - Translation by redcocker
* @since 2012-01-24
*/
// Japanese
global $l;
$l = Array();
// PAGE META DESCRIPTORS --------------------------------------
$l['a_meta_charset'] = 'UTF-8';
$l['a_meta_dir'] = 'ltr';
$l['a_meta_language'] = 'ja';
// TRANSLATIONS --------------------------------------
$l['w_page'] = 'ページ';
//============================================================+
// END OF FILE
//============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

View File

@ -12,10 +12,10 @@
// //
// (c) Copyright: // (c) Copyright:
// Nicola Asuni // Nicola Asuni
// Tecnick.com s.r.l. // Tecnick.com LTD
// Via Della Pace, 11 // Manor Coach House, Church Hill
// 09044 Quartucciu (CA) // Aldershot, Hants, GU12 4RQ
// ITALY // UK
// www.tecnick.com // www.tecnick.com
// info@tecnick.com // info@tecnick.com
//============================================================+ //============================================================+

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