Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into
develop Conflicts: htdocs/install/mysql/migration/3.8.0-3.9.0.sql
This commit is contained in:
commit
6cb993c0b4
@ -130,6 +130,8 @@ script:
|
|||||||
- php upgrade.php 3.7.0 3.8.0 ignoredbversion > upgrade370380.log
|
- php upgrade.php 3.7.0 3.8.0 ignoredbversion > upgrade370380.log
|
||||||
# - cat upgrade370380.log
|
# - cat upgrade370380.log
|
||||||
- php upgrade2.php 3.7.0 3.8.0 ignoredbversion > upgrade370380-2.log
|
- php upgrade2.php 3.7.0 3.8.0 ignoredbversion > upgrade370380-2.log
|
||||||
|
- php upgrade.php 3.8.0 3.9.0 ignoredbversion > upgrade380390.log
|
||||||
|
- php upgrade2.php 3.8.0 3.9.0 ignoredbversion > upgrade380390-2.log
|
||||||
# - cat upgrade370380-2.log
|
# - cat upgrade370380-2.log
|
||||||
- cd ../..
|
- cd ../..
|
||||||
- date
|
- date
|
||||||
|
|||||||
11
COPYRIGHT
11
COPYRIGHT
@ -13,8 +13,9 @@ Component Version License GPL Compatible
|
|||||||
-------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------
|
||||||
PHP libraries:
|
PHP libraries:
|
||||||
AdoDb-Date 0.33 Modified BSD License Yes Date convertion (not into rpm package)
|
AdoDb-Date 0.33 Modified BSD License Yes Date convertion (not into rpm package)
|
||||||
ChromePHP 4.3.3 Apache Software License 2.0 Yes Return server log to chrome browser console
|
ChromePHP 4.1.0 Apache Software License 2.0 Yes Return server log to chrome browser console
|
||||||
CKEditor 4.3.3 LGPL-2.1+ Yes Editor WYSIWYG
|
CKEditor 4.3.3 LGPL-2.1+ Yes Editor WYSIWYG
|
||||||
|
EvalMath 1.0 BSD Yes Safe math expressions evaluation
|
||||||
FPDI 1.5.2 Apache Software License 2.0 Yes PDF templates management
|
FPDI 1.5.2 Apache Software License 2.0 Yes PDF templates management
|
||||||
GeoIP 1.4 LGPL-2.1+ Yes Sample code to make geoip convert (not into deb package)
|
GeoIP 1.4 LGPL-2.1+ Yes Sample code to make geoip convert (not into deb package)
|
||||||
Mobiledetect 2.8.3 MIT License Yes Detect mobile devices browsers
|
Mobiledetect 2.8.3 MIT License Yes Detect mobile devices browsers
|
||||||
@ -22,11 +23,12 @@ NuSoap 0.9.5 LGPL 2.1+ Yes
|
|||||||
PEAR Mail_MIME 1.8.9 BSD Yes NuSoap dependency
|
PEAR Mail_MIME 1.8.9 BSD Yes NuSoap dependency
|
||||||
odtPHP 1.0.1 GPL-2+ b Yes Library to build/edit ODT files
|
odtPHP 1.0.1 GPL-2+ b Yes Library to build/edit ODT files
|
||||||
PHPExcel 1.8.0 LGPL-2.1+ Yes Read/Write XLS files, read ODS files
|
PHPExcel 1.8.0 LGPL-2.1+ Yes Read/Write XLS files, read ODS files
|
||||||
php-iban 1.4.6 LGPL-3+ Yes Parse and validate IBAN (and IIBAN) bank account information in PHP
|
php-iban 1.4.7 LGPL-3+ Yes Parse and validate IBAN (and IIBAN) bank account information in PHP
|
||||||
PHPPrintIPP 1.3 GPL-2+ Yes Library to send print IPP requests
|
PHPPrintIPP 1.3 GPL-2+ Yes Library to send print IPP requests
|
||||||
|
Raven-php 0.12.1 MIT License Yes Used for server-side error logging with Sentry logger
|
||||||
Restler 3.0 LGPL-3+ Yes Library to develop REST Web services
|
Restler 3.0 LGPL-3+ Yes Library to develop REST Web services
|
||||||
TCPDF 6.2.6 LGPL-3+ Yes PDF generation
|
TCPDF 6.2.6 LGPL-3+ Yes PDF generation
|
||||||
EvalMath 1.0 BSD Yes Safe math expressions evaluation
|
TCPDI 1.0.0 LGPL-3+ / Apache 2.0 Yes FPDI replacement
|
||||||
|
|
||||||
JS libraries:
|
JS libraries:
|
||||||
jQuery 1.11.3 MIT License Yes JS library
|
jQuery 1.11.3 MIT License Yes JS library
|
||||||
@ -49,7 +51,8 @@ jQuery TableDnD 0.6 GPL and MIT License Yes
|
|||||||
jQuery Timepicker 1.1.0 GPL and MIT License Yes JS library Timepicker addon for Datepicker
|
jQuery Timepicker 1.1.0 GPL and MIT License Yes JS library Timepicker addon for Datepicker
|
||||||
jQuery Tiptip 1.3 GPL and MIT License Yes JS library for tooltips
|
jQuery Tiptip 1.3 GPL and MIT License Yes JS library for tooltips
|
||||||
jsGantt 1.2 BSD License Yes JS library (to build Gantt reports)
|
jsGantt 1.2 BSD License Yes JS library (to build Gantt reports)
|
||||||
JsTimezoneDetect 1.0.4 MIT Licence Yes JS library to detect user timezone
|
JsTimezoneDetect 1.0.4 MIT License Yes JS library to detect user timezone
|
||||||
|
Raven.js 1.1.19 MIT License Yes Used for client-side error logging with Sentry logger
|
||||||
|
|
||||||
For licenses compatibility informations:
|
For licenses compatibility informations:
|
||||||
http://www.fsf.org/licensing/licenses/index_html
|
http://www.fsf.org/licensing/licenses/index_html
|
||||||
|
|||||||
@ -224,7 +224,7 @@ Dolibarr better:
|
|||||||
hook afterLogin or afterLoginFailed instead.
|
hook afterLogin or afterLoginFailed instead.
|
||||||
- The trigger USER_CREATE_FROM_CONTACT has been replace with USER_CREATE and property context is now filled
|
- The trigger USER_CREATE_FROM_CONTACT has been replace with USER_CREATE and property context is now filled
|
||||||
to make difference between creation from contact or not.
|
to make difference between creation from contact or not.
|
||||||
|
- Function get_exdir require now 6 parameters. This is to prepare a future feature.
|
||||||
|
|
||||||
***** ChangeLog for 3.7.2 compared to 3.7.1 *****
|
***** ChangeLog for 3.7.2 compared to 3.7.1 *****
|
||||||
FIX [ bug #2855 ] Wrong translation key in localtax report page
|
FIX [ bug #2855 ] Wrong translation key in localtax report page
|
||||||
@ -238,6 +238,13 @@ FIX: Not showing delivery date on rouget pdf
|
|||||||
FIX: Not showing task extrafields when creating from left menu
|
FIX: Not showing task extrafields when creating from left menu
|
||||||
FIX [ bug #3288 ] Tasks box is not properly drawn
|
FIX [ bug #3288 ] Tasks box is not properly drawn
|
||||||
FIX [ bug #3211 ] Outstading bill amount of a client showed wrong amounts
|
FIX [ bug #3211 ] Outstading bill amount of a client showed wrong amounts
|
||||||
|
FIX [ bug #3321 ] Users with certain permissions were shown a "forbidden access" page even if they had the rights
|
||||||
|
FIX [ bug #3426 ] Unable to create an invoice from a contract with extrafields
|
||||||
|
FIX [ bug #3431 ] Invoice bank account is not respected
|
||||||
|
FIX [ bug #3432 ] Spaces should be removed from IBAN when formatting it
|
||||||
|
FIX [ bug #3358 ] Tasks box does not work with PostgreSQL
|
||||||
|
FIX [ bug #3383 ] Company name is overlapped with company direction in PDF models
|
||||||
|
FIX [ bug #3460 ] Bank account is not saved when creating a customer invoice and facing an error message
|
||||||
|
|
||||||
NEW: Created new ContratLigne::insert function
|
NEW: Created new ContratLigne::insert function
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- Script build for hudson CI -->
|
||||||
<project name="dolibarr" default="hudson" basedir=".">
|
<project name="dolibarr" default="hudson" basedir=".">
|
||||||
fdfds
|
|
||||||
<!-- Exclude/ignore paths -->
|
<!-- Exclude/ignore paths -->
|
||||||
<property name="ignorepaths" value="${basedir}/htdocs/conf,${basedir}/htdocs/core/filemanagerdol,${basedir}/htdocs/includes" />
|
<property name="ignorepaths" value="${basedir}/htdocs/conf,${basedir}/htdocs/core/filemanagerdol,${basedir}/htdocs/includes" />
|
||||||
<property name="ignoreregexp" value="**/PEAR/*,**/NET/*,**/HTTP/*,**/zendgdata/*,**/reportico/*" />
|
<property name="ignoreregexp" value="**/PEAR/*,**/NET/*,**/HTTP/*,**/zendgdata/*,**/reportico/*" />
|
||||||
|
|||||||
@ -117,7 +117,7 @@ http://bugs.debian.org/package
|
|||||||
severity 123 xxx
|
severity 123 xxx
|
||||||
|
|
||||||
|
|
||||||
##### Update but tracker system
|
##### Update bug tracker system
|
||||||
|
|
||||||
To set status of a bug to "pending"
|
To set status of a bug to "pending"
|
||||||
> bts --smtp-host=yoursmtpserver tag 999999 +pending
|
> bts --smtp-host=yoursmtpserver tag 999999 +pending
|
||||||
@ -195,7 +195,7 @@ If script fails with error Bad certificate, you can set "export PERL_LWP_SSL_VER
|
|||||||
* Some files are removed from archive by the get-orig-source.sh
|
* Some files are removed from archive by the get-orig-source.sh
|
||||||
|
|
||||||
* Staying into git root directory, run
|
* Staying into git root directory, run
|
||||||
> git-import-orig -vv ../tcpdf_x.y.z+dfsg.orig.tar.xz
|
> git-import-orig -vv ../tcpdf_x.y.z+dfsg.orig.tar.xz --debian-branch=[master|jessie] --upstream-branch=[upstream|upstream-3.5.x]
|
||||||
|
|
||||||
Note: If there was errors solved manually, you may need to make a git commit
|
Note: If there was errors solved manually, you may need to make a git commit
|
||||||
|
|
||||||
@ -208,11 +208,15 @@ Warning: Date must have format reported by "date -R"
|
|||||||
Warning: Name and email must match value into debian/control file (Entry added here is used by next step).
|
Warning: Name and email must match value into debian/control file (Entry added here is used by next step).
|
||||||
|
|
||||||
* We try to build package
|
* We try to build package
|
||||||
> rm -fr ../build-area; git-buildpackage -us -uc
|
> rm -fr ../build-area;
|
||||||
|
> git-buildpackage -us -uc --git-debian-branch=[master|jessie] --git-upstream-branch=[upstream|upstream-3.5.x]
|
||||||
|
|
||||||
|
Note: To build an old version, do: git checkout oldtagname -b newbranchname; git-buildpackage -us -uc --git-debian-branch=newbranchname --git-upstream-branch=[upstream|upstream-3.5.x]
|
||||||
Note: You can use git-buildpackage -us -uc --git-ignore-new if you want to test build with uncommited file
|
Note: You can use git-buildpackage -us -uc --git-ignore-new if you want to test build with uncommited file
|
||||||
Note: You can use git-buildpackage -us -uc -d if you want to test build when dependencies does not match
|
Note: You can use git-buildpackage -us -uc -d if you want to test build when dependencies does not match
|
||||||
Note: Package is built into directory ../build-area
|
Note: Package is built into directory ../build-area
|
||||||
|
Note: To compare 2 packages: debdiff package1.dsc package2.dsc
|
||||||
|
|
||||||
|
|
||||||
* If package .deb is ok:
|
* If package .deb is ok:
|
||||||
Note: If there was errors managed manually, you may need to make a git commit but do not use option "amend" previous commit
|
Note: If there was errors managed manually, you may need to make a git commit but do not use option "amend" previous commit
|
||||||
@ -220,7 +224,7 @@ Note: If there was errors managed manually, you may need to make a git commit bu
|
|||||||
|
|
||||||
* If ok, you can tag.
|
* If ok, you can tag.
|
||||||
> Edit debian/changelog to replace "UNRELEASED" into "unstable", then push
|
> Edit debian/changelog to replace "UNRELEASED" into "unstable", then push
|
||||||
> git-buildpackage --git-tag-only --git-retag
|
> git-buildpackage --git-tag-only --git-retag --git-debian-branch=[master|jessie] --git-upstream-branch=[upstream|upstream-3.5.x]
|
||||||
> git push --tags
|
> git push --tags
|
||||||
|
|
||||||
* Compilation is then done by a debian developer and sent
|
* Compilation is then done by a debian developer and sent
|
||||||
@ -249,7 +253,7 @@ from git clone dir and make link to git.
|
|||||||
* If local branch upstream and pristine-tar does not exists, create it
|
* If local branch upstream and pristine-tar does not exists, create it
|
||||||
from origin/upstream and origin/pristine.
|
from origin/upstream and origin/pristine.
|
||||||
|
|
||||||
* If new upstream is available onto sourceforge, launch:
|
* When new upstream is available onto sourceforge, launch:
|
||||||
> debian/get-orig-source.sh
|
> debian/get-orig-source.sh
|
||||||
If script fails with error Bad certificate, you can set "export PERL_LWP_SSL_VERIFY_HOSTNAME=0" to solve this.
|
If script fails with error Bad certificate, you can set "export PERL_LWP_SSL_VERIFY_HOSTNAME=0" to solve this.
|
||||||
|
|
||||||
@ -263,7 +267,7 @@ dolibarr-x.y.z+dfsgw.tgz
|
|||||||
(x.y.z = version, w start from 1 and is increased for each new git-import-orig already done)
|
(x.y.z = version, w start from 1 and is increased for each new git-import-orig already done)
|
||||||
|
|
||||||
* Staying into git root directory, run
|
* Staying into git root directory, run
|
||||||
> git-import-orig -vv ../dolibarr-x.y.z+dfsgw.tgz
|
> git-import-orig -vv ../dolibarr-x.y.z+dfsgw.tgz --debian-branch=[master|jessie] --upstream-branch=[upstream|upstream-3.5.x]
|
||||||
and enter version when requested with format
|
and enter version when requested with format
|
||||||
x.y.z+dfsgw
|
x.y.z+dfsgw
|
||||||
(x.y.z = version, w start from 1 and is increased for each new import)
|
(x.y.z = version, w start from 1 and is increased for each new import)
|
||||||
@ -273,8 +277,8 @@ Note: If there was errors solved manually after get-orig-sources.sh, you may nee
|
|||||||
* Fix debian/* files used to build package.
|
* Fix debian/* files used to build package.
|
||||||
Add an entry into debian/changelog
|
Add an entry into debian/changelog
|
||||||
> dch -v x.y.z+dfsgw-v "My comment" will add entry.
|
> dch -v x.y.z+dfsgw-v "My comment" will add entry.
|
||||||
For example: dch -v x.y.z+dfsgw-1 "New upstream release." for a new version (x.y.z = version, w start from 1 and increaed for each new import)
|
For example: dch -v x.y.z+dfsgw-1 "New upstream release." for a new version (x.y.z = version, w start from 1 and increased for each new import)
|
||||||
Then modify changelog to replace "version" or "unstable" with "UNRELEASED".
|
Then check/modify changelog to replace "version" or "unstable" with "UNRELEASED".
|
||||||
Then check/modify also the user/date signature:
|
Then check/modify also the user/date signature:
|
||||||
- Date must have format reported by "date -R"
|
- Date must have format reported by "date -R"
|
||||||
- Name and email must match value into debian/control file (Entry added here is used by next step).
|
- Name and email must match value into debian/control file (Entry added here is used by next step).
|
||||||
@ -289,21 +293,24 @@ To update dolibarr debian package when only files into debian has changed
|
|||||||
Once files has been prepared, it's time to test:
|
Once files has been prepared, it's time to test:
|
||||||
|
|
||||||
* Try to build package
|
* Try to build package
|
||||||
> rm -fr ../build-area; git-buildpackage -us -uc
|
> rm -fr ../build-area;
|
||||||
|
> git-buildpackage -us -uc --git-debian-branch=[master|jessie] --git-upstream-branch=[upstream|upstream-3.5.x]
|
||||||
|
|
||||||
|
Note: To build an old version, do: git checkout oldtagname -b newbranchname; git-buildpackage -us -uc --git-debian-branch=newbranchname --git-upstream-branch=[upstream|upstream-3.5.x]
|
||||||
Note: You can use git-buildpackage -us -uc --git-ignore-new if you want to test build with uncommited file
|
Note: You can use git-buildpackage -us -uc --git-ignore-new if you want to test build with uncommited file
|
||||||
Note: You can use git-buildpackage -us -uc -d if you want to test build when dependencies does not match
|
Note: You can use git-buildpackage -us -uc -d if you want to test build when dependencies does not match
|
||||||
Note: Package is built into directory ../build-area
|
Note: Package is built into directory ../build-area
|
||||||
|
Note: To compare 2 packages: debdiff package1.dsc package2.dsc
|
||||||
|
|
||||||
* Test package (see dedicated chapter to test it with debian unstable env)
|
* Test package (see dedicated chapter to test it with debian unstable env)
|
||||||
|
|
||||||
* If package .deb is ok:
|
* If package .deb is ok:
|
||||||
Note: If there was errors managed manually, you may need to make a git commit but do not use option "amend" previous commit
|
Note: If there was errors managed manually, you may need to make a git commit but do not use option "amend" previous commit
|
||||||
> git push --all ou git push origin --all
|
> git push --all
|
||||||
|
|
||||||
* If ok, you can tag.
|
* If ok, you can tag.
|
||||||
> Edit debian/changelog to replace "UNRELEASED" into "unstable", then push
|
> Edit debian/changelog to replace "UNRELEASED" into "unstable", then push
|
||||||
> git-buildpackage --git-tag-only --git-retag
|
> git-buildpackage --git-tag-only --git-retag --git-debian-branch=[master|jessie] --git-upstream-branch=[upstream|upstream-3.5.x]
|
||||||
> git push --tags
|
> git push --tags
|
||||||
|
|
||||||
|
|
||||||
@ -321,15 +328,42 @@ http://packages.qa.debian.org
|
|||||||
|
|
||||||
|
|
||||||
##### Send an unblock request
|
##### Send an unblock request
|
||||||
|
|
||||||
Use this to move from unstable to testing.
|
Use this to move from unstable to testing.
|
||||||
reportbug -B debian
|
|
||||||
|
reportbug -B debian --smtphost=smtp.gmail.com:587 --smtpuser=xxxx --smtppasswd=yyyy --tls
|
||||||
Choose package "release.debian.org"
|
Choose package "release.debian.org"
|
||||||
Then "unblock"
|
Then "unblock"
|
||||||
Then name of package "dolibarr"
|
Then name of package "dolibarr"
|
||||||
Fill message, for example:
|
Fill message, for example:
|
||||||
"Please unblock package dolibarr
|
"Please unblock package dolibarr
|
||||||
A security error CVE-2014-7137 was reported and is fixed into package 3.5.5.
|
A security error CVE-2015-3935 was reported and is fixed into package 3.5.7.
|
||||||
Note that package 3.5.5 was prepared before the CVE was reported and include other fixes, but they are all related to stability or security (other se$
|
Note that package 3.5.7 contains not only fixed for bugs reported to debian. It includes other fixes, but they are all related to stability or security,
|
||||||
|
so it is a better solution to validate this maintenance release than applying a patch of the only CVE-2015-3935.
|
||||||
After discussion with ..., it appears that security holes are enough to request this unblock request."
|
After discussion with ..., it appears that security holes are enough to request this unblock request."
|
||||||
|
|
||||||
|
|
||||||
|
Use this to request an update of a stable package
|
||||||
|
|
||||||
|
reportbug -B debian --smtphost=smtp.gmail.com:587 --smtpuser=xxxx --smtppasswd=yyyy --tls
|
||||||
|
Choose package "release.debian.org"
|
||||||
|
Then "unblock"
|
||||||
|
Then name of package "dolibarr"
|
||||||
|
Fill message, for example:
|
||||||
|
"
|
||||||
|
A security error CVE-2015-3935 was reported for Dolibarr ERP CRM package. This bug is fixed into official package 3.5.7 of Dolibarr.
|
||||||
|
Package 3.5.7 is a maintenance release compared to 3.5.5 and contains only fixes. But not only bugs reported to debian, it includes also other fixes (but they are all related to stability or security).
|
||||||
|
I think it is a better solution to validate this maintenance release based on the new upstream version of Dolibarr than applying a patch of the only CVE-2015-3935.
|
||||||
|
Pro are:
|
||||||
|
- It fixes all debian reported bugs (including security one)
|
||||||
|
- It fixes also stability bugs
|
||||||
|
- Patches were already tested because deployed and used by several thousands of users.
|
||||||
|
- It is easier for package maintener to include this official set of fixes than applying one patch after one patch for each debian report or backported each patch into a dedicated version.
|
||||||
|
- Debian maintenance version matches with official project maintenance version (better when all fixes are not related to the way the software is packaged)
|
||||||
|
Cons are:
|
||||||
|
- The patch include more than the only one security reported fxes
|
||||||
|
|
||||||
|
So I just need to know if it's ok to push such a version 3.5.7 (fixes for 3.5.* branch) instead of only one fix for only the few (the only) reported debian bugs,
|
||||||
|
since it provides more stability and is or me a more secured process.
|
||||||
|
"
|
||||||
|
|
||||||
|
|||||||
@ -6,27 +6,39 @@
|
|||||||
"homepage": "http://www.dolibarr.org",
|
"homepage": "http://www.dolibarr.org",
|
||||||
"license": "GPL-3.0+",
|
"license": "GPL-3.0+",
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://doliforge.org/projects/dolibarr",
|
"issues": "https://github.com/Dolibarr/dolibarr/issues",
|
||||||
"forum": "http://www.dolibarr.org/forum",
|
"forum": "http://www.dolibarr.org/forum",
|
||||||
"wiki": "http://wiki.dolibarr.org"
|
"wiki": "http://wiki.dolibarr.org",
|
||||||
|
"irc": "irc://chat.freenode.net/dolibarr",
|
||||||
|
"source": "https://github.com/Dolibarr/dolibarr"
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=5.3.0",
|
"php": ">=5.3.0",
|
||||||
"ext-gd": "*",
|
|
||||||
"ext-curl": "*",
|
"ext-curl": "*",
|
||||||
"restler/framework": "3.0.*"
|
"ccampbell/chromephp": "^4.1",
|
||||||
|
"ckeditor/ckeditor": "4.3.3",
|
||||||
|
"mobiledetect/mobiledetectlib": "2.8.3",
|
||||||
|
"phpoffice/phpexcel": "1.8.0",
|
||||||
|
"restler/framework": "^3.0",
|
||||||
|
"tecnick.com/tcpdf": "6.2.6",
|
||||||
|
"raven/raven": "^0.12.0"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"ext-mysqli": "*",
|
"ext-mysqlnd": "To use with MySQL or MariaDB",
|
||||||
"ext-pgsql": "*",
|
"ext-mysqli": "To use with MySQL or MariaDB",
|
||||||
"ext-mssql": "*",
|
"ext-pgsql": "To use with PostgreSQL",
|
||||||
"ext-pdo_sqlite": "*",
|
"ext-mssql": "To use with MSSQL (experimental)",
|
||||||
"ext-imagick": "*",
|
"ext-pdo_sqlite": "To use with SQLite (experimental)",
|
||||||
"ext-mcrypt": "*",
|
"ext-gd": "Image manipulation (Required but maybe built-in PHP)",
|
||||||
"ext-openssl": "*",
|
"ext-imagick": "Image manipulation (TCPDF)",
|
||||||
"ext-mbstring": "*",
|
"ext-mcrypt": "(Required but maybe built-in PHP)",
|
||||||
"ext-soap": "*",
|
"ext-openssl": "Secure connections (Emails, SOAP…)",
|
||||||
"ext-zip": "*",
|
"ext-mbstring": "Handle non UTF-8 databases",
|
||||||
"ext-xml": "*"
|
"ext-soap": "Native SOAP",
|
||||||
|
"ext-zip": "ODT and Excel support",
|
||||||
|
"ext-xml": "Excel support"
|
||||||
|
},
|
||||||
|
"config": {
|
||||||
|
"vendor-dir": "htdocs/includes"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
405
composer.lock
generated
Normal file
405
composer.lock
generated
Normal file
@ -0,0 +1,405 @@
|
|||||||
|
{
|
||||||
|
"_readme": [
|
||||||
|
"This file locks the dependencies of your project to a known state",
|
||||||
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||||
|
"This file is @generated automatically"
|
||||||
|
],
|
||||||
|
"hash": "2ab34d0ff69b48500c20621330c1bfd7",
|
||||||
|
"packages": [
|
||||||
|
{
|
||||||
|
"name": "ccampbell/chromephp",
|
||||||
|
"version": "4.1.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/ccampbell/chromephp.git",
|
||||||
|
"reference": "c3c297615d48ae5b2a86a82311152d1ed095fcef"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/ccampbell/chromephp/zipball/c3c297615d48ae5b2a86a82311152d1ed095fcef",
|
||||||
|
"reference": "c3c297615d48ae5b2a86a82311152d1ed095fcef",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.0.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-0": {
|
||||||
|
"ChromePhp": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"Apache-2.0"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Craig Campbell",
|
||||||
|
"email": "iamcraigcampbell@gmail.com",
|
||||||
|
"homepage": "http://craig.is",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Log variables to the Chrome console (via Chrome Logger Google Chrome extension).",
|
||||||
|
"homepage": "http://github.com/ccampbell/chromephp",
|
||||||
|
"keywords": [
|
||||||
|
"log",
|
||||||
|
"logging"
|
||||||
|
],
|
||||||
|
"time": "2013-06-26 03:44:33"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ckeditor/ckeditor",
|
||||||
|
"version": "4.3.3",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/ckeditor/ckeditor-releases.git",
|
||||||
|
"reference": "0068dd540ce8bf1815abb7b5455c55354bc56334"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/ckeditor/ckeditor-releases/zipball/0068dd540ce8bf1815abb7b5455c55354bc56334",
|
||||||
|
"reference": "0068dd540ce8bf1815abb7b5455c55354bc56334",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"GPL-2.0+",
|
||||||
|
"LGPL-2.1+",
|
||||||
|
"MPL-1.1+"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "CKSource - Frederico Knabben",
|
||||||
|
"homepage": "http://cksource.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "JavaScript WYSIWYG web text editor.",
|
||||||
|
"homepage": "http://ckeditor.com",
|
||||||
|
"keywords": [
|
||||||
|
"CKEditor",
|
||||||
|
"editor",
|
||||||
|
"fckeditor",
|
||||||
|
"html",
|
||||||
|
"javascript",
|
||||||
|
"richtext",
|
||||||
|
"text",
|
||||||
|
"wysiwyg"
|
||||||
|
],
|
||||||
|
"time": "2014-02-26 15:34:37"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mobiledetect/mobiledetectlib",
|
||||||
|
"version": "2.8.3",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/serbanghita/Mobile-Detect.git",
|
||||||
|
"reference": "f5753e4b90daffe50c902e99df5ce3c58fca3fee"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/f5753e4b90daffe50c902e99df5ce3c58fca3fee",
|
||||||
|
"reference": "f5753e4b90daffe50c902e99df5ce3c58fca3fee",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.0.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "*"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"Mobile_Detect.php"
|
||||||
|
],
|
||||||
|
"psr-0": {
|
||||||
|
"Detection": "namespaced/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Serban Ghita",
|
||||||
|
"email": "serbanghita@gmail.com",
|
||||||
|
"homepage": "http://ghita.org",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Mobile_Detect is a lightweight PHP class for detecting mobile devices. It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.",
|
||||||
|
"homepage": "https://github.com/serbanghita/Mobile-Detect",
|
||||||
|
"keywords": [
|
||||||
|
"detect mobile devices",
|
||||||
|
"mobile",
|
||||||
|
"mobile detect",
|
||||||
|
"mobile detector",
|
||||||
|
"php mobile detect"
|
||||||
|
],
|
||||||
|
"time": "2014-07-10 20:00:25"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "phpoffice/phpexcel",
|
||||||
|
"version": "1.8.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/PHPOffice/PHPExcel.git",
|
||||||
|
"reference": "e69a5e4d0ffa7fb6f171859e0a04346e580df30b"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/PHPOffice/PHPExcel/zipball/e69a5e4d0ffa7fb6f171859e0a04346e580df30b",
|
||||||
|
"reference": "e69a5e4d0ffa7fb6f171859e0a04346e580df30b",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-xml": "*",
|
||||||
|
"ext-xmlwriter": "*",
|
||||||
|
"php": ">=5.2.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-0": {
|
||||||
|
"PHPExcel": "Classes/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"LGPL"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Maarten Balliauw",
|
||||||
|
"homepage": "http://blog.maartenballiauw.be"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Mark Baker"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Franck Lefevre",
|
||||||
|
"homepage": "http://blog.rootslabs.net"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Erik Tilt"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "PHPExcel - OpenXML - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine",
|
||||||
|
"homepage": "http://phpexcel.codeplex.com",
|
||||||
|
"keywords": [
|
||||||
|
"OpenXML",
|
||||||
|
"excel",
|
||||||
|
"php",
|
||||||
|
"spreadsheet",
|
||||||
|
"xls",
|
||||||
|
"xlsx"
|
||||||
|
],
|
||||||
|
"time": "2014-03-02 15:22:49"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "raven/raven",
|
||||||
|
"version": "0.12.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/getsentry/raven-php.git",
|
||||||
|
"reference": "b325984c792ff89f985b73da9a3ad8ed8b520bca"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/getsentry/raven-php/zipball/b325984c792ff89f985b73da9a3ad8ed8b520bca",
|
||||||
|
"reference": "b325984c792ff89f985b73da9a3ad8ed8b520bca",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-curl": "*",
|
||||||
|
"php": ">=5.2.4"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"fabpot/php-cs-fixer": "^1.8.0",
|
||||||
|
"phpunit/phpunit": "^4.6.6"
|
||||||
|
},
|
||||||
|
"bin": [
|
||||||
|
"bin/raven"
|
||||||
|
],
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "0.12.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-0": {
|
||||||
|
"Raven_": "lib/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "David Cramer",
|
||||||
|
"email": "dcramer@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "A PHP client for Sentry (http://getsentry.com)",
|
||||||
|
"homepage": "http://getsentry.com",
|
||||||
|
"keywords": [
|
||||||
|
"log",
|
||||||
|
"logging"
|
||||||
|
],
|
||||||
|
"time": "2015-08-25 22:38:46"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "restler/framework",
|
||||||
|
"version": "3.0.0",
|
||||||
|
"target-dir": "Luracast/Restler",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/Luracast/Restler-Framework.git",
|
||||||
|
"reference": "6ee10b3e5dbc6376916fed55ec2340a37cce436b"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/Luracast/Restler-Framework/zipball/6ee10b3e5dbc6376916fed55ec2340a37cce436b",
|
||||||
|
"reference": "6ee10b3e5dbc6376916fed55ec2340a37cce436b",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.0"
|
||||||
|
},
|
||||||
|
"replace": {
|
||||||
|
"luracast/restler": "3.*"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"bshaffer/oauth2-server-php": "v1.0",
|
||||||
|
"luracast/explorer": "*",
|
||||||
|
"mustache/mustache": "dev-master",
|
||||||
|
"rodneyrehm/plist": "dev-master",
|
||||||
|
"symfony/yaml": "*",
|
||||||
|
"twig/twig": "v1.13.0",
|
||||||
|
"zendframework/zendamf": "dev-master"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"bshaffer/oauth2-server-php": "Restler can provide OAuth2 authentication using this library (see require-dev for details)",
|
||||||
|
"luracast/explorer": "Restler's very own api explorer (see require-dev for details)",
|
||||||
|
"mustache/mustache": "Restler can render HtmlView using mustache/handlebar templates (see require-dev for details)",
|
||||||
|
"rodneyrehm/plist": "Restler supports tho Apple plist xml format (see require-dev for details)",
|
||||||
|
"symfony/yaml": "Restler can produce content in yaml format as well (see require-dev for details)",
|
||||||
|
"twig/twig": "Restler can render HtmlView using twig templates (see require-dev for details)",
|
||||||
|
"zendframework/zendamf": "Support for the amf document format (see require-dev for details)"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"master": "v3.0.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-0": {
|
||||||
|
"Luracast\\Restler": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"LGPL-2.1"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Luracast",
|
||||||
|
"email": "arul@luracast.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Nick nickl- Lombard",
|
||||||
|
"email": "github@jigsoft.co.za"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Just the Restler Framework without the tests and examples",
|
||||||
|
"homepage": "http://luracast.com/products/restler/",
|
||||||
|
"keywords": [
|
||||||
|
"api",
|
||||||
|
"framework",
|
||||||
|
"rest",
|
||||||
|
"server"
|
||||||
|
],
|
||||||
|
"time": "2015-08-04 07:52:49"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "tecnick.com/tcpdf",
|
||||||
|
"version": "6.2.6",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/tecnickcom/TCPDF.git",
|
||||||
|
"reference": "a2e8f5b505a7a14a4ed960313c4baf699fd1f4bb"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/a2e8f5b505a7a14a4ed960313c4baf699fd1f4bb",
|
||||||
|
"reference": "a2e8f5b505a7a14a4ed960313c4baf699fd1f4bb",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"fonts",
|
||||||
|
"config",
|
||||||
|
"include",
|
||||||
|
"tcpdf.php",
|
||||||
|
"tcpdf_parser.php",
|
||||||
|
"tcpdf_import.php",
|
||||||
|
"tcpdf_barcodes_1d.php",
|
||||||
|
"tcpdf_barcodes_2d.php",
|
||||||
|
"include/tcpdf_colors.php",
|
||||||
|
"include/tcpdf_filters.php",
|
||||||
|
"include/tcpdf_font_data.php",
|
||||||
|
"include/tcpdf_fonts.php",
|
||||||
|
"include/tcpdf_images.php",
|
||||||
|
"include/tcpdf_static.php",
|
||||||
|
"include/barcodes/datamatrix.php",
|
||||||
|
"include/barcodes/pdf417.php",
|
||||||
|
"include/barcodes/qrcode.php"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"LGPLv3"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Nicola Asuni",
|
||||||
|
"email": "info@tecnick.com",
|
||||||
|
"homepage": "http://nicolaasuni.tecnick.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "TCPDF is a PHP class for generating PDF documents and barcodes.",
|
||||||
|
"homepage": "http://www.tcpdf.org/",
|
||||||
|
"keywords": [
|
||||||
|
"PDFD32000-2008",
|
||||||
|
"TCPDF",
|
||||||
|
"barcodes",
|
||||||
|
"datamatrix",
|
||||||
|
"pdf",
|
||||||
|
"pdf417",
|
||||||
|
"qrcode"
|
||||||
|
],
|
||||||
|
"time": "2015-01-28 18:51:40"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"packages-dev": [],
|
||||||
|
"aliases": [],
|
||||||
|
"minimum-stability": "stable",
|
||||||
|
"stability-flags": [],
|
||||||
|
"prefer-stable": false,
|
||||||
|
"prefer-lowest": false,
|
||||||
|
"platform": {
|
||||||
|
"php": ">=5.3.0",
|
||||||
|
"ext-curl": "*"
|
||||||
|
},
|
||||||
|
"platform-dev": []
|
||||||
|
}
|
||||||
@ -69,7 +69,7 @@ Add tcpdi.php
|
|||||||
Add tcpdi_parser.php and replace:
|
Add tcpdi_parser.php and replace:
|
||||||
require_once(dirname(__FILE__).'/include/tcpdf_filters.php');
|
require_once(dirname(__FILE__).'/include/tcpdf_filters.php');
|
||||||
with:
|
with:
|
||||||
require_once(dirname(__FILE__).'/../tcpdf/include/tcpdf_filters.php');
|
require_once(dirname(__FILE__).'/../tecnick.com/tcpdf/include/tcpdf_filters.php');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -24,7 +24,7 @@ fi
|
|||||||
# To convert
|
# To convert
|
||||||
if [ "x$1" = "xfix" ]
|
if [ "x$1" = "xfix" ]
|
||||||
then
|
then
|
||||||
for fic in `find . \( -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.txt" -o -iname "*.xml"\) -exec file "{}" + | grep CRLF | awk -F':' '{ print $1 }' `
|
for fic in `find . \( -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.txt" -o -iname "*.xml" \) -exec file "{}" + | grep CRLF | awk -F':' '{ print $1 }' `
|
||||||
do
|
do
|
||||||
echo "Fix file $fic"
|
echo "Fix file $fic"
|
||||||
dos2unix $fic
|
dos2unix $fic
|
||||||
|
|||||||
@ -69,8 +69,9 @@ if ($db->type != 'mysql' && $db->type != 'mysqli')
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Show parameters
|
// Show parameters
|
||||||
print 'Tablename='.$argv[1]."\n";
|
print 'Tablename: '.$argv[1]."\n";
|
||||||
print "Current dir is ".getcwd()."\n";
|
print "Current dir: ".getcwd()."\n";
|
||||||
|
print "Database name: ".$db->database_name."\n";
|
||||||
|
|
||||||
|
|
||||||
// Define array with list of properties
|
// Define array with list of properties
|
||||||
@ -304,10 +305,9 @@ foreach($property as $key => $prop)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$varprop.=' \'.(! isset($this->'.$prop['field'].')?\'NULL\':"\'".';
|
$varprop.='\'.(! isset($this->'.$prop['field'].')?\'NULL\':"\'".';
|
||||||
$varprop.="\$this->".$prop['field']."";
|
$varprop.="\$this->".$prop['field']."";
|
||||||
$varprop.='.\').';
|
$varprop.='"\'")';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($i < (count($property)-$no_output_field)) $varprop.=".','";
|
if ($i < (count($property)-$no_output_field)) $varprop.=".','";
|
||||||
|
|||||||
@ -193,7 +193,7 @@ class modMyModule extends DolibarrModules
|
|||||||
// Add here entries to declare new menus
|
// Add here entries to declare new menus
|
||||||
//
|
//
|
||||||
// Example to declare a new Top Menu entry and its Left menu entry:
|
// Example to declare a new Top Menu entry and its Left menu entry:
|
||||||
// $this->menu[$r]=array( 'fk_menu'=>0, // Put 0 if this is a top menu
|
// $this->menu[$r]=array( 'fk_menu'=>'', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode
|
||||||
// 'type'=>'top', // This is a Top menu entry
|
// 'type'=>'top', // This is a Top menu entry
|
||||||
// 'titre'=>'MyModule top menu',
|
// 'titre'=>'MyModule top menu',
|
||||||
// 'mainmenu'=>'mymodule',
|
// 'mainmenu'=>'mymodule',
|
||||||
@ -208,7 +208,7 @@ class modMyModule extends DolibarrModules
|
|||||||
// $r++;
|
// $r++;
|
||||||
//
|
//
|
||||||
// Example to declare a Left Menu entry into an existing Top menu entry:
|
// Example to declare a Left Menu entry into an existing Top menu entry:
|
||||||
// $this->menu[$r]=array( 'fk_menu'=>'fk_mainmenu=xxx', // Use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode
|
// $this->menu[$r]=array( 'fk_menu'=>'fk_mainmenu=xxx', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode
|
||||||
// 'type'=>'left', // This is a Left menu entry
|
// 'type'=>'left', // This is a Left menu entry
|
||||||
// 'titre'=>'MyModule left menu',
|
// 'titre'=>'MyModule left menu',
|
||||||
// 'mainmenu'=>'xxx',
|
// 'mainmenu'=>'xxx',
|
||||||
|
|||||||
@ -38,11 +38,6 @@ require_once DOL_DOCUMENT_ROOT . '/core/class/commonobject.class.php';
|
|||||||
*/
|
*/
|
||||||
class Skeleton_Class extends CommonObject
|
class Skeleton_Class extends CommonObject
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* @var DoliDb Database handler
|
|
||||||
*/
|
|
||||||
protected $db;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string Error code (or message)
|
* @var string Error code (or message)
|
||||||
* @deprecated
|
* @deprecated
|
||||||
|
|||||||
@ -43,7 +43,7 @@ if (! $res && file_exists("../../../dolibarr/htdocs/main.inc.php")) $res=@includ
|
|||||||
if (! $res && file_exists("../../../../dolibarr/htdocs/main.inc.php")) $res=@include '../../../../dolibarr/htdocs/main.inc.php'; // Used on dev env only
|
if (! $res && file_exists("../../../../dolibarr/htdocs/main.inc.php")) $res=@include '../../../../dolibarr/htdocs/main.inc.php'; // Used on dev env only
|
||||||
if (! $res) die("Include of main fails");
|
if (! $res) die("Include of main fails");
|
||||||
// Change this following line to use the correct relative path from htdocs
|
// Change this following line to use the correct relative path from htdocs
|
||||||
include_once(DOL_DOCUMENT_ROOT.'/core/class/formcompany.class.php');
|
include_once(DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php');
|
||||||
dol_include_once('/module/class/skeleton_class.class.php');
|
dol_include_once('/module/class/skeleton_class.class.php');
|
||||||
|
|
||||||
// Load traductions files requiredby by page
|
// Load traductions files requiredby by page
|
||||||
@ -62,7 +62,7 @@ if ($user->societe_id > 0)
|
|||||||
//accessforbidden();
|
//accessforbidden();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($action) && empty($id) && empty($ref)) $action='create';
|
if (empty($action) && empty($id) && empty($ref)) $action='list';
|
||||||
|
|
||||||
// Load object if id or ref is provided as parameter
|
// Load object if id or ref is provided as parameter
|
||||||
$object=new Skeleton_Class($db);
|
$object=new Skeleton_Class($db);
|
||||||
@ -225,7 +225,7 @@ jQuery(document).ready(function() {
|
|||||||
|
|
||||||
|
|
||||||
// Part to show a list
|
// Part to show a list
|
||||||
if ($action == 'list' || empty($id))
|
if ($action == 'list' || (empty($id) && $action != 'create'))
|
||||||
{
|
{
|
||||||
$sql = "SELECT";
|
$sql = "SELECT";
|
||||||
$sql.= " t.rowid,";
|
$sql.= " t.rowid,";
|
||||||
@ -243,7 +243,7 @@ if ($action == 'list' || empty($id))
|
|||||||
$parameters=array();
|
$parameters=array();
|
||||||
$reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters); // Note that $action and $object may have been modified by hook
|
$reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters); // Note that $action and $object may have been modified by hook
|
||||||
$sql.=$hookmanager->resPrint;
|
$sql.=$hookmanager->resPrint;
|
||||||
$sql.= " ORDER BY field1 ASC";
|
$sql.=$db->order($sortfield, $sortorder);
|
||||||
|
|
||||||
print '<form method="GET" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
|
print '<form method="GET" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
|
|
||||||
@ -329,7 +329,7 @@ if ($action == 'list' || empty($id))
|
|||||||
// Part to create
|
// Part to create
|
||||||
if ($action == 'create')
|
if ($action == 'create')
|
||||||
{
|
{
|
||||||
print_fiche_titre($langs->trans("NewResidence"));
|
print_fiche_titre($langs->trans("NewSkeleton"));
|
||||||
|
|
||||||
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
|
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
print '<input type="hidden" name="action" value="add">';
|
print '<input type="hidden" name="action" value="add">';
|
||||||
|
|||||||
@ -27,8 +27,8 @@
|
|||||||
* @since 2008-03-04
|
* @since 2008-03-04
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require_once('../../htdocs/includes/tcpdf/config/lang/eng.php');
|
require_once('../../htdocs/includes/tecnick.com/tcpdf/config/tcpdf_config.php');
|
||||||
require_once('../../htdocs/includes/tcpdf/tcpdf.php');
|
require_once('../../htdocs/includes/tecnick.com/tcpdf/tcpdf.php');
|
||||||
|
|
||||||
// create new PDF document
|
// create new PDF document
|
||||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||||
|
|||||||
@ -47,8 +47,8 @@ print 'Files has been created. Check its name from your explorer'."\n";
|
|||||||
* @since 2008-09-15
|
* @since 2008-09-15
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require_once('../../htdocs/includes/tcpdf/config/lang/eng.php');
|
require_once('../../htdocs/includes/tecnick.com/tcpdf/config/tcpdf_config.php');
|
||||||
require_once('../../htdocs/includes/tcpdf/tcpdf.php');
|
require_once('../../htdocs/includes/tecnick.com/tcpdf/tcpdf.php');
|
||||||
|
|
||||||
// create new PDF document
|
// create new PDF document
|
||||||
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
|
||||||
|
|||||||
1
htdocs/.gitignore
vendored
1
htdocs/.gitignore
vendored
@ -12,3 +12,4 @@
|
|||||||
/test.php
|
/test.php
|
||||||
/ultimatepdf*
|
/ultimatepdf*
|
||||||
/lead
|
/lead
|
||||||
|
/dolimed*
|
||||||
|
|||||||
@ -106,7 +106,7 @@ llxHeader('', $langs->trans("ListAccounts"));
|
|||||||
$pcgver = $conf->global->CHARTOFACCOUNTS;
|
$pcgver = $conf->global->CHARTOFACCOUNTS;
|
||||||
|
|
||||||
$sql = "SELECT aa.rowid, aa.fk_pcg_version, aa.pcg_type, aa.pcg_subtype, aa.account_number, aa.account_parent , aa.label, aa.active ";
|
$sql = "SELECT aa.rowid, aa.fk_pcg_version, aa.pcg_type, aa.pcg_subtype, aa.account_number, aa.account_parent , aa.label, aa.active ";
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "accountingaccount as aa, " . MAIN_DB_PREFIX . "accounting_system as asy";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as aa, " . MAIN_DB_PREFIX . "accounting_system as asy";
|
||||||
$sql .= " WHERE aa.fk_pcg_version = asy.pcg_version";
|
$sql .= " WHERE aa.fk_pcg_version = asy.pcg_version";
|
||||||
$sql .= " AND asy.rowid = " . $pcgver;
|
$sql .= " AND asy.rowid = " . $pcgver;
|
||||||
|
|
||||||
@ -173,11 +173,12 @@ if ($result) {
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
$var = true;
|
$var = false;
|
||||||
|
|
||||||
$accountstatic=new AccountingAccount($db);
|
$accountstatic=new AccountingAccount($db);
|
||||||
|
|
||||||
while ( $i < min($num, $limit) ) {
|
while ( $i < min($num, $limit) )
|
||||||
|
{
|
||||||
$obj = $db->fetch_object($resql);
|
$obj = $db->fetch_object($resql);
|
||||||
|
|
||||||
$accountstatic->id=$obj->rowid;
|
$accountstatic->id=$obj->rowid;
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
* Copyright (C) 2014 Florian Henry <florian.henry@open-concept.pro>
|
* Copyright (C) 2014 Florian Henry <florian.henry@open-concept.pro>
|
||||||
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
|
||||||
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.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
|
||||||
@ -43,8 +43,12 @@ if (!$user->admin)
|
|||||||
|
|
||||||
$action = GETPOST('action', 'alpha');
|
$action = GETPOST('action', 'alpha');
|
||||||
|
|
||||||
// Other parameters ACCOUNTING_EXPORT_*
|
// Parameters ACCOUNTING_EXPORT_*
|
||||||
$list = array (
|
$main_option = array (
|
||||||
|
'ACCOUNTING_EXPORT_PREFIX_SPEC'
|
||||||
|
);
|
||||||
|
|
||||||
|
$model_option = array (
|
||||||
'ACCOUNTING_EXPORT_SEPARATORCSV',
|
'ACCOUNTING_EXPORT_SEPARATORCSV',
|
||||||
'ACCOUNTING_EXPORT_DATE',
|
'ACCOUNTING_EXPORT_DATE',
|
||||||
'ACCOUNTING_EXPORT_PIECE',
|
'ACCOUNTING_EXPORT_PIECE',
|
||||||
@ -60,10 +64,18 @@ $list = array (
|
|||||||
if ($action == 'update') {
|
if ($action == 'update') {
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
|
$format = GETPOST('format', 'alpha');
|
||||||
$modelcsv = GETPOST('modelcsv', 'int');
|
$modelcsv = GETPOST('modelcsv', 'int');
|
||||||
|
|
||||||
if (! empty($modelcsv)) {
|
if (! empty($format)) {
|
||||||
|
if (! dolibarr_set_const($db, 'ACCOUNTING_EXPORT_FORMAT', $format, 'chaine', 0, '', $conf->entity)) {
|
||||||
|
$error ++;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$error ++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! empty($modelcsv)) {
|
||||||
if (! dolibarr_set_const($db, 'ACCOUNTING_EXPORT_MODELCSV', $modelcsv, 'chaine', 0, '', $conf->entity)) {
|
if (! dolibarr_set_const($db, 'ACCOUNTING_EXPORT_MODELCSV', $modelcsv, 'chaine', 0, '', $conf->entity)) {
|
||||||
$error ++;
|
$error ++;
|
||||||
}
|
}
|
||||||
@ -71,7 +83,15 @@ if ($action == 'update') {
|
|||||||
$error ++;
|
$error ++;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ( $list as $constname ) {
|
foreach ($main_option as $constname) {
|
||||||
|
$constvalue = GETPOST($constname, 'alpha');
|
||||||
|
|
||||||
|
if (! dolibarr_set_const($db, $constname, $constvalue, 'chaine', 0, '', $conf->entity)) {
|
||||||
|
$error ++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($model_option as $constname) {
|
||||||
$constvalue = GETPOST($constname, 'alpha');
|
$constvalue = GETPOST($constname, 'alpha');
|
||||||
|
|
||||||
if (! dolibarr_set_const($db, $constname, $constvalue, 'chaine', 0, '', $conf->entity)) {
|
if (! dolibarr_set_const($db, $constname, $constvalue, 'chaine', 0, '', $conf->entity)) {
|
||||||
@ -99,15 +119,74 @@ print_fiche_titre($langs->trans('ConfigAccountingExpert'),$linkback,'title_setup
|
|||||||
|
|
||||||
$head = admin_accounting_prepare_head();
|
$head = admin_accounting_prepare_head();
|
||||||
|
|
||||||
dol_fiche_head($head, 'export', $langs->trans("Configuration"), 0, 'cron');
|
|
||||||
|
|
||||||
print '<form action="' . $_SERVER["PHP_SELF"] . '" method="post">';
|
print '<form action="' . $_SERVER["PHP_SELF"] . '" method="post">';
|
||||||
print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
|
print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
|
||||||
print '<input type="hidden" name="action" value="update">';
|
print '<input type="hidden" name="action" value="update">';
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
dol_fiche_head($head, 'export', $langs->trans("Configuration"), 0, 'cron');
|
||||||
|
|
||||||
$var = true;
|
$var = true;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Main Options
|
||||||
|
*/
|
||||||
|
print '<table class="noborder" width="100%">';
|
||||||
|
print '<tr class="liste_titre">';
|
||||||
|
print '<td colspan="3">' . $langs->trans('MainOptions') . '</td>';
|
||||||
|
print "</tr>\n";
|
||||||
|
|
||||||
|
$var = ! $var;
|
||||||
|
|
||||||
|
print '<tr ' . $bc[$var] . '>';
|
||||||
|
print '<td width="50%">' . $langs->trans("Selectformat") . '</td>';
|
||||||
|
if (! $conf->use_javascript_ajax)
|
||||||
|
{
|
||||||
|
print '<td class="nowrap">';
|
||||||
|
print $langs->trans("NotAvailableWhenAjaxDisabled");
|
||||||
|
print "</td>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<td>';
|
||||||
|
$listformat=array(
|
||||||
|
'csv'=>$langs->trans("csv"),
|
||||||
|
'txt'=>$langs->trans("txt")
|
||||||
|
);
|
||||||
|
print $form->selectarray("format",$listformat,$conf->global->ACCOUNTING_EXPORT_FORMAT,0);
|
||||||
|
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
|
print "</td></tr>";
|
||||||
|
|
||||||
|
$num = count($main_option);
|
||||||
|
if ($num)
|
||||||
|
{
|
||||||
|
foreach ($main_option as $key) {
|
||||||
|
$var = ! $var;
|
||||||
|
|
||||||
|
print '<tr ' . $bc[$var] . ' class="value">';
|
||||||
|
|
||||||
|
// Param
|
||||||
|
$label = $langs->trans($key);
|
||||||
|
print '<td width="50%">' . $label . '</td>';
|
||||||
|
|
||||||
|
// Value
|
||||||
|
print '<td>';
|
||||||
|
print '<input type="text" size="20" name="' . $key . '" value="' . $conf->global->$key . '">';
|
||||||
|
print '</td></tr>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print "</table>\n";
|
||||||
|
|
||||||
|
print "<br>\n";
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Export model
|
||||||
|
*/
|
||||||
|
print '<table class="noborder" width="100%">';
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td colspan="2">' . $langs->trans("Modelcsv") . '</td>';
|
print '<td colspan="2">' . $langs->trans("Modelcsv") . '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
@ -142,8 +221,8 @@ print "<br>\n";
|
|||||||
* Parameters
|
* Parameters
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$num = count($list);
|
$num2 = count($model_option);
|
||||||
if ($num)
|
if ($num2)
|
||||||
{
|
{
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
@ -151,7 +230,7 @@ if ($num)
|
|||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
if ($conf->global->ACCOUNTING_EXPORT_MODELCSV > 1) print '<tr><td colspan="2" bgcolor="red"><b>' . $langs->trans('OptionsDeactivatedForThisExportModel') . '</b></td></tr>';
|
if ($conf->global->ACCOUNTING_EXPORT_MODELCSV > 1) print '<tr><td colspan="2" bgcolor="red"><b>' . $langs->trans('OptionsDeactivatedForThisExportModel') . '</b></td></tr>';
|
||||||
|
|
||||||
foreach ( $list as $key ) {
|
foreach ($model_option as $key) {
|
||||||
$var = ! $var;
|
$var = ! $var;
|
||||||
|
|
||||||
print '<tr ' . $bc[$var] . ' class="value">';
|
print '<tr ' . $bc[$var] . ' class="value">';
|
||||||
@ -169,7 +248,9 @@ if ($num)
|
|||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<br><div style="text-align:center"><input type="submit" class="button" value="' . dol_escape_htmltag($langs->trans('Modify')) . '" name="button"></div>';
|
dol_fiche_end();
|
||||||
|
|
||||||
|
print '<div class="center"><input type="submit" class="button" value="' . dol_escape_htmltag($langs->trans('Modify')) . '" name="button"></div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
|
|||||||
@ -124,7 +124,7 @@ if ($result) {
|
|||||||
print '<input type="hidden" name="action" value="import">';
|
print '<input type="hidden" name="action" value="import">';
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><td>' . $langs->trans("accountingaccount") . '</td>';
|
print '<tr class="liste_titre"><td>' . $langs->trans("AccountAccouting") . '</td>';
|
||||||
print '<td>' . $langs->trans("label") . '</td>';
|
print '<td>' . $langs->trans("label") . '</td>';
|
||||||
print '<td>' . $langs->trans("Accountparent") . '</td>';
|
print '<td>' . $langs->trans("Accountparent") . '</td>';
|
||||||
print '<td>' . $langs->trans("Pcgtype") . '</td>';
|
print '<td>' . $langs->trans("Pcgtype") . '</td>';
|
||||||
|
|||||||
@ -157,12 +157,13 @@ print_fiche_titre($langs->trans('ConfigAccountingExpert'),$linkback,'title_setup
|
|||||||
|
|
||||||
$head = admin_accounting_prepare_head($accounting);
|
$head = admin_accounting_prepare_head($accounting);
|
||||||
|
|
||||||
dol_fiche_head($head, 'general', $langs->trans("Configuration"), 0, 'cron');
|
|
||||||
|
|
||||||
print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
|
print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<input type="hidden" name="action" value="update">';
|
print '<input type="hidden" name="action" value="update">';
|
||||||
|
|
||||||
|
dol_fiche_head($head, 'general', $langs->trans("Configuration"), 0, 'cron');
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
|
|
||||||
// Cas du parametre ACCOUNTING_MODE
|
// Cas du parametre ACCOUNTING_MODE
|
||||||
@ -291,7 +292,11 @@ print '</tr>';
|
|||||||
|
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
|
|
||||||
print '<br /><br /><div style="text-align:center"><input type="submit" class="button" value="'.$langs->trans('Modify').'" name="button"></div>';
|
dol_fiche_end();
|
||||||
|
|
||||||
|
print '<div class="center"><input type="submit" class="button" value="'.$langs->trans('Modify').'" name="button"></div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
$db->close();
|
$db->close();
|
||||||
|
|||||||
174
htdocs/accountancy/admin/journal.php
Normal file
174
htdocs/accountancy/admin/journal.php
Normal file
@ -0,0 +1,174 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
|
||||||
|
* Copyright (C) 2013-2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||||
|
* Copyright (C) 2014 Florian Henry <florian.henry@open-concept.pro>
|
||||||
|
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
|
||||||
|
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
||||||
|
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/accountancy/admin/journal.php
|
||||||
|
* \ingroup Accounting Expert
|
||||||
|
* \brief Setup page to configure accounting expert module
|
||||||
|
*/
|
||||||
|
|
||||||
|
require '../../main.inc.php';
|
||||||
|
|
||||||
|
// Class
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
||||||
|
|
||||||
|
$langs->load("accountancy");
|
||||||
|
|
||||||
|
// Security check
|
||||||
|
if (!$user->admin)
|
||||||
|
accessforbidden();
|
||||||
|
|
||||||
|
$action = GETPOST('action', 'alpha');
|
||||||
|
|
||||||
|
// Other parameters ACCOUNTING_*
|
||||||
|
$list = array (
|
||||||
|
'ACCOUNTING_SELL_JOURNAL',
|
||||||
|
'ACCOUNTING_PURCHASE_JOURNAL',
|
||||||
|
'ACCOUNTING_SOCIAL_JOURNAL',
|
||||||
|
'ACCOUNTING_MISCELLANEOUS_JOURNAL',
|
||||||
|
'ACCOUNTING_EXPENSEREPORT_JOURNAL'
|
||||||
|
);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Actions
|
||||||
|
*/
|
||||||
|
|
||||||
|
if ($action == 'update') {
|
||||||
|
$error = 0;
|
||||||
|
|
||||||
|
foreach ( $list as $constname ) {
|
||||||
|
$constvalue = GETPOST($constname, 'alpha');
|
||||||
|
|
||||||
|
if (! dolibarr_set_const($db, $constname, $constvalue, 'chaine', 0, '', $conf->entity)) {
|
||||||
|
$error ++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $error) {
|
||||||
|
setEventMessage($langs->trans("SetupSaved"));
|
||||||
|
} else {
|
||||||
|
setEventMessage($langs->trans("Error"), 'errors');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* View
|
||||||
|
*/
|
||||||
|
|
||||||
|
llxHeader();
|
||||||
|
|
||||||
|
$form = new Form($db);
|
||||||
|
|
||||||
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
|
print_fiche_titre($langs->trans('ConfigAccountingExpert'),$linkback,'title_setup');
|
||||||
|
|
||||||
|
$head = admin_accounting_prepare_head(null);
|
||||||
|
|
||||||
|
print '<form action="' . $_SERVER["PHP_SELF"] . '" method="post">';
|
||||||
|
print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
|
||||||
|
print '<input type="hidden" name="action" value="update">';
|
||||||
|
|
||||||
|
dol_fiche_head($head, 'journal', $langs->trans("Configuration"), 0, 'cron');
|
||||||
|
|
||||||
|
print '<table class="noborder" width="100%">';
|
||||||
|
print '<tr class="liste_titre">';
|
||||||
|
print '<td colspan="3">' . $langs->trans('Journaux') . '</td>';
|
||||||
|
print "</tr>\n";
|
||||||
|
|
||||||
|
foreach ( $list as $key ) {
|
||||||
|
$var = ! $var;
|
||||||
|
|
||||||
|
print '<tr ' . $bc[$var] . ' class="value">';
|
||||||
|
|
||||||
|
// Param
|
||||||
|
$label = $langs->trans($key);
|
||||||
|
print '<td width="50%"><label for="' . $key . '">' . $label . '</label></td>';
|
||||||
|
|
||||||
|
// Value
|
||||||
|
print '<td>';
|
||||||
|
print '<input type="text" size="20" id="' . $key . '" name="' . $key . '" value="' . $conf->global->$key . '">';
|
||||||
|
print '</td></tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
print "</table>\n";
|
||||||
|
|
||||||
|
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
|
|
||||||
|
print '<table class="noborder" width="100%">';
|
||||||
|
print '<tr class="liste_titre">';
|
||||||
|
print '<td colspan="3">' . $langs->trans('JournalFinancial') . '</td>';
|
||||||
|
print "</tr>\n";
|
||||||
|
|
||||||
|
// Bank account
|
||||||
|
$sql = "SELECT rowid, label, accountancy_journal";
|
||||||
|
$sql.= " FROM ".MAIN_DB_PREFIX."bank_account";
|
||||||
|
$sql.= " WHERE entity = ".$conf->entity;
|
||||||
|
$sql.= " AND clos = 0";
|
||||||
|
$sql.= " ORDER BY label";
|
||||||
|
|
||||||
|
$resql = $db->query($sql);
|
||||||
|
if ($resql)
|
||||||
|
{
|
||||||
|
$numr = $db->num_rows($resql);
|
||||||
|
$i = 0;
|
||||||
|
|
||||||
|
if ($numr > 0)
|
||||||
|
|
||||||
|
while ($i < $numr)
|
||||||
|
{
|
||||||
|
$objp = $db->fetch_object($resql);
|
||||||
|
|
||||||
|
$var = ! $var;
|
||||||
|
|
||||||
|
print '<tr ' . $bc[$var] . ' class="value">';
|
||||||
|
|
||||||
|
// Param
|
||||||
|
print '<td width="50%"><label for="' . $objp->rowid . '">' . $langs->trans("Journal") . ' - ' . $objp->label . '</label></td>';
|
||||||
|
|
||||||
|
// Value
|
||||||
|
print '<td>';
|
||||||
|
print '<input type="text" size="20" id="' . $objp->rowid . '" name="' . $objp->label . '" value="' . $objp->accountancy_journal . '" disabled>';
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else dol_print_error($db);
|
||||||
|
$db->free($resql);
|
||||||
|
|
||||||
|
print "</table>\n";
|
||||||
|
|
||||||
|
dol_fiche_end();
|
||||||
|
|
||||||
|
print '<div class="center"><input type="submit" class="button" value="' . $langs->trans('Modify') . '" name="button"></div>';
|
||||||
|
|
||||||
|
print '</form>';
|
||||||
|
|
||||||
|
|
||||||
|
llxFooter();
|
||||||
|
$db->close();
|
||||||
@ -1,172 +0,0 @@
|
|||||||
<?php
|
|
||||||
/* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
|
|
||||||
* Copyright (C) 2013-2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
|
||||||
* Copyright (C) 2014 Florian Henry <florian.henry@open-concept.pro>
|
|
||||||
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
|
|
||||||
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
|
|
||||||
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
* the Free Software Foundation; either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file htdocs/accountancy/admin/journaux.php
|
|
||||||
* \ingroup Accounting Expert
|
|
||||||
* \brief Setup page to configure accounting expert module
|
|
||||||
*/
|
|
||||||
|
|
||||||
require '../../main.inc.php';
|
|
||||||
|
|
||||||
// Class
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
|
||||||
|
|
||||||
$langs->load("accountancy");
|
|
||||||
|
|
||||||
// Security check
|
|
||||||
if (!$user->admin)
|
|
||||||
accessforbidden();
|
|
||||||
|
|
||||||
$action = GETPOST('action', 'alpha');
|
|
||||||
|
|
||||||
// Other parameters ACCOUNTING_*
|
|
||||||
$list = array (
|
|
||||||
'ACCOUNTING_SELL_JOURNAL',
|
|
||||||
'ACCOUNTING_PURCHASE_JOURNAL',
|
|
||||||
'ACCOUNTING_SOCIAL_JOURNAL',
|
|
||||||
'ACCOUNTING_MISCELLANEOUS_JOURNAL',
|
|
||||||
'ACCOUNTING_EXPENSEREPORT_JOURNAL'
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Actions
|
|
||||||
*/
|
|
||||||
|
|
||||||
if ($action == 'update') {
|
|
||||||
$error = 0;
|
|
||||||
|
|
||||||
foreach ( $list as $constname ) {
|
|
||||||
$constvalue = GETPOST($constname, 'alpha');
|
|
||||||
|
|
||||||
if (! dolibarr_set_const($db, $constname, $constvalue, 'chaine', 0, '', $conf->entity)) {
|
|
||||||
$error ++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! $error) {
|
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
|
||||||
} else {
|
|
||||||
setEventMessage($langs->trans("Error"), 'errors');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* View
|
|
||||||
*/
|
|
||||||
|
|
||||||
llxHeader();
|
|
||||||
|
|
||||||
$form = new Form($db);
|
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
|
||||||
print_fiche_titre($langs->trans('ConfigAccountingExpert'),$linkback,'title_setup');
|
|
||||||
|
|
||||||
$head = admin_accounting_prepare_head(null);
|
|
||||||
|
|
||||||
dol_fiche_head($head, 'journal', $langs->trans("Configuration"), 0, 'cron');
|
|
||||||
|
|
||||||
print '<form action="' . $_SERVER["PHP_SELF"] . '" method="post">';
|
|
||||||
print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
|
|
||||||
print '<input type="hidden" name="action" value="update">';
|
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
|
||||||
print '<tr class="liste_titre">';
|
|
||||||
print '<td colspan="3">' . $langs->trans('Journaux') . '</td>';
|
|
||||||
print "</tr>\n";
|
|
||||||
|
|
||||||
foreach ( $list as $key ) {
|
|
||||||
$var = ! $var;
|
|
||||||
|
|
||||||
print '<tr ' . $bc[$var] . ' class="value">';
|
|
||||||
|
|
||||||
// Param
|
|
||||||
$label = $langs->trans($key);
|
|
||||||
print '<td width="50%"><label for="' . $key . '">' . $label . '</label></td>';
|
|
||||||
|
|
||||||
// Value
|
|
||||||
print '<td>';
|
|
||||||
print '<input type="text" size="20" id="' . $key . '" name="' . $key . '" value="' . $conf->global->$key . '">';
|
|
||||||
print '</td></tr>';
|
|
||||||
}
|
|
||||||
|
|
||||||
print "</table>\n";
|
|
||||||
|
|
||||||
print '<br /><div style="text-align:center"><input type="submit" class="button" value="' . $langs->trans('Modify') . '" name="button"></div>';
|
|
||||||
print '</form>';
|
|
||||||
|
|
||||||
print '<br />';
|
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
|
||||||
print '<tr class="liste_titre">';
|
|
||||||
print '<td colspan="3">' . $langs->trans('JournalFinancial') . '</td>';
|
|
||||||
print "</tr>\n";
|
|
||||||
|
|
||||||
// Bank account
|
|
||||||
$sql = "SELECT rowid, label, accountancy_journal";
|
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."bank_account";
|
|
||||||
$sql.= " WHERE entity = ".$conf->entity;
|
|
||||||
$sql.= " AND clos = 0";
|
|
||||||
$sql.= " ORDER BY label";
|
|
||||||
|
|
||||||
$resql = $db->query($sql);
|
|
||||||
if ($resql)
|
|
||||||
{
|
|
||||||
$numr = $db->num_rows($resql);
|
|
||||||
$i = 0;
|
|
||||||
|
|
||||||
if ($numr > 0)
|
|
||||||
|
|
||||||
while ($i < $numr)
|
|
||||||
{
|
|
||||||
$objp = $db->fetch_object($resql);
|
|
||||||
|
|
||||||
$var = ! $var;
|
|
||||||
|
|
||||||
print '<tr ' . $bc[$var] . ' class="value">';
|
|
||||||
|
|
||||||
// Param
|
|
||||||
print '<td width="50%"><label for="' . $objp->rowid . '">' . $langs->trans("Journal") . ' - ' . $objp->label . '</label></td>';
|
|
||||||
|
|
||||||
// Value
|
|
||||||
print '<td>';
|
|
||||||
print '<input type="text" size="20" id="' . $objp->rowid . '" name="' . $objp->label . '" value="' . $objp->accountancy_journal . '" disabled>';
|
|
||||||
print '</td></tr>';
|
|
||||||
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else dol_print_error($db);
|
|
||||||
$db->free($resql);
|
|
||||||
|
|
||||||
print "</table>\n";
|
|
||||||
|
|
||||||
print '</div>';
|
|
||||||
|
|
||||||
print '<br>';
|
|
||||||
|
|
||||||
llxFooter();
|
|
||||||
$db->close();
|
|
||||||
@ -212,11 +212,11 @@ $pcgver = $conf->global->CHARTOFACCOUNTS;
|
|||||||
IF ($accounting_product_mode == 'ACCOUNTANCY_BUY' ? ' checked' : '') {
|
IF ($accounting_product_mode == 'ACCOUNTANCY_BUY' ? ' checked' : '') {
|
||||||
$sql .= " p.accountancy_code_buy ='' OR p.accountancy_code_buy IS NULL";
|
$sql .= " p.accountancy_code_buy ='' OR p.accountancy_code_buy IS NULL";
|
||||||
$sql .= " OR (p.accountancy_code_buy IS NOT NULL AND p.accountancy_code_buy != '' AND p.accountancy_code_buy NOT IN
|
$sql .= " OR (p.accountancy_code_buy IS NOT NULL AND p.accountancy_code_buy != '' AND p.accountancy_code_buy NOT IN
|
||||||
(SELECT aa.account_number FROM " . MAIN_DB_PREFIX . "accountingaccount as aa , " . MAIN_DB_PREFIX . "accounting_system as asy WHERE fk_pcg_version = asy.pcg_version AND asy.rowid = " . $pcgver . "))";
|
(SELECT aa.account_number FROM " . MAIN_DB_PREFIX . "accounting_account as aa , " . MAIN_DB_PREFIX . "accounting_system as asy WHERE fk_pcg_version = asy.pcg_version AND asy.rowid = " . $pcgver . "))";
|
||||||
} else {
|
} else {
|
||||||
$sql .= " p.accountancy_code_sell ='' OR p.accountancy_code_sell IS NULL ";
|
$sql .= " p.accountancy_code_sell ='' OR p.accountancy_code_sell IS NULL ";
|
||||||
$sql .= " OR (p.accountancy_code_sell IS NOT NULL AND p.accountancy_code_sell != '' AND p.accountancy_code_sell NOT IN
|
$sql .= " OR (p.accountancy_code_sell IS NOT NULL AND p.accountancy_code_sell != '' AND p.accountancy_code_sell NOT IN
|
||||||
(SELECT aa.account_number FROM " . MAIN_DB_PREFIX . "accountingaccount as aa , " . MAIN_DB_PREFIX . "accounting_system as asy WHERE fk_pcg_version = asy.pcg_version AND asy.rowid = " . $pcgver . "))";
|
(SELECT aa.account_number FROM " . MAIN_DB_PREFIX . "accounting_account as aa , " . MAIN_DB_PREFIX . "accounting_system as asy WHERE fk_pcg_version = asy.pcg_version AND asy.rowid = " . $pcgver . "))";
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql .= ")";
|
$sql .= ")";
|
||||||
@ -287,8 +287,9 @@ if ($result) {
|
|||||||
print '<th align="left">' . $langs->trans("Accountancy_code_sell_suggest") . '</td>';
|
print '<th align="left">' . $langs->trans("Accountancy_code_sell_suggest") . '</td>';
|
||||||
}
|
}
|
||||||
// print_liste_field_titre('');
|
// print_liste_field_titre('');
|
||||||
print '<td align="center">' . $langs->trans("Ventilate") . '<br><label id="select-all">' . $langs->trans('All') . '</label>/<label id="unselect-all">' . $langs->trans('None') . '</label>' . '</td>';
|
print_liste_field_titre($langs->trans("Ventilate") . '<br><label id="select-all">' . $langs->trans('All') . '</label> / <label id="unselect-all">' . $langs->trans('None') . '</label>');
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td class="liste_titre"><input type="text" class="flat" size="20" name="search_ref" value="' . $search_ref . '"></td>';
|
print '<td class="liste_titre"><input type="text" class="flat" size="20" name="search_ref" value="' . $search_ref . '"></td>';
|
||||||
print '<td class="liste_titre"><input type="text" class="flat" size="20" name="search_label" value="' . $search_label . '"></td>';
|
print '<td class="liste_titre"><input type="text" class="flat" size="20" name="search_label" value="' . $search_label . '"></td>';
|
||||||
@ -359,7 +360,7 @@ if ($result) {
|
|||||||
// print '<td align="left">' . $compta_prodbuy . '</td>';
|
// print '<td align="left">' . $compta_prodbuy . '</td>';
|
||||||
// TODO: we shoul set a user defined value to adjust user square / wide screen size
|
// TODO: we shoul set a user defined value to adjust user square / wide screen size
|
||||||
// $trunclenghform = defined('ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT') ? ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT : 50;
|
// $trunclenghform = defined('ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT') ? ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT : 50;
|
||||||
print '<td align="center">';
|
print '<td align="left">';
|
||||||
print $form->select_account($compta_prodbuy_id, 'codeventil_'.$product_static->id, 1);
|
print $form->select_account($compta_prodbuy_id, 'codeventil_'.$product_static->id, 1);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
} else {
|
} else {
|
||||||
@ -369,7 +370,7 @@ if ($result) {
|
|||||||
// TODO: replace by select
|
// TODO: replace by select
|
||||||
// TODO: we shoul set a user defined value to adjust user square / wide screen size
|
// TODO: we shoul set a user defined value to adjust user square / wide screen size
|
||||||
// $trunclenghform = defined('ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT') ? ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT : 50;
|
// $trunclenghform = defined('ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT') ? ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT : 50;
|
||||||
print '<td align="center">';
|
print '<td align="left">';
|
||||||
print $form->select_account($compta_prodsell_id, 'codeventil_'.$product_static->id, 1);
|
print $form->select_account($compta_prodsell_id, 'codeventil_'.$product_static->id, 1);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -72,7 +72,7 @@ class AccountingAccount extends CommonObject
|
|||||||
|
|
||||||
if ($rowid || $account_number) {
|
if ($rowid || $account_number) {
|
||||||
$sql = "SELECT rowid, datec, tms, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, fk_user_author, fk_user_modif, active";
|
$sql = "SELECT rowid, datec, tms, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, fk_user_author, fk_user_modif, active";
|
||||||
$sql.= " FROM " . MAIN_DB_PREFIX . "accountingaccount WHERE";
|
$sql.= " FROM " . MAIN_DB_PREFIX . "accounting_account WHERE";
|
||||||
if ($rowid) {
|
if ($rowid) {
|
||||||
$sql .= " rowid = '" . $rowid . "'";
|
$sql .= " rowid = '" . $rowid . "'";
|
||||||
} elseif ($account_number) {
|
} elseif ($account_number) {
|
||||||
@ -114,7 +114,7 @@ class AccountingAccount extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Insert line in accountingaccount
|
* Insert line in accounting_account
|
||||||
*
|
*
|
||||||
* @param User $user Use making action
|
* @param User $user Use making action
|
||||||
* @param int $notrigger Disable triggers
|
* @param int $notrigger Disable triggers
|
||||||
@ -148,7 +148,7 @@ class AccountingAccount extends CommonObject
|
|||||||
// Put here code to add control on parameters values
|
// Put here code to add control on parameters values
|
||||||
|
|
||||||
// Insert request
|
// Insert request
|
||||||
$sql = "INSERT INTO " . MAIN_DB_PREFIX . "accountingaccount(";
|
$sql = "INSERT INTO " . MAIN_DB_PREFIX . "accounting_account(";
|
||||||
|
|
||||||
$sql .= "datec";
|
$sql .= "datec";
|
||||||
$sql .= ", entity";
|
$sql .= ", entity";
|
||||||
@ -186,7 +186,7 @@ class AccountingAccount extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (! $error) {
|
if (! $error) {
|
||||||
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . "accountingaccount");
|
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . "accounting_account");
|
||||||
|
|
||||||
// if (! $notrigger) {
|
// if (! $notrigger) {
|
||||||
// Uncomment this and change MYOBJECT to your own tag if you
|
// Uncomment this and change MYOBJECT to your own tag if you
|
||||||
@ -225,7 +225,7 @@ class AccountingAccount extends CommonObject
|
|||||||
{
|
{
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
$sql = "UPDATE " . MAIN_DB_PREFIX . "accountingaccount ";
|
$sql = "UPDATE " . MAIN_DB_PREFIX . "accounting_account ";
|
||||||
$sql .= " SET fk_pcg_version = " . ($this->fk_pcg_version ? "'" . $this->db->escape($this->fk_pcg_version) . "'" : "null");
|
$sql .= " SET fk_pcg_version = " . ($this->fk_pcg_version ? "'" . $this->db->escape($this->fk_pcg_version) . "'" : "null");
|
||||||
$sql .= " , pcg_type = " . ($this->pcg_type ? "'" . $this->db->escape($this->pcg_type) . "'" : "null");
|
$sql .= " , pcg_type = " . ($this->pcg_type ? "'" . $this->db->escape($this->pcg_type) . "'" : "null");
|
||||||
$sql .= " , pcg_subtype = " . ($this->pcg_subtype ? "'" . $this->db->escape($this->pcg_subtype) . "'" : "null");
|
$sql .= " , pcg_subtype = " . ($this->pcg_subtype ? "'" . $this->db->escape($this->pcg_subtype) . "'" : "null");
|
||||||
@ -313,7 +313,7 @@ class AccountingAccount extends CommonObject
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
if (! $error) {
|
if (! $error) {
|
||||||
$sql = "DELETE FROM " . MAIN_DB_PREFIX . "accountingaccount";
|
$sql = "DELETE FROM " . MAIN_DB_PREFIX . "accounting_account";
|
||||||
$sql .= " WHERE rowid=" . $this->id;
|
$sql .= " WHERE rowid=" . $this->id;
|
||||||
|
|
||||||
dol_syslog(get_class($this) . "::delete sql=" . $sql);
|
dol_syslog(get_class($this) . "::delete sql=" . $sql);
|
||||||
@ -375,7 +375,7 @@ class AccountingAccount extends CommonObject
|
|||||||
function info($id)
|
function info($id)
|
||||||
{
|
{
|
||||||
$sql = 'SELECT a.rowid, a.datec, a.fk_user_author, a.fk_user_modif, a.tms';
|
$sql = 'SELECT a.rowid, a.datec, a.fk_user_author, a.fk_user_modif, a.tms';
|
||||||
$sql .= ' FROM ' . MAIN_DB_PREFIX . 'accountingaccount as a';
|
$sql .= ' FROM ' . MAIN_DB_PREFIX . 'accounting_account as a';
|
||||||
$sql .= ' WHERE a.rowid = ' . $id;
|
$sql .= ' WHERE a.rowid = ' . $id;
|
||||||
|
|
||||||
dol_syslog(get_class($this) . '::info sql=' . $sql);
|
dol_syslog(get_class($this) . '::info sql=' . $sql);
|
||||||
@ -417,7 +417,7 @@ class AccountingAccount extends CommonObject
|
|||||||
if ($result > 0) {
|
if ($result > 0) {
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
$sql = "UPDATE " . MAIN_DB_PREFIX . "accountingaccount ";
|
$sql = "UPDATE " . MAIN_DB_PREFIX . "accounting_account ";
|
||||||
$sql .= "SET active = '0'";
|
$sql .= "SET active = '0'";
|
||||||
$sql .= " WHERE rowid = ".$this->db->escape($id);
|
$sql .= " WHERE rowid = ".$this->db->escape($id);
|
||||||
|
|
||||||
@ -447,7 +447,7 @@ class AccountingAccount extends CommonObject
|
|||||||
{
|
{
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
$sql = "UPDATE " . MAIN_DB_PREFIX . "accountingaccount ";
|
$sql = "UPDATE " . MAIN_DB_PREFIX . "accounting_account ";
|
||||||
$sql .= "SET active = '1'";
|
$sql .= "SET active = '1'";
|
||||||
$sql .= " WHERE rowid = ".$this->db->escape($id);
|
$sql .= " WHERE rowid = ".$this->db->escape($id);
|
||||||
|
|
||||||
|
|||||||
@ -94,7 +94,7 @@ class FormVentilation extends Form
|
|||||||
* @param array $event Event options
|
* @param array $event Event options
|
||||||
* @param int $select_in $selectid value is a aa.rowid (0 default) or aa.account_number (1)
|
* @param int $select_in $selectid value is a aa.rowid (0 default) or aa.account_number (1)
|
||||||
* @param int $select_out set value returned by select 0=rowid (default), 1=account_number
|
* @param int $select_out set value returned by select 0=rowid (default), 1=account_number
|
||||||
* @param int $aabase set accountingaccount base class to display empty=all or from 1 to 8 will display only account beginning by
|
* @param int $aabase set accounting_account base class to display empty=all or from 1 to 8 will display only account beginning by
|
||||||
*
|
*
|
||||||
* @return string String with HTML select
|
* @return string String with HTML select
|
||||||
*/
|
*/
|
||||||
@ -105,7 +105,7 @@ class FormVentilation extends Form
|
|||||||
$out = '';
|
$out = '';
|
||||||
|
|
||||||
$sql = "SELECT DISTINCT aa.account_number, aa.label, aa.rowid, aa.fk_pcg_version";
|
$sql = "SELECT DISTINCT aa.account_number, aa.label, aa.rowid, aa.fk_pcg_version";
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "accountingaccount as aa";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as aa";
|
||||||
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
|
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
|
||||||
$sql .= " AND asy.rowid = " . $conf->global->CHARTOFACCOUNTS;
|
$sql .= " AND asy.rowid = " . $conf->global->CHARTOFACCOUNTS;
|
||||||
$sql .= " AND aa.active = 1";
|
$sql .= " AND aa.active = 1";
|
||||||
@ -132,7 +132,7 @@ class FormVentilation extends Form
|
|||||||
if ($select_in == 1 ) $select_value_in = $obj->account_number;
|
if ($select_in == 1 ) $select_value_in = $obj->account_number;
|
||||||
if ($select_out == 0 ) $select_value_out = $obj->rowid;
|
if ($select_out == 0 ) $select_value_out = $obj->rowid;
|
||||||
if ($select_out == 1 ) $select_value_out = $obj->account_number;
|
if ($select_out == 1 ) $select_value_out = $obj->account_number;
|
||||||
// Remember guy's we store in database llx_facturedet the rowid of accountingaccount and not the account_number
|
// Remember guy's we store in database llx_facturedet the rowid of accounting_account and not the account_number
|
||||||
// Because same account_number can be share between different accounting_system and do have the same meaning
|
// Because same account_number can be share between different accounting_system and do have the same meaning
|
||||||
if (($selectid != '') && $selectid == $select_value_in) {
|
if (($selectid != '') && $selectid == $select_value_in) {
|
||||||
// $out .= '<option value="' . $obj->account_number . '" selected>' . $label . '</option>';
|
// $out .= '<option value="' . $obj->account_number . '" selected>' . $label . '</option>';
|
||||||
@ -171,7 +171,7 @@ class FormVentilation extends Form
|
|||||||
$out = '';
|
$out = '';
|
||||||
|
|
||||||
$sql = "SELECT DISTINCT pcg_type ";
|
$sql = "SELECT DISTINCT pcg_type ";
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "accountingaccount as aa";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as aa";
|
||||||
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
|
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
|
||||||
$sql .= " AND asy.rowid = " . $conf->global->CHARTOFACCOUNTS;
|
$sql .= " AND asy.rowid = " . $conf->global->CHARTOFACCOUNTS;
|
||||||
$sql .= " ORDER BY pcg_type";
|
$sql .= " ORDER BY pcg_type";
|
||||||
@ -227,7 +227,7 @@ class FormVentilation extends Form
|
|||||||
$out = '';
|
$out = '';
|
||||||
|
|
||||||
$sql = "SELECT DISTINCT pcg_subtype ";
|
$sql = "SELECT DISTINCT pcg_subtype ";
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "accountingaccount as aa";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as aa";
|
||||||
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
|
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
|
||||||
$sql .= " AND asy.rowid = " . $conf->global->CHARTOFACCOUNTS;
|
$sql .= " AND asy.rowid = " . $conf->global->CHARTOFACCOUNTS;
|
||||||
$sql .= " ORDER BY pcg_subtype";
|
$sql .= " ORDER BY pcg_subtype";
|
||||||
|
|||||||
@ -85,7 +85,7 @@ if (! empty($id)) {
|
|||||||
$sql .= " l.fk_code_ventilation, aa.account_number, aa.label";
|
$sql .= " l.fk_code_ventilation, aa.account_number, aa.label";
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as l";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as l";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accountingaccount as aa ON l.fk_code_ventilation = aa.rowid";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON l.fk_code_ventilation = aa.rowid";
|
||||||
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = l.fk_facture";
|
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = l.fk_facture";
|
||||||
$sql .= " WHERE f.fk_statut > 0 AND l.rowid = " . $id;
|
$sql .= " WHERE f.fk_statut > 0 AND l.rowid = " . $id;
|
||||||
|
|
||||||
|
|||||||
@ -65,12 +65,12 @@ if ($action == 'validatehistory') {
|
|||||||
if ($db->type == 'pgsql') {
|
if ($db->type == 'pgsql') {
|
||||||
$sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet as fd";
|
$sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet as fd";
|
||||||
$sql1 .= " SET fd.fk_code_ventilation = accnt.rowid";
|
$sql1 .= " SET fd.fk_code_ventilation = accnt.rowid";
|
||||||
$sql1 .= " FROM " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accountingaccount as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst";
|
$sql1 .= " FROM " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst";
|
||||||
$sql1 .= " WHERE fd.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . $conf->global->CHARTOFACCOUNTS;
|
$sql1 .= " WHERE fd.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . $conf->global->CHARTOFACCOUNTS;
|
||||||
$sql1 .= " AND accnt.active = 1 AND p.accountancy_code_sell=accnt.account_number";
|
$sql1 .= " AND accnt.active = 1 AND p.accountancy_code_sell=accnt.account_number";
|
||||||
$sql1 .= " AND fd.fk_code_ventilation = 0";
|
$sql1 .= " AND fd.fk_code_ventilation = 0";
|
||||||
} else {
|
} else {
|
||||||
$sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet as fd, " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accountingaccount as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst";
|
$sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet as fd, " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst";
|
||||||
$sql1 .= " SET fd.fk_code_ventilation = accnt.rowid";
|
$sql1 .= " SET fd.fk_code_ventilation = accnt.rowid";
|
||||||
$sql1 .= " WHERE fd.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . $conf->global->CHARTOFACCOUNTS;
|
$sql1 .= " WHERE fd.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . $conf->global->CHARTOFACCOUNTS;
|
||||||
$sql1 .= " AND accnt.active = 1 AND p.accountancy_code_sell=accnt.account_number";
|
$sql1 .= " AND accnt.active = 1 AND p.accountancy_code_sell=accnt.account_number";
|
||||||
@ -154,7 +154,7 @@ $sql .= " ROUND(SUM(IF(MONTH(f.datef)=12,fd.total_ht,0)),2) AS 'Decembre',";
|
|||||||
$sql .= " ROUND(SUM(fd.total_ht),2) as 'Total'";
|
$sql .= " ROUND(SUM(fd.total_ht),2) as 'Total'";
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as fd";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as fd";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accountingaccount as aa ON aa.rowid = fd.fk_code_ventilation";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.rowid = fd.fk_code_ventilation";
|
||||||
$sql .= " WHERE f.datef >= '" . $db->idate(dol_get_first_day($y, 1, false)) . "'";
|
$sql .= " WHERE f.datef >= '" . $db->idate(dol_get_first_day($y, 1, false)) . "'";
|
||||||
$sql .= " AND f.datef <= '" . $db->idate(dol_get_last_day($y, 12, false)) . "'";
|
$sql .= " AND f.datef <= '" . $db->idate(dol_get_last_day($y, 12, false)) . "'";
|
||||||
|
|
||||||
|
|||||||
@ -154,7 +154,7 @@ print '<script type="text/javascript">
|
|||||||
$sql = "SELECT l.rowid , f.facnumber, f.rowid as facid, l.fk_product, l.description, l.total_ht, l.qty, l.tva_tx, l.fk_code_ventilation, aa.label, aa.account_number,";
|
$sql = "SELECT l.rowid , f.facnumber, f.rowid as facid, l.fk_product, l.description, l.total_ht, l.qty, l.tva_tx, l.fk_code_ventilation, aa.label, aa.account_number,";
|
||||||
$sql .= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.fk_product_type as type";
|
$sql .= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.fk_product_type as type";
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "facture as f";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "facture as f";
|
||||||
$sql .= " , " . MAIN_DB_PREFIX . "accountingaccount as aa";
|
$sql .= " , " . MAIN_DB_PREFIX . "accounting_account as aa";
|
||||||
$sql .= " , " . MAIN_DB_PREFIX . "facturedet as l";
|
$sql .= " , " . MAIN_DB_PREFIX . "facturedet as l";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product";
|
||||||
$sql .= " WHERE f.rowid = l.fk_facture AND f.fk_statut >= 1 AND l.fk_code_ventilation <> 0 ";
|
$sql .= " WHERE f.rowid = l.fk_facture AND f.fk_statut >= 1 AND l.fk_code_ventilation <> 0 ";
|
||||||
@ -184,6 +184,14 @@ if (strlen(trim($search_vat)))
|
|||||||
if (! empty($conf->multicompany->enabled)) {
|
if (! empty($conf->multicompany->enabled)) {
|
||||||
$sql .= " AND f.entity IN (" . getEntity("facture", 1) . ")";
|
$sql .= " AND f.entity IN (" . getEntity("facture", 1) . ")";
|
||||||
}
|
}
|
||||||
|
// Count total nb of records with no order and no limits
|
||||||
|
$nbtotalofrecords = 0;
|
||||||
|
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
||||||
|
{
|
||||||
|
$resql = $db->query($sql);
|
||||||
|
if ($resql) $nbtotalofrecords = $db->num_rows($resql);
|
||||||
|
else dol_print_error($db);
|
||||||
|
}
|
||||||
$sql.= $db->order($sortfield,$sortorder);
|
$sql.= $db->order($sortfield,$sortorder);
|
||||||
$sql.= $db->plimit($limit + 1,$offset);
|
$sql.= $db->plimit($limit + 1,$offset);
|
||||||
|
|
||||||
@ -193,8 +201,15 @@ if ($result) {
|
|||||||
$num_lines = $db->num_rows($result);
|
$num_lines = $db->num_rows($result);
|
||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
print_barre_liste($langs->trans("InvoiceLinesDone"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num_lines);
|
$param="";
|
||||||
|
if ($search_facture) $param.="&search_facture=".$search_facture;
|
||||||
|
if ($search_ref) $param.="&search_ref=".$search_ref;
|
||||||
|
if ($search_label) $param.="&search_label=".$search_label;
|
||||||
|
if ($search_desc) $param.="&search_desc=".$search_desc;
|
||||||
|
if ($search_account) $param.="&search_account=".$search_account;
|
||||||
|
if ($filter) $param.="&filter=".$filter;
|
||||||
|
|
||||||
|
print_barre_liste($langs->trans("InvoiceLinesDone"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num_lines,$nbtotalofrecords);
|
||||||
print '<td align="left"><b>' . $langs->trans("DescVentilDoneCustomer") . '</b></td>';
|
print '<td align="left"><b>' . $langs->trans("DescVentilDoneCustomer") . '</b></td>';
|
||||||
|
|
||||||
print '<form method="POST" action="' . $_SERVER["PHP_SELF"] . '">';
|
print '<form method="POST" action="' . $_SERVER["PHP_SELF"] . '">';
|
||||||
@ -277,5 +292,10 @@ if ($result) {
|
|||||||
|
|
||||||
print "</table></form>";
|
print "</table></form>";
|
||||||
|
|
||||||
|
if ($num_lines > $conf->liste_limit)
|
||||||
|
{
|
||||||
|
print_barre_liste('',$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num_lines,$nbtotalofrecords,'');
|
||||||
|
}
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
$db->close();
|
$db->close();
|
||||||
|
|||||||
@ -72,7 +72,7 @@ if (! empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION)) {
|
|||||||
$offset = $limit * $page;
|
$offset = $limit * $page;
|
||||||
|
|
||||||
if (! $sortfield)
|
if (! $sortfield)
|
||||||
$sortfield = "f.datef, f.facnumber, l.rowid";
|
$sortfield = "f.facnumber";
|
||||||
|
|
||||||
if (! $sortorder) {
|
if (! $sortorder) {
|
||||||
if ($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_TODO > 0) {
|
if ($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_TODO > 0) {
|
||||||
@ -136,6 +136,7 @@ if ($action == 'ventil' && !empty($btn_ventil)) {
|
|||||||
print '<div><font color="red">' . count($mesCasesCochees) . ' ' . $langs->trans("SelectedLines") . '</font></div>';
|
print '<div><font color="red">' . count($mesCasesCochees) . ' ' . $langs->trans("SelectedLines") . '</font></div>';
|
||||||
$mesCodesVentilChoisis = $codeventil;
|
$mesCodesVentilChoisis = $codeventil;
|
||||||
$cpt = 0;
|
$cpt = 0;
|
||||||
|
|
||||||
foreach ( $mesCasesCochees as $maLigneCochee ) {
|
foreach ( $mesCasesCochees as $maLigneCochee ) {
|
||||||
$maLigneCourante = explode("_", $maLigneCochee);
|
$maLigneCourante = explode("_", $maLigneCochee);
|
||||||
$monId = $maLigneCourante[0];
|
$monId = $maLigneCourante[0];
|
||||||
@ -172,7 +173,7 @@ $sql .= " , l.product_type as type_l, l.tva_tx as tva_tx_line";
|
|||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "facture as f";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "facture as f";
|
||||||
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "facturedet as l ON f.rowid = l.fk_facture";
|
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "facturedet as l ON f.rowid = l.fk_facture";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accountingaccount as aa ON p.accountancy_code_sell = aa.account_number";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON p.accountancy_code_sell = aa.account_number";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_system as accsys ON accsys.pcg_version = aa.fk_pcg_version";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_system as accsys ON accsys.pcg_version = aa.fk_pcg_version";
|
||||||
$sql .= " WHERE f.fk_statut > 0 AND fk_code_ventilation <= 0";
|
$sql .= " WHERE f.fk_statut > 0 AND fk_code_ventilation <= 0";
|
||||||
$sql .= " AND (accsys.rowid='" . $conf->global->CHARTOFACCOUNTS . "' OR p.accountancy_code_sell IS NULL OR p.accountancy_code_sell ='')";
|
$sql .= " AND (accsys.rowid='" . $conf->global->CHARTOFACCOUNTS . "' OR p.accountancy_code_sell IS NULL OR p.accountancy_code_sell ='')";
|
||||||
@ -216,9 +217,6 @@ if ($result) {
|
|||||||
|
|
||||||
print_barre_liste($langs->trans("InvoiceLines"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num_lines);
|
print_barre_liste($langs->trans("InvoiceLines"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num_lines);
|
||||||
print '<br><b>' . $langs->trans("DescVentilTodoCustomer") . '</b></br>';
|
print '<br><b>' . $langs->trans("DescVentilTodoCustomer") . '</b></br>';
|
||||||
print_liste_field_titre($langs->trans("Date"), $_SERVER["PHP_SELF"], "f.datef", "", $param, '', $sortfield, $sortorder);
|
|
||||||
print ' ';
|
|
||||||
print_liste_field_titre($langs->trans("RowId"), $_SERVER["PHP_SELF"], "l.rowid", "", $param, '', $sortfield, $sortorder);
|
|
||||||
|
|
||||||
print '<form action="' . $_SERVER["PHP_SELF"] . '" method="post">' . "\n";
|
print '<form action="' . $_SERVER["PHP_SELF"] . '" method="post">' . "\n";
|
||||||
print '<input type="hidden" name="action" value="ventil">';
|
print '<input type="hidden" name="action" value="ventil">';
|
||||||
@ -231,7 +229,7 @@ if ($result) {
|
|||||||
print_liste_field_titre($langs->trans("Description"), $_SERVER["PHP_SELF"], "l.description", "", $param, '', $sortfield, $sortorder);
|
print_liste_field_titre($langs->trans("Description"), $_SERVER["PHP_SELF"], "l.description", "", $param, '', $sortfield, $sortorder);
|
||||||
print_liste_field_titre($langs->trans("Amount"), $_SERVER["PHP_SELF"],"l.total_ht","",$param,'align="center"',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("Amount"), $_SERVER["PHP_SELF"],"l.total_ht","",$param,'align="center"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("VATRate"), $_SERVER["PHP_SELF"], "l.tva_tx", "", $param, 'align="center"', $sortfield, $sortorder);
|
print_liste_field_titre($langs->trans("VATRate"), $_SERVER["PHP_SELF"], "l.tva_tx", "", $param, 'align="center"', $sortfield, $sortorder);
|
||||||
print_liste_field_titre($langs->trans("AccountAccounting"), '', '', '', '', 'align="center"');
|
print_liste_field_titre($langs->trans("AccountAccountingSuggest"), '', '', '', '', 'align="center"');
|
||||||
print_liste_field_titre($langs->trans("IntoAccount"), '', '', '', '', 'align="center"');
|
print_liste_field_titre($langs->trans("IntoAccount"), '', '', '', '', 'align="center"');
|
||||||
print_liste_field_titre('');
|
print_liste_field_titre('');
|
||||||
print_liste_field_titre($langs->trans("Ventilate") . '<br><label id="select-all">' . $langs->trans('All') . '</label>/<label id="unselect-all">' . $langs->trans('None') . '</label>', '', '', '', '', 'align="center"');
|
print_liste_field_titre($langs->trans("Ventilate") . '<br><label id="select-all">' . $langs->trans('All') . '</label>/<label id="unselect-all">' . $langs->trans('None') . '</label>', '', '', '', '', 'align="center"');
|
||||||
@ -322,7 +320,7 @@ if ($result) {
|
|||||||
if ($objp->code_sell_l == $objp->code_sell_p) {
|
if ($objp->code_sell_l == $objp->code_sell_p) {
|
||||||
print $objp->code_sell_l;
|
print $objp->code_sell_l;
|
||||||
} else {
|
} else {
|
||||||
print 'lines=' . $objp->code_sell_l . '<br />product=' . $objp->code_sell_p;
|
print $langs->trans("Purchase") . ' = ' . $objp->code_sell_l . '<br />' . $langs->trans("Sell") . ' = ' . $objp->code_sell_p;
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
* This program is distributed in the hope that it will be useful,
|
* This program is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License fr 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, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
@ -25,7 +25,7 @@
|
|||||||
/**
|
/**
|
||||||
* \file htdocs/accountancy/journal/bankjournal.php
|
* \file htdocs/accountancy/journal/bankjournal.php
|
||||||
* \ingroup Accounting Expert
|
* \ingroup Accounting Expert
|
||||||
* \brief Page with sells journal
|
* \brief Page with bank journal
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require '../../main.inc.php';
|
require '../../main.inc.php';
|
||||||
@ -66,6 +66,8 @@ $date_endday = GETPOST('date_endday');
|
|||||||
$date_endyear = GETPOST('date_endyear');
|
$date_endyear = GETPOST('date_endyear');
|
||||||
$action = GETPOST('action');
|
$action = GETPOST('action');
|
||||||
|
|
||||||
|
$now = dol_now();
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->societe_id > 0)
|
if ($user->societe_id > 0)
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
@ -421,10 +423,9 @@ if ($action == 'writeBookKeeping')
|
|||||||
if ($action == 'export_csv')
|
if ($action == 'export_csv')
|
||||||
{
|
{
|
||||||
$sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV;
|
$sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV;
|
||||||
$bank_journal = $conf->global->ACCOUNTING_BANK_JOURNAL;
|
$journal = $conf->global->ACCOUNTING_BANK_JOURNAL;
|
||||||
|
|
||||||
header('Content-Type: text/csv');
|
include DOL_DOCUMENT_ROOT.'/accountancy/tpl/export_journal.tpl.php';
|
||||||
header('Content-Disposition: attachment;filename=journal_banque.csv');
|
|
||||||
|
|
||||||
$companystatic = new Client($db);
|
$companystatic = new Client($db);
|
||||||
|
|
||||||
@ -571,7 +572,7 @@ else
|
|||||||
|
|
||||||
// Title
|
// Title
|
||||||
print '<tr>';
|
print '<tr>';
|
||||||
print '<td valign="top" width="110">'.$langs->trans("ReportName").'</td>';
|
print '<td width="110">'.$langs->trans("ReportName").'</td>';
|
||||||
print '<td colspan="3">'.$namereport.'</td>';
|
print '<td colspan="3">'.$namereport.'</td>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
@ -588,7 +589,7 @@ else
|
|||||||
|
|
||||||
// Description
|
// Description
|
||||||
print '<tr>';
|
print '<tr>';
|
||||||
print '<td valign="top">'.$langs->trans("ReportDescription").'</td>';
|
print '<td>'.$langs->trans("ReportDescription").'</td>';
|
||||||
print '<td colspan="3">'.$description.'</td>';
|
print '<td colspan="3">'.$description.'</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
* Copyright (C) 2007-2010 Jean Heimburger <jean@tiaris.info>
|
* Copyright (C) 2007-2010 Jean Heimburger <jean@tiaris.info>
|
||||||
* Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2012 Regis Houssin <regis@dolibarr.fr>
|
* Copyright (C) 2012 Regis Houssin <regis@dolibarr.fr>
|
||||||
* Copyright (C) 2013-2014 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
* Copyright (C) 2013-2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||||
* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
|
* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
|
||||||
* Copyright (C) 2013-2014 Florian Henry <florian.henry@open-concept.pro>
|
* Copyright (C) 2013-2014 Florian Henry <florian.henry@open-concept.pro>
|
||||||
*
|
*
|
||||||
@ -52,6 +52,8 @@ $date_endmonth = GETPOST('date_endmonth');
|
|||||||
$date_endday = GETPOST('date_endday');
|
$date_endday = GETPOST('date_endday');
|
||||||
$date_endyear = GETPOST('date_endyear');
|
$date_endyear = GETPOST('date_endyear');
|
||||||
|
|
||||||
|
$now = dol_now();
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->societe_id > 0)
|
if ($user->societe_id > 0)
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
@ -91,7 +93,7 @@ $sql .= " s.code_compta_fournisseur, p.accountancy_code_buy , ct.accountancy_cod
|
|||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "facture_fourn_det as fd";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "facture_fourn_det as fd";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "c_tva as ct ON fd.tva_tx = ct.taux AND ct.fk_pays = '" . $idpays . "'";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "c_tva as ct ON fd.tva_tx = ct.taux AND ct.fk_pays = '" . $idpays . "'";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = fd.fk_product";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = fd.fk_product";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accountingaccount as aa ON aa.rowid = fd.fk_code_ventilation";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.rowid = fd.fk_code_ventilation";
|
||||||
$sql .= " JOIN " . MAIN_DB_PREFIX . "facture_fourn as f ON f.rowid = fd.fk_facture_fourn";
|
$sql .= " JOIN " . MAIN_DB_PREFIX . "facture_fourn as f ON f.rowid = fd.fk_facture_fourn";
|
||||||
$sql .= " JOIN " . MAIN_DB_PREFIX . "societe as s ON s.rowid = f.fk_soc";
|
$sql .= " JOIN " . MAIN_DB_PREFIX . "societe as s ON s.rowid = f.fk_soc";
|
||||||
$sql .= " WHERE f.fk_statut > 0 ";
|
$sql .= " WHERE f.fk_statut > 0 ";
|
||||||
@ -156,7 +158,6 @@ if ($result) {
|
|||||||
|
|
||||||
// Bookkeeping Write
|
// Bookkeeping Write
|
||||||
if ($action == 'writebookkeeping') {
|
if ($action == 'writebookkeeping') {
|
||||||
$now = dol_now();
|
|
||||||
|
|
||||||
foreach ( $tabfac as $key => $val ) {
|
foreach ( $tabfac as $key => $val ) {
|
||||||
foreach ( $tabttc[$key] as $k => $mt ) {
|
foreach ( $tabttc[$key] as $k => $mt ) {
|
||||||
@ -246,14 +247,9 @@ $companystatic = new Fournisseur($db);
|
|||||||
if ($action == 'export_csv')
|
if ($action == 'export_csv')
|
||||||
{
|
{
|
||||||
$sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV;
|
$sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV;
|
||||||
$purchase_journal = $conf->global->ACCOUNTING_PURCHASE_JOURNAL;
|
$journal = $conf->global->ACCOUNTING_PURCHASE_JOURNAL;
|
||||||
|
|
||||||
header('Content-Type: text/csv');
|
include DOL_DOCUMENT_ROOT.'/accountancy/tpl/export_journal.tpl.php';
|
||||||
if ($conf->global->EXPORT_PREFIX_SPEC)
|
|
||||||
$filename=$conf->global->EXPORT_PREFIX_SPEC."_"."journal_achats.csv";
|
|
||||||
else
|
|
||||||
$filename="journal_achats.csv";
|
|
||||||
header('Content-Disposition: attachment;filename='.$filename);
|
|
||||||
|
|
||||||
if ($conf->global->ACCOUNTING_EXPORT_MODELCSV == 2) // Model Cegid Expert Export
|
if ($conf->global->ACCOUNTING_EXPORT_MODELCSV == 2) // Model Cegid Expert Export
|
||||||
{
|
{
|
||||||
|
|||||||
@ -54,6 +54,8 @@ $date_endmonth = GETPOST('date_endmonth');
|
|||||||
$date_endday = GETPOST('date_endday');
|
$date_endday = GETPOST('date_endday');
|
||||||
$date_endyear = GETPOST('date_endyear');
|
$date_endyear = GETPOST('date_endyear');
|
||||||
|
|
||||||
|
$now = dol_now();
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->societe_id > 0)
|
if ($user->societe_id > 0)
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
@ -93,7 +95,7 @@ $sql .= " p.rowid as pid, p.ref as pref, p.accountancy_code_sell, aa.rowid as fk
|
|||||||
$sql .= " fd.situation_percent,ct.accountancy_code_sell as account_tva";
|
$sql .= " fd.situation_percent,ct.accountancy_code_sell as account_tva";
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as fd";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as fd";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = fd.fk_product";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = fd.fk_product";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accountingaccount as aa ON aa.rowid = fd.fk_code_ventilation";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.rowid = fd.fk_code_ventilation";
|
||||||
$sql .= " JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture";
|
$sql .= " JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture";
|
||||||
$sql .= " JOIN " . MAIN_DB_PREFIX . "societe as s ON s.rowid = f.fk_soc";
|
$sql .= " JOIN " . MAIN_DB_PREFIX . "societe as s ON s.rowid = f.fk_soc";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "c_tva as ct ON fd.tva_tx = ct.taux AND ct.fk_pays = '" . $idpays . "'";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "c_tva as ct ON fd.tva_tx = ct.taux AND ct.fk_pays = '" . $idpays . "'";
|
||||||
@ -191,7 +193,6 @@ if ($result) {
|
|||||||
// Bookkeeping Write
|
// Bookkeeping Write
|
||||||
if ($action == 'writebookkeeping')
|
if ($action == 'writebookkeeping')
|
||||||
{
|
{
|
||||||
$now = dol_now();
|
|
||||||
|
|
||||||
foreach ($tabfac as $key => $val)
|
foreach ($tabfac as $key => $val)
|
||||||
{
|
{
|
||||||
@ -275,14 +276,9 @@ if ($action == 'writebookkeeping')
|
|||||||
if ($action == 'export_csv')
|
if ($action == 'export_csv')
|
||||||
{
|
{
|
||||||
$sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV;
|
$sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV;
|
||||||
$sell_journal = $conf->global->ACCOUNTING_SELL_JOURNAL;
|
$journal = $conf->global->ACCOUNTING_SELL_JOURNAL;
|
||||||
|
|
||||||
header('Content-Type: text/csv');
|
include DOL_DOCUMENT_ROOT.'/accountancy/tpl/export_journal.tpl.php';
|
||||||
if ($conf->global->EXPORT_PREFIX_SPEC)
|
|
||||||
$filename=$conf->global->EXPORT_PREFIX_SPEC."_"."journal_ventes.csv";
|
|
||||||
else
|
|
||||||
$filename="journal_ventes.csv";
|
|
||||||
header('Content-Disposition: attachment;filename='.$filename);
|
|
||||||
|
|
||||||
$companystatic = new Client($db);
|
$companystatic = new Client($db);
|
||||||
|
|
||||||
|
|||||||
@ -85,7 +85,7 @@ if (! empty($id)) {
|
|||||||
$sql .= ", aa.account_number, aa.label";
|
$sql .= ", aa.account_number, aa.label";
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "facture_fourn_det as l";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "facture_fourn_det as l";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accountingaccount as aa ON l.fk_code_ventilation = aa.rowid";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON l.fk_code_ventilation = aa.rowid";
|
||||||
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "facture_fourn as f ON f.rowid = l.fk_facture_fourn ";
|
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "facture_fourn as f ON f.rowid = l.fk_facture_fourn ";
|
||||||
$sql .= " WHERE f.fk_statut > 0 AND l.rowid = " . $id;
|
$sql .= " WHERE f.fk_statut > 0 AND l.rowid = " . $id;
|
||||||
|
|
||||||
|
|||||||
@ -63,12 +63,12 @@ if ($action == 'validatehistory') {
|
|||||||
if ($db->type == 'pgsql') {
|
if ($db->type == 'pgsql') {
|
||||||
$sql1 = "UPDATE " . MAIN_DB_PREFIX . "facture_fourn_det as fd";
|
$sql1 = "UPDATE " . MAIN_DB_PREFIX . "facture_fourn_det as fd";
|
||||||
$sql1 .= " SET fd.fk_code_ventilation = accnt.rowid";
|
$sql1 .= " SET fd.fk_code_ventilation = accnt.rowid";
|
||||||
$sql1 .= " FROM " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accountingaccount as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst";
|
$sql1 .= " FROM " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst";
|
||||||
$sql1 .= " WHERE fd.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . $conf->global->CHARTOFACCOUNTS;
|
$sql1 .= " WHERE fd.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . $conf->global->CHARTOFACCOUNTS;
|
||||||
$sql1 .= " AND accnt.active = 1 AND p.accountancy_code_buy=accnt.account_number";
|
$sql1 .= " AND accnt.active = 1 AND p.accountancy_code_buy=accnt.account_number";
|
||||||
$sql1 .= " AND fd.fk_code_ventilation = 0";
|
$sql1 .= " AND fd.fk_code_ventilation = 0";
|
||||||
} else {
|
} else {
|
||||||
$sql1 = "UPDATE " . MAIN_DB_PREFIX . "facture_fourn_det as fd, " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accountingaccount as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst";
|
$sql1 = "UPDATE " . MAIN_DB_PREFIX . "facture_fourn_det as fd, " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst";
|
||||||
$sql1 .= " SET fd.fk_code_ventilation = accnt.rowid";
|
$sql1 .= " SET fd.fk_code_ventilation = accnt.rowid";
|
||||||
$sql1 .= " WHERE fd.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . $conf->global->CHARTOFACCOUNTS;
|
$sql1 .= " WHERE fd.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . $conf->global->CHARTOFACCOUNTS;
|
||||||
$sql1 .= " AND accnt.active = 1 AND p.accountancy_code_buy=accnt.account_number";
|
$sql1 .= " AND accnt.active = 1 AND p.accountancy_code_buy=accnt.account_number";
|
||||||
@ -138,7 +138,7 @@ $sql .= " ROUND(SUM(IF(MONTH(ff.datef)=12,ffd.total_ht,0)),2) AS 'Decembre',";
|
|||||||
$sql .= " ROUND(SUM(ffd.total_ht),2) as 'Total'";
|
$sql .= " ROUND(SUM(ffd.total_ht),2) as 'Total'";
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "facture_fourn_det as ffd";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "facture_fourn_det as ffd";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "facture_fourn as ff ON ff.rowid = ffd.fk_facture_fourn";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "facture_fourn as ff ON ff.rowid = ffd.fk_facture_fourn";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accountingaccount as aa ON aa.rowid = ffd.fk_code_ventilation";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.rowid = ffd.fk_code_ventilation";
|
||||||
$sql .= " WHERE ff.datef >= '" . $db->idate(dol_get_first_day($y, 1, false)) . "'";
|
$sql .= " WHERE ff.datef >= '" . $db->idate(dol_get_first_day($y, 1, false)) . "'";
|
||||||
$sql .= " AND ff.datef <= '" . $db->idate(dol_get_last_day($y, 12, false)) . "'";
|
$sql .= " AND ff.datef <= '" . $db->idate(dol_get_last_day($y, 12, false)) . "'";
|
||||||
$sql .= " AND ff.fk_statut > 0 ";
|
$sql .= " AND ff.fk_statut > 0 ";
|
||||||
|
|||||||
@ -156,7 +156,7 @@ print '<script type="text/javascript">
|
|||||||
$sql = "SELECT f.ref as facnumber, f.rowid as facid, l.fk_product, l.description, l.total_ht , l.qty, l.rowid, l.tva_tx, aa.label, aa.account_number, ";
|
$sql = "SELECT f.ref as facnumber, f.rowid as facid, l.fk_product, l.description, l.total_ht , l.qty, l.rowid, l.tva_tx, aa.label, aa.account_number, ";
|
||||||
$sql .= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.fk_product_type as type";
|
$sql .= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.fk_product_type as type";
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "facture_fourn as f";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "facture_fourn as f";
|
||||||
$sql .= " , " . MAIN_DB_PREFIX . "accountingaccount as aa";
|
$sql .= " , " . MAIN_DB_PREFIX . "accounting_account as aa";
|
||||||
$sql .= " , " . MAIN_DB_PREFIX . "facture_fourn_det as l";
|
$sql .= " , " . MAIN_DB_PREFIX . "facture_fourn_det as l";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product";
|
||||||
$sql .= " WHERE f.rowid = l.fk_facture_fourn and f.fk_statut >= 1 AND l.fk_code_ventilation <> 0 ";
|
$sql .= " WHERE f.rowid = l.fk_facture_fourn and f.fk_statut >= 1 AND l.fk_code_ventilation <> 0 ";
|
||||||
|
|||||||
@ -179,7 +179,7 @@ $sql .= " , l.product_type as type_l";
|
|||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "facture_fourn as f";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "facture_fourn as f";
|
||||||
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "facture_fourn_det as l ON f.rowid = l.fk_facture_fourn";
|
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "facture_fourn_det as l ON f.rowid = l.fk_facture_fourn";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accountingaccount as aa ON p.accountancy_code_buy = aa.account_number";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON p.accountancy_code_buy = aa.account_number";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_system as accsys ON accsys.pcg_version = aa.fk_pcg_version";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_system as accsys ON accsys.pcg_version = aa.fk_pcg_version";
|
||||||
$sql .= " WHERE f.fk_statut > 0 AND fk_code_ventilation <= 0";
|
$sql .= " WHERE f.fk_statut > 0 AND fk_code_ventilation <= 0";
|
||||||
$sql .= " AND (accsys.rowid='" . $conf->global->CHARTOFACCOUNTS . "' OR p.accountancy_code_sell IS NULL OR p.accountancy_code_buy ='')";
|
$sql .= " AND (accsys.rowid='" . $conf->global->CHARTOFACCOUNTS . "' OR p.accountancy_code_sell IS NULL OR p.accountancy_code_buy ='')";
|
||||||
|
|||||||
28
htdocs/accountancy/tpl/export_journal.tpl.php
Normal file
28
htdocs/accountancy/tpl/export_journal.tpl.php
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
$prefix = $conf->global->ACCOUNTING_EXPORT_PREFIX_SPEC;
|
||||||
|
$format = $conf->global->ACCOUNTING_EXPORT_FORMAT;
|
||||||
|
|
||||||
|
$date_export = dol_print_date($now, '%Y%m%d%H%M%S');
|
||||||
|
|
||||||
|
header('Content-Type: text/csv');
|
||||||
|
if ($prefix)
|
||||||
|
$filename = $prefix . "_" . "journal_" . $journal . $date_export . "." . $format;
|
||||||
|
else
|
||||||
|
$filename = "journal_" . $journal . $date_export . "." . $format;
|
||||||
|
header('Content-Disposition: attachment;filename='.$filename);
|
||||||
0
htdocs/accountancy/tpl/index.html
Normal file
0
htdocs/accountancy/tpl/index.html
Normal file
@ -1619,131 +1619,133 @@ else
|
|||||||
* Hotbar
|
* Hotbar
|
||||||
*/
|
*/
|
||||||
print '<div class="tabsAction">';
|
print '<div class="tabsAction">';
|
||||||
|
$parameters = array();
|
||||||
if ($action != 'valid' && $action != 'editlogin' && $action != 'editthirdparty')
|
$reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been
|
||||||
{
|
if (empty($reshook)) {
|
||||||
// Modify
|
if ($action != 'valid' && $action != 'editlogin' && $action != 'editthirdparty')
|
||||||
if ($user->rights->adherent->creer)
|
|
||||||
{
|
|
||||||
print '<div class="inline-block divButAction"><a class="butAction" href="card.php?rowid='.$rowid.'&action=edit">'.$langs->trans("Modify")."</a></div>";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("Modify").'</font></div>';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Validate
|
|
||||||
if ($object->statut == -1)
|
|
||||||
{
|
{
|
||||||
|
// Modify
|
||||||
if ($user->rights->adherent->creer)
|
if ($user->rights->adherent->creer)
|
||||||
{
|
{
|
||||||
print '<div class="inline-block divButAction"><a class="butAction" href="card.php?rowid='.$rowid.'&action=valid">'.$langs->trans("Validate")."</a></div>\n";
|
print '<div class="inline-block divButAction"><a class="butAction" href="card.php?rowid='.$rowid.'&action=edit">'.$langs->trans("Modify")."</a></div>";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("Validate").'</font></div>';
|
print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("Modify").'</font></div>';
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Reactivate
|
// Validate
|
||||||
if ($object->statut == 0)
|
if ($object->statut == -1)
|
||||||
{
|
{
|
||||||
|
if ($user->rights->adherent->creer)
|
||||||
|
{
|
||||||
|
print '<div class="inline-block divButAction"><a class="butAction" href="card.php?rowid='.$rowid.'&action=valid">'.$langs->trans("Validate")."</a></div>\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("Validate").'</font></div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reactivate
|
||||||
|
if ($object->statut == 0)
|
||||||
|
{
|
||||||
|
if ($user->rights->adherent->creer)
|
||||||
|
{
|
||||||
|
print '<div class="inline-block divButAction"><a class="butAction" href="card.php?rowid='.$rowid.'&action=valid">'.$langs->trans("Reenable")."</a></div>\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("Reenable")."</font></div>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Send card by email
|
||||||
if ($user->rights->adherent->creer)
|
if ($user->rights->adherent->creer)
|
||||||
{
|
{
|
||||||
print '<div class="inline-block divButAction"><a class="butAction" href="card.php?rowid='.$rowid.'&action=valid">'.$langs->trans("Reenable")."</a></div>\n";
|
if ($object->statut >= 1)
|
||||||
|
{
|
||||||
|
if ($object->email) print '<div class="inline-block divButAction"><a class="butAction" href="card.php?rowid='.$object->id.'&action=sendinfo">'.$langs->trans("SendCardByMail")."</a></div>\n";
|
||||||
|
else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NoEMail")).'">'.$langs->trans("SendCardByMail")."</a></div>\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("SendCardByMail")."</font></div>";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("Reenable")."</font></div>";
|
print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("SendCardByMail")."</font></div>";
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Send card by email
|
// Terminate
|
||||||
if ($user->rights->adherent->creer)
|
|
||||||
{
|
|
||||||
if ($object->statut >= 1)
|
if ($object->statut >= 1)
|
||||||
{
|
{
|
||||||
if ($object->email) print '<div class="inline-block divButAction"><a class="butAction" href="card.php?rowid='.$object->id.'&action=sendinfo">'.$langs->trans("SendCardByMail")."</a></div>\n";
|
if ($user->rights->adherent->supprimer)
|
||||||
else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NoEMail")).'">'.$langs->trans("SendCardByMail")."</a></div>\n";
|
{
|
||||||
|
print '<div class="inline-block divButAction"><a class="butAction" href="card.php?rowid='.$rowid.'&action=resign">'.$langs->trans("Resiliate")."</a></div>\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("Resiliate")."</font></div>";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("SendCardByMail")."</font></div>";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("SendCardByMail")."</font></div>";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Terminate
|
// Create third party
|
||||||
if ($object->statut >= 1)
|
if (! empty($conf->societe->enabled) && ! $object->fk_soc)
|
||||||
{
|
{
|
||||||
|
if ($user->rights->societe->creer)
|
||||||
|
{
|
||||||
|
if ($object->statut != -1) print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?rowid='.$object->id.'&action=create_thirdparty">'.$langs->trans("CreateDolibarrThirdParty").'</a></div>';
|
||||||
|
else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("CreateDolibarrThirdParty").'</a></div>';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("CreateDolibarrThirdParty")."</font></div>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create user
|
||||||
|
if (! $user->societe_id && ! $object->user_id)
|
||||||
|
{
|
||||||
|
if ($user->rights->user->user->creer)
|
||||||
|
{
|
||||||
|
if ($object->statut != -1) print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?rowid='.$object->id.'&action=create_user">'.$langs->trans("CreateDolibarrLogin").'</a></div>';
|
||||||
|
else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("CreateDolibarrLogin").'</a></div>';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("CreateDolibarrLogin")."</font></div>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete
|
||||||
if ($user->rights->adherent->supprimer)
|
if ($user->rights->adherent->supprimer)
|
||||||
{
|
{
|
||||||
print '<div class="inline-block divButAction"><a class="butAction" href="card.php?rowid='.$rowid.'&action=resign">'.$langs->trans("Resiliate")."</a></div>\n";
|
print '<div class="inline-block divButAction"><a class="butActionDelete" href="card.php?rowid='.$object->id.'&action=delete">'.$langs->trans("Delete")."</a></div>\n";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("Resiliate")."</font></div>";
|
print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("Delete")."</font></div>";
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Create third party
|
// Action SPIP
|
||||||
if (! empty($conf->societe->enabled) && ! $object->fk_soc)
|
if (! empty($conf->mailmanspip->enabled) && ! empty($conf->global->ADHERENT_USE_SPIP))
|
||||||
{
|
|
||||||
if ($user->rights->societe->creer)
|
|
||||||
{
|
{
|
||||||
if ($object->statut != -1) print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?rowid='.$object->id.'&action=create_thirdparty">'.$langs->trans("CreateDolibarrThirdParty").'</a></div>';
|
$isinspip = $mailmanspip->is_in_spip($object);
|
||||||
else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("CreateDolibarrThirdParty").'</a></div>';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("CreateDolibarrThirdParty")."</font></div>";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create user
|
if ($isinspip == 1)
|
||||||
if (! $user->societe_id && ! $object->user_id)
|
{
|
||||||
{
|
print '<div class="inline-block divButAction"><a class="butAction" href="card.php?rowid='.$object->id.'&action=del_spip">'.$langs->trans("DeleteIntoSpip")."</a></div>\n";
|
||||||
if ($user->rights->user->user->creer)
|
}
|
||||||
{
|
if ($isinspip == 0)
|
||||||
if ($object->statut != -1) print '<div class="inline-block divButAction"><a class="butAction" href="'.$_SERVER["PHP_SELF"].'?rowid='.$object->id.'&action=create_user">'.$langs->trans("CreateDolibarrLogin").'</a></div>';
|
{
|
||||||
else print '<div class="inline-block divButAction"><a class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("CreateDolibarrLogin").'</a></div>';
|
print '<div class="inline-block divButAction"><a class="butAction" href="card.php?rowid='.$object->id.'&action=add_spip">'.$langs->trans("AddIntoSpip")."</a></div>\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("CreateDolibarrLogin")."</font></div>";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete
|
|
||||||
if ($user->rights->adherent->supprimer)
|
|
||||||
{
|
|
||||||
print '<div class="inline-block divButAction"><a class="butActionDelete" href="card.php?rowid='.$object->id.'&action=delete">'.$langs->trans("Delete")."</a></div>\n";
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
print '<div class="inline-block divButAction"><font class="butActionRefused" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("Delete")."</font></div>";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Action SPIP
|
|
||||||
if (! empty($conf->mailmanspip->enabled) && ! empty($conf->global->ADHERENT_USE_SPIP))
|
|
||||||
{
|
|
||||||
$isinspip = $mailmanspip->is_in_spip($object);
|
|
||||||
|
|
||||||
if ($isinspip == 1)
|
|
||||||
{
|
|
||||||
print '<div class="inline-block divButAction"><a class="butAction" href="card.php?rowid='.$object->id.'&action=del_spip">'.$langs->trans("DeleteIntoSpip")."</a></div>\n";
|
|
||||||
}
|
|
||||||
if ($isinspip == 0)
|
|
||||||
{
|
|
||||||
print '<div class="inline-block divButAction"><a class="butAction" href="card.php?rowid='.$object->id.'&action=add_spip">'.$langs->trans("AddIntoSpip")."</a></div>\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
if ($isinspip == -1)
|
if ($isinspip == -1)
|
||||||
|
|||||||
@ -621,7 +621,9 @@ if ($rowid > 0)
|
|||||||
if ($object->datefin)
|
if ($object->datefin)
|
||||||
{
|
{
|
||||||
print dol_print_date($object->datefin,'day');
|
print dol_print_date($object->datefin,'day');
|
||||||
if ($object->datefin < ($now - $conf->adherent->cotisation->warning_delay) && $object->statut > 0) print " ".img_warning($langs->trans("Late")); // Affiche picto retard uniquement si non brouillon et non resilie
|
if ($object->hasDelay()) {
|
||||||
|
print " ".img_warning($langs->trans("Late"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1741,7 +1741,7 @@ class Adherent extends CommonObject
|
|||||||
|
|
||||||
$now=dol_now();
|
$now=dol_now();
|
||||||
|
|
||||||
$sql = "SELECT a.rowid, a.datefin";
|
$sql = "SELECT a.rowid, a.datefin, a.statut";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."adherent as a";
|
$sql.= " FROM ".MAIN_DB_PREFIX."adherent as a";
|
||||||
$sql.= " WHERE a.statut = 1";
|
$sql.= " WHERE a.statut = 1";
|
||||||
$sql.= " AND a.entity IN (".getEntity('adherent', 1).")";
|
$sql.= " AND a.entity IN (".getEntity('adherent', 1).")";
|
||||||
@ -1758,11 +1758,16 @@ class Adherent extends CommonObject
|
|||||||
$response->url=DOL_URL_ROOT.'/adherents/list.php?mainmenu=members&statut=1';
|
$response->url=DOL_URL_ROOT.'/adherents/list.php?mainmenu=members&statut=1';
|
||||||
$response->img=img_object($langs->trans("Members"),"user");
|
$response->img=img_object($langs->trans("Members"),"user");
|
||||||
|
|
||||||
|
$adherentstatic = new Adherent($this->db);
|
||||||
|
|
||||||
while ($obj=$this->db->fetch_object($resql))
|
while ($obj=$this->db->fetch_object($resql))
|
||||||
{
|
{
|
||||||
$response->nbtodo++;
|
$response->nbtodo++;
|
||||||
|
|
||||||
if ($this->db->jdate($obj->datefin) < ($now - $conf->adherent->cotisation->warning_delay)) {
|
$adherentstatic->datefin = $this->db->jdate($obj->datefin);
|
||||||
|
$adherentstatic->statut = $obj->statut;
|
||||||
|
|
||||||
|
if ($adherentstatic->hasDelay()) {
|
||||||
$response->nbtodolate++;
|
$response->nbtodolate++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1974,4 +1979,18 @@ class Adherent extends CommonObject
|
|||||||
return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables);
|
return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function hasDelay()
|
||||||
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
|
//Only valid members
|
||||||
|
if ($this->statut <= 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$now = dol_now();
|
||||||
|
|
||||||
|
return $this->datefin < ($now - $conf->adherent->cotisation->warning_delay);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -271,6 +271,8 @@ if ($resql)
|
|||||||
$memberstatic->ref=$objp->rowid;
|
$memberstatic->ref=$objp->rowid;
|
||||||
$memberstatic->lastname=$objp->lastname;
|
$memberstatic->lastname=$objp->lastname;
|
||||||
$memberstatic->firstname=$objp->firstname;
|
$memberstatic->firstname=$objp->firstname;
|
||||||
|
$memberstatic->statut=$objp->statut;
|
||||||
|
$memberstatic->datefin= $datefin;
|
||||||
|
|
||||||
if (! empty($objp->fk_soc)) {
|
if (! empty($objp->fk_soc)) {
|
||||||
$memberstatic->socid = $objp->fk_soc;
|
$memberstatic->socid = $objp->fk_soc;
|
||||||
@ -325,7 +327,9 @@ if ($resql)
|
|||||||
{
|
{
|
||||||
print '<td align="center" class="nowrap">';
|
print '<td align="center" class="nowrap">';
|
||||||
print dol_print_date($datefin,'day');
|
print dol_print_date($datefin,'day');
|
||||||
if ($datefin < ($now - $conf->adherent->cotisation->warning_delay) && $objp->statut > 0) print " ".img_warning($langs->trans("SubscriptionLate"));
|
if ($memberstatic->hasDelay()) {
|
||||||
|
print " ".img_warning($langs->trans("SubscriptionLate"));
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@ -761,7 +761,7 @@ else
|
|||||||
// On propose la generation de la vignette si elle n'existe pas
|
// On propose la generation de la vignette si elle n'existe pas
|
||||||
if (!is_file($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini) && preg_match('/(\.jpg|\.jpeg|\.png)$/i',$mysoc->logo))
|
if (!is_file($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini) && preg_match('/(\.jpg|\.jpeg|\.png)$/i',$mysoc->logo))
|
||||||
{
|
{
|
||||||
print '<a href="'.$_SERVER["PHP_SELF"].'?action=addthumb&file='.urlencode($mysoc->logo).'">'.img_picto($langs->trans('GenerateThumb'),'refresh').' </a>';
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=addthumb&file='.urlencode($mysoc->logo).'">'.img_picto($langs->trans('GenerateThumb'),'refresh').'</a> ';
|
||||||
}
|
}
|
||||||
else if ($mysoc->logo_mini && is_file($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini))
|
else if ($mysoc->logo_mini && is_file($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -97,6 +97,12 @@ $modules=array(
|
|||||||
'img' => 'user'
|
'img' => 'user'
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
'expensereport' => array(
|
||||||
|
array(
|
||||||
|
'code' => 'MAIN_DELAY_EXPENSEREPORTS',
|
||||||
|
'img' => 'trip'
|
||||||
|
)
|
||||||
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($action == 'update')
|
if ($action == 'update')
|
||||||
|
|||||||
@ -1,11 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2003-2007 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-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
|
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
|
||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
||||||
|
* Copyright (C) 2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.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
|
||||||
@ -28,6 +29,7 @@
|
|||||||
|
|
||||||
require '../main.inc.php';
|
require '../main.inc.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php';
|
||||||
|
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
$langs->load("admin");
|
$langs->load("admin");
|
||||||
@ -76,28 +78,7 @@ llxHeader('',$langs->trans("Setup"),$help_url);
|
|||||||
|
|
||||||
|
|
||||||
// Search modules dirs
|
// Search modules dirs
|
||||||
$modulesdir = array();
|
$modulesdir = dolGetModulesDirs();
|
||||||
foreach ($conf->file->dol_document_root as $type => $dirroot)
|
|
||||||
{
|
|
||||||
$modulesdir[$dirroot . '/core/modules/'] = $dirroot . '/core/modules/';
|
|
||||||
|
|
||||||
$handle=@opendir($dirroot);
|
|
||||||
if (is_resource($handle))
|
|
||||||
{
|
|
||||||
while (($file = readdir($handle))!==false)
|
|
||||||
{
|
|
||||||
if (is_dir($dirroot.'/'.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && $file != 'includes')
|
|
||||||
{
|
|
||||||
if (is_dir($dirroot . '/' . $file . '/core/modules/'))
|
|
||||||
{
|
|
||||||
$modulesdir[$dirroot . '/' . $file . '/core/modules/'] = $dirroot . '/' . $file . '/core/modules/';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
closedir($handle);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//var_dump($modulesdir);
|
|
||||||
|
|
||||||
|
|
||||||
$filename = array();
|
$filename = array();
|
||||||
@ -469,11 +450,11 @@ if ($mode != 'marketplace')
|
|||||||
}
|
}
|
||||||
else if (preg_match('/^([^@]+)@([^@]+)$/i',$objMod->config_page_url,$regs))
|
else if (preg_match('/^([^@]+)@([^@]+)$/i',$objMod->config_page_url,$regs))
|
||||||
{
|
{
|
||||||
print '<td align="right" valign="top"><a href="'.dol_buildpath('/'.$regs[2].'/admin/'.$regs[1],1).'" title="'.$langs->trans("Setup").'">'.img_picto($langs->trans("Setup"),"setup").'</a></td>';
|
print '<td align="right" valign="middle"><a href="'.dol_buildpath('/'.$regs[2].'/admin/'.$regs[1],1).'" title="'.$langs->trans("Setup").'">'.img_picto($langs->trans("Setup"),"setup").'</a></td>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print '<td align="right" valign="top"><a href="'.$objMod->config_page_url.'" title="'.$langs->trans("Setup").'">'.img_picto($langs->trans("Setup"),"setup").'</a></td>';
|
print '<td align="right" valign="middle"><a href="'.$objMod->config_page_url.'" title="'.$langs->trans("Setup").'">'.img_picto($langs->trans("Setup"),"setup").'</a></td>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -500,7 +481,8 @@ if ($mode != 'marketplace')
|
|||||||
print img_picto($langs->trans("Disabled"),'switch_off');
|
print img_picto($langs->trans("Disabled"),'switch_off');
|
||||||
print "</a>\n";
|
print "</a>\n";
|
||||||
}
|
}
|
||||||
print "</td>\n <td> </td>";
|
print "</td>\n";
|
||||||
|
print "<td> </td>";
|
||||||
}
|
}
|
||||||
|
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|||||||
@ -106,8 +106,17 @@ if ($action == 'set')
|
|||||||
$activeModules = $newActiveModules;
|
$activeModules = $newActiveModules;
|
||||||
dolibarr_set_const($db, 'SYSLOG_HANDLERS', json_encode($activeModules), 'chaine',0,'',0);
|
dolibarr_set_const($db, 'SYSLOG_HANDLERS', json_encode($activeModules), 'chaine',0,'',0);
|
||||||
|
|
||||||
|
// Check configuration
|
||||||
|
foreach ($activeModules as $modulename) {
|
||||||
|
/**
|
||||||
|
* @var LogHandler
|
||||||
|
*/
|
||||||
|
$module = new $modulename;
|
||||||
|
$error = $module->checkConfiguration();
|
||||||
|
}
|
||||||
|
|
||||||
if (! $error)
|
|
||||||
|
if (! $error)
|
||||||
{
|
{
|
||||||
$db->commit();
|
$db->commit();
|
||||||
setEventMessage($langs->trans("SetupSaved"));
|
setEventMessage($langs->trans("SetupSaved"));
|
||||||
@ -115,7 +124,8 @@ if ($action == 'set')
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
setEventMessage($langs->trans("Error"),'errors');
|
setEventMessage($error, 'errors');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -215,7 +225,11 @@ foreach ($syslogModules as $moduleName)
|
|||||||
print '<td align="left">';
|
print '<td align="left">';
|
||||||
if ($module->getInfo())
|
if ($module->getInfo())
|
||||||
{
|
{
|
||||||
print $form->textwithpicto('', $module->getInfo());
|
print $form->textwithpicto('', $module->getInfo(), 1, 'help');
|
||||||
|
}
|
||||||
|
if ($module->getWarning())
|
||||||
|
{
|
||||||
|
print $form->textwithpicto('', $module->getWarning(), 1, 'warning');
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|||||||
@ -63,11 +63,35 @@ print '<ul>';
|
|||||||
print '<li>';
|
print '<li>';
|
||||||
print '<a target="_blank" href="http://www.dolibarr.org/" rel="external">'.$langs->trans("OfficialWebSite").'</a>';
|
print '<a target="_blank" href="http://www.dolibarr.org/" rel="external">'.$langs->trans("OfficialWebSite").'</a>';
|
||||||
print '</li>';
|
print '</li>';
|
||||||
// If the French language, it displays French website
|
// Show local site
|
||||||
if (preg_match('/^fr_/i',$langs->getDefaultLang()))
|
if (preg_match('/^fr_/i',$langs->getDefaultLang()))
|
||||||
{
|
{
|
||||||
print '<li>';
|
print '<li>';
|
||||||
print '<a target="_blank" href="http://www.dolibarr.fr/" rel="external">'.$langs->trans("OfficialWebSiteFr").'</a>';
|
print '<a target="_blank" href="http://www.dolibarr.fr/" rel="external">'.$langs->trans("OfficialWebSiteLocal", $langs->transnoentitiesnoconv("France")).'</a>';
|
||||||
|
print '</li>';
|
||||||
|
}
|
||||||
|
if (preg_match('/^el_/i',$langs->getDefaultLang()))
|
||||||
|
{
|
||||||
|
print '<li>';
|
||||||
|
print '<a target="_blank" href="http://www.dolibarr.gr/" rel="external">'.$langs->trans("OfficialWebSiteLocal", $langs->transnoentitiesnoconv("Greece")).'</a>';
|
||||||
|
print '</li>';
|
||||||
|
}
|
||||||
|
if (preg_match('/^es_/i',$langs->getDefaultLang()))
|
||||||
|
{
|
||||||
|
print '<li>';
|
||||||
|
print '<a target="_blank" href="http://www.dolibarr.es/" rel="external">'.$langs->trans("OfficialWebSiteLocal", $langs->transnoentitiesnoconv("Spain")).'</a>';
|
||||||
|
print '</li>';
|
||||||
|
}
|
||||||
|
if (preg_match('/^it_/i',$langs->getDefaultLang()))
|
||||||
|
{
|
||||||
|
print '<li>';
|
||||||
|
print '<a target="_blank" href="http://www.dolibarr.it/" rel="external">'.$langs->trans("OfficialWebSiteLocal", $langs->transnoentitiesnoconv("Italy")).'</a>';
|
||||||
|
print '</li>';
|
||||||
|
}
|
||||||
|
if (preg_match('/^de_/i',$langs->getDefaultLang()))
|
||||||
|
{
|
||||||
|
print '<li>';
|
||||||
|
print '<a target="_blank" href="http://www.dolibarr.de/" rel="external">'.$langs->trans("OfficialWebSiteLocal", $langs->transnoentitiesnoconv("Germany")).'</a>';
|
||||||
print '</li>';
|
print '</li>';
|
||||||
}
|
}
|
||||||
print '<li>';
|
print '<li>';
|
||||||
|
|||||||
@ -179,7 +179,7 @@ if ($nbofentries > 0)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print '<tr>';
|
print '<tr '.$bc[0].'>';
|
||||||
print '<td colspan="3"><table class="nobordernopadding"><tr class="nobordernopadding"><td>'.img_picto_common('','treemenu/branchbottom.gif').'</td>';
|
print '<td colspan="3"><table class="nobordernopadding"><tr class="nobordernopadding"><td>'.img_picto_common('','treemenu/branchbottom.gif').'</td>';
|
||||||
print '<td valign="middle">';
|
print '<td valign="middle">';
|
||||||
print $langs->trans("NoCategoryYet");
|
print $langs->trans("NoCategoryYet");
|
||||||
|
|||||||
@ -882,7 +882,7 @@ class ActionComm extends CommonObject
|
|||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
$now = dol_now();
|
$agenda_static = new ActionComm($this->db);
|
||||||
|
|
||||||
$response = new WorkboardResponse();
|
$response = new WorkboardResponse();
|
||||||
$response->warning_delay = $conf->actions->warning_delay/60/60/24;
|
$response->warning_delay = $conf->actions->warning_delay/60/60/24;
|
||||||
@ -895,7 +895,9 @@ class ActionComm extends CommonObject
|
|||||||
{
|
{
|
||||||
$response->nbtodo++;
|
$response->nbtodo++;
|
||||||
|
|
||||||
if (isset($obj->dp) && $this->db->jdate($obj->dp) < ($now - $conf->actions->warning_delay)) {
|
$agenda_static->datep = $this->db->jdate($obj->dp);
|
||||||
|
|
||||||
|
if ($agenda_static->hasDelay()) {
|
||||||
$response->nbtodolate++;
|
$response->nbtodolate++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1361,5 +1363,19 @@ class ActionComm extends CommonObject
|
|||||||
return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables);
|
return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is the action delayed?
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function hasDelay()
|
||||||
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
|
$now = dol_now();
|
||||||
|
|
||||||
|
return $this->datep && ($this->datep < ($now - $conf->actions->warning_delay));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1664,7 +1664,7 @@ if ($action == 'create')
|
|||||||
|
|
||||||
// Create an order
|
// Create an order
|
||||||
if (! empty($conf->commande->enabled) && $object->statut == 2) {
|
if (! empty($conf->commande->enabled) && $object->statut == 2) {
|
||||||
if ($user->rights->commande->creer) {
|
if ($user->rights->fournisseur->commande->creer) {
|
||||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . DOL_URL_ROOT . '/fourn/commande/card.php?action=create&origin=' . $object->element . '&originid=' . $object->id . '&socid=' . $object->socid . '">' . $langs->trans("AddOrder") . '</a></div>';
|
print '<div class="inline-block divButAction"><a class="butAction" href="' . DOL_URL_ROOT . '/fourn/commande/card.php?action=create&origin=' . $object->element . '&originid=' . $object->id . '&socid=' . $object->socid . '">' . $langs->trans("AddOrder") . '</a></div>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1761,7 +1761,7 @@ if ($action == 'create')
|
|||||||
$result = $object->generateDocument(GETPOST('model') ? GETPOST('model') : $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
$result = $object->generateDocument(GETPOST('model') ? GETPOST('model') : $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
||||||
if ($result <= 0)
|
if ($result <= 0)
|
||||||
{
|
{
|
||||||
dol_print_error($db, $result);
|
dol_print_error($db, $object->error, $object->errors);
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
$fileparams = dol_most_recent_file($conf->askpricesupplier->dir_output . '/' . $ref, preg_quote($ref, '/').'[^\-]+');
|
$fileparams = dol_most_recent_file($conf->askpricesupplier->dir_output . '/' . $ref, preg_quote($ref, '/').'[^\-]+');
|
||||||
|
|||||||
@ -40,10 +40,9 @@ $pagenext = $page + 1;
|
|||||||
if (! $sortorder) $sortorder="DESC";
|
if (! $sortorder) $sortorder="DESC";
|
||||||
if (! $sortfield) $sortfield="m.date_creat";
|
if (! $sortfield) $sortfield="m.date_creat";
|
||||||
|
|
||||||
$sall=isset($_GET["sall"])?$_GET["sall"]:$_POST["sall"];
|
$sall=GETPOST("sall","alpha");
|
||||||
$sref=isset($_GET["sref"])?$_GET["sref"]:$_POST["sref"];
|
$sref=GETPOST("sref","alpha");
|
||||||
|
$filteremail=GETPOST('filteremail','alpha');
|
||||||
$filteremail=$_REQUEST["filteremail"]?$_REQUEST["filteremail"]:'';
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -62,8 +61,8 @@ if ($filteremail)
|
|||||||
$sql.= " FROM ".MAIN_DB_PREFIX."mailing as m, ".MAIN_DB_PREFIX."mailing_cibles as mc";
|
$sql.= " FROM ".MAIN_DB_PREFIX."mailing as m, ".MAIN_DB_PREFIX."mailing_cibles as mc";
|
||||||
$sql.= " WHERE m.rowid = mc.fk_mailing AND m.entity = ".$conf->entity;
|
$sql.= " WHERE m.rowid = mc.fk_mailing AND m.entity = ".$conf->entity;
|
||||||
$sql.= " AND mc.email = '".$db->escape($filteremail)."'";
|
$sql.= " AND mc.email = '".$db->escape($filteremail)."'";
|
||||||
if ($sref) $sql.= " AND m.rowid = '".$sref."'";
|
if ($sref) $sql.= " AND m.rowid = '".$db->escape($sref)."'";
|
||||||
if ($sall) $sql.= " AND (m.titre like '%".$sall."%' OR m.sujet like '%".$sall."%' OR m.body like '%".$sall."%')";
|
if ($sall) $sql.= " AND (m.titre like '%".$db->escape($sall)."%' OR m.sujet like '%".$db->escape($sall)."%' OR m.body like '%".$db->escape($sall)."%')";
|
||||||
if (! $sortorder) $sortorder="ASC";
|
if (! $sortorder) $sortorder="ASC";
|
||||||
if (! $sortfield) $sortfield="m.rowid";
|
if (! $sortfield) $sortfield="m.rowid";
|
||||||
$sql.= $db->order($sortfield,$sortorder);
|
$sql.= $db->order($sortfield,$sortorder);
|
||||||
@ -74,8 +73,8 @@ else
|
|||||||
$sql = "SELECT m.rowid, m.titre, m.nbemail, m.statut, m.date_creat as datec, m.date_envoi as date_envoi";
|
$sql = "SELECT m.rowid, m.titre, m.nbemail, m.statut, m.date_creat as datec, m.date_envoi as date_envoi";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."mailing as m";
|
$sql.= " FROM ".MAIN_DB_PREFIX."mailing as m";
|
||||||
$sql.= " WHERE m.entity = ".$conf->entity;
|
$sql.= " WHERE m.entity = ".$conf->entity;
|
||||||
if ($sref) $sql.= " AND m.rowid = '".$sref."'";
|
if ($sref) $sql.= " AND m.rowid = '".$db->escape($sref)."'";
|
||||||
if ($sall) $sql.= " AND (m.titre like '%".$sall."%' OR m.sujet like '%".$sall."%' OR m.body like '%".$sall."%')";
|
if ($sall) $sql.= " AND (m.titre like '%".$db->escape($sall)."%' OR m.sujet like '%".$db->escape($sall)."%' OR m.body like '%".$db->escape($sall)."%')";
|
||||||
if (! $sortorder) $sortorder="ASC";
|
if (! $sortorder) $sortorder="ASC";
|
||||||
if (! $sortfield) $sortfield="m.rowid";
|
if (! $sortfield) $sortfield="m.rowid";
|
||||||
$sql.= $db->order($sortfield,$sortorder);
|
$sql.= $db->order($sortfield,$sortorder);
|
||||||
@ -94,7 +93,7 @@ if ($result)
|
|||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
$param = "&sall=".$sall;
|
$param = "&sall=".urlencode($sall);
|
||||||
if ($filteremail) $param.='&filteremail='.urlencode($filteremail);
|
if ($filteremail) $param.='&filteremail='.urlencode($filteremail);
|
||||||
|
|
||||||
print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">';
|
print '<form method="GET" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
@ -111,11 +110,11 @@ if ($result)
|
|||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td class="liste_titre">';
|
print '<td class="liste_titre">';
|
||||||
print '<input type="text" class="flat" name="sref" value="'.$sref.'" size="6">';
|
print '<input type="text" class="flat" name="sref" value="'.dol_escape_htmltag($sref).'" size="6">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
// Title
|
// Title
|
||||||
print '<td class="liste_titre">';
|
print '<td class="liste_titre">';
|
||||||
print '<input type="text" class="flat" name="sall" value="'.$sall.'" size="40">';
|
print '<input type="text" class="flat" name="sall" value="'.dol_escape_htmltag($sall).'" size="40">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="liste_titre"> </td>';
|
print '<td class="liste_titre"> </td>';
|
||||||
if (! $filteremail) print '<td class="liste_titre"> </td>';
|
if (! $filteremail) print '<td class="liste_titre"> </td>';
|
||||||
|
|||||||
@ -1053,49 +1053,6 @@ if (empty($reshook))
|
|||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Generation doc (depuis lien ou depuis cartouche doc)
|
|
||||||
else if ($action == 'builddoc' && $user->rights->propal->creer) {
|
|
||||||
if (GETPOST('model')) {
|
|
||||||
$object->setDocModel($user, GETPOST('model'));
|
|
||||||
}
|
|
||||||
if (GETPOST('fk_bank')) { // this field may come from an external module
|
|
||||||
$object->fk_bank = GETPOST('fk_bank');
|
|
||||||
} else {
|
|
||||||
$object->fk_bank = $object->fk_account;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Define output language
|
|
||||||
$outputlangs = $langs;
|
|
||||||
if (! empty($conf->global->MAIN_MULTILANGS)) {
|
|
||||||
$outputlangs = new Translate("", $conf);
|
|
||||||
$newlang = (GETPOST('lang_id') ? GETPOST('lang_id') : $object->thirdparty->default_lang);
|
|
||||||
$outputlangs->setDefaultLang($newlang);
|
|
||||||
}
|
|
||||||
$ret = $object->fetch($id); // Reload to get new records
|
|
||||||
$result = $object->generateDocument($object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
|
||||||
if ($result <= 0)
|
|
||||||
{
|
|
||||||
setEventMessages($object->error, $object->errors, 'errors');
|
|
||||||
$action='';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove file in doc form
|
|
||||||
else if ($action == 'remove_file' && $user->rights->propal->creer) {
|
|
||||||
if ($object->id > 0) {
|
|
||||||
require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
|
|
||||||
|
|
||||||
$langs->load("other");
|
|
||||||
$upload_dir = $conf->propal->dir_output;
|
|
||||||
$file = $upload_dir . '/' . GETPOST('file');
|
|
||||||
$ret = dol_delete_file($file, 0, 0, 0, $object);
|
|
||||||
if ($ret)
|
|
||||||
setEventMessage($langs->trans("FileWasRemoved", GETPOST('file')));
|
|
||||||
else
|
|
||||||
setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('file')), 'errors');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set project
|
// Set project
|
||||||
else if ($action == 'classin' && $user->rights->propal->creer) {
|
else if ($action == 'classin' && $user->rights->propal->creer) {
|
||||||
$object->setProject($_POST['projectid']);
|
$object->setProject($_POST['projectid']);
|
||||||
@ -1211,6 +1168,12 @@ if (empty($reshook))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Actions to build doc
|
||||||
|
$upload_dir = $conf->propal->dir_output;
|
||||||
|
$permissioncreate=$user->rights->propal->creer;
|
||||||
|
include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2327,7 +2290,7 @@ if ($action == 'create')
|
|||||||
if (! $file || ! is_readable($file)) {
|
if (! $file || ! is_readable($file)) {
|
||||||
$result = $object->generateDocument(GETPOST('model') ? GETPOST('model') : $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
$result = $object->generateDocument(GETPOST('model') ? GETPOST('model') : $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
||||||
if ($result <= 0) {
|
if ($result <= 0) {
|
||||||
dol_print_error($db, $result);
|
dol_print_error($db, $object->error, $object->errors);
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
$fileparams = dol_most_recent_file($conf->propal->dir_output . '/' . $ref, preg_quote($ref, '/').'[^\-]+');
|
$fileparams = dol_most_recent_file($conf->propal->dir_output . '/' . $ref, preg_quote($ref, '/').'[^\-]+');
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2011 Philippe Grand <philippe.grand@atoo-net.com>
|
* Copyright (C) 2011 Philippe Grand <philippe.grand@atoo-net.com>
|
||||||
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
* Copyright (C) 2013-2015 Florian Henry <florian.henry@open-concept.pro>
|
||||||
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
|
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
|
||||||
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
||||||
* Copyright (C) 2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
* Copyright (C) 2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||||
@ -32,6 +32,7 @@
|
|||||||
require '../../main.inc.php';
|
require '../../main.inc.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/societe/class/client.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/societe/class/client.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
|
||||||
|
|
||||||
$langs->load("propal");
|
$langs->load("propal");
|
||||||
$langs->load("companies");
|
$langs->load("companies");
|
||||||
@ -53,6 +54,8 @@ $search_datec = GETPOST("search_datec");
|
|||||||
$search_categ = GETPOST("search_categ",'int');
|
$search_categ = GETPOST("search_categ",'int');
|
||||||
$search_status = GETPOST("search_status",'int');
|
$search_status = GETPOST("search_status",'int');
|
||||||
$catid = GETPOST("catid",'int');
|
$catid = GETPOST("catid",'int');
|
||||||
|
$search_country = GETPOST("search_country",'int');
|
||||||
|
$search_type_thirdparty = GETPOST("search_type_thirdparty",'int');
|
||||||
|
|
||||||
$sortfield = GETPOST("sortfield",'alpha');
|
$sortfield = GETPOST("sortfield",'alpha');
|
||||||
$sortorder = GETPOST("sortorder",'alpha');
|
$sortorder = GETPOST("sortorder",'alpha');
|
||||||
@ -150,7 +153,7 @@ $search_categ = GETPOST('search_categ','int');
|
|||||||
// If the internal user must only see his prospect, force searching by him
|
// If the internal user must only see his prospect, force searching by him
|
||||||
if (!$user->rights->societe->client->voir && !$socid) $search_sale = $user->id;
|
if (!$user->rights->societe->client->voir && !$socid) $search_sale = $user->id;
|
||||||
|
|
||||||
// List of avaible states; we'll need that for each lines (quick changing prospect states) and for search bar (filter by prospect state)
|
// List of available states; we'll need that for each lines (quick changing prospect states) and for search bar (filter by prospect state)
|
||||||
$sts = array(-1,0,1,2,3);
|
$sts = array(-1,0,1,2,3);
|
||||||
|
|
||||||
|
|
||||||
@ -158,6 +161,10 @@ $sts = array(-1,0,1,2,3);
|
|||||||
$hookmanager->initHooks(array('prospectlist'));
|
$hookmanager->initHooks(array('prospectlist'));
|
||||||
$extrafields = new ExtraFields($db);
|
$extrafields = new ExtraFields($db);
|
||||||
|
|
||||||
|
// fetch optionals attributes and labels
|
||||||
|
$extralabels = $extrafields->fetch_name_optionals_label('thirdparty');
|
||||||
|
$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
|
||||||
|
|
||||||
// Do we click on purge search criteria ?
|
// Do we click on purge search criteria ?
|
||||||
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
|
if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
|
||||||
{
|
{
|
||||||
@ -171,6 +178,9 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
|
|||||||
$search_datec="";
|
$search_datec="";
|
||||||
$search_categ="";
|
$search_categ="";
|
||||||
$search_status="";
|
$search_status="";
|
||||||
|
$search_country="";
|
||||||
|
$search_type_thirdparty="";
|
||||||
|
$search_array_options=array();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($search_status=='') $search_status=1; // always display active customer first
|
if ($search_status=='') $search_status=1; // always display active customer first
|
||||||
@ -214,16 +224,21 @@ $sql = "SELECT s.rowid as socid, s.nom as name, s.name_alias, s.zip, s.town, s.d
|
|||||||
$sql.= " s.prefix_comm, s.fk_prospectlevel, s.fk_stcomm as stcomm_id,";
|
$sql.= " s.prefix_comm, s.fk_prospectlevel, s.fk_stcomm as stcomm_id,";
|
||||||
$sql.= " st.libelle as stcomm_label,";
|
$sql.= " st.libelle as stcomm_label,";
|
||||||
$sql.= " d.nom as departement";
|
$sql.= " d.nom as departement";
|
||||||
|
$sql.= " ,s.fk_pays";
|
||||||
|
$sql.= " ,typent.code as typent_code";
|
||||||
if ((!$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql .= ", sc.fk_soc, sc.fk_user"; // We need these fields in order to filter by sale (including the case where the user can only see his prospects)
|
if ((!$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql .= ", sc.fk_soc, sc.fk_user"; // We need these fields in order to filter by sale (including the case where the user can only see his prospects)
|
||||||
// Add fields for extrafields
|
// Add fields for extrafields
|
||||||
foreach ($extrafields->attribute_list as $key => $val) $sql.=",ef.".$key.' as options_'.$key;
|
if (is_array($extrafields->attribute_list) && count($extrafields->attribute_list)) foreach ($extrafields->attribute_list as $key => $val) $sql.=",ef.".$key.' as options_'.$key;
|
||||||
// Add fields from hooks
|
// Add fields from hooks
|
||||||
$parameters=array();
|
$parameters=array();
|
||||||
$reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters); // Note that $action and $object may have been modified by hook
|
$reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters); // Note that $action and $object may have been modified by hook
|
||||||
$sql.=$hookmanager->resPrint;
|
$sql.=$hookmanager->resPrint;
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."c_stcomm as st";
|
$sql .= " FROM ".MAIN_DB_PREFIX."c_stcomm as st";
|
||||||
$sql.= ", ".MAIN_DB_PREFIX."societe as s";
|
$sql.= ", ".MAIN_DB_PREFIX."societe as s";
|
||||||
|
if (is_array($extrafields->attribute_list) && count($extrafields->attribute_list)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_extrafields as ef on (s.rowid = ef.fk_object)";
|
||||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as d on (d.rowid = s.fk_departement)";
|
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as d on (d.rowid = s.fk_departement)";
|
||||||
|
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as country on (country.rowid = s.fk_pays) ";
|
||||||
|
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_typent as typent on (typent.id = s.fk_typent) ";
|
||||||
if (! empty($search_categ) || ! empty($catid)) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_societe as cs ON s.rowid = cs.fk_soc"; // We need this table joined to the select in order to filter by categ
|
if (! empty($search_categ) || ! empty($catid)) $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_societe as cs ON s.rowid = cs.fk_soc"; // We need this table joined to the select in order to filter by categ
|
||||||
if ((!$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We need this table joined to the select in order to filter by sale
|
if ((!$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We need this table joined to the select in order to filter by sale
|
||||||
$sql.= " WHERE s.fk_stcomm = st.id";
|
$sql.= " WHERE s.fk_stcomm = st.id";
|
||||||
@ -231,7 +246,7 @@ $sql.= " AND s.client IN (2, 3)";
|
|||||||
$sql.= ' AND s.entity IN ('.getEntity('societe', 1).')';
|
$sql.= ' AND s.entity IN ('.getEntity('societe', 1).')';
|
||||||
if ((!$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql.= " AND s.rowid = sc.fk_soc";
|
if ((!$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql.= " AND s.rowid = sc.fk_soc";
|
||||||
if ($socid) $sql.= " AND s.rowid = " .$socid;
|
if ($socid) $sql.= " AND s.rowid = " .$socid;
|
||||||
if ($search_stcomm != '') $sql.= natural_search("s.fk_stcomm",$search_stcomm,2);
|
if ($search_stcomm != '' && $search_stcomm != -2) $sql.= natural_search("s.fk_stcomm",$search_stcomm,2);
|
||||||
if ($catid > 0) $sql.= " AND cs.fk_categorie = ".$catid;
|
if ($catid > 0) $sql.= " AND cs.fk_categorie = ".$catid;
|
||||||
if ($catid == -2) $sql.= " AND cs.fk_categorie IS NULL";
|
if ($catid == -2) $sql.= " AND cs.fk_categorie IS NULL";
|
||||||
if ($search_categ > 0) $sql.= " AND cs.fk_categorie = ".$search_categ;
|
if ($search_categ > 0) $sql.= " AND cs.fk_categorie = ".$search_categ;
|
||||||
@ -252,6 +267,19 @@ if ($socname)
|
|||||||
$sortfield = "s.nom";
|
$sortfield = "s.nom";
|
||||||
$sortorder = "ASC";
|
$sortorder = "ASC";
|
||||||
}
|
}
|
||||||
|
// Extra fields
|
||||||
|
foreach ($search_array_options as $key => $val)
|
||||||
|
{
|
||||||
|
$crit=$val;
|
||||||
|
$tmpkey=preg_replace('/search_options_/','',$key);
|
||||||
|
$typ=$extrafields->attribute_type[$tmpkey];
|
||||||
|
$mode=0;
|
||||||
|
if (in_array($typ, array('int'))) $mode=1; // Search on a numeric
|
||||||
|
if ($val && ( ($crit != '' && ! in_array($typ, array('select'))) || ! empty($crit)))
|
||||||
|
{
|
||||||
|
$sql .= natural_search('ef.'.$tmpkey, $crit, $mode);
|
||||||
|
}
|
||||||
|
}
|
||||||
// Add where from hooks
|
// Add where from hooks
|
||||||
$parameters=array();
|
$parameters=array();
|
||||||
$reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters); // Note that $action and $object may have been modified by hook
|
$reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters); // Note that $action and $object may have been modified by hook
|
||||||
@ -265,6 +293,7 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
|||||||
}
|
}
|
||||||
$sql.= " ORDER BY $sortfield $sortorder, s.nom ASC";
|
$sql.= " ORDER BY $sortfield $sortorder, s.nom ASC";
|
||||||
$sql.= $db->plimit($conf->liste_limit+1, $offset);
|
$sql.= $db->plimit($conf->liste_limit+1, $offset);
|
||||||
|
//print $sql;
|
||||||
|
|
||||||
dol_syslog('comm/prospect/list.php', LOG_DEBUG);
|
dol_syslog('comm/prospect/list.php', LOG_DEBUG);
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
@ -298,9 +327,17 @@ if ($resql)
|
|||||||
}
|
}
|
||||||
if ($search_level_from != '') $param.='&search_level_from='.$search_level_from;
|
if ($search_level_from != '') $param.='&search_level_from='.$search_level_from;
|
||||||
if ($search_level_to != '') $param.='&search_level_to='.$search_level_to;
|
if ($search_level_to != '') $param.='&search_level_to='.$search_level_to;
|
||||||
if ($search_categ != '') $param.='&search_categ='.$search_categ;
|
if ($search_categ != '') $param.='&search_categ='.urlencode($search_categ);
|
||||||
if ($search_sale > 0) $param.='&search_sale='.$search_sale;
|
if ($search_sale > 0) $param.='&search_sale='.$search_sale;
|
||||||
if ($search_status != '') $param.='&search_status='.$search_status;
|
if ($search_status != '') $param.='&search_status='.$search_status;
|
||||||
|
if ($search_country != '') $param.='&search_country='.$search_country;
|
||||||
|
if ($search_type_thirdparty != '') $param.='&search_type_thirdparty='.$search_type_thirdparty;
|
||||||
|
foreach ($search_array_options as $key => $val)
|
||||||
|
{
|
||||||
|
$crit=$val;
|
||||||
|
$tmpkey=preg_replace('/search_options_/','',$key);
|
||||||
|
$param.='&search_options_'.$tmpkey.'='.urlencode($val);
|
||||||
|
}
|
||||||
// $param and $urladd should have the same value
|
// $param and $urladd should have the same value
|
||||||
$urladd = $param;
|
$urladd = $param;
|
||||||
|
|
||||||
@ -342,11 +379,25 @@ if ($resql)
|
|||||||
print_liste_field_titre($langs->trans("Zip"),$_SERVER["PHP_SELF"],"s.zip","",$param,"",$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("Zip"),$_SERVER["PHP_SELF"],"s.zip","",$param,"",$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"s.town","",$param,"",$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"s.town","",$param,"",$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("State"),$_SERVER["PHP_SELF"],"s.fk_departement","",$param,'align="center"',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("State"),$_SERVER["PHP_SELF"],"s.fk_departement","",$param,'align="center"',$sortfield,$sortorder);
|
||||||
|
print_liste_field_titre($langs->trans("Country"),$_SERVER["PHP_SELF"],"country.code_iso","",$param,'align="center"',$sortfield,$sortorder);
|
||||||
|
print_liste_field_titre($langs->trans("ThirdPartyType"),$_SERVER["PHP_SELF"],"typent.code","",$param,'align="center"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"s.datec","",$param,'align="center"',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"s.datec","",$param,'align="center"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("ProspectLevelShort"),$_SERVER["PHP_SELF"],"s.fk_prospectlevel","",$param,'align="center"',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("ProspectLevelShort"),$_SERVER["PHP_SELF"],"s.fk_prospectlevel","",$param,'align="center"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("StatusProsp"),$_SERVER["PHP_SELF"],"s.fk_stcomm","",$param,'align="center"',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("StatusProsp"),$_SERVER["PHP_SELF"],"s.fk_stcomm","",$param,'align="center"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre('');
|
print_liste_field_titre('');
|
||||||
|
|
||||||
|
// Extrafields
|
||||||
|
if (is_array($extrafields->attribute_list) && count($extrafields->attribute_list))
|
||||||
|
{
|
||||||
|
foreach($extrafields->attribute_list as $key => $val)
|
||||||
|
{
|
||||||
|
if ($val)
|
||||||
|
{
|
||||||
|
print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],"ef.".$key,"",$param,"",$sortfield,$sortorder);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Hook fields
|
||||||
$parameters=array();
|
$parameters=array();
|
||||||
$reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook
|
$reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook
|
||||||
print $hookmanager->resPrint;
|
print $hookmanager->resPrint;
|
||||||
@ -360,13 +411,13 @@ if ($resql)
|
|||||||
print '<input type="text" class="flat" name="search_nom" size="10" value="'.$search_nom.'">';
|
print '<input type="text" class="flat" name="search_nom" size="10" value="'.$search_nom.'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="liste_titre">';
|
print '<td class="liste_titre">';
|
||||||
print '<input type="text" class="flat" name="search_zipcode" size="10" value="'.$search_zipcode.'">';
|
print '<input type="text" class="flat" name="search_zipcode" size="6" value="'.$search_zipcode.'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="liste_titre">';
|
print '<td class="liste_titre">';
|
||||||
print '<input type="text" class="flat" name="search_town" size="10" value="'.$search_town.'">';
|
print '<input type="text" class="flat" name="search_town" size="8" value="'.$search_town.'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="liste_titre" align="center">';
|
print '<td class="liste_titre" align="center">';
|
||||||
print '<input type="text" class="flat" name="search_state" size="10" value="'.$search_state.'">';
|
print '<input type="text" class="flat" name="search_state" size="8" value="'.$search_state.'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td align="center" class="liste_titre">';
|
print '<td align="center" class="liste_titre">';
|
||||||
print '<input class="flat" type="text" size="10" name="search_datec" value="'.$search_datec.'">';
|
print '<input class="flat" type="text" size="10" name="search_datec" value="'.$search_datec.'">';
|
||||||
@ -404,14 +455,29 @@ if ($resql)
|
|||||||
{
|
{
|
||||||
$arraystcomm[$val['id']]=$val['label'];
|
$arraystcomm[$val['id']]=$val['label'];
|
||||||
}
|
}
|
||||||
print $form->selectarray('search_stcomm', $arraystcomm, $search_stcomm, 1);
|
print $form->selectarray('search_stcomm', $arraystcomm, $search_stcomm, -2);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
print '<td class="liste_titre" align="center">';
|
print '<td class="liste_titre" align="center">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
$parameters=array();
|
// Extrafields
|
||||||
|
if (is_array($extrafields->attribute_list) && count($extrafields->attribute_list))
|
||||||
|
{
|
||||||
|
foreach($extrafields->attribute_list as $key => $val)
|
||||||
|
{
|
||||||
|
if ($val)
|
||||||
|
{
|
||||||
|
$crit=$search_array_options['search_options_'.$key];
|
||||||
|
print '<td class="liste_titre">';
|
||||||
|
print $extrafields->showInputField($key, $crit, '', '', 'search_', 4);
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Hook fields
|
||||||
|
$parameters=array();
|
||||||
$reshook=$hookmanager->executeHooks('printFieldListSearch',$parameters); // Note that $action and $object may have been modified by hook
|
$reshook=$hookmanager->executeHooks('printFieldListSearch',$parameters); // Note that $action and $object may have been modified by hook
|
||||||
print $hookmanager->resPrint;
|
print $hookmanager->resPrint;
|
||||||
|
|
||||||
@ -449,6 +515,18 @@ if ($resql)
|
|||||||
print "<td>".$obj->zip."</td>";
|
print "<td>".$obj->zip."</td>";
|
||||||
print "<td>".$obj->town."</td>";
|
print "<td>".$obj->town."</td>";
|
||||||
print '<td align="center">'.$obj->departement.'</td>';
|
print '<td align="center">'.$obj->departement.'</td>';
|
||||||
|
//Country
|
||||||
|
print '<td align="center">';
|
||||||
|
$tmparray=getCountry($obj->fk_pays,'all');
|
||||||
|
print $tmparray['label'];
|
||||||
|
print '</td>';
|
||||||
|
//Type ent
|
||||||
|
print '<td align="center">';
|
||||||
|
if (count($typenArray)==0) {
|
||||||
|
$typenArray = $formcompany->typent_array(1);
|
||||||
|
}
|
||||||
|
print $typenArray[$obj->typent_code];
|
||||||
|
print '</td>';
|
||||||
// Creation date
|
// Creation date
|
||||||
print '<td align="center">'.dol_print_date($db->jdate($obj->datec)).'</td>';
|
print '<td align="center">'.dol_print_date($db->jdate($obj->datec)).'</td>';
|
||||||
// Level
|
// Level
|
||||||
@ -460,7 +538,7 @@ if ($resql)
|
|||||||
print $prospectstatic->LibProspCommStatut($obj->stcomm_id,2,$prospectstatic->cacheprospectstatus[$obj->stcomm_id]['label']);
|
print $prospectstatic->LibProspCommStatut($obj->stcomm_id,2,$prospectstatic->cacheprospectstatus[$obj->stcomm_id]['label']);
|
||||||
print "</td>";
|
print "</td>";
|
||||||
|
|
||||||
print '<td align="right" class="nowrap">';
|
print '<td align="center" class="nowrap">';
|
||||||
foreach($prospectstatic->cacheprospectstatus as $key => $val)
|
foreach($prospectstatic->cacheprospectstatus as $key => $val)
|
||||||
{
|
{
|
||||||
$titlealt='default';
|
$titlealt='default';
|
||||||
@ -469,6 +547,21 @@ if ($resql)
|
|||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
|
// Extrafields
|
||||||
|
if (is_array($extrafields->attribute_list) && count($extrafields->attribute_list))
|
||||||
|
{
|
||||||
|
foreach($extrafields->attribute_list as $key => $val)
|
||||||
|
{
|
||||||
|
if ($val)
|
||||||
|
{
|
||||||
|
print '<td>';
|
||||||
|
$paramkey='options_'.$key;
|
||||||
|
print $extrafields->showOutputField($key, $obj->$paramkey);
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Hook fields
|
||||||
$parameters=array('obj' => $obj);
|
$parameters=array('obj' => $obj);
|
||||||
$reshook=$hookmanager->executeHooks('printFieldListValue',$parameters); // Note that $action and $object may have been modified by hook
|
$reshook=$hookmanager->executeHooks('printFieldListValue',$parameters); // Note that $action and $object may have been modified by hook
|
||||||
print $hookmanager->resPrint;
|
print $hookmanager->resPrint;
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2015 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
|
||||||
@ -99,6 +99,13 @@ if ($socid > 0)
|
|||||||
|
|
||||||
$head = societe_prepare_head($objsoc);
|
$head = societe_prepare_head($objsoc);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
print '<form method="POST" action="remise.php?id='.$objsoc->id.'">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<input type="hidden" name="action" value="setremise">';
|
||||||
|
print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
|
||||||
|
|
||||||
dol_fiche_head($head, 'relativediscount', $langs->trans("ThirdParty"),0,'company');
|
dol_fiche_head($head, 'relativediscount', $langs->trans("ThirdParty"),0,'company');
|
||||||
|
|
||||||
|
|
||||||
@ -119,11 +126,6 @@ if ($socid > 0)
|
|||||||
|
|
||||||
print_fiche_titre($langs->trans("NewRelativeDiscount"),'','');
|
print_fiche_titre($langs->trans("NewRelativeDiscount"),'','');
|
||||||
|
|
||||||
print '<form method="POST" action="remise.php?id='.$objsoc->id.'">';
|
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
|
||||||
print '<input type="hidden" name="action" value="setremise">';
|
|
||||||
print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
|
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
// Nouvelle valeur
|
// Nouvelle valeur
|
||||||
@ -136,6 +138,8 @@ if ($socid > 0)
|
|||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
|
||||||
|
dol_fiche_end();
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
|
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
|
||||||
if (! empty($backtopage))
|
if (! empty($backtopage))
|
||||||
@ -147,8 +151,6 @@ if ($socid > 0)
|
|||||||
|
|
||||||
print "</form>";
|
print "</form>";
|
||||||
|
|
||||||
dol_fiche_end();
|
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -221,14 +221,14 @@ if ($socid > 0)
|
|||||||
*/
|
*/
|
||||||
$head = societe_prepare_head($objsoc);
|
$head = societe_prepare_head($objsoc);
|
||||||
|
|
||||||
dol_fiche_head($head, 'absolutediscount', $langs->trans("ThirdParty"),0,'company');
|
|
||||||
|
|
||||||
|
|
||||||
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'?id='.$objsoc->id.'">';
|
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'?id='.$objsoc->id.'">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<input type="hidden" name="action" value="setremise">';
|
print '<input type="hidden" name="action" value="setremise">';
|
||||||
print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
|
print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
|
||||||
|
|
||||||
|
dol_fiche_head($head, 'absolutediscount', $langs->trans("ThirdParty"),0,'company');
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
// Name
|
// Name
|
||||||
@ -278,6 +278,8 @@ if ($socid > 0)
|
|||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
|
||||||
|
dol_fiche_end();
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" class="button" name="submit" value="'.$langs->trans("AddGlobalDiscount").'">';
|
print '<input type="submit" class="button" name="submit" value="'.$langs->trans("AddGlobalDiscount").'">';
|
||||||
if (! empty($backtopage))
|
if (! empty($backtopage))
|
||||||
@ -289,7 +291,6 @@ if ($socid > 0)
|
|||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
dol_fiche_end();
|
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
@ -329,8 +330,10 @@ if ($socid > 0)
|
|||||||
print '<td width="50"> </td>';
|
print '<td width="50"> </td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
|
$showconfirminfo=array();
|
||||||
|
|
||||||
$var = true;
|
$var = true;
|
||||||
$i = 0 ;
|
$i = 0;
|
||||||
$num = $db->num_rows($resql);
|
$num = $db->num_rows($resql);
|
||||||
while ($i < $num)
|
while ($i < $num)
|
||||||
{
|
{
|
||||||
@ -382,24 +385,26 @@ if ($socid > 0)
|
|||||||
|
|
||||||
if ($_GET["action"]=='split' && $_GET['remid'] == $obj->rowid)
|
if ($_GET["action"]=='split' && $_GET['remid'] == $obj->rowid)
|
||||||
{
|
{
|
||||||
print "<tr ".$bc[$var].">";
|
$showconfirminfo['rowid']=$obj->rowid;
|
||||||
print '<td colspan="8">';
|
$showconfirminfo['amount_ttc']=$obj->amount_ttc;
|
||||||
$amount1=price2num($obj->amount_ttc/2,'MT');
|
|
||||||
$amount2=($obj->amount_ttc-$amount1);
|
|
||||||
$formquestion=array(
|
|
||||||
'text' => $langs->trans('TypeAmountOfEachNewDiscount'),
|
|
||||||
array('type' => 'text', 'name' => 'amount_ttc_1', 'label' => $langs->trans("AmountTTC").' 1', 'value' => $amount1, 'size' => '5'),
|
|
||||||
array('type' => 'text', 'name' => 'amount_ttc_2', 'label' => $langs->trans("AmountTTC").' 2', 'value' => $amount2, 'size' => '5')
|
|
||||||
);
|
|
||||||
$langs->load("dict");
|
|
||||||
print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$objsoc->id.'&remid='.$obj->rowid, $langs->trans('SplitDiscount'), $langs->trans('ConfirmSplitDiscount',price($obj->amount_ttc),$langs->transnoentities("Currency".$conf->currency)), 'confirm_split', $formquestion, 0, 0);
|
|
||||||
print '</td>';
|
|
||||||
print '</tr>';
|
|
||||||
}
|
}
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
$db->free($resql);
|
$db->free($resql);
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
|
||||||
|
if (count($showconfirminfo))
|
||||||
|
{
|
||||||
|
$amount1=price2num($showconfirminfo['amount_ttc']/2,'MT');
|
||||||
|
$amount2=($showconfirminfo['amount_ttc']-$amount1);
|
||||||
|
$formquestion=array(
|
||||||
|
'text' => $langs->trans('TypeAmountOfEachNewDiscount'),
|
||||||
|
array('type' => 'text', 'name' => 'amount_ttc_1', 'label' => $langs->trans("AmountTTC").' 1', 'value' => $amount1, 'size' => '5'),
|
||||||
|
array('type' => 'text', 'name' => 'amount_ttc_2', 'label' => $langs->trans("AmountTTC").' 2', 'value' => $amount2, 'size' => '5')
|
||||||
|
);
|
||||||
|
$langs->load("dict");
|
||||||
|
print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$objsoc->id.'&remid='.$showconfirminfo['rowid'], $langs->trans('SplitDiscount'), $langs->trans('ConfirmSplitDiscount',price($showconfirminfo['amount_ttc']),$langs->transnoentities("Currency".$conf->currency)), 'confirm_split', $formquestion, 0, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -2360,7 +2360,7 @@ if ($action == 'create' && $user->rights->commande->creer)
|
|||||||
if (! $file || ! is_readable($file)) {
|
if (! $file || ! is_readable($file)) {
|
||||||
$result = $object->generateDocument(GETPOST('model') ? GETPOST('model') : $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
$result = $object->generateDocument(GETPOST('model') ? GETPOST('model') : $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
||||||
if ($result <= 0) {
|
if ($result <= 0) {
|
||||||
dol_print_error($db, $result);
|
dol_print_error($db, $object->error, $object->errors);
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
$fileparams = dol_most_recent_file($conf->commande->dir_output . '/' . $ref, preg_quote($ref, '/').'[^\-]+');
|
$fileparams = dol_most_recent_file($conf->commande->dir_output . '/' . $ref, preg_quote($ref, '/').'[^\-]+');
|
||||||
|
|||||||
@ -2846,7 +2846,7 @@ class Commande extends CommonOrder
|
|||||||
|
|
||||||
$clause = " WHERE";
|
$clause = " WHERE";
|
||||||
|
|
||||||
$sql = "SELECT c.rowid, c.date_creation as datec, c.date_livraison as delivery_date, c.fk_statut";
|
$sql = "SELECT c.rowid, c.date_creation as datec, c.date_commande, c.date_livraison as delivery_date, c.fk_statut";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."commande as c";
|
$sql.= " FROM ".MAIN_DB_PREFIX."commande as c";
|
||||||
if (!$user->rights->societe->client->voir && !$user->societe_id)
|
if (!$user->rights->societe->client->voir && !$user->societe_id)
|
||||||
{
|
{
|
||||||
@ -2862,21 +2862,22 @@ class Commande extends CommonOrder
|
|||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
$now=dol_now();
|
|
||||||
|
|
||||||
$response = new WorkboardResponse();
|
$response = new WorkboardResponse();
|
||||||
$response->warning_delay=$conf->commande->client->warning_delay/60/60/24;
|
$response->warning_delay=$conf->commande->client->warning_delay/60/60/24;
|
||||||
$response->label=$langs->trans("OrdersToProcess");
|
$response->label=$langs->trans("OrdersToProcess");
|
||||||
$response->url=DOL_URL_ROOT.'/commande/list.php?viewstatut=-3';
|
$response->url=DOL_URL_ROOT.'/commande/list.php?viewstatut=-3';
|
||||||
$response->img=img_object($langs->trans("Orders"),"order");
|
$response->img=img_object($langs->trans("Orders"),"order");
|
||||||
|
|
||||||
|
$generic_commande = new Commande($this->db);
|
||||||
|
|
||||||
while ($obj=$this->db->fetch_object($resql))
|
while ($obj=$this->db->fetch_object($resql))
|
||||||
{
|
{
|
||||||
$response->nbtodo++;
|
$response->nbtodo++;
|
||||||
|
|
||||||
$date_to_test = empty($obj->delivery_date) ? $obj->datec : $obj->delivery_date;
|
$generic_commande->statut = $obj->fk_statut;
|
||||||
|
$generic_commande->date_livraison = $obj->delivery_date;
|
||||||
|
|
||||||
if ($obj->fk_statut != 3 && $this->db->jdate($date_to_test) < ($now - $conf->commande->client->warning_delay)) {
|
if ($generic_commande->hasDelay()) {
|
||||||
$response->nbtodolate++;
|
$response->nbtodolate++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3341,6 +3342,24 @@ class Commande extends CommonOrder
|
|||||||
|
|
||||||
return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables);
|
return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is the customer order delayed?
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function hasDelay()
|
||||||
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
|
if (!($this->statut > Commande::STATUS_DRAFT) && ($this->statut < Commande::STATUS_CLOSED)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$now = dol_now();
|
||||||
|
|
||||||
|
return max($this->date_commande, $this->date_livraison) < ($now - $conf->commande->client->warning_delay);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -357,9 +357,11 @@ if ($resql)
|
|||||||
$var=!$var;
|
$var=!$var;
|
||||||
print '<tr '.$bc[$var].'>';
|
print '<tr '.$bc[$var].'>';
|
||||||
print '<td class="nowrap">';
|
print '<td class="nowrap">';
|
||||||
|
|
||||||
$generic_commande->id=$objp->rowid;
|
$generic_commande->id=$objp->rowid;
|
||||||
$generic_commande->ref=$objp->ref;
|
$generic_commande->ref=$objp->ref;
|
||||||
|
$generic_commande->statut = $objp->fk_statut;
|
||||||
|
$generic_commande->date_commande = $db->jdate($objp->date_commande);
|
||||||
|
$generic_commande->date_livraison = $db->jdate($objp->date_delivery);
|
||||||
$generic_commande->ref_client = $objp->ref_client;
|
$generic_commande->ref_client = $objp->ref_client;
|
||||||
$generic_commande->total_ht = $objp->total_ht;
|
$generic_commande->total_ht = $objp->total_ht;
|
||||||
$generic_commande->total_tva = $objp->total_tva;
|
$generic_commande->total_tva = $objp->total_tva;
|
||||||
@ -444,8 +446,9 @@ if ($resql)
|
|||||||
|
|
||||||
// warning late icon
|
// warning late icon
|
||||||
print '<td style="min-width: 20px" class="nobordernopadding nowrap">';
|
print '<td style="min-width: 20px" class="nobordernopadding nowrap">';
|
||||||
if (($objp->fk_statut > 0) && ($objp->fk_statut < 3) && max($db->jdate($objp->date_commande),$db->jdate($objp->date_delivery)) < ($now - $conf->commande->client->warning_delay))
|
if ($generic_commande->hasDelay()) {
|
||||||
print img_picto($langs->trans("Late"),"warning");
|
print img_picto($langs->trans("Late"), "warning");
|
||||||
|
}
|
||||||
if(!empty($objp->note_private))
|
if(!empty($objp->note_private))
|
||||||
{
|
{
|
||||||
print ' <span class="note">';
|
print ' <span class="note">';
|
||||||
|
|||||||
@ -394,6 +394,9 @@ if ($action == 'create' && !$error)
|
|||||||
print '<input type="hidden" name="origin" value="'.GETPOST('origin').'">';
|
print '<input type="hidden" name="origin" value="'.GETPOST('origin').'">';
|
||||||
print '<input type="hidden" name="originid" value="'.GETPOST('originid').'">';
|
print '<input type="hidden" name="originid" value="'.GETPOST('originid').'">';
|
||||||
print '<input type="hidden" name="autocloseorders" value="'.GETPOST('autocloseorders').'">';
|
print '<input type="hidden" name="autocloseorders" value="'.GETPOST('autocloseorders').'">';
|
||||||
|
|
||||||
|
dol_fiche_head();
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
// Ref
|
// Ref
|
||||||
@ -495,16 +498,20 @@ if ($action == 'create' && !$error)
|
|||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dol_fiche_end();
|
||||||
|
|
||||||
// Button "Create Draft"
|
// Button "Create Draft"
|
||||||
print '<br><div class="center"><input type="submit" class="button" name="bouton" value="'.$langs->trans('CreateDraft').'" /></div>';
|
print '<div class="center"><input type="submit" class="button" name="bouton" value="'.$langs->trans('CreateDraft').'" /></div>';
|
||||||
print "</form>\n";
|
print "</form>\n";
|
||||||
|
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//Mode liste
|
// Mode liste
|
||||||
if (($action != 'create' && $action != 'add') && !$error)
|
if (($action != 'create' && $action != 'add') || ($action == 'create' && $error))
|
||||||
{
|
{
|
||||||
llxHeader();
|
llxHeader();
|
||||||
?>
|
?>
|
||||||
@ -633,6 +640,9 @@ if (($action != 'create' && $action != 'add') && !$error)
|
|||||||
|
|
||||||
$generic_commande->id=$objp->rowid;
|
$generic_commande->id=$objp->rowid;
|
||||||
$generic_commande->ref=$objp->ref;
|
$generic_commande->ref=$objp->ref;
|
||||||
|
$generic_commande->statut = $objp->fk_statut;
|
||||||
|
$generic_commande->date_commande = $db->jdate($objp->date_commande);
|
||||||
|
$generic_commande->date_livraison = $db->jdate($objp->date_livraison);
|
||||||
|
|
||||||
print '<table class="nobordernopadding"><tr class="nocellnopadd">';
|
print '<table class="nobordernopadding"><tr class="nocellnopadd">';
|
||||||
print '<td class="nobordernopadding nowrap">';
|
print '<td class="nobordernopadding nowrap">';
|
||||||
@ -640,7 +650,9 @@ if (($action != 'create' && $action != 'add') && !$error)
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
print '<td width="20" class="nobordernopadding nowrap">';
|
print '<td width="20" class="nobordernopadding nowrap">';
|
||||||
if (($objp->fk_statut > 0) && ($objp->fk_statut < 3) && $db->jdate($objp->date_valid) < ($now - $conf->commande->client->warning_delay)) print img_picto($langs->trans("Late"),"warning");
|
if ($generic_commande->hasDelay()) {
|
||||||
|
print img_picto($langs->trans("Late"),"warning");
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
print '<td width="16" align="right" class="nobordernopadding hideonsmartphone">';
|
print '<td width="16" align="right" class="nobordernopadding hideonsmartphone">';
|
||||||
|
|||||||
@ -371,23 +371,32 @@ if ($id > 0 || ! empty($ref))
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Boutons actions
|
* Buttons actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($action != 'delete') {
|
if ($action != 'delete')
|
||||||
|
{
|
||||||
print '<div class="tabsAction">';
|
print '<div class="tabsAction">';
|
||||||
|
|
||||||
if ($object->type != 2 && $object->rappro) { // If not cash account and can be reconciliate
|
if ($object->type != 2 && $object->rappro)
|
||||||
if ($user->rights->banque->consolidate) {
|
{
|
||||||
|
// If not cash account and can be reconciliate
|
||||||
|
if ($user->rights->banque->consolidate)
|
||||||
|
{
|
||||||
print '<a class="butAction" href="'.DOL_URL_ROOT.'/compta/bank/rappro.php?account='.$object->id.($vline?'&vline='.$vline:'').'">'.$langs->trans("Conciliate").'</a>';
|
print '<a class="butAction" href="'.DOL_URL_ROOT.'/compta/bank/rappro.php?account='.$object->id.($vline?'&vline='.$vline:'').'">'.$langs->trans("Conciliate").'</a>';
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
print '<a class="butActionRefused" title="'.$langs->trans("NotEnoughPermissions").'" href="#">'.$langs->trans("Conciliate").'</a>';
|
print '<a class="butActionRefused" title="'.$langs->trans("NotEnoughPermissions").'" href="#">'.$langs->trans("Conciliate").'</a>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action != 'addline') {
|
if ($action != 'addline')
|
||||||
if (empty($conf->global->BANK_DISABLE_DIRECT_INPUT)) {
|
{
|
||||||
if (empty($conf->accounting->enabled)) {
|
if (empty($conf->global->BANK_DISABLE_DIRECT_INPUT))
|
||||||
|
{
|
||||||
|
if (empty($conf->accounting->enabled))
|
||||||
|
{
|
||||||
if ($user->rights->banque->modifier) {
|
if ($user->rights->banque->modifier) {
|
||||||
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=addline&id='.$object->id.'&page='.$page.($vline?'&vline='.$vline:'').'">'.$langs->trans("AddBankRecord").'</a>';
|
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=addline&id='.$object->id.'&page='.$page.($vline?'&vline='.$vline:'').'">'.$langs->trans("AddBankRecord").'</a>';
|
||||||
} else {
|
} else {
|
||||||
@ -500,12 +509,13 @@ if ($id > 0 || ! empty($ref))
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Affiche tableau des transactions bancaires
|
* Show list of bank transactions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
print '<table class="noborder" width="100%">';
|
||||||
|
|
||||||
// Ligne de titre tableau des ecritures
|
// Ligne de titre tableau des ecritures
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td>'.$langs->trans("Date").'</td>';
|
print '<td>'.$langs->trans("Date").'</td>';
|
||||||
@ -528,11 +538,11 @@ if ($id > 0 || ! empty($ref))
|
|||||||
print '<input type="hidden" name="id" value="'.$object->id.'">';
|
print '<input type="hidden" name="id" value="'.$object->id.'">';
|
||||||
|
|
||||||
$period_filter .= $langs->trans('From').' '.$form->select_date($req_stdt,'req_stdt',0,0,1,null,1,1,1);
|
$period_filter .= $langs->trans('From').' '.$form->select_date($req_stdt,'req_stdt',0,0,1,null,1,1,1);
|
||||||
$period_filter .= '<BR>'. $langs->trans('to').' '.$form->select_date($req_enddt,'req_enddt',0,0,1,null,1,1,1);
|
$period_filter .= ' ';
|
||||||
|
$period_filter .= $langs->trans('to').' '.$form->select_date($req_enddt,'req_enddt',0,0,1,null,1,1,1);
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td> </td>';
|
print '<td colspan="2">'.$period_filter.'</td>';
|
||||||
print '<td>'.$period_filter.'</td>';
|
|
||||||
print '<td>';
|
print '<td>';
|
||||||
//$filtertype=array('TIP'=>'TIP','PRE'=>'PRE',...)
|
//$filtertype=array('TIP'=>'TIP','PRE'=>'PRE',...)
|
||||||
$filtertype='';
|
$filtertype='';
|
||||||
@ -654,7 +664,8 @@ if ($id > 0 || ! empty($ref))
|
|||||||
$label=($langs->trans("PaymentTypeShort".$objp->fk_type)!="PaymentTypeShort".$objp->fk_type)?$langs->trans("PaymentTypeShort".$objp->fk_type):$objp->fk_type;
|
$label=($langs->trans("PaymentTypeShort".$objp->fk_type)!="PaymentTypeShort".$objp->fk_type)?$langs->trans("PaymentTypeShort".$objp->fk_type):$objp->fk_type;
|
||||||
|
|
||||||
if ($objp->fk_type == 'SOLD') $label=' ';
|
if ($objp->fk_type == 'SOLD') $label=' ';
|
||||||
if ($objp->fk_type == 'CHQ' && $objp->fk_bordereau > 0) {
|
if ($objp->fk_type == 'CHQ' && $objp->fk_bordereau > 0)
|
||||||
|
{
|
||||||
dol_include_once('/compta/paiement/cheque/class/remisecheque.class.php');
|
dol_include_once('/compta/paiement/cheque/class/remisecheque.class.php');
|
||||||
$bordereaustatic = new RemiseCheque($db);
|
$bordereaustatic = new RemiseCheque($db);
|
||||||
$bordereaustatic->id = $objp->fk_bordereau;
|
$bordereaustatic->id = $objp->fk_bordereau;
|
||||||
@ -678,6 +689,7 @@ if ($id > 0 || ! empty($ref))
|
|||||||
{
|
{
|
||||||
print dol_trunc($objp->label,60);
|
print dol_trunc($objp->label,60);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add links after description
|
// Add links after description
|
||||||
$links = $object->get_url($objp->rowid);
|
$links = $object->get_url($objp->rowid);
|
||||||
foreach($links as $key=>$val)
|
foreach($links as $key=>$val)
|
||||||
|
|||||||
@ -122,8 +122,10 @@ class Account extends CommonObject
|
|||||||
*/
|
*/
|
||||||
function canBeConciliated()
|
function canBeConciliated()
|
||||||
{
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
if (empty($this->rappro)) return -1;
|
if (empty($this->rappro)) return -1;
|
||||||
if ($this->courant == 2) return -2;
|
if ($this->courant == 2 && empty($conf->global->BANK_CAN_RECONCILIATE_CASHACCOUNT)) return -2;
|
||||||
if ($this->clos) return -3;
|
if ($this->clos) return -3;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -1086,8 +1088,8 @@ class Account extends CommonObject
|
|||||||
{
|
{
|
||||||
$country_code=$this->getCountryCode();
|
$country_code=$this->getCountryCode();
|
||||||
|
|
||||||
if (in_array($country_code,array('CH','DE','FR','ES','GA','IT'))) return 1; // France, Spain, Gabon
|
if (in_array($country_code,array('CH','FR','ES','GA','IT'))) return 1; // France, Spain, Gabon, ...
|
||||||
if (in_array($country_code,array('AU','BE','CA','DK','GR','GB','ID','IE','IR','KR','NL','NZ','UK','US'))) return 2; // Australia, Great Britain...
|
if (in_array($country_code,array('AU','BE','CA','DE','DK','GR','GB','ID','IE','IR','KR','NL','NZ','UK','US'))) return 2; // Australia, England...
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1146,6 +1148,10 @@ class AccountLine extends CommonObject
|
|||||||
var $ref;
|
var $ref;
|
||||||
var $datec;
|
var $datec;
|
||||||
var $dateo;
|
var $dateo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Value date
|
||||||
|
*/
|
||||||
var $datev;
|
var $datev;
|
||||||
var $amount;
|
var $amount;
|
||||||
var $label;
|
var $label;
|
||||||
|
|||||||
232
htdocs/compta/bank/document.php
Normal file
232
htdocs/compta/bank/document.php
Normal file
@ -0,0 +1,232 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
|
* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
|
* Copyright (C) 2005 Marc Barilley / Ocebo <marc@ocebo.com>
|
||||||
|
* Copyright (C) 2005-2011 Regis Houssin <regis@dolibarr.fr>
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/compta/bank/document.php
|
||||||
|
* \ingroup banque
|
||||||
|
* \brief Page de gestion des documents attaches a un compte bancaire
|
||||||
|
*/
|
||||||
|
require('../../main.inc.php');
|
||||||
|
require_once(DOL_DOCUMENT_ROOT . "/core/lib/bank.lib.php");
|
||||||
|
require_once(DOL_DOCUMENT_ROOT . "/core/lib/files.lib.php");
|
||||||
|
require_once(DOL_DOCUMENT_ROOT . "/core/lib/images.lib.php");
|
||||||
|
require_once(DOL_DOCUMENT_ROOT . "/core/class/html.formfile.class.php");
|
||||||
|
require_once DOL_DOCUMENT_ROOT . '/compta/bank/class/account.class.php';
|
||||||
|
|
||||||
|
$langs->load("banks");
|
||||||
|
|
||||||
|
|
||||||
|
$langs->load('companies');
|
||||||
|
$langs->load('other');
|
||||||
|
|
||||||
|
$id = (GETPOST('id', 'int') ? GETPOST('id', 'int') : GETPOST('account', 'int'));
|
||||||
|
$ref = GETPOST('ref', 'alpha');
|
||||||
|
$action = GETPOST('action', 'alpha');
|
||||||
|
$confirm = GETPOST('confirm', 'alpha');
|
||||||
|
|
||||||
|
$mesg = '';
|
||||||
|
if (isset($_SESSION['DolMessage'])) {
|
||||||
|
$mesg = $_SESSION['DolMessage'];
|
||||||
|
unset($_SESSION['DolMessage']);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Security check
|
||||||
|
if ($user->societe_id) {
|
||||||
|
$action = '';
|
||||||
|
$socid = $user->societe_id;
|
||||||
|
}
|
||||||
|
if ($user->societe_id)
|
||||||
|
$socid = $user->societe_id;
|
||||||
|
$result = restrictedArea($user, 'banque', $fieldvalue, 'bank_account', '', '',
|
||||||
|
$fieldtype);
|
||||||
|
|
||||||
|
// Get parameters
|
||||||
|
$sortfield = GETPOST("sortfield", 'alpha');
|
||||||
|
$sortorder = GETPOST("sortorder", 'alpha');
|
||||||
|
$page = GETPOST("page", 'int');
|
||||||
|
if ($page == -1) {
|
||||||
|
$page = 0;
|
||||||
|
}
|
||||||
|
$offset = $conf->liste_limit * $page;
|
||||||
|
$pageprev = $page - 1;
|
||||||
|
$pagenext = $page + 1;
|
||||||
|
if (!$sortorder)
|
||||||
|
$sortorder = "ASC";
|
||||||
|
if (!$sortfield)
|
||||||
|
$sortfield = "name";
|
||||||
|
|
||||||
|
$object = new Account($db);
|
||||||
|
if ($id)
|
||||||
|
$object->fetch($id);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Actions
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Envoi fichier
|
||||||
|
if ($_POST["sendit"] && !empty($conf->global->MAIN_UPLOAD_DOC)) {
|
||||||
|
if ($object->fetch($id)) {
|
||||||
|
|
||||||
|
$upload_dir = $conf->bank->dir_output . "/" . $object->ref;
|
||||||
|
|
||||||
|
if (dol_mkdir($upload_dir) >= 0) {
|
||||||
|
$resupload = dol_move_uploaded_file($_FILES['userfile']['tmp_name'],
|
||||||
|
$upload_dir . "/" . dol_unescapefile($_FILES['userfile']['name']),
|
||||||
|
0, 0, $_FILES['userfile']['error']);
|
||||||
|
if (is_numeric($resupload) && $resupload > 0) {
|
||||||
|
if (image_format_supported($upload_dir . "/" . $_FILES['userfile']['name'])
|
||||||
|
== 1) {
|
||||||
|
// Create small thumbs for image (Ratio is near 16/9)
|
||||||
|
// Used on logon for example
|
||||||
|
$imgThumbSmall = vignette($upload_dir . "/" . $_FILES['userfile']['name'],
|
||||||
|
$maxwidthsmall, $maxheightsmall, '_small', $quality,
|
||||||
|
"thumbs");
|
||||||
|
// Create mini thumbs for image (Ratio is near 16/9)
|
||||||
|
// Used on menu or for setup page for example
|
||||||
|
$imgThumbMini = vignette($upload_dir . "/" . $_FILES['userfile']['name'],
|
||||||
|
$maxwidthmini, $maxheightmini, '_mini', $quality,
|
||||||
|
"thumbs");
|
||||||
|
}
|
||||||
|
$mesg = '<div class="ok">' . $langs->trans("FileTransferComplete") . '</div>';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$langs->load("errors");
|
||||||
|
if ($resupload < 0) { // Unknown error
|
||||||
|
$mesg = '<div class="error">' . $langs->trans("ErrorFileNotUploaded") . '</div>';
|
||||||
|
}
|
||||||
|
else if (preg_match('/ErrorFileIsInfectedWithAVirus/',
|
||||||
|
$resupload)) { // Files infected by a virus
|
||||||
|
$mesg = '<div class="error">' . $langs->trans("ErrorFileIsInfectedWithAVirus") . '</div>';
|
||||||
|
}
|
||||||
|
else { // Known error
|
||||||
|
$mesg = '<div class="error">' . $langs->trans($resupload) . '</div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete
|
||||||
|
else if ($action == 'confirm_deletefile' && $confirm == 'yes') {
|
||||||
|
if ($object->fetch($id)) {
|
||||||
|
|
||||||
|
$upload_dir = $conf->bank->dir_output;
|
||||||
|
$file = $upload_dir . '/' . GETPOST('urlfile'); // Do not use urldecode here ($_GET and $_REQUEST are already decoded by PHP).
|
||||||
|
|
||||||
|
$ret = dol_delete_file($file, 0, 0, 0, $object);
|
||||||
|
if ($ret) {
|
||||||
|
setEventMessage($langs->trans("FileWasRemoved", GETPOST('urlfile')));
|
||||||
|
} else {
|
||||||
|
setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), 'errors');
|
||||||
|
}
|
||||||
|
|
||||||
|
Header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $id);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* View
|
||||||
|
*/
|
||||||
|
|
||||||
|
llxHeader();
|
||||||
|
|
||||||
|
$form = new Form($db);
|
||||||
|
|
||||||
|
if ($id > 0 || !empty($ref)) {
|
||||||
|
if ($object->fetch($id, $ref)) {
|
||||||
|
|
||||||
|
$upload_dir = $conf->bank->dir_output . '/' . $object->ref;
|
||||||
|
|
||||||
|
// Onglets
|
||||||
|
$head = bank_prepare_head($object);
|
||||||
|
dol_fiche_head($head, 'document', $langs->trans("FinancialAccount"), 0,
|
||||||
|
'account');
|
||||||
|
|
||||||
|
|
||||||
|
// Construit liste des fichiers
|
||||||
|
$filearray = dol_dir_list($upload_dir, "files", 0, '', '\.meta$',
|
||||||
|
$sortfield,
|
||||||
|
(strtolower($sortorder) == 'desc' ? SORT_DESC : SORT_ASC), 1);
|
||||||
|
$totalsize = 0;
|
||||||
|
foreach ($filearray as $key => $file) {
|
||||||
|
$totalsize+=$file['size'];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
print '<table class="border"width="100%">';
|
||||||
|
|
||||||
|
// Ref
|
||||||
|
// Ref
|
||||||
|
print '<tr><td valign="top" width="25%">' . $langs->trans("Ref") . '</td>';
|
||||||
|
print '<td colspan="3">';
|
||||||
|
print $form->showrefnav($object, 'ref', '', 1, 'ref');
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
|
// Label
|
||||||
|
print '<tr><td valign="top">' . $langs->trans("Label") . '</td>';
|
||||||
|
print '<td colspan="3">' . $object->label . '</td></tr>';
|
||||||
|
|
||||||
|
// Status
|
||||||
|
print '<tr><td valign="top">' . $langs->trans("Status") . '</td>';
|
||||||
|
print '<td colspan="3">' . $object->getLibStatut(4) . '</td></tr>';
|
||||||
|
print '<tr><td>' . $langs->trans("NbOfAttachedFiles") . '</td><td colspan="3">' . count($filearray) . '</td></tr>';
|
||||||
|
print '<tr><td>' . $langs->trans("TotalSizeOfAttachedFiles") . '</td><td colspan="3">' . $totalsize . ' ' . $langs->trans("bytes") . '</td></tr>';
|
||||||
|
print "</table>\n";
|
||||||
|
print "</div>\n";
|
||||||
|
|
||||||
|
dol_htmloutput_mesg($mesg, $mesgs);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Confirmation suppression fichier
|
||||||
|
*/
|
||||||
|
if ($action == 'delete') {
|
||||||
|
$ret = $form->form_confirm($_SERVER["PHP_SELF"] . '?id=' . $object->id . '&urlfile=' . urlencode($_GET["urlfile"]),
|
||||||
|
$langs->trans('DeleteFile'),
|
||||||
|
$langs->trans('ConfirmDeleteFile'), 'confirm_deletefile',
|
||||||
|
'', 0, 1);
|
||||||
|
if ($ret == 'html')
|
||||||
|
print '<br>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Affiche formulaire upload
|
||||||
|
$formfile = new FormFile($db);
|
||||||
|
$formfile->form_attach_new_file(DOL_URL_ROOT . '/compta/bank/document.php?id=' . $object->id,
|
||||||
|
'', 0, 0, $user->rights->banque, 50, $object);
|
||||||
|
|
||||||
|
|
||||||
|
// List of document
|
||||||
|
$param = '&id=' . $object->id;
|
||||||
|
$formfile->list_of_documents($filearray, $object, 'bank', $param);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
dol_print_error($db);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Header('Location: index.php');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
llxFooter();
|
||||||
|
|
||||||
|
$db->close();
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
||||||
*
|
*
|
||||||
@ -43,6 +43,7 @@ if (! $user->rights->banque->consolidate) accessforbidden();
|
|||||||
$action=GETPOST('action', 'alpha');
|
$action=GETPOST('action', 'alpha');
|
||||||
$id=GETPOST('account', 'int');
|
$id=GETPOST('account', 'int');
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
@ -220,7 +221,7 @@ if ($resql)
|
|||||||
print "<input type=\"hidden\" name=\"action\" value=\"rappro\">";
|
print "<input type=\"hidden\" name=\"action\" value=\"rappro\">";
|
||||||
print "<input type=\"hidden\" name=\"account\" value=\"".$acct->id."\">";
|
print "<input type=\"hidden\" name=\"account\" value=\"".$acct->id."\">";
|
||||||
|
|
||||||
print $langs->trans("InputReceiptNumber").': ';
|
print '<strong>'.$langs->trans("InputReceiptNumber").'</strong>: ';
|
||||||
print '<input class="flat" name="num_releve" type="text" value="'.(GETPOST('num_releve')?GETPOST('num_releve'):$objp->num_releve).'" size="10">';
|
print '<input class="flat" name="num_releve" type="text" value="'.(GETPOST('num_releve')?GETPOST('num_releve'):$objp->num_releve).'" size="10">';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
if ($options)
|
if ($options)
|
||||||
|
|||||||
@ -94,10 +94,10 @@ $banklinestatic=new AccountLine($db);
|
|||||||
|
|
||||||
|
|
||||||
// Load account
|
// Load account
|
||||||
$acct = new Account($db);
|
$object = new Account($db);
|
||||||
if ($id > 0 || ! empty($ref))
|
if ($id > 0 || ! empty($ref))
|
||||||
{
|
{
|
||||||
$acct->fetch($id, $ref);
|
$object->fetch($id, $ref);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($num))
|
if (empty($num))
|
||||||
@ -107,7 +107,7 @@ if (empty($num))
|
|||||||
*/
|
*/
|
||||||
$sql = "SELECT DISTINCT(b.num_releve) as numr";
|
$sql = "SELECT DISTINCT(b.num_releve) as numr";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."bank as b";
|
$sql.= " FROM ".MAIN_DB_PREFIX."bank as b";
|
||||||
$sql.= " WHERE b.fk_account = ".$acct->id;
|
$sql.= " WHERE b.fk_account = ".$object->id;
|
||||||
$sql.= " ORDER BY numr DESC";
|
$sql.= " ORDER BY numr DESC";
|
||||||
|
|
||||||
$sql.= $db->plimit($conf->liste_limit+1,$offset);
|
$sql.= $db->plimit($conf->liste_limit+1,$offset);
|
||||||
@ -120,7 +120,7 @@ if (empty($num))
|
|||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
// Onglets
|
// Onglets
|
||||||
$head=bank_prepare_head($acct);
|
$head=bank_prepare_head($object);
|
||||||
dol_fiche_head($head,'statement',$langs->trans("FinancialAccount"),0,'account');
|
dol_fiche_head($head,'statement',$langs->trans("FinancialAccount"),0,'account');
|
||||||
|
|
||||||
print '<table class="border" width="100%">';
|
print '<table class="border" width="100%">';
|
||||||
@ -130,19 +130,36 @@ if (empty($num))
|
|||||||
// Ref
|
// Ref
|
||||||
print '<tr><td width="25%">'.$langs->trans("Ref").'</td>';
|
print '<tr><td width="25%">'.$langs->trans("Ref").'</td>';
|
||||||
print '<td colspan="3">';
|
print '<td colspan="3">';
|
||||||
print $form->showrefnav($acct, 'ref', $linkback, 1, 'ref');
|
print $form->showrefnav($object, 'ref', $linkback, 1, 'ref');
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Label
|
// Label
|
||||||
print '<tr><td>'.$langs->trans("Label").'</td>';
|
print '<tr><td>'.$langs->trans("Label").'</td>';
|
||||||
print '<td colspan="3">'.$acct->label.'</td></tr>';
|
print '<td colspan="3">'.$object->label.'</td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
|
print '<div class="tabsAction">';
|
||||||
|
|
||||||
print_barre_liste('', $page, $_SERVER["PHP_SELF"], "&account=".$acct->id, $sortfield, $sortorder,'',$numrows);
|
if ($object->type != 2 && $object->rappro)
|
||||||
|
{
|
||||||
|
// If not cash account and can be reconciliate
|
||||||
|
if ($user->rights->banque->consolidate)
|
||||||
|
{
|
||||||
|
print '<a class="butAction" href="'.DOL_URL_ROOT.'/compta/bank/rappro.php?account='.$object->id.($vline?'&vline='.$vline:'').'">'.$langs->trans("Conciliate").'</a>';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print '<a class="butActionRefused" title="'.$langs->trans("NotEnoughPermissions").'" href="#">'.$langs->trans("Conciliate").'</a>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
|
|
||||||
|
print_barre_liste('', $page, $_SERVER["PHP_SELF"], "&account=".$object->id, $sortfield, $sortorder,'',$numrows);
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
@ -164,13 +181,13 @@ if (empty($num))
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print '<tr '.$bc[$var].'><td><a href="releve.php?num='.$objp->numr.'&account='.$acct->id.'">'.$objp->numr.'</a></td>';
|
print '<tr '.$bc[$var].'><td><a href="releve.php?num='.$objp->numr.'&account='.$object->id.'">'.$objp->numr.'</a></td>';
|
||||||
|
|
||||||
// Calculate start amount
|
// Calculate start amount
|
||||||
$sql = "SELECT sum(b.amount) as amount";
|
$sql = "SELECT sum(b.amount) as amount";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."bank as b";
|
$sql.= " FROM ".MAIN_DB_PREFIX."bank as b";
|
||||||
$sql.= " WHERE b.num_releve < '".$db->escape($objp->numr)."'";
|
$sql.= " WHERE b.num_releve < '".$db->escape($objp->numr)."'";
|
||||||
$sql.= " AND b.fk_account = ".$acct->id;
|
$sql.= " AND b.fk_account = ".$object->id;
|
||||||
$resql=$db->query($sql);
|
$resql=$db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
@ -184,7 +201,7 @@ if (empty($num))
|
|||||||
$sql = "SELECT sum(b.amount) as amount";
|
$sql = "SELECT sum(b.amount) as amount";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."bank as b";
|
$sql.= " FROM ".MAIN_DB_PREFIX."bank as b";
|
||||||
$sql.= " WHERE b.num_releve = '".$db->escape($objp->numr)."'";
|
$sql.= " WHERE b.num_releve = '".$db->escape($objp->numr)."'";
|
||||||
$sql.= " AND b.fk_account = ".$acct->id;
|
$sql.= " AND b.fk_account = ".$object->id;
|
||||||
$resql=$db->query($sql);
|
$resql=$db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
@ -222,7 +239,7 @@ else
|
|||||||
$sql = "SELECT DISTINCT(b.num_releve) as num";
|
$sql = "SELECT DISTINCT(b.num_releve) as num";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."bank as b";
|
$sql.= " FROM ".MAIN_DB_PREFIX."bank as b";
|
||||||
$sql.= " WHERE b.num_releve < '".$db->escape($num)."'";
|
$sql.= " WHERE b.num_releve < '".$db->escape($num)."'";
|
||||||
$sql.= " AND b.fk_account = ".$acct->id;
|
$sql.= " AND b.fk_account = ".$object->id;
|
||||||
$sql.= " ORDER BY b.num_releve DESC";
|
$sql.= " ORDER BY b.num_releve DESC";
|
||||||
|
|
||||||
dol_syslog("htdocs/compta/bank/releve.php", LOG_DEBUG);
|
dol_syslog("htdocs/compta/bank/releve.php", LOG_DEBUG);
|
||||||
@ -244,7 +261,7 @@ else
|
|||||||
$sql = "SELECT DISTINCT(b.num_releve) as num";
|
$sql = "SELECT DISTINCT(b.num_releve) as num";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."bank as b";
|
$sql.= " FROM ".MAIN_DB_PREFIX."bank as b";
|
||||||
$sql.= " WHERE b.num_releve > '".$db->escape($num)."'";
|
$sql.= " WHERE b.num_releve > '".$db->escape($num)."'";
|
||||||
$sql.= " AND b.fk_account = ".$acct->id;
|
$sql.= " AND b.fk_account = ".$object->id;
|
||||||
$sql.= " ORDER BY b.num_releve ASC";
|
$sql.= " ORDER BY b.num_releve ASC";
|
||||||
|
|
||||||
dol_syslog("htdocs/compta/bank/releve.php", LOG_DEBUG);
|
dol_syslog("htdocs/compta/bank/releve.php", LOG_DEBUG);
|
||||||
@ -265,10 +282,10 @@ else
|
|||||||
$found=true;
|
$found=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
$mesprevnext ="<a href=\"releve.php?rel=prev&num=$num&ve=$ve&account=$acct->id\">".img_previous()."</a> ";
|
$mesprevnext ="<a href=\"releve.php?rel=prev&num=$num&ve=$ve&account=$object->id\">".img_previous()."</a> ";
|
||||||
$mesprevnext.= $langs->trans("AccountStatement")." $num";
|
$mesprevnext.= $langs->trans("AccountStatement")." $num";
|
||||||
$mesprevnext.=" <a href=\"releve.php?rel=next&num=$num&ve=$ve&account=$acct->id\">".img_next()."</a>";
|
$mesprevnext.=" <a href=\"releve.php?rel=next&num=$num&ve=$ve&account=$object->id\">".img_next()."</a>";
|
||||||
print_fiche_titre($langs->trans("AccountStatement").' '.$num.', '.$langs->trans("BankAccount").' : '.$acct->getNomUrl(0),$mesprevnext, 'title_bank.png');
|
print_fiche_titre($langs->trans("AccountStatement").' '.$num.', '.$langs->trans("BankAccount").' : '.$object->getNomUrl(0),$mesprevnext, 'title_bank.png');
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print "<form method=\"post\" action=\"releve.php\">";
|
print "<form method=\"post\" action=\"releve.php\">";
|
||||||
@ -291,7 +308,7 @@ else
|
|||||||
$sql = "SELECT sum(b.amount) as amount";
|
$sql = "SELECT sum(b.amount) as amount";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."bank as b";
|
$sql.= " FROM ".MAIN_DB_PREFIX."bank as b";
|
||||||
$sql.= " WHERE b.num_releve < '".$db->escape($num)."'";
|
$sql.= " WHERE b.num_releve < '".$db->escape($num)."'";
|
||||||
$sql.= " AND b.fk_account = ".$acct->id;
|
$sql.= " AND b.fk_account = ".$object->id;
|
||||||
|
|
||||||
$resql=$db->query($sql);
|
$resql=$db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
@ -309,7 +326,7 @@ else
|
|||||||
$sql.= ", ".MAIN_DB_PREFIX."bank as b";
|
$sql.= ", ".MAIN_DB_PREFIX."bank as b";
|
||||||
$sql.= " WHERE b.num_releve='".$db->escape($num)."'";
|
$sql.= " WHERE b.num_releve='".$db->escape($num)."'";
|
||||||
if (!isset($num)) $sql.= " OR b.num_releve is null";
|
if (!isset($num)) $sql.= " OR b.num_releve is null";
|
||||||
$sql.= " AND b.fk_account = ".$acct->id;
|
$sql.= " AND b.fk_account = ".$object->id;
|
||||||
$sql.= " AND b.fk_account = ba.rowid";
|
$sql.= " AND b.fk_account = ba.rowid";
|
||||||
$sql.= $db->order("b.datev, b.datec", "ASC"); // We add date of creation to have correct order when everything is done the same day
|
$sql.= $db->order("b.datev, b.datec", "ASC"); // We add date of creation to have correct order when everything is done the same day
|
||||||
|
|
||||||
@ -321,7 +338,7 @@ else
|
|||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
// Ligne Solde debut releve
|
// Ligne Solde debut releve
|
||||||
print "<tr><td colspan=\"4\"><a href=\"releve.php?num=$num&ve=1&rel=$rel&account=".$acct->id."\"> </a></td>";
|
print "<tr><td colspan=\"4\"><a href=\"releve.php?num=$num&ve=1&rel=$rel&account=".$object->id."\"> </a></td>";
|
||||||
print "<td align=\"right\" colspan=\"2\"><b>".$langs->trans("InitialBankBalance")." :</b></td><td align=\"right\"><b>".price($total)."</b></td><td> </td></tr>\n";
|
print "<td align=\"right\" colspan=\"2\"><b>".$langs->trans("InitialBankBalance")." :</b></td><td align=\"right\"><b>".price($total)."</b></td><td> </td></tr>\n";
|
||||||
|
|
||||||
while ($i < $numrows)
|
while ($i < $numrows)
|
||||||
@ -337,10 +354,10 @@ else
|
|||||||
|
|
||||||
// Date de valeur
|
// Date de valeur
|
||||||
print '<td align="center" valign="center" class="nowrap">';
|
print '<td align="center" valign="center" class="nowrap">';
|
||||||
print '<a href="releve.php?action=dvprev&num='.$num.'&account='.$acct->id.'&dvid='.$objp->rowid.'">';
|
print '<a href="releve.php?action=dvprev&num='.$num.'&account='.$object->id.'&dvid='.$objp->rowid.'">';
|
||||||
print img_previous().'</a> ';
|
print img_previous().'</a> ';
|
||||||
print dol_print_date($db->jdate($objp->dv),"day") .' ';
|
print dol_print_date($db->jdate($objp->dv),"day") .' ';
|
||||||
print '<a href="releve.php?action=dvnext&num='.$num.'&account='.$acct->id.'&dvid='.$objp->rowid.'">';
|
print '<a href="releve.php?action=dvnext&num='.$num.'&account='.$object->id.'&dvid='.$objp->rowid.'">';
|
||||||
print img_next().'</a>';
|
print img_next().'</a>';
|
||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
|
|
||||||
@ -353,7 +370,7 @@ else
|
|||||||
print '<td class="nowrap">'.$type_label.' '.($objp->num_chq?$objp->num_chq:'').'</td>';
|
print '<td class="nowrap">'.$type_label.' '.($objp->num_chq?$objp->num_chq:'').'</td>';
|
||||||
|
|
||||||
// Description
|
// Description
|
||||||
print '<td valign="center"><a href="'.DOL_URL_ROOT.'/compta/bank/ligne.php?rowid='.$objp->rowid.'&account='.$acct->id.'">';
|
print '<td valign="center"><a href="'.DOL_URL_ROOT.'/compta/bank/ligne.php?rowid='.$objp->rowid.'&account='.$object->id.'">';
|
||||||
$reg=array();
|
$reg=array();
|
||||||
preg_match('/\((.+)\)/i',$objp->label,$reg); // Si texte entoure de parenthese on tente recherche de traduction
|
preg_match('/\((.+)\)/i',$objp->label,$reg); // Si texte entoure de parenthese on tente recherche de traduction
|
||||||
if ($reg[1] && $langs->trans($reg[1])!=$reg[1]) print $langs->trans($reg[1]);
|
if ($reg[1] && $langs->trans($reg[1])!=$reg[1]) print $langs->trans($reg[1]);
|
||||||
@ -364,7 +381,7 @@ else
|
|||||||
* Ajout les liens (societe, company...)
|
* Ajout les liens (societe, company...)
|
||||||
*/
|
*/
|
||||||
$newline=1;
|
$newline=1;
|
||||||
$links = $acct->get_url($objp->rowid);
|
$links = $object->get_url($objp->rowid);
|
||||||
foreach($links as $key=>$val)
|
foreach($links as $key=>$val)
|
||||||
{
|
{
|
||||||
if (! $newline) print ' - ';
|
if (! $newline) print ' - ';
|
||||||
@ -500,7 +517,7 @@ else
|
|||||||
|
|
||||||
if ($user->rights->banque->modifier || $user->rights->banque->consolidate)
|
if ($user->rights->banque->modifier || $user->rights->banque->consolidate)
|
||||||
{
|
{
|
||||||
print "<td align=\"center\"><a href=\"ligne.php?rowid=$objp->rowid&account=".$acct->id."\">";
|
print "<td align=\"center\"><a href=\"ligne.php?rowid=$objp->rowid&account=".$object->id."\">";
|
||||||
print img_edit();
|
print img_edit();
|
||||||
print "</a></td>";
|
print "</a></td>";
|
||||||
}
|
}
|
||||||
@ -522,6 +539,7 @@ else
|
|||||||
print "</table></form>\n";
|
print "</table></form>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
$db->close();
|
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|
||||||
|
$db->close();
|
||||||
|
|||||||
@ -442,7 +442,7 @@ if (empty($reshook))
|
|||||||
$ret = $object->fetch($id); // Reload to get new records
|
$ret = $object->fetch($id); // Reload to get new records
|
||||||
|
|
||||||
$result = $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
$result = $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
||||||
if ($result < 0) dol_print_error($db,$result);
|
if ($result < 0) setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1421,10 +1421,7 @@ if (empty($reshook))
|
|||||||
$ret = $object->fetch($id); // Reload to get new records
|
$ret = $object->fetch($id); // Reload to get new records
|
||||||
|
|
||||||
$result = $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
$result = $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
||||||
if ($result < 0)
|
if ($result < 0) setEventMessages($object->error, $object->errors, 'errors');
|
||||||
{
|
|
||||||
setEventMessages($object->error, $object->errors, 'errors');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
unset($_POST['prod_entry_mode']);
|
unset($_POST['prod_entry_mode']);
|
||||||
@ -2245,6 +2242,10 @@ if ($action == 'create')
|
|||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Bank Account
|
// Bank Account
|
||||||
|
if (isset($_POST['fk_account'])) {
|
||||||
|
$fk_account = $_POST['fk_account'];
|
||||||
|
}
|
||||||
|
|
||||||
print '<tr><td>' . $langs->trans('BankAccount') . '</td><td colspan="2">';
|
print '<tr><td>' . $langs->trans('BankAccount') . '</td><td colspan="2">';
|
||||||
$form->select_comptes($fk_account, 'fk_account', 0, '', 1);
|
$form->select_comptes($fk_account, 'fk_account', 0, '', 1);
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
@ -3222,8 +3223,9 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
$form->form_date($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $object->date_lim_reglement, 'paymentterm');
|
$form->form_date($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $object->date_lim_reglement, 'paymentterm');
|
||||||
} else {
|
} else {
|
||||||
print dol_print_date($object->date_lim_reglement, 'daytext');
|
print dol_print_date($object->date_lim_reglement, 'daytext');
|
||||||
if ($object->date_lim_reglement < ($now - $conf->facture->client->warning_delay) && ! $object->paye && $object->statut == 1 && ! isset($object->am))
|
if ($object->hasDelay()) {
|
||||||
print img_warning($langs->trans('Late'));
|
print img_warning($langs->trans('Late'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
print ' ';
|
print ' ';
|
||||||
@ -3536,14 +3538,17 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
// modified by hook
|
// modified by hook
|
||||||
if (empty($reshook)) {
|
if (empty($reshook)) {
|
||||||
// Editer une facture deja validee, sans paiement effectue et pas exporte en compta
|
// Editer une facture deja validee, sans paiement effectue et pas exporte en compta
|
||||||
if ($object->statut == 1) {
|
if ($object->statut == 1)
|
||||||
|
{
|
||||||
// On verifie si les lignes de factures ont ete exportees en compta et/ou ventilees
|
// On verifie si les lignes de factures ont ete exportees en compta et/ou ventilees
|
||||||
$ventilExportCompta = $object->getVentilExportCompta();
|
$ventilExportCompta = $object->getVentilExportCompta();
|
||||||
|
|
||||||
if ($resteapayer == $object->total_ttc && $object->paye == 0 && $ventilExportCompta == 0) {
|
if ($resteapayer == $object->total_ttc && empty($object->paye) && $ventilExportCompta == 0)
|
||||||
if (! $objectidnext && $object->is_last_in_cycle()) {
|
{
|
||||||
|
if (! $objectidnext && $object->is_last_in_cycle())
|
||||||
|
{
|
||||||
if ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->creer))
|
if ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->creer))
|
||||||
|| (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->invoice_advance->unvalidate)))
|
|| (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->invoice_advance->unvalidate)))
|
||||||
{
|
{
|
||||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?facid=' . $object->id . '&action=modif">' . $langs->trans('Modify') . '</a></div>';
|
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?facid=' . $object->id . '&action=modif">' . $langs->trans('Modify') . '</a></div>';
|
||||||
} else {
|
} else {
|
||||||
@ -3806,7 +3811,7 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
if (! $file || ! is_readable($file)) {
|
if (! $file || ! is_readable($file)) {
|
||||||
$result = $object->generateDocument(GETPOST('model') ? GETPOST('model') : $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
$result = $object->generateDocument(GETPOST('model') ? GETPOST('model') : $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
||||||
if ($result <= 0) {
|
if ($result <= 0) {
|
||||||
dol_print_error($db, $result);
|
dol_print_error($db, $object->error, $object->errors);
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
$fileparams = dol_most_recent_file($conf->facture->dir_output . '/' . $ref, preg_quote($ref, '/').'[^\-]+');
|
$fileparams = dol_most_recent_file($conf->facture->dir_output . '/' . $ref, preg_quote($ref, '/').'[^\-]+');
|
||||||
@ -3851,6 +3856,7 @@ else if ($id > 0 || ! empty($ref))
|
|||||||
$formmail->substit['__REFCLIENT__'] = $object->ref_client;
|
$formmail->substit['__REFCLIENT__'] = $object->ref_client;
|
||||||
$formmail->substit['__THIRPARTY_NAME__'] = $object->thirdparty->name;
|
$formmail->substit['__THIRPARTY_NAME__'] = $object->thirdparty->name;
|
||||||
$formmail->substit['__PROJECT_REF__'] = (is_object($object->projet)?$object->projet->ref:'');
|
$formmail->substit['__PROJECT_REF__'] = (is_object($object->projet)?$object->projet->ref:'');
|
||||||
|
$formmail->substit['__PROJECT_NAME__'] = (is_object($object->projet)?$object->projet->title:'');
|
||||||
$formmail->substit['__PERSONALIZED__'] = '';
|
$formmail->substit['__PERSONALIZED__'] = '';
|
||||||
$formmail->substit['__CONTACTCIVNAME__'] = '';
|
$formmail->substit['__CONTACTCIVNAME__'] = '';
|
||||||
|
|
||||||
|
|||||||
@ -3246,11 +3246,15 @@ class Facture extends CommonInvoice
|
|||||||
$response->url=DOL_URL_ROOT.'/compta/facture/list.php?search_status=1';
|
$response->url=DOL_URL_ROOT.'/compta/facture/list.php?search_status=1';
|
||||||
$response->img=img_object($langs->trans("Bills"),"bill");
|
$response->img=img_object($langs->trans("Bills"),"bill");
|
||||||
|
|
||||||
|
$generic_facture = new Facture($this->db);
|
||||||
|
|
||||||
while ($obj=$this->db->fetch_object($resql))
|
while ($obj=$this->db->fetch_object($resql))
|
||||||
{
|
{
|
||||||
|
$generic_facture->date_lim_reglement = $this->db->jdate($obj->datefin);
|
||||||
|
|
||||||
$response->nbtodo++;
|
$response->nbtodo++;
|
||||||
|
|
||||||
if ($this->db->jdate($obj->datefin) < ($now - $conf->facture->client->warning_delay)) {
|
if ($generic_facture->hasDelay()) {
|
||||||
$response->nbtodolate++;
|
$response->nbtodolate++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3707,6 +3711,25 @@ class Facture extends CommonInvoice
|
|||||||
|
|
||||||
return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables);
|
return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is the customer invoice delayed?
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function hasDelay()
|
||||||
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
|
$now = dol_now();
|
||||||
|
|
||||||
|
//Paid invoices have status STATUS_CLOSED
|
||||||
|
if (!$this->statut != Facture::STATUS_VALIDATED) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->date_lim_reglement < ($now - $conf->facture->client->warning_delay);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -636,7 +636,7 @@ else
|
|||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else print '<tr><td>'.$langs->trans("NoneF").'</td></tr>';
|
else print '<tr '.$bc[false].'><td colspan="6">'.$langs->trans("NoneF").'</td></tr>';
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
$db->free($resql);
|
$db->free($resql);
|
||||||
|
|||||||
@ -129,6 +129,7 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
|
|||||||
$search_montant_ht='';
|
$search_montant_ht='';
|
||||||
$search_montant_ttc='';
|
$search_montant_ttc='';
|
||||||
$search_status='';
|
$search_status='';
|
||||||
|
$day='';
|
||||||
$year='';
|
$year='';
|
||||||
$month='';
|
$month='';
|
||||||
}
|
}
|
||||||
@ -350,7 +351,7 @@ if ($resql)
|
|||||||
print '<td class="liste_titre" align="right"><input class="flat" type="text" size="6" name="search_montant_ttc" value="'.$search_montant_ttc.'"></td>';
|
print '<td class="liste_titre" align="right"><input class="flat" type="text" size="6" name="search_montant_ttc" value="'.$search_montant_ttc.'"></td>';
|
||||||
print '<td class="liste_titre"></td>';
|
print '<td class="liste_titre"></td>';
|
||||||
print '<td class="liste_titre" align="right">';
|
print '<td class="liste_titre" align="right">';
|
||||||
$liststatus=array('0'=>$langs->trans("Draft"), '1'=>$langs->trans("Unpaid"), '2'=>$langs->trans("Paid"), '3'=>$langs->trans("Cancel"));
|
$liststatus=array('0'=>$langs->trans("BillShortStatusDraft"), '1'=>$langs->trans("BillShortStatusNotPaid"), '2'=>$langs->trans("BillShortStatusPaid"), '3'=>$langs->trans("BillShortStatusCanceled"));
|
||||||
print $form->selectarray('search_status', $liststatus, $search_status, 1);
|
print $form->selectarray('search_status', $liststatus, $search_status, 1);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
|
print '<td class="liste_titre" align="right"><input type="image" class="liste_titre" name="button_search" src="'.img_picto($langs->trans("Search"),'search.png','','',1).'" value="'.dol_escape_htmltag($langs->trans("Search")).'" title="'.dol_escape_htmltag($langs->trans("Search")).'">';
|
||||||
@ -378,6 +379,8 @@ if ($resql)
|
|||||||
$facturestatic->id=$objp->facid;
|
$facturestatic->id=$objp->facid;
|
||||||
$facturestatic->ref=$objp->facnumber;
|
$facturestatic->ref=$objp->facnumber;
|
||||||
$facturestatic->type=$objp->type;
|
$facturestatic->type=$objp->type;
|
||||||
|
$facturestatic->statut = $objp->fk_statut;
|
||||||
|
$facturestatic->date_lim_reglement = $db->jdate($objp->datelimite);
|
||||||
$notetoshow=dol_string_nohtmltag(($user->societe_id>0?$objp->note_public:$objp->note),1);
|
$notetoshow=dol_string_nohtmltag(($user->societe_id>0?$objp->note_public:$objp->note),1);
|
||||||
$paiement = $facturestatic->getSommePaiement();
|
$paiement = $facturestatic->getSommePaiement();
|
||||||
|
|
||||||
@ -417,7 +420,7 @@ if ($resql)
|
|||||||
|
|
||||||
// Date limit
|
// Date limit
|
||||||
print '<td align="center" class="nowrap">'.dol_print_date($datelimit,'day');
|
print '<td align="center" class="nowrap">'.dol_print_date($datelimit,'day');
|
||||||
if ($datelimit < ($now - $conf->facture->client->warning_delay) && ! $objp->paye && $objp->fk_statut == 1 && ! $paiement)
|
if ($facturestatic->hasDelay())
|
||||||
{
|
{
|
||||||
print img_warning($langs->trans('Late'));
|
print img_warning($langs->trans('Late'));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -165,10 +165,12 @@ if ($action == 'presend' && GETPOST('sendmail'))
|
|||||||
'__CHECK_READ__' => '<img src="'.DOL_MAIN_URL_ROOT.'/public/emailing/mailing-read.php?tag='.$obj2->tag.'&securitykey='.urlencode($conf->global->MAILING_EMAIL_UNSUBSCRIBE_KEY).'" width="1" height="1" style="width:1px;height:1px" border="0"/>',
|
'__CHECK_READ__' => '<img src="'.DOL_MAIN_URL_ROOT.'/public/emailing/mailing-read.php?tag='.$obj2->tag.'&securitykey='.urlencode($conf->global->MAILING_EMAIL_UNSUBSCRIBE_KEY).'" width="1" height="1" style="width:1px;height:1px" border="0"/>',
|
||||||
//'__LASTNAME__' => $obj2->lastname,
|
//'__LASTNAME__' => $obj2->lastname,
|
||||||
//'__FIRSTNAME__' => $obj2->firstname,
|
//'__FIRSTNAME__' => $obj2->firstname,
|
||||||
'__REF__' => $object->ref,
|
'__FACREF__' => $object->ref, // For backward compatibility
|
||||||
|
'__REF__' => $object->ref,
|
||||||
'__REFCLIENT__' => $object->thirdparty->name
|
'__REFCLIENT__' => $object->thirdparty->name
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$subject=make_substitutions($subject, $substitutionarray);
|
||||||
$message=make_substitutions($message, $substitutionarray);
|
$message=make_substitutions($message, $substitutionarray);
|
||||||
|
|
||||||
$actiontypecode='AC_FAC';
|
$actiontypecode='AC_FAC';
|
||||||
@ -196,7 +198,7 @@ if ($action == 'presend' && GETPOST('sendmail'))
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//$result=$mailfile->sendfile();
|
$result=$mailfile->sendfile();
|
||||||
if ($result)
|
if ($result)
|
||||||
{
|
{
|
||||||
$resultmasssend.=$langs->trans('MailSuccessfulySent',$mailfile->getValidAddress($from,2),$mailfile->getValidAddress($sendto,2)); // Must not contain "
|
$resultmasssend.=$langs->trans('MailSuccessfulySent',$mailfile->getValidAddress($from,2),$mailfile->getValidAddress($sendto,2)); // Must not contain "
|
||||||
@ -250,8 +252,7 @@ if ($action == 'presend' && GETPOST('sendmail'))
|
|||||||
$nbignored++;
|
$nbignored++;
|
||||||
$langs->load("other");
|
$langs->load("other");
|
||||||
$resultmasssend.='<div class="error">'.$langs->trans('ErrorCantReadFile',$file).'</div>';
|
$resultmasssend.='<div class="error">'.$langs->trans('ErrorCantReadFile',$file).'</div>';
|
||||||
dol_syslog('Failed to read file: '.$file);
|
dol_syslog('Failed to read file: '.$file, LOG_WARNING);
|
||||||
break ;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -263,7 +264,7 @@ if ($action == 'presend' && GETPOST('sendmail'))
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage($langs->trans("NoRemindSent"), 'warnings');
|
setEventMessage($langs->trans("NoRemindSent"), 'warnings'); // May be object has no generated PDF file
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -556,9 +557,7 @@ if ($resql)
|
|||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
|
||||||
$formmail = new FormMail($db);
|
$formmail = new FormMail($db);
|
||||||
|
|
||||||
print '<br>';
|
dol_fiche_head(null, '', $langs->trans("SendRemind"));
|
||||||
print_fiche_titre($langs->trans("SendRemind"),'','');
|
|
||||||
print '<br>';
|
|
||||||
|
|
||||||
$topicmail="MailTopicSendRemindUnpaidInvoices";
|
$topicmail="MailTopicSendRemindUnpaidInvoices";
|
||||||
$modelmail="facture_relance";
|
$modelmail="facture_relance";
|
||||||
@ -598,7 +597,8 @@ if ($resql)
|
|||||||
$formmail->param['returnurl']=$_SERVER["PHP_SELF"].'?id='.$object->id;
|
$formmail->param['returnurl']=$_SERVER["PHP_SELF"].'?id='.$object->id;
|
||||||
|
|
||||||
print $formmail->get_form();
|
print $formmail->get_form();
|
||||||
print '<br>'."\n";
|
|
||||||
|
dol_fiche_end();
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
@ -734,6 +734,8 @@ if ($resql)
|
|||||||
$facturestatic->id=$objp->facid;
|
$facturestatic->id=$objp->facid;
|
||||||
$facturestatic->ref=$objp->facnumber;
|
$facturestatic->ref=$objp->facnumber;
|
||||||
$facturestatic->type=$objp->type;
|
$facturestatic->type=$objp->type;
|
||||||
|
$facturestatic->statut=$objp->fk_statut;
|
||||||
|
$facturestatic->date_lim_reglement= $db->jdate($objp->datelimite);
|
||||||
|
|
||||||
print '<table class="nobordernopadding"><tr class="nocellnopadd">';
|
print '<table class="nobordernopadding"><tr class="nocellnopadd">';
|
||||||
|
|
||||||
@ -744,7 +746,9 @@ if ($resql)
|
|||||||
|
|
||||||
// Warning picto
|
// Warning picto
|
||||||
print '<td width="20" class="nobordernopadding nowrap">';
|
print '<td width="20" class="nobordernopadding nowrap">';
|
||||||
if ($date_limit < ($now - $conf->facture->client->warning_delay) && ! $objp->paye && $objp->fk_statut == 1) print img_warning($langs->trans("Late"));
|
if ($facturestatic->hasDelay()) {
|
||||||
|
print img_warning($langs->trans("Late"));
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
// PDF Picto
|
// PDF Picto
|
||||||
|
|||||||
@ -356,7 +356,9 @@ if ($object->id > 0)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
print dol_print_date($object->date_lim_reglement,'daytext');
|
print dol_print_date($object->date_lim_reglement,'daytext');
|
||||||
if ($object->date_lim_reglement < ($now - $conf->facture->client->warning_delay) && ! $object->paye && $object->statut == Facture::STATUS_VALIDATED && ! isset($object->am)) print img_warning($langs->trans('Late'));
|
if ($object->hasDelay()) {
|
||||||
|
print img_warning($langs->trans('Late'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2015 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2015 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
||||||
|
* Copyright (C) 2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.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
|
||||||
@ -358,11 +359,15 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
|
|||||||
$facturestatic->total_ht=$obj->total_ht;
|
$facturestatic->total_ht=$obj->total_ht;
|
||||||
$facturestatic->total_tva=$obj->total_tva;
|
$facturestatic->total_tva=$obj->total_tva;
|
||||||
$facturestatic->total_ttc=$obj->total_ttc;
|
$facturestatic->total_ttc=$obj->total_ttc;
|
||||||
|
$facturestatic->statut = $obj->fk_statut;
|
||||||
|
$facturestatic->date_lim_reglement = $db->jdate($obj->datelimite);
|
||||||
$facturestatic->type=$obj->type;
|
$facturestatic->type=$obj->type;
|
||||||
print $facturestatic->getNomUrl(1,'');
|
print $facturestatic->getNomUrl(1,'');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td width="20" class="nobordernopadding nowrap">';
|
print '<td width="20" class="nobordernopadding nowrap">';
|
||||||
if ($obj->fk_statut == 1 && ! $obj->paye && $db->jdate($obj->datelimite) < ($now - $conf->facture->client->warning_delay)) print img_warning($langs->trans("Late"));
|
if ($facturestatic->hasDelay()) {
|
||||||
|
print img_warning($langs->trans("Late"));
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td width="16" align="right" class="nobordernopadding hideonsmartphone">';
|
print '<td width="16" align="right" class="nobordernopadding hideonsmartphone">';
|
||||||
$filename=dol_sanitizeFileName($obj->facnumber);
|
$filename=dol_sanitizeFileName($obj->facnumber);
|
||||||
@ -606,7 +611,7 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire)
|
|||||||
$chargestatic->lib=$obj->libelle;
|
$chargestatic->lib=$obj->libelle;
|
||||||
$chargestatic->paye=$obj->paye;
|
$chargestatic->paye=$obj->paye;
|
||||||
print '<td>'.$chargestatic->getNomUrl(1).'</td>';
|
print '<td>'.$chargestatic->getNomUrl(1).'</td>';
|
||||||
print '<td align="center">'.dol_print_date($obj->date_ech,'day').'</td>';
|
print '<td align="center">'.dol_print_date($db->jdate($obj->date_ech),'day').'</td>';
|
||||||
print '<td align="right">'.price($obj->amount).'</td>';
|
print '<td align="right">'.price($obj->amount).'</td>';
|
||||||
print '<td align="right">'.price($obj->sumpaid).'</td>';
|
print '<td align="right">'.price($obj->sumpaid).'</td>';
|
||||||
print '<td align="center">'.$chargestatic->getLibStatut(3).'</td>';
|
print '<td align="center">'.$chargestatic->getLibStatut(3).'</td>';
|
||||||
@ -800,10 +805,14 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire)
|
|||||||
$facturestatic->total_tva=$obj->total_tva;
|
$facturestatic->total_tva=$obj->total_tva;
|
||||||
$facturestatic->total_ttc=$obj->total_ttc;
|
$facturestatic->total_ttc=$obj->total_ttc;
|
||||||
$facturestatic->type=$obj->type;
|
$facturestatic->type=$obj->type;
|
||||||
|
$facturestatic->statut = $obj->fk_statut;
|
||||||
|
$facturestatic->date_lim_reglement = $db->jdate($obj->datelimite);
|
||||||
print $facturestatic->getNomUrl(1,'');
|
print $facturestatic->getNomUrl(1,'');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td width="20" class="nobordernopadding nowrap">';
|
print '<td width="20" class="nobordernopadding nowrap">';
|
||||||
if ($db->jdate($obj->datelimite) < ($now - $conf->facture->client->warning_delay)) print img_warning($langs->trans("Late"));
|
if ($facturestatic->hasDelay()) {
|
||||||
|
print img_warning($langs->trans("Late"));
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td width="16" align="right" class="nobordernopadding hideonsmartphone">';
|
print '<td width="16" align="right" class="nobordernopadding hideonsmartphone">';
|
||||||
$filename=dol_sanitizeFileName($obj->facnumber);
|
$filename=dol_sanitizeFileName($obj->facnumber);
|
||||||
@ -966,7 +975,7 @@ if ($resql)
|
|||||||
$obj = $db->fetch_object($resql);
|
$obj = $db->fetch_object($resql);
|
||||||
$var=!$var;
|
$var=!$var;
|
||||||
|
|
||||||
print "<tr ".$bc[$var]."><td>".dol_print_date($obj->da,"day")."</td>";
|
print "<tr ".$bc[$var]."><td>".dol_print_date($db->jdate($obj->da),"day")."</td>";
|
||||||
print '<td><a href="action/card.php">'.$obj->libelle.' '.$obj->label.'</a></td></tr>';
|
print '<td><a href="action/card.php">'.$obj->libelle.' '.$obj->label.'</a></td></tr>';
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -184,7 +184,7 @@ print "<td>".$langs->trans("Account")."</td>";
|
|||||||
print "<td>".$langs->trans("Type")."</td><td align='right'>".$langs->trans("Debit")."</td><td align='right'>".$langs->trans("Credit")."</td>";
|
print "<td>".$langs->trans("Type")."</td><td align='right'>".$langs->trans("Debit")."</td><td align='right'>".$langs->trans("Credit")."</td>";
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
$var=true;
|
$var=false;
|
||||||
|
|
||||||
$invoicestatic=new FactureFournisseur($db);
|
$invoicestatic=new FactureFournisseur($db);
|
||||||
$companystatic=new Fournisseur($db);
|
$companystatic=new Fournisseur($db);
|
||||||
|
|||||||
@ -215,7 +215,7 @@ print '<td>'.$langs->trans('Account').'</td>';
|
|||||||
print '<td>'.$langs->trans('Type').'</td><td align="right">'.$langs->trans('Debit').'</td><td align="right">'.$langs->trans('Credit').'</td>';
|
print '<td>'.$langs->trans('Type').'</td><td align="right">'.$langs->trans('Debit').'</td><td align="right">'.$langs->trans('Credit').'</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
$var=true;
|
$var=false;
|
||||||
|
|
||||||
$invoicestatic=new Facture($db);
|
$invoicestatic=new Facture($db);
|
||||||
$companystatic=new Client($db);
|
$companystatic=new Client($db);
|
||||||
|
|||||||
@ -88,10 +88,6 @@ if ($action == 'setdate' && $user->rights->banque->cheque)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Actions
|
|
||||||
*/
|
|
||||||
|
|
||||||
if ($action == 'setrefext' && $user->rights->banque->cheque)
|
if ($action == 'setrefext' && $user->rights->banque->cheque)
|
||||||
{
|
{
|
||||||
$result = $object->fetch(GETPOST('id','int'));
|
$result = $object->fetch(GETPOST('id','int'));
|
||||||
@ -282,7 +278,7 @@ else if ($action == 'remove_file' && $user->rights->banque->cheque)
|
|||||||
|
|
||||||
$langs->load("other");
|
$langs->load("other");
|
||||||
|
|
||||||
$file=$dir.get_exdir($object->number,2,1,0,$object,'cheque') . GETPOST('file');
|
$file=$dir.get_exdir($object->number,0,1,0,$object,'cheque') . GETPOST('file');
|
||||||
$ret=dol_delete_file($file,0,0,0,$object);
|
$ret=dol_delete_file($file,0,0,0,$object);
|
||||||
if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('file')));
|
if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('file')));
|
||||||
else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('file')), 'errors');
|
else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('file')), 'errors');
|
||||||
@ -581,6 +577,7 @@ else
|
|||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
// External ref
|
// External ref
|
||||||
|
/* Ext ref are not visible field on standard usage
|
||||||
print '<tr><td>';
|
print '<tr><td>';
|
||||||
|
|
||||||
print '<table class="nobordernopadding" width="100%"><tr><td>';
|
print '<table class="nobordernopadding" width="100%"><tr><td>';
|
||||||
@ -605,6 +602,7 @@ else
|
|||||||
|
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
*/
|
||||||
|
|
||||||
print '<tr><td>'.$langs->trans('Account').'</td><td colspan="2">';
|
print '<tr><td>'.$langs->trans('Account').'</td><td colspan="2">';
|
||||||
print $accountstatic->getNomUrl(1);
|
print $accountstatic->getNomUrl(1);
|
||||||
@ -626,7 +624,7 @@ else
|
|||||||
print '</table><br>';
|
print '</table><br>';
|
||||||
|
|
||||||
|
|
||||||
// Liste des cheques
|
// List of cheques
|
||||||
$sql = "SELECT b.rowid, b.amount, b.num_chq, b.emetteur,";
|
$sql = "SELECT b.rowid, b.amount, b.num_chq, b.emetteur,";
|
||||||
$sql.= " b.dateo as date, b.datec as datec, b.banque,";
|
$sql.= " b.dateo as date, b.datec as datec, b.banque,";
|
||||||
$sql.= " p.rowid as pid, ba.rowid as bid, p.statut";
|
$sql.= " p.rowid as pid, ba.rowid as bid, p.statut";
|
||||||
@ -636,7 +634,7 @@ else
|
|||||||
$sql.= " WHERE ba.entity IN (".getEntity('bank_account', 1).")";
|
$sql.= " WHERE ba.entity IN (".getEntity('bank_account', 1).")";
|
||||||
$sql.= " AND b.fk_type= 'CHQ'";
|
$sql.= " AND b.fk_type= 'CHQ'";
|
||||||
$sql.= " AND b.fk_bordereau = ".$object->id;
|
$sql.= " AND b.fk_bordereau = ".$object->id;
|
||||||
$sql.= " ORDER BY $sortfield $sortorder";
|
$sql.= $db->order($sortfield, $sortorder);
|
||||||
|
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
@ -655,7 +653,6 @@ else
|
|||||||
print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"b.amount", "",$param,'align="right"',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"b.amount", "",$param,'align="right"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("LineRecord"),$_SERVER["PHP_SELF"],"b.rowid", "",$param,'align="center"',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("LineRecord"),$_SERVER["PHP_SELF"],"b.rowid", "",$param,'align="center"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre($langs->trans("Payment"),$_SERVER["PHP_SELF"],"p.rowid", "",$param,'align="center"',$sortfield,$sortorder);
|
print_liste_field_titre($langs->trans("Payment"),$_SERVER["PHP_SELF"],"p.rowid", "",$param,'align="center"',$sortfield,$sortorder);
|
||||||
print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch ');
|
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
$i=1;
|
$i=1;
|
||||||
$var=false;
|
$var=false;
|
||||||
@ -751,7 +748,7 @@ if ($action != 'new')
|
|||||||
if ($object->statut == 1)
|
if ($object->statut == 1)
|
||||||
{
|
{
|
||||||
$filename=dol_sanitizeFileName($object->ref);
|
$filename=dol_sanitizeFileName($object->ref);
|
||||||
$filedir=$dir.get_exdir($object->number,2,1,0,$object,'cheque') . dol_sanitizeFileName($object->ref);
|
$filedir=$dir.get_exdir($object->number,0,1,0,$object,'cheque') . dol_sanitizeFileName($object->ref);
|
||||||
$urlsource=$_SERVER["PHP_SELF"]."?id=".$object->id;
|
$urlsource=$_SERVER["PHP_SELF"]."?id=".$object->id;
|
||||||
|
|
||||||
$formfile->show_documents('remisecheque', $filename, $filedir, $urlsource, 1, 1);
|
$formfile->show_documents('remisecheque', $filename, $filedir, $urlsource, 1, 1);
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
/* Copyright (C) 2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2007-2011 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2007-2011 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2011-2015 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@ -44,6 +44,13 @@ class RemiseCheque extends CommonObject
|
|||||||
var $errno;
|
var $errno;
|
||||||
|
|
||||||
public $statut;
|
public $statut;
|
||||||
|
public $amount;
|
||||||
|
public $date_bordereau;
|
||||||
|
public $account_id;
|
||||||
|
public $account_label;
|
||||||
|
public $author_id;
|
||||||
|
public $nbcheque;
|
||||||
|
public $number;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
@ -548,7 +555,7 @@ class RemiseCheque extends CommonObject
|
|||||||
// We save charset_output to restore it because write_file can change it if needed for
|
// We save charset_output to restore it because write_file can change it if needed for
|
||||||
// output format that does not support UTF8.
|
// output format that does not support UTF8.
|
||||||
$sav_charseSupprimert_output=$outputlangs->charset_output;
|
$sav_charseSupprimert_output=$outputlangs->charset_output;
|
||||||
$result=$docmodel->write_file($conf->banque->dir_output.'/bordereau', $this->number, $outputlangs);
|
$result=$docmodel->write_file($this, $conf->banque->dir_output.'/bordereau', $this->number, $outputlangs);
|
||||||
if ($result > 0)
|
if ($result > 0)
|
||||||
{
|
{
|
||||||
//$outputlangs->charset_output=$sav_charset_output;
|
//$outputlangs->charset_output=$sav_charset_output;
|
||||||
@ -819,7 +826,6 @@ class RemiseCheque extends CommonObject
|
|||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
$this->date_bordereau = $date;
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@ -28,6 +28,8 @@
|
|||||||
require '../../main.inc.php';
|
require '../../main.inc.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||||
|
|
||||||
$langs->load("bills");
|
$langs->load("bills");
|
||||||
$langs->load("compta");
|
$langs->load("compta");
|
||||||
@ -36,6 +38,10 @@ $langs->load("compta");
|
|||||||
$facid =GETPOST('facid','int');
|
$facid =GETPOST('facid','int');
|
||||||
$socid =GETPOST('socid','int');
|
$socid =GETPOST('socid','int');
|
||||||
$userid=GETPOST('userid','int');
|
$userid=GETPOST('userid','int');
|
||||||
|
$day = GETPOST('day','int');
|
||||||
|
$month = GETPOST('month','int');
|
||||||
|
$year = GETPOST('year','int');
|
||||||
|
|
||||||
if ($user->societe_id) $socid=$user->societe_id;
|
if ($user->societe_id) $socid=$user->societe_id;
|
||||||
$result = restrictedArea($user, 'facture',$facid,'');
|
$result = restrictedArea($user, 'facture',$facid,'');
|
||||||
|
|
||||||
@ -66,6 +72,9 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both
|
|||||||
$search_amount="";
|
$search_amount="";
|
||||||
$search_paymenttype="";
|
$search_paymenttype="";
|
||||||
$search_company="";
|
$search_company="";
|
||||||
|
$day='';
|
||||||
|
$year='';
|
||||||
|
$month='';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
|
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
|
||||||
@ -81,6 +90,7 @@ $extrafields = new ExtraFields($db);
|
|||||||
llxHeader('', $langs->trans('ListPayment'));
|
llxHeader('', $langs->trans('ListPayment'));
|
||||||
|
|
||||||
$form=new Form($db);
|
$form=new Form($db);
|
||||||
|
$formother=new FormOther($db);
|
||||||
|
|
||||||
if (GETPOST("orphelins"))
|
if (GETPOST("orphelins"))
|
||||||
{
|
{
|
||||||
@ -141,6 +151,19 @@ else
|
|||||||
else $sql.= " AND f.fk_user_author = ".$userid;
|
else $sql.= " AND f.fk_user_author = ".$userid;
|
||||||
}
|
}
|
||||||
// Search criteria
|
// Search criteria
|
||||||
|
if ($month > 0)
|
||||||
|
{
|
||||||
|
if ($year > 0 && empty($day))
|
||||||
|
$sql.= " AND p.datep BETWEEN '".$db->idate(dol_get_first_day($year,$month,false))."' AND '".$db->idate(dol_get_last_day($year,$month,false))."'";
|
||||||
|
else if ($year > 0 && ! empty($day))
|
||||||
|
$sql.= " AND p.datep BETWEEN '".$db->idate(dol_mktime(0, 0, 0, $month, $day, $year))."' AND '".$db->idate(dol_mktime(23, 59, 59, $month, $day, $year))."'";
|
||||||
|
else
|
||||||
|
$sql.= " AND date_format(p.datep, '%m') = '".$month."'";
|
||||||
|
}
|
||||||
|
else if ($year > 0)
|
||||||
|
{
|
||||||
|
$sql.= " AND p.datep BETWEEN '".$db->idate(dol_get_first_day($year,1,false))."' AND '".$db->idate(dol_get_last_day($year,12,false))."'";
|
||||||
|
}
|
||||||
if ($search_ref > 0) $sql .=" AND p.rowid=".$search_ref;
|
if ($search_ref > 0) $sql .=" AND p.rowid=".$search_ref;
|
||||||
if ($search_account > 0) $sql .=" AND b.fk_account=".$search_account;
|
if ($search_account > 0) $sql .=" AND b.fk_account=".$search_account;
|
||||||
if ($search_paymenttype != "") $sql .=" AND c.code='".$db->escape($search_paymenttype)."'";
|
if ($search_paymenttype != "") $sql .=" AND c.code='".$db->escape($search_paymenttype)."'";
|
||||||
@ -194,7 +217,11 @@ if ($resql)
|
|||||||
print '<td align="left">';
|
print '<td align="left">';
|
||||||
print '<input class="flat" type="text" size="4" name="search_ref" value="'.$search_ref.'">';
|
print '<input class="flat" type="text" size="4" name="search_ref" value="'.$search_ref.'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td> </td>';
|
print '<td align="center">';
|
||||||
|
if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="day" value="'.$day.'">';
|
||||||
|
print '<input class="flat" type="text" size="1" maxlength="2" name="month" value="'.$month.'">';
|
||||||
|
$formother->select_year($year?$year:-1,'year',1, 20, 5);
|
||||||
|
print '</td>';
|
||||||
print '<td align="left">';
|
print '<td align="left">';
|
||||||
print '<input class="flat" type="text" size="6" name="search_company" value="'.$search_company.'">';
|
print '<input class="flat" type="text" size="6" name="search_company" value="'.$search_company.'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|||||||
@ -309,7 +309,7 @@ if ($modecompta == 'CREANCES-DETTES')
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$sql = "SELECT s.nom, s.rowid as socid, sum(pf.amount) as amount_ttc";
|
$sql = "SELECT s.nom as name, s.rowid as socid, sum(pf.amount) as amount_ttc";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."paiementfourn as p";
|
$sql.= " FROM ".MAIN_DB_PREFIX."paiementfourn as p";
|
||||||
$sql.= ", ".MAIN_DB_PREFIX."paiementfourn_facturefourn as pf";
|
$sql.= ", ".MAIN_DB_PREFIX."paiementfourn_facturefourn as pf";
|
||||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."facture_fourn as f";
|
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."facture_fourn as f";
|
||||||
|
|||||||
@ -191,17 +191,18 @@ if ($result)
|
|||||||
// Type
|
// Type
|
||||||
print '<td>'.$langs->trans("PaymentTypeShort".$obj->payment_code).' '.$obj->num_payment.'</td>';
|
print '<td>'.$langs->trans("PaymentTypeShort".$obj->payment_code).' '.$obj->num_payment.'</td>';
|
||||||
// Amount
|
// Amount
|
||||||
print "<td align=\"right\">".price($obj->amount,0,$outputlangs,1,-1,-1,$conf->currency)."</td>";
|
print "<td align=\"right\">".price($obj->amount)."</td>";
|
||||||
print "<td> </td>";
|
print "<td></td>";
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
$total = $total + $obj->amount;
|
$total = $total + $obj->amount;
|
||||||
|
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<tr class="liste_total"><td colspan="6" class="liste_total">'.$langs->trans("Total").'</td>';
|
print '<tr class="liste_total"><td colspan="6" class="liste_total">'.$langs->trans("Total").'</td>';
|
||||||
print '<td class="liste_total" align="right">'.price($total,0,$outputlangs,1,-1,-1,$conf->currency)."</td>";
|
print '<td class="liste_total" align="right">'.price($total,0,$outputlangs,1,-1,-1,$conf->currency)."</td>";
|
||||||
print "<td> </td></tr>";
|
print "<td></td></tr>";
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
|
||||||
|
|||||||
@ -33,7 +33,9 @@ $langs->load("banks");
|
|||||||
$langs->load("bills");
|
$langs->load("bills");
|
||||||
|
|
||||||
$id=GETPOST("id",'int');
|
$id=GETPOST("id",'int');
|
||||||
$action=GETPOST('action');
|
$action=GETPOST("action","alpha");
|
||||||
|
$refund=GETPOST("refund","int");
|
||||||
|
if (empty($refund)) $refund=0;
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
$socid = isset($_GET["socid"])?$_GET["socid"]:'';
|
$socid = isset($_GET["socid"])?$_GET["socid"]:'';
|
||||||
@ -46,7 +48,6 @@ $tva = new Tva($db);
|
|||||||
$hookmanager->initHooks(array('taxvatcard','globalcard'));
|
$hookmanager->initHooks(array('taxvatcard','globalcard'));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
@ -69,7 +70,12 @@ if ($action == 'add' && $_POST["cancel"] <> $langs->trans("Cancel"))
|
|||||||
$tva->num_payment=GETPOST("num_payment");
|
$tva->num_payment=GETPOST("num_payment");
|
||||||
$tva->datev=$datev;
|
$tva->datev=$datev;
|
||||||
$tva->datep=$datep;
|
$tva->datep=$datep;
|
||||||
$tva->amount=GETPOST("amount");
|
|
||||||
|
$amount = GETPOST("amount");
|
||||||
|
if ($refund == 1) {
|
||||||
|
$amount= -$amount;
|
||||||
|
}
|
||||||
|
$tva->amount= $amount;
|
||||||
$tva->label=GETPOST("label");
|
$tva->label=GETPOST("label");
|
||||||
$tva->note=GETPOST("note");
|
$tva->note=GETPOST("note");
|
||||||
|
|
||||||
@ -161,8 +167,8 @@ if ($action == 'delete')
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
|
|
||||||
llxHeader();
|
llxHeader();
|
||||||
|
|
||||||
@ -182,11 +188,45 @@ if ($id)
|
|||||||
// Formulaire saisie tva
|
// Formulaire saisie tva
|
||||||
if ($action == 'create')
|
if ($action == 'create')
|
||||||
{
|
{
|
||||||
print "<form name='add' action=\"card.php\" method=\"post\">\n";
|
print_fiche_titre($langs->trans("VAT") . ' - ' . $langs->trans("New"));
|
||||||
|
|
||||||
|
if (! empty($conf->use_javascript_ajax))
|
||||||
|
{
|
||||||
|
print "\n".'<script type="text/javascript" language="javascript">';
|
||||||
|
print '$(document).ready(function () {
|
||||||
|
$("#radiopayment").click(function() {
|
||||||
|
$("#label").val($(this).data("label"));
|
||||||
|
|
||||||
|
});
|
||||||
|
$("#radiorefund").click(function() {
|
||||||
|
$("#label").val($(this).data("label"));
|
||||||
|
|
||||||
|
});
|
||||||
|
});';
|
||||||
|
print '</script>'."\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
print '<form name="add" action="'.$_SERVER["PHP_SELF"].'" name="formvat" method="post">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<input type="hidden" name="action" value="add">';
|
print '<input type="hidden" name="action" value="add">';
|
||||||
|
|
||||||
print_fiche_titre($langs->trans("NewVATPayment"));
|
print '<div id="selectmethod">';
|
||||||
|
print '<div class="hideonsmartphone float">';
|
||||||
|
print $langs->trans("Type").': ';
|
||||||
|
print '</div>';
|
||||||
|
print '<label for="radiopayment">';
|
||||||
|
print '<input type="radio" id="radiopayment" data-label="'.$langs->trans('VATPayment').'" class="flat" name="refund" value="0"'.($refund?'':' checked="checked"').'>';
|
||||||
|
print ' ';
|
||||||
|
print $langs->trans("Payment");
|
||||||
|
print '</label>';
|
||||||
|
print ' ';
|
||||||
|
print '<label for="radiorefund">';
|
||||||
|
print '<input type="radio" id="radiorefund" data-label="'.$langs->trans('VATRefund').'" class="flat" name="refund" value="1"'.($refund?' checked="checked"':'').'>';
|
||||||
|
print ' ';
|
||||||
|
print $langs->trans("Refund");
|
||||||
|
print '</label>';
|
||||||
|
print '</div>';
|
||||||
|
print "<br>\n";
|
||||||
|
|
||||||
dol_fiche_head();
|
dol_fiche_head();
|
||||||
|
|
||||||
@ -202,7 +242,12 @@ if ($action == 'create')
|
|||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Label
|
// Label
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans("Label").'</td><td><input name="label" size="40" value="'.($_POST["label"]?$_POST["label"]:$langs->trans("VATPayment")).'"></td></tr>';
|
if ($refund == 1) {
|
||||||
|
$label = $langs->trans("VATRefund");
|
||||||
|
} else {
|
||||||
|
$label = $langs->trans("VATPayment");
|
||||||
|
}
|
||||||
|
print '<tr><td class="fieldrequired">'.$langs->trans("Label").'</td><td><input name="label" id="label" size="40" value="'.($_POST["label"]?$_POST["label"]:$label).'"></td></tr>';
|
||||||
|
|
||||||
// Amount
|
// Amount
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans("Amount").'</td><td><input name="amount" size="10" value="'.$_POST["amount"].'"></td></tr>';
|
print '<tr><td class="fieldrequired">'.$langs->trans("Amount").'</td><td><input name="amount" size="10" value="'.$_POST["amount"].'"></td></tr>';
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2002-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2011-2014 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
* Copyright (C) 2011-2015 Alexandre Spangaro <aspangaro.dolibarr@gmail.com>
|
||||||
*
|
*
|
||||||
* 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
|
||||||
@ -508,7 +508,7 @@ class Tva extends CommonObject
|
|||||||
$this->error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Label"));
|
$this->error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Label"));
|
||||||
return -3;
|
return -3;
|
||||||
}
|
}
|
||||||
if ($this->amount < 0 || $this->amount == '')
|
if ($this->amount == '')
|
||||||
{
|
{
|
||||||
$this->error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Amount"));
|
$this->error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Amount"));
|
||||||
return -4;
|
return -4;
|
||||||
@ -577,7 +577,11 @@ class Tva extends CommonObject
|
|||||||
$result=$acc->fetch($this->accountid);
|
$result=$acc->fetch($this->accountid);
|
||||||
if ($result <= 0) dol_print_error($this->db);
|
if ($result <= 0) dol_print_error($this->db);
|
||||||
|
|
||||||
$bank_line_id = $acc->addline($this->datep, $this->type_payment, $this->label, -abs($this->amount), '', '', $user);
|
if ($this->amount > 0) {
|
||||||
|
$bank_line_id = $acc->addline($this->datep, $this->type_payment, $this->label, -abs($this->amount), '', '', $user);
|
||||||
|
} else {
|
||||||
|
$bank_line_id = $acc->addline($this->datep, $this->type_payment, $this->label, abs($this->amount), '', '', $user);
|
||||||
|
}
|
||||||
|
|
||||||
// Update fk_bank into llx_tva. So we know vat line used to generate bank transaction
|
// Update fk_bank into llx_tva. So we know vat line used to generate bank transaction
|
||||||
if ($bank_line_id > 0)
|
if ($bank_line_id > 0)
|
||||||
|
|||||||
@ -646,7 +646,7 @@ else
|
|||||||
print '<td colspan="2"><label for="birthday_alert">'.$langs->trans("Alert").'</label>: ';
|
print '<td colspan="2"><label for="birthday_alert">'.$langs->trans("Alert").'</label>: ';
|
||||||
if ($object->birthday_alert)
|
if ($object->birthday_alert)
|
||||||
{
|
{
|
||||||
print '<input type="checkbox" name="birthday_alert" id="birthday_aler" checked></td>';
|
print '<input type="checkbox" name="birthday_alert" id="birthday_alert" checked></td>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -516,9 +516,10 @@ class Contact extends CommonObject
|
|||||||
*/
|
*/
|
||||||
function fetch($id, $user=0, $ref_ext='')
|
function fetch($id, $user=0, $ref_ext='')
|
||||||
{
|
{
|
||||||
dol_syslog(get_class($this)."::fetch ".$this->error, LOG_ERR);
|
|
||||||
global $langs;
|
global $langs;
|
||||||
|
|
||||||
|
dol_syslog(get_class($this)."::fetch id=".$id, LOG_DEBUG);
|
||||||
|
|
||||||
if (empty($id) && empty($ref_ext))
|
if (empty($id) && empty($ref_ext))
|
||||||
{
|
{
|
||||||
$this->error='BadParameter';
|
$this->error='BadParameter';
|
||||||
@ -547,7 +548,6 @@ class Contact extends CommonObject
|
|||||||
if ($id) $sql.= " WHERE c.rowid = ". $id;
|
if ($id) $sql.= " WHERE c.rowid = ". $id;
|
||||||
elseif ($ref_ext) $sql .= " WHERE c.ref_ext = '".$this->db->escape($ref_ext)."'";
|
elseif ($ref_ext) $sql .= " WHERE c.ref_ext = '".$this->db->escape($ref_ext)."'";
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
|
|
||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -269,7 +269,7 @@ if ($result)
|
|||||||
|
|
||||||
print '<form method="post" action="'.$_SERVER["PHP_SELF"].'">';
|
print '<form method="post" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<input type="hidden" name="view" value="'.htmlspecialchars($view).'">';
|
print '<input type="hidden" name="view" value="'.dol_escape_htmltag($view).'">';
|
||||||
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
108
htdocs/core/actions_builddoc.inc.php
Normal file
108
htdocs/core/actions_builddoc.inc.php
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
* or see http://www.gnu.org/
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/core/actions_builddoc.inc.php
|
||||||
|
* \brief Code for actions on building or deleting documents
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
// $action must be defined
|
||||||
|
// $id must be defined
|
||||||
|
// $object must be defined and must have a method generateDocument.
|
||||||
|
// $permissioncreate must be defined
|
||||||
|
// $upload_dir must be defined (example $conf->projet->dir_output . "/";)
|
||||||
|
// $hidedetails, $hidedesc and $hideref may have been set or not.
|
||||||
|
|
||||||
|
|
||||||
|
// Build doc
|
||||||
|
if ($action == 'builddoc' && $permissioncreate)
|
||||||
|
{
|
||||||
|
if (is_numeric(GETPOST('model')))
|
||||||
|
{
|
||||||
|
$error=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Model"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Reload to get all modified line records and be ready for hooks
|
||||||
|
$ret = $object->fetch($id);
|
||||||
|
$ret = $object->fetch_thirdparty();
|
||||||
|
/*if (empty($object->id) || ! $object->id > 0)
|
||||||
|
{
|
||||||
|
dol_print_error('Object must have been loaded by a fetch');
|
||||||
|
exit;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
// Save last template used to generate document
|
||||||
|
if (GETPOST('model')) $object->setDocModel($user, GETPOST('model','alpha'));
|
||||||
|
|
||||||
|
// Special case for invoices
|
||||||
|
if (property_exists($object, 'fk_bank'))
|
||||||
|
{
|
||||||
|
if (GETPOST('fk_bank')) { // this field may come from an external module
|
||||||
|
$object->fk_bank = GETPOST('fk_bank');
|
||||||
|
} else {
|
||||||
|
$object->fk_bank = $object->fk_account;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$outputlangs = $langs;
|
||||||
|
$newlang='';
|
||||||
|
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id')) $newlang=GETPOST('lang_id');
|
||||||
|
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && isset($object->client->default_lang)) $newlang=$object->client->default_lang; // for proposal, order, invoice, ...
|
||||||
|
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && isset($object->default_lang)) $newlang=$object->default_lang; // for thirdparty
|
||||||
|
if (! empty($newlang))
|
||||||
|
{
|
||||||
|
$outputlangs = new Translate("",$conf);
|
||||||
|
$outputlangs->setDefaultLang($newlang);
|
||||||
|
}
|
||||||
|
|
||||||
|
// To be sure vars is defined
|
||||||
|
if (empty($hidedetails)) $hidedetails=0;
|
||||||
|
if (empty($hidedesc)) $hidedesc=0;
|
||||||
|
if (empty($hideref)) $hideref=0;
|
||||||
|
|
||||||
|
$result= $object->generateDocument($object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
||||||
|
if ($result <= 0)
|
||||||
|
{
|
||||||
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
|
$action='';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete file in doc form
|
||||||
|
if ($action == 'remove_file' && $permissioncreate)
|
||||||
|
{
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
|
|
||||||
|
if (empty($object->id) || ! $object->id > 0)
|
||||||
|
{
|
||||||
|
// Reload to get all modified line records and be ready for hooks
|
||||||
|
$ret = $object->fetch($id);
|
||||||
|
$ret = $object->fetch_thirdparty();
|
||||||
|
}
|
||||||
|
|
||||||
|
$langs->load("other");
|
||||||
|
$filetodelete=GETPOST('file','alpha');
|
||||||
|
$file = $upload_dir . '/' . $filetodelete;
|
||||||
|
$ret=dol_delete_file($file,0,0,0,$object);
|
||||||
|
if ($ret) setEventMessage($langs->trans("FileWasRemoved", $filetodelete));
|
||||||
|
else setEventMessage($langs->trans("ErrorFailToDeleteFile", $filetodelete), 'errors');
|
||||||
|
}
|
||||||
|
|
||||||
@ -25,6 +25,7 @@
|
|||||||
// $action must be defined
|
// $action must be defined
|
||||||
// $object must be defined
|
// $object must be defined
|
||||||
// $permissiondellink must be defined
|
// $permissiondellink must be defined
|
||||||
|
// $uploaddir (example $conf->projet->dir_output . "/";)
|
||||||
|
|
||||||
$dellinkid = GETPOST('dellinkid','int');
|
$dellinkid = GETPOST('dellinkid','int');
|
||||||
|
|
||||||
@ -34,3 +35,5 @@ if ($action == 'dellink' && ! empty($permissiondellink) && ! GETPOST('cancel') &
|
|||||||
$result=$object->deleteObjectLinked(0, '', 0, '', $dellinkid);
|
$result=$object->deleteObjectLinked(0, '', 0, '', $dellinkid);
|
||||||
if ($result < 0) setEventMessages($object->error,$object->errors,'errors');
|
if ($result < 0) setEventMessages($object->error,$object->errors,'errors');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -47,7 +47,7 @@ if (GETPOST('addfile'))
|
|||||||
/*
|
/*
|
||||||
* Remove file in email form
|
* Remove file in email form
|
||||||
*/
|
*/
|
||||||
if (! empty($_POST['removedfile']))
|
if (! empty($_POST['removedfile']) && empty($_POST['removAll']))
|
||||||
{
|
{
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
|
|
||||||
@ -60,11 +60,41 @@ if (! empty($_POST['removedfile']))
|
|||||||
$action='presend';
|
$action='presend';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Remove all files in email form
|
||||||
|
*/
|
||||||
|
|
||||||
|
if(! empty($_POST['removAll']))
|
||||||
|
{
|
||||||
|
$listofpaths=array();
|
||||||
|
$listofnames=array();
|
||||||
|
$listofmimes=array();
|
||||||
|
if (! empty($_SESSION["listofpaths"])) $listofpaths=explode(';',$_SESSION["listofpaths"]);
|
||||||
|
if (! empty($_SESSION["listofnames"])) $listofnames=explode(';',$_SESSION["listofnames"]);
|
||||||
|
if (! empty($_SESSION["listofmimes"])) $listofmimes=explode(';',$_SESSION["listofmimes"]);
|
||||||
|
|
||||||
|
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
|
||||||
|
$formmail = new FormMail($db);
|
||||||
|
|
||||||
|
foreach($listofpaths as $key => $value)
|
||||||
|
{
|
||||||
|
$pathtodelete = $value;
|
||||||
|
$filetodelete = $listofnames[$key];
|
||||||
|
$result = dol_delete_file($pathtodelete,1); // Delete uploded Files
|
||||||
|
|
||||||
|
$langs->load("other");
|
||||||
|
setEventMessage($langs->trans("FileWasRemoved",$filetodelete));
|
||||||
|
|
||||||
|
$formmail->remove_attached_files($key); // Update Session
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Send mail
|
* Send mail
|
||||||
*/
|
*/
|
||||||
if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_POST['removedfile'] && ! $_POST['cancel'] && !$_POST['modelselected'])
|
if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_POST['removAll'] && ! $_POST['removedfile'] && ! $_POST['cancel'] && !$_POST['modelselected'])
|
||||||
{
|
{
|
||||||
|
if($conf->dolimail->enabled) $langs->load("dolimail@dolimail");
|
||||||
$langs->load('mails');
|
$langs->load('mails');
|
||||||
|
|
||||||
$subject='';$actionmsg='';$actionmsg2='';
|
$subject='';$actionmsg='';$actionmsg2='';
|
||||||
@ -81,7 +111,37 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
|
|||||||
else if ($object->element == 'societe')
|
else if ($object->element == 'societe')
|
||||||
{
|
{
|
||||||
$thirdparty=$object;
|
$thirdparty=$object;
|
||||||
$sendtosocid=$thirdparty->id;
|
if ($thirdparty->id > 0) $sendtosocid=$thirdparty->id;
|
||||||
|
elseif($conf->dolimail->enabled)
|
||||||
|
{
|
||||||
|
$dolimail = new Dolimail($db);
|
||||||
|
$possibleaccounts=$dolimail->get_societe_by_email($_POST['sendto'],"1");
|
||||||
|
$possibleuser=$dolimail->get_from_user_by_mail($_POST['sendto'],"1"); // suche in llx_societe and socpeople
|
||||||
|
if (!$possibleaccounts && !$possibleuser)
|
||||||
|
{
|
||||||
|
setEventMessage($langs->trans('ErrorFailedToFindSocieteRecord',$_POST['sendto']),'errors');
|
||||||
|
}
|
||||||
|
elseif (count($possibleaccounts)>1)
|
||||||
|
{
|
||||||
|
$sendtosocid=$possibleaccounts[1]['id'];
|
||||||
|
$result=$object->fetch($sendtosocid);
|
||||||
|
|
||||||
|
setEventMessage($langs->trans('ErrorFoundMoreThanOneRecordWithEmail',$_POST['sendto'],$object->name));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($possibleaccounts){
|
||||||
|
$sendtosocid=$possibleaccounts[1]['id'];
|
||||||
|
$result=$object->fetch($sendtosocid);
|
||||||
|
}elseif($possibleuser){
|
||||||
|
$sendtosocid=$possibleuser[0]['id'];
|
||||||
|
|
||||||
|
$result=$uobject->fetch($sendtosocid);
|
||||||
|
$object=$uobject;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else dol_print_error('','Use actions_sendmails.in.php for a type that is not supported');
|
else dol_print_error('','Use actions_sendmails.in.php for a type that is not supported');
|
||||||
|
|
||||||
@ -163,6 +223,46 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
|
|||||||
|
|
||||||
$trackid = GETPOST('trackid','aZ');
|
$trackid = GETPOST('trackid','aZ');
|
||||||
|
|
||||||
|
if($conf->dolimail->enabled)
|
||||||
|
{
|
||||||
|
$mailfromid = explode ("#", $_POST['frommail'],3);
|
||||||
|
if (count($mailfromid)==0) $from = $_POST['fromname'] . ' <' . $_POST['frommail'] .'>';
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$mbid = $mailfromid[1];
|
||||||
|
|
||||||
|
/*IMAP Postbox*/
|
||||||
|
$mailboxconfig = new IMAP($db);
|
||||||
|
$mailboxconfig->fetch($mbid);
|
||||||
|
if ($mailboxconfig->mailbox_imap_host) $ref=$mailboxconfig->get_ref();
|
||||||
|
|
||||||
|
$mailboxconfig->folder_id=$mailboxconfig->mailbox_imap_outbox;
|
||||||
|
$mailboxconfig->userfolder_fetch();
|
||||||
|
|
||||||
|
if ($mailboxconfig->mailbox_save_sent_mails == 1)
|
||||||
|
{
|
||||||
|
|
||||||
|
$folder=str_replace($ref, '', $mailboxconfig->folder_cache_key);
|
||||||
|
if (!$folder) $folder = "Sent";
|
||||||
|
|
||||||
|
$mailboxconfig->mbox = imap_open($mailboxconfig->get_connector_url().$folder, $mailboxconfig->mailbox_imap_login, $mailboxconfig->mailbox_imap_password);
|
||||||
|
if (FALSE === $mailboxconfig->mbox)
|
||||||
|
{
|
||||||
|
$info = FALSE;
|
||||||
|
$err = $langs->trans('Error3_Imap_Connection_Error');
|
||||||
|
setEventMessage($err,$mailboxconfig->element,'errors');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$mailboxconfig->mailboxid=$_POST['frommail'];
|
||||||
|
$mailboxconfig->foldername=$folder;
|
||||||
|
$from = $mailfromid[0] . $mailfromid[2];
|
||||||
|
$imap=1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
// Send mail
|
// Send mail
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
|
||||||
$mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,$sendtobcc,$deliveryreceipt,-1,'','',$trackid);
|
$mailfile = new CMailFile($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,$sendtobcc,$deliveryreceipt,-1,'','',$trackid);
|
||||||
@ -176,6 +276,25 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
|
|||||||
if ($result)
|
if ($result)
|
||||||
{
|
{
|
||||||
$error=0;
|
$error=0;
|
||||||
|
if($conf->dolimail->enabled)
|
||||||
|
{
|
||||||
|
$mid = (GETPOST('mid','int') ? GETPOST('mid','int') : 0);
|
||||||
|
if ($mid)
|
||||||
|
{
|
||||||
|
// set imap flag answered if it is a answered mail
|
||||||
|
|
||||||
|
$dolimail=new DoliMail($db);
|
||||||
|
$dolimail->id = $mid;
|
||||||
|
$res=$dolimail->set_prop($user, 'answered',1);
|
||||||
|
}
|
||||||
|
if ($imap==1)
|
||||||
|
{
|
||||||
|
// write mail to IMAP Server
|
||||||
|
$movemail = $mailboxconfig->putMail($subject,$sendto,$from,$message,$filepath,$mimetype,$filename,$sendtocc,$folder,$deliveryreceipt,$mailfile);
|
||||||
|
if ($movemail) setEventMessage($langs->trans("MailMovedToImapFolder",$folder),'mesgs');
|
||||||
|
else setEventMessage($langs->trans("MailMovedToImapFolder_Warning",$folder),'warnings');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Initialisation donnees
|
// Initialisation donnees
|
||||||
$object->socid = $sendtosocid; // To link to a company
|
$object->socid = $sendtosocid; // To link to a company
|
||||||
@ -205,24 +324,27 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO
|
|||||||
// This avoid sending mail twice if going out and then back to page
|
// This avoid sending mail twice if going out and then back to page
|
||||||
$mesg=$langs->trans('MailSuccessfulySent',$mailfile->getValidAddress($from,2),$mailfile->getValidAddress($sendto,2));
|
$mesg=$langs->trans('MailSuccessfulySent',$mailfile->getValidAddress($from,2),$mailfile->getValidAddress($sendto,2));
|
||||||
setEventMessage($mesg);
|
setEventMessage($mesg);
|
||||||
header('Location: '.$_SERVER["PHP_SELF"].'?'.($paramname?$paramname:'id').'='.$object->id);
|
if($conf->dolimail->enabled) header('Location: '.$_SERVER["PHP_SELF"].'?'.($paramname?$paramname:'id').'='.$object->id.'&'.($paramname2?$paramname2:'mid').'='.$parm2val);
|
||||||
|
else header('Location: '.$_SERVER["PHP_SELF"].'?'.($paramname?$paramname:'id').'='.$object->id);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$langs->load("other");
|
$langs->load("other");
|
||||||
|
$mesg='<div class="error">';
|
||||||
if ($mailfile->error)
|
if ($mailfile->error)
|
||||||
{
|
{
|
||||||
$mesg='';
|
|
||||||
$mesg.=$langs->trans('ErrorFailedToSendMail',$from,$sendto);
|
$mesg.=$langs->trans('ErrorFailedToSendMail',$from,$sendto);
|
||||||
$mesg.='<br>'.$mailfile->error;
|
$mesg.='<br>'.$mailfile->error;
|
||||||
setEventMessage($mesg,'errors');
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setEventMessage('No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS', 'warnings');
|
$mesg.='No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS';
|
||||||
}
|
}
|
||||||
|
$mesg.='</div>';
|
||||||
|
|
||||||
|
setEventMessage($mesg,'warnings');
|
||||||
$action = 'presend';
|
$action = 'presend';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,6 +27,7 @@ if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1');
|
|||||||
if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1');
|
if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1');
|
||||||
if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1');
|
if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1');
|
||||||
if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1');
|
if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1');
|
||||||
|
if (! defined('NOREQUIREHOOK')) define('NOREQUIREHOOK','1');
|
||||||
|
|
||||||
require '../../main.inc.php';
|
require '../../main.inc.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/infobox.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/infobox.class.php';
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2011 Regis Houssin <regis.houssin@capnetworks.com>
|
/* Copyright (C) 2011-2015 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
*
|
*
|
||||||
* 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
|
||||||
@ -17,7 +17,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* \file htdocs/core/ajax/security.php
|
* \file htdocs/core/ajax/security.php
|
||||||
* \brief File for return security data
|
* \brief This ajax component is used to generated has keys for security purposes
|
||||||
|
* like key to use into URL to protect them.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Disables token renewal
|
if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Disables token renewal
|
||||||
@ -26,6 +27,7 @@ if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1');
|
|||||||
if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1');
|
if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1');
|
||||||
if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1');
|
if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1');
|
||||||
if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1');
|
if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1');
|
||||||
|
if (! defined('NOREQUIREHOOK')) define('NOREQUIREHOOK','1');
|
||||||
|
|
||||||
require '../../main.inc.php';
|
require '../../main.inc.php';
|
||||||
|
|
||||||
@ -33,10 +35,6 @@ require '../../main.inc.php';
|
|||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Ajout directives pour resoudre bug IE
|
|
||||||
//header('Cache-Control: Public, must-revalidate');
|
|
||||||
//header('Pragma: public');
|
|
||||||
|
|
||||||
//top_htmlhead("", "", 1); // Replaced with top_httphead. An ajax page does not need html header.
|
//top_htmlhead("", "", 1); // Replaced with top_httphead. An ajax page does not need html header.
|
||||||
top_httphead();
|
top_httphead();
|
||||||
|
|
||||||
@ -48,7 +46,7 @@ if (isset($_GET['action']) && ! empty($_GET['action']))
|
|||||||
if ($_GET['action'] == 'getrandompassword' && $user->admin)
|
if ($_GET['action'] == 'getrandompassword' && $user->admin)
|
||||||
{
|
{
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php';
|
||||||
$generic = $_GET['generic'];
|
$generic = $_GET['generic'] ? true : false;
|
||||||
echo getRandomPassword($generic);
|
echo getRandomPassword($generic);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -105,7 +105,7 @@ class box_contacts extends ModeleBoxes
|
|||||||
|
|
||||||
$this->info_box_contents[$line][] = array(
|
$this->info_box_contents[$line][] = array(
|
||||||
'td' => 'align="left"',
|
'td' => 'align="left"',
|
||||||
'text' => $societestatic->getNomUrl(1),
|
'text' => ($objp->fk_soc > 0 ? $societestatic->getNomUrl(1) : ''),
|
||||||
'asis' => 1,
|
'asis' => 1,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -108,12 +108,18 @@ class box_factures extends ModeleBoxes
|
|||||||
$facturestatic->total_ht = $objp->total_ht;
|
$facturestatic->total_ht = $objp->total_ht;
|
||||||
$facturestatic->total_tva = $objp->total_tva;
|
$facturestatic->total_tva = $objp->total_tva;
|
||||||
$facturestatic->total_ttc = $objp->total_ttc;
|
$facturestatic->total_ttc = $objp->total_ttc;
|
||||||
|
$facturestatic->statut = $objp->fk_statut;
|
||||||
|
$facturestatic->date_lim_reglement = $db->jdate($objp->datelimite);
|
||||||
|
|
||||||
$societestatic->id = $objp->socid;
|
$societestatic->id = $objp->socid;
|
||||||
$societestatic->name = $objp->name;
|
$societestatic->name = $objp->name;
|
||||||
$societestatic->code_client = $objp->code_client;
|
$societestatic->code_client = $objp->code_client;
|
||||||
|
|
||||||
|
|
||||||
$late = '';
|
$late = '';
|
||||||
if ($objp->paye == 0 && ($objp->fk_statut != 2 && $objp->fk_statut != 3) && $datelimite < ($now - $conf->facture->client->warning_delay)) { $late = img_warning(sprintf($l_due_date,dol_print_date($datelimite,'day')));}
|
if ($facturestatic->hasDelay()) {
|
||||||
|
$late = img_warning(sprintf($l_due_date,dol_print_date($datelimite,'day')));
|
||||||
|
}
|
||||||
|
|
||||||
$this->info_box_contents[$line][] = array(
|
$this->info_box_contents[$line][] = array(
|
||||||
'td' => 'align="left"',
|
'td' => 'align="left"',
|
||||||
|
|||||||
@ -93,7 +93,6 @@ class box_factures_fourn extends ModeleBoxes
|
|||||||
if ($result)
|
if ($result)
|
||||||
{
|
{
|
||||||
$num = $db->num_rows($result);
|
$num = $db->num_rows($result);
|
||||||
$now=dol_now();
|
|
||||||
|
|
||||||
$line = 0;
|
$line = 0;
|
||||||
$l_due_date = $langs->trans('Late').' ('.$langs->trans('DateEcheance').': %s)';
|
$l_due_date = $langs->trans('Late').' ('.$langs->trans('DateEcheance').': %s)';
|
||||||
@ -108,6 +107,8 @@ class box_factures_fourn extends ModeleBoxes
|
|||||||
$facturestatic->total_ht = $objp->total_ht;
|
$facturestatic->total_ht = $objp->total_ht;
|
||||||
$facturestatic->total_tva = $objp->total_tva;
|
$facturestatic->total_tva = $objp->total_tva;
|
||||||
$facturestatic->total_ttc = $objp->total_ttc;
|
$facturestatic->total_ttc = $objp->total_ttc;
|
||||||
|
$facturestatic->date_echeance = $datelimite;
|
||||||
|
$facturestatic->statut = $objp->fk_statut;
|
||||||
$thirdpartytmp->id = $objp->socid;
|
$thirdpartytmp->id = $objp->socid;
|
||||||
$thirdpartytmp->name = $objp->name;
|
$thirdpartytmp->name = $objp->name;
|
||||||
$thirdpartytmp->fournisseur = 1;
|
$thirdpartytmp->fournisseur = 1;
|
||||||
@ -115,7 +116,10 @@ class box_factures_fourn extends ModeleBoxes
|
|||||||
$thirdpartytmp->logo = $objp->logo;
|
$thirdpartytmp->logo = $objp->logo;
|
||||||
|
|
||||||
$late = '';
|
$late = '';
|
||||||
if ($objp->paye == 0 && $datelimite && $datelimite < ($now - $conf->facture->fournisseur->warning_delay)) $late=img_warning(sprintf($l_due_date, dol_print_date($datelimite,'day')));
|
|
||||||
|
if ($facturestatic->hasDelay()) {
|
||||||
|
$late=img_warning(sprintf($l_due_date, dol_print_date($datelimite,'day')));
|
||||||
|
}
|
||||||
|
|
||||||
$this->info_box_contents[$line][] = array(
|
$this->info_box_contents[$line][] = array(
|
||||||
'td' => 'align="left"',
|
'td' => 'align="left"',
|
||||||
|
|||||||
@ -86,11 +86,12 @@ class box_factures_fourn_imp extends ModeleBoxes
|
|||||||
if ($result)
|
if ($result)
|
||||||
{
|
{
|
||||||
$num = $db->num_rows($result);
|
$num = $db->num_rows($result);
|
||||||
$now=dol_now();
|
|
||||||
|
|
||||||
$line = 0;
|
$line = 0;
|
||||||
$l_due_date = $langs->trans('Late').' ('.$langs->trans('DateEcheance').': %s)';
|
$l_due_date = $langs->trans('Late').' ('.$langs->trans('DateEcheance').': %s)';
|
||||||
|
|
||||||
|
$facturestatic = new FactureFournisseur($db);
|
||||||
|
|
||||||
while ($line < $num)
|
while ($line < $num)
|
||||||
{
|
{
|
||||||
$objp = $db->fetch_object($result);
|
$objp = $db->fetch_object($result);
|
||||||
@ -99,9 +100,13 @@ class box_factures_fourn_imp extends ModeleBoxes
|
|||||||
$thirdpartytmp->name = $objp->name;
|
$thirdpartytmp->name = $objp->name;
|
||||||
$thirdpartytmp->code_client = $objp->code_client;
|
$thirdpartytmp->code_client = $objp->code_client;
|
||||||
$thirdpartytmp->logo = $objp->logo;
|
$thirdpartytmp->logo = $objp->logo;
|
||||||
|
$facturestatic->date_echeance = $datelimite;
|
||||||
|
$facturestatic->statut = $objp->fk_statut;
|
||||||
|
|
||||||
$late='';
|
$late='';
|
||||||
if ($datelimite && $datelimite < ($now - $conf->facture->fournisseur->warning_delay)) $late=img_warning(sprintf($l_due_date,dol_print_date($datelimite,'day')));
|
if ($facturestatic->hasDelay()) {
|
||||||
|
$late=img_warning(sprintf($l_due_date,dol_print_date($datelimite,'day')));
|
||||||
|
}
|
||||||
|
|
||||||
$tooltip = $langs->trans('SupplierInvoice') . ': ' . ($objp->ref?$objp->ref:$objp->facid) . '<br>' . $langs->trans('RefSupplier') . ': ' . $objp->ref_supplier;
|
$tooltip = $langs->trans('SupplierInvoice') . ': ' . ($objp->ref?$objp->ref:$objp->facid) . '<br>' . $langs->trans('RefSupplier') . ': ' . $objp->ref_supplier;
|
||||||
$this->info_box_contents[$line][] = array(
|
$this->info_box_contents[$line][] = array(
|
||||||
|
|||||||
@ -108,6 +108,8 @@ class box_factures_imp extends ModeleBoxes
|
|||||||
$facturestatic->total_ht = $objp->total_ht;
|
$facturestatic->total_ht = $objp->total_ht;
|
||||||
$facturestatic->total_tva = $objp->total_tva;
|
$facturestatic->total_tva = $objp->total_tva;
|
||||||
$facturestatic->total_ttc = $objp->total_ttc;
|
$facturestatic->total_ttc = $objp->total_ttc;
|
||||||
|
$facturestatic->statut = $objp->fk_statut;
|
||||||
|
$facturestatic->date_lim_reglement = $db->jdate($objp->datelimite);
|
||||||
$societestatic->id = $objp->socid;
|
$societestatic->id = $objp->socid;
|
||||||
$societestatic->name = $objp->name;
|
$societestatic->name = $objp->name;
|
||||||
$societestatic->client = 1;
|
$societestatic->client = 1;
|
||||||
@ -115,7 +117,9 @@ class box_factures_imp extends ModeleBoxes
|
|||||||
$societestatic->logo = $objp->logo;
|
$societestatic->logo = $objp->logo;
|
||||||
|
|
||||||
$late='';
|
$late='';
|
||||||
if ($datelimite < ($now - $conf->facture->client->warning_delay)) $late = img_warning(sprintf($l_due_date,dol_print_date($datelimite,'day')));
|
if ($facturestatic->hasDelay()) {
|
||||||
|
$late = img_warning(sprintf($l_due_date,dol_print_date($datelimite,'day')));
|
||||||
|
}
|
||||||
|
|
||||||
$this->info_box_contents[$line][] = array(
|
$this->info_box_contents[$line][] = array(
|
||||||
'td' => 'align="left"',
|
'td' => 'align="left"',
|
||||||
|
|||||||
@ -155,7 +155,6 @@ class box_prospect extends ModeleBoxes
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
dol_syslog("box_prospect::loadBox not allowed de read this box content",LOG_ERR);
|
|
||||||
$this->info_box_contents[0][0] = array(
|
$this->info_box_contents[0][0] = array(
|
||||||
'td' => 'align="left"',
|
'td' => 'align="left"',
|
||||||
'text' => $langs->trans("ReadPermissionNotAllowed"),
|
'text' => $langs->trans("ReadPermissionNotAllowed"),
|
||||||
|
|||||||
@ -82,7 +82,7 @@ class box_task extends ModeleBoxes
|
|||||||
|
|
||||||
$sql = "SELECT pt.fk_statut, count(pt.rowid) as nb, sum(ptt.task_duration) as durationtot, sum(pt.planned_workload) as plannedtot";
|
$sql = "SELECT pt.fk_statut, count(pt.rowid) as nb, sum(ptt.task_duration) as durationtot, sum(pt.planned_workload) as plannedtot";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."projet_task as pt, ".MAIN_DB_PREFIX."projet_task_time as ptt";
|
$sql.= " FROM ".MAIN_DB_PREFIX."projet_task as pt, ".MAIN_DB_PREFIX."projet_task_time as ptt";
|
||||||
$sql.= " WHERE DATE_FORMAT(pt.datec,'%Y') = ".date("Y")." ";
|
$sql.= " WHERE DATE_FORMAT(pt.datec,'%Y') = '".date("Y")."' ";
|
||||||
$sql.= " AND pt.rowid = ptt.fk_task";
|
$sql.= " AND pt.rowid = ptt.fk_task";
|
||||||
$sql.= " GROUP BY pt.fk_statut ";
|
$sql.= " GROUP BY pt.fk_statut ";
|
||||||
$sql.= " ORDER BY pt.fk_statut DESC";
|
$sql.= " ORDER BY pt.fk_statut DESC";
|
||||||
|
|||||||
@ -375,19 +375,19 @@ class CMailFile
|
|||||||
|
|
||||||
if (empty($conf->global->MAIN_DISABLE_ALL_MAILS))
|
if (empty($conf->global->MAIN_DISABLE_ALL_MAILS))
|
||||||
{
|
{
|
||||||
|
dol_include_once('/core/class/hookmanager.class.php');
|
||||||
|
$hookmanager = new HookManager($db);
|
||||||
|
$hookmanager->initHooks(array(
|
||||||
|
'maildao'
|
||||||
|
));
|
||||||
|
$reshook = $hookmanager->executeHooks('doactions', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks
|
||||||
|
if (! empty($reshook))
|
||||||
|
{
|
||||||
|
$this->error = "Error in hook maildao doactions " . $reshook;
|
||||||
|
dol_syslog("CMailFile::sendfile: mail end error=" . $this->error, LOG_ERR);
|
||||||
|
|
||||||
dol_include_once('/core/class/hookmanager.class.php');
|
return $reshook;
|
||||||
$hookmanager=new HookManager($db);
|
}
|
||||||
$hookmanager->initHooks(array('maildao'));
|
|
||||||
$reshook=$hookmanager->executeHooks('doactions',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
|
|
||||||
if (!empty($reshook))
|
|
||||||
{
|
|
||||||
|
|
||||||
$this->error="Error in hook maildao doactions ".$reshook;
|
|
||||||
dol_syslog("CMailFile::sendfile: mail end error=".$this->error, LOG_ERR);
|
|
||||||
|
|
||||||
return $reshook;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Action according to choosed sending method
|
// Action according to choosed sending method
|
||||||
if ($conf->global->MAIN_MAIL_SENDMODE == 'mail')
|
if ($conf->global->MAIN_MAIL_SENDMODE == 'mail')
|
||||||
|
|||||||
@ -53,6 +53,11 @@ abstract class CommonObject
|
|||||||
*/
|
*/
|
||||||
public $error;
|
public $error;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string[] Array of error strings
|
||||||
|
*/
|
||||||
|
public $errors=array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string Key value used to track if data is coming from import wizard
|
* @var string Key value used to track if data is coming from import wizard
|
||||||
*/
|
*/
|
||||||
@ -82,11 +87,6 @@ abstract class CommonObject
|
|||||||
|
|
||||||
// Following vars are used by some objects only. We keep this property here in CommonObject to be able to provide common method using them.
|
// Following vars are used by some objects only. We keep this property here in CommonObject to be able to provide common method using them.
|
||||||
|
|
||||||
/**
|
|
||||||
* @var string[] Array of error strings
|
|
||||||
*/
|
|
||||||
public $errors=array();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string[] Can be used to pass information when only object is provided to method
|
* @var string[] Can be used to pass information when only object is provided to method
|
||||||
*/
|
*/
|
||||||
@ -2159,11 +2159,11 @@ abstract class CommonObject
|
|||||||
$sourcetype = (! empty($sourcetype) ? $sourcetype : $this->element);
|
$sourcetype = (! empty($sourcetype) ? $sourcetype : $this->element);
|
||||||
$targettype = (! empty($targettype) ? $targettype : $this->element);
|
$targettype = (! empty($targettype) ? $targettype : $this->element);
|
||||||
|
|
||||||
if (empty($sourceid) && empty($targetid))
|
/*if (empty($sourceid) && empty($targetid))
|
||||||
{
|
{
|
||||||
dol_syslog('Bad usage of function. No source nor target id defined (nor as parameter nor as object id)', LOG_ERR);
|
dol_syslog('Bad usage of function. No source nor target id defined (nor as parameter nor as object id)', LOG_ERR);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
// Links between objects are stored in table element_element
|
// Links between objects are stored in table element_element
|
||||||
$sql = 'SELECT rowid, fk_source, sourcetype, fk_target, targettype';
|
$sql = 'SELECT rowid, fk_source, sourcetype, fk_target, targettype';
|
||||||
@ -3432,7 +3432,6 @@ abstract class CommonObject
|
|||||||
require_once $file;
|
require_once $file;
|
||||||
|
|
||||||
$obj = new $classname($this->db);
|
$obj = new $classname($this->db);
|
||||||
//$obj->message = $message;
|
|
||||||
|
|
||||||
// If generator is ODT, we must have srctemplatepath defined, if not we set it.
|
// If generator is ODT, we must have srctemplatepath defined, if not we set it.
|
||||||
if ($obj->type == 'odt' && empty($srctemplatepath))
|
if ($obj->type == 'odt' && empty($srctemplatepath))
|
||||||
@ -3470,11 +3469,20 @@ abstract class CommonObject
|
|||||||
|
|
||||||
if (empty($srctemplatepath))
|
if (empty($srctemplatepath))
|
||||||
{
|
{
|
||||||
$this->error='ErrorGenerationAskedForOdtTemplateWithNoSrcFileFound';
|
$this->error='ErrorGenerationAskedForOdtTemplateWithSrcFileNotDefined';
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($obj->type == 'odt' && ! empty($srctemplatepath))
|
||||||
|
{
|
||||||
|
if (! dol_is_file($srctemplatepath))
|
||||||
|
{
|
||||||
|
$this->error='ErrorGenerationAskedForOdtTemplateWithSrcFileNotFound';
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// We save charset_output to restore it because write_file can change it if needed for
|
// We save charset_output to restore it because write_file can change it if needed for
|
||||||
// output format that does not support UTF8.
|
// output format that does not support UTF8.
|
||||||
$sav_charset_output=$outputlangs->charset_output;
|
$sav_charset_output=$outputlangs->charset_output;
|
||||||
@ -3588,6 +3596,11 @@ abstract class CommonObject
|
|||||||
{
|
{
|
||||||
if (empty($rowid)) $rowid=$this->id;
|
if (empty($rowid)) $rowid=$this->id;
|
||||||
|
|
||||||
|
//To avoid SQL errors. Probably not the better solution though
|
||||||
|
if (!$this->table_element) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (! is_array($optionsArray))
|
if (! is_array($optionsArray))
|
||||||
{
|
{
|
||||||
// optionsArray not already loaded, so we load it
|
// optionsArray not already loaded, so we load it
|
||||||
@ -3794,7 +3807,7 @@ abstract class CommonObject
|
|||||||
*/
|
*/
|
||||||
function showOptionals($extrafields, $mode='view', $params=null, $keyprefix='')
|
function showOptionals($extrafields, $mode='view', $params=null, $keyprefix='')
|
||||||
{
|
{
|
||||||
global $_POST, $conf;
|
global $_POST, $conf, $langs;
|
||||||
|
|
||||||
$out = '';
|
$out = '';
|
||||||
|
|
||||||
@ -3852,7 +3865,7 @@ abstract class CommonObject
|
|||||||
if($extrafields->attribute_required[$key])
|
if($extrafields->attribute_required[$key])
|
||||||
$label = '<span class="fieldrequired">'.$label.'</span>';
|
$label = '<span class="fieldrequired">'.$label.'</span>';
|
||||||
|
|
||||||
$out .= '<td>'.$label.'</td>';
|
$out .= '<td>'.$langs->trans($label).'</td>';
|
||||||
$out .='<td'.($colspan?' colspan="'.$colspan.'"':'').'>';
|
$out .='<td'.($colspan?' colspan="'.$colspan.'"':'').'>';
|
||||||
|
|
||||||
switch($mode) {
|
switch($mode) {
|
||||||
|
|||||||
@ -110,6 +110,7 @@ class Conf
|
|||||||
$this->bank = new stdClass();
|
$this->bank = new stdClass();
|
||||||
$this->notification = new stdClass();
|
$this->notification = new stdClass();
|
||||||
$this->mailing = new stdClass();
|
$this->mailing = new stdClass();
|
||||||
|
$this->expensereport = new stdClass();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -345,6 +346,9 @@ class Conf
|
|||||||
// Module contrat
|
// Module contrat
|
||||||
$this->contrat->dir_output=$rootfordata."/contracts";
|
$this->contrat->dir_output=$rootfordata."/contracts";
|
||||||
$this->contrat->dir_temp =$rootfordata."/contracts/temp";
|
$this->contrat->dir_temp =$rootfordata."/contracts/temp";
|
||||||
|
// Module bank
|
||||||
|
$this->bank->dir_output=$rootfordata."/bank";
|
||||||
|
$this->bank->dir_temp =$rootfordata."/bank/temp";
|
||||||
|
|
||||||
|
|
||||||
// Set some default values
|
// Set some default values
|
||||||
@ -474,6 +478,7 @@ class Conf
|
|||||||
$this->adherent->cotisation = new stdClass();
|
$this->adherent->cotisation = new stdClass();
|
||||||
$this->bank->rappro = new stdClass();
|
$this->bank->rappro = new stdClass();
|
||||||
$this->bank->cheque = new stdClass();
|
$this->bank->cheque = new stdClass();
|
||||||
|
$this->expensereport->payment = new stdClass();
|
||||||
$this->actions->warning_delay=(isset($this->global->MAIN_DELAY_ACTIONS_TODO)?$this->global->MAIN_DELAY_ACTIONS_TODO:7)*24*60*60;
|
$this->actions->warning_delay=(isset($this->global->MAIN_DELAY_ACTIONS_TODO)?$this->global->MAIN_DELAY_ACTIONS_TODO:7)*24*60*60;
|
||||||
$this->commande->client->warning_delay=(isset($this->global->MAIN_DELAY_ORDERS_TO_PROCESS)?$this->global->MAIN_DELAY_ORDERS_TO_PROCESS:2)*24*60*60;
|
$this->commande->client->warning_delay=(isset($this->global->MAIN_DELAY_ORDERS_TO_PROCESS)?$this->global->MAIN_DELAY_ORDERS_TO_PROCESS:2)*24*60*60;
|
||||||
$this->commande->fournisseur->warning_delay=(isset($this->global->MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS)?$this->global->MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS:7)*24*60*60;
|
$this->commande->fournisseur->warning_delay=(isset($this->global->MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS)?$this->global->MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS:7)*24*60*60;
|
||||||
@ -486,6 +491,7 @@ class Conf
|
|||||||
$this->adherent->cotisation->warning_delay=(isset($this->global->MAIN_DELAY_MEMBERS)?$this->global->MAIN_DELAY_MEMBERS:0)*24*60*60;
|
$this->adherent->cotisation->warning_delay=(isset($this->global->MAIN_DELAY_MEMBERS)?$this->global->MAIN_DELAY_MEMBERS:0)*24*60*60;
|
||||||
$this->bank->rappro->warning_delay=(isset($this->global->MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE)?$this->global->MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE:0)*24*60*60;
|
$this->bank->rappro->warning_delay=(isset($this->global->MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE)?$this->global->MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE:0)*24*60*60;
|
||||||
$this->bank->cheque->warning_delay=(isset($this->global->MAIN_DELAY_CHEQUES_TO_DEPOSIT)?$this->global->MAIN_DELAY_CHEQUES_TO_DEPOSIT:0)*24*60*60;
|
$this->bank->cheque->warning_delay=(isset($this->global->MAIN_DELAY_CHEQUES_TO_DEPOSIT)?$this->global->MAIN_DELAY_CHEQUES_TO_DEPOSIT:0)*24*60*60;
|
||||||
|
$this->expensereport->payment->warning_delay=(isset($this->global->MAIN_DELAY_EXPENSEREPORTS_TO_PAY)?$this->global->MAIN_DELAY_EXPENSEREPORTS_TO_PAY:0)*24*60*60;
|
||||||
|
|
||||||
// For modules that want to disable top or left menu
|
// For modules that want to disable top or left menu
|
||||||
if (! empty($this->global->MAIN_HIDE_TOP_MENU)) $this->dol_hide_topmenu=$this->global->MAIN_HIDE_TOP_MENU;
|
if (! empty($this->global->MAIN_HIDE_TOP_MENU)) $this->dol_hide_topmenu=$this->global->MAIN_HIDE_TOP_MENU;
|
||||||
|
|||||||
@ -567,7 +567,7 @@ class ExtraFields
|
|||||||
/**
|
/**
|
||||||
* Load array this->attribute_xxx like attribute_label, attribute_type, ...
|
* Load array this->attribute_xxx like attribute_label, attribute_type, ...
|
||||||
*
|
*
|
||||||
* @param string $elementtype Type of element ('adherent', 'commande', thirdparty', 'facture', 'propal', 'product', ...)
|
* @param string $elementtype Type of element ('adherent', 'commande', 'thirdparty', 'facture', 'propal', 'product', ...)
|
||||||
* @param boolean $forceload Force load of extra fields whatever is option MAIN_EXTRAFIELDS_DISABLED
|
* @param boolean $forceload Force load of extra fields whatever is option MAIN_EXTRAFIELDS_DISABLED
|
||||||
* @return array Array of attributes for all extra fields
|
* @return array Array of attributes for all extra fields
|
||||||
*/
|
*/
|
||||||
@ -631,13 +631,15 @@ class ExtraFields
|
|||||||
/**
|
/**
|
||||||
* Return HTML string to put an input field into a page
|
* Return HTML string to put an input field into a page
|
||||||
*
|
*
|
||||||
* @param string $key Key of attribute
|
* @param string $key Key of attribute
|
||||||
* @param string $value Value to show (for date type it must be in timestamp format)
|
* @param string $value Value to show (for date type it must be in timestamp format)
|
||||||
* @param string $moreparam To add more parametes on html input tag
|
* @param string $moreparam To add more parametes on html input tag
|
||||||
* @param string $keyprefix Prefix string to add into name and id of field (can be used to avoid duplicate names)
|
* @param string $keyprefix Prefix string to add into name and id of field (can be used to avoid duplicate names)
|
||||||
* @return string
|
* @param string $keysuffix Suffix string to add into name and id of field (can be used to avoid duplicate names)
|
||||||
|
* @param int $showsize Value for size attribute
|
||||||
|
* @return string
|
||||||
*/
|
*/
|
||||||
function showInputField($key,$value,$moreparam='',$keyprefix='')
|
function showInputField($key,$value,$moreparam='',$keyprefix='',$keysuffix='',$showsize=0)
|
||||||
{
|
{
|
||||||
global $conf,$langs;
|
global $conf,$langs;
|
||||||
|
|
||||||
@ -651,22 +653,25 @@ class ExtraFields
|
|||||||
$perms=$this->attribute_perms[$key];
|
$perms=$this->attribute_perms[$key];
|
||||||
$list=$this->attribute_list[$key];
|
$list=$this->attribute_list[$key];
|
||||||
|
|
||||||
if ($type == 'date')
|
if (empty($showsize))
|
||||||
{
|
{
|
||||||
$showsize=10;
|
if ($type == 'date')
|
||||||
}
|
{
|
||||||
elseif ($type == 'datetime')
|
$showsize=10;
|
||||||
{
|
}
|
||||||
$showsize=19;
|
elseif ($type == 'datetime')
|
||||||
}
|
{
|
||||||
elseif (in_array($type,array('int','double')))
|
$showsize=19;
|
||||||
{
|
}
|
||||||
$showsize=10;
|
elseif (in_array($type,array('int','double')))
|
||||||
}
|
{
|
||||||
else
|
$showsize=10;
|
||||||
{
|
}
|
||||||
$showsize=round($size);
|
else
|
||||||
if ($showsize > 48) $showsize=48;
|
{
|
||||||
|
$showsize=round($size);
|
||||||
|
if ($showsize > 48) $showsize=48;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (in_array($type,array('date','datetime')))
|
if (in_array($type,array('date','datetime')))
|
||||||
@ -684,22 +689,22 @@ class ExtraFields
|
|||||||
if (! is_object($form)) $form=new Form($this->db);
|
if (! is_object($form)) $form=new Form($this->db);
|
||||||
|
|
||||||
// TODO Must also support $moreparam
|
// TODO Must also support $moreparam
|
||||||
$out = $form->select_date($value, 'options_'.$key.$keyprefix, $showtime, $showtime, $required, '', 1, 1, 1, 0, 1);
|
$out = $form->select_date($value, $keysuffix.'options_'.$key.$keyprefix, $showtime, $showtime, $required, '', 1, 1, 1, 0, 1);
|
||||||
}
|
}
|
||||||
elseif (in_array($type,array('int')))
|
elseif (in_array($type,array('int')))
|
||||||
{
|
{
|
||||||
$tmp=explode(',',$size);
|
$tmp=explode(',',$size);
|
||||||
$newsize=$tmp[0];
|
$newsize=$tmp[0];
|
||||||
$out='<input type="text" class="flat" name="options_'.$key.$keyprefix.'" size="'.$showsize.'" maxlength="'.$newsize.'" value="'.$value.'"'.($moreparam?$moreparam:'').'>';
|
$out='<input type="text" class="flat" name="'.$keysuffix.'options_'.$key.$keyprefix.'" size="'.$showsize.'" maxlength="'.$newsize.'" value="'.$value.'"'.($moreparam?$moreparam:'').'>';
|
||||||
}
|
}
|
||||||
elseif ($type == 'varchar')
|
elseif ($type == 'varchar')
|
||||||
{
|
{
|
||||||
$out='<input type="text" class="flat" name="options_'.$key.$keyprefix.'" size="'.$showsize.'" maxlength="'.$size.'" value="'.$value.'"'.($moreparam?$moreparam:'').'>';
|
$out='<input type="text" class="flat" name="'.$keysuffix.'options_'.$key.$keyprefix.'" size="'.$showsize.'" maxlength="'.$size.'" value="'.$value.'"'.($moreparam?$moreparam:'').'>';
|
||||||
}
|
}
|
||||||
elseif ($type == 'text')
|
elseif ($type == 'text')
|
||||||
{
|
{
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor=new DolEditor('options_'.$key.$keyprefix,$value,'',200,'dolibarr_notes','In',false,false,! empty($conf->fckeditor->enabled) && $conf->global->FCKEDITOR_ENABLE_SOCIETE,5,100);
|
$doleditor=new DolEditor($keysuffix.'options_'.$key.$keyprefix,$value,'',200,'dolibarr_notes','In',false,false,! empty($conf->fckeditor->enabled) && $conf->global->FCKEDITOR_ENABLE_SOCIETE,5,100);
|
||||||
$out=$doleditor->Create(1);
|
$out=$doleditor->Create(1);
|
||||||
}
|
}
|
||||||
elseif ($type == 'boolean')
|
elseif ($type == 'boolean')
|
||||||
@ -710,26 +715,26 @@ class ExtraFields
|
|||||||
} else {
|
} else {
|
||||||
$checked=' value="1" ';
|
$checked=' value="1" ';
|
||||||
}
|
}
|
||||||
$out='<input type="checkbox" class="flat" name="options_'.$key.$keyprefix.'" '.$checked.' '.($moreparam?$moreparam:'').'>';
|
$out='<input type="checkbox" class="flat" name="'.$keysuffix.'options_'.$key.$keyprefix.'" '.$checked.' '.($moreparam?$moreparam:'').'>';
|
||||||
}
|
}
|
||||||
elseif ($type == 'mail')
|
elseif ($type == 'mail')
|
||||||
{
|
{
|
||||||
$out='<input type="text" class="flat" name="options_'.$key.$keyprefix.'" size="32" value="'.$value.'" '.($moreparam?$moreparam:'').'>';
|
$out='<input type="text" class="flat" name="'.$keysuffix.'options_'.$key.$keyprefix.'" size="32" value="'.$value.'" '.($moreparam?$moreparam:'').'>';
|
||||||
}
|
}
|
||||||
elseif ($type == 'phone')
|
elseif ($type == 'phone')
|
||||||
{
|
{
|
||||||
$out='<input type="text" class="flat" name="options_'.$key.$keyprefix.'" size="20" value="'.$value.'" '.($moreparam?$moreparam:'').'>';
|
$out='<input type="text" class="flat" name="'.$keysuffix.'options_'.$key.$keyprefix.'" size="20" value="'.$value.'" '.($moreparam?$moreparam:'').'>';
|
||||||
}
|
}
|
||||||
elseif ($type == 'price')
|
elseif ($type == 'price')
|
||||||
{
|
{
|
||||||
$out='<input type="text" class="flat" name="options_'.$key.$keyprefix.'" size="6" value="'.price($value).'" '.($moreparam?$moreparam:'').'> '.$langs->getCurrencySymbol($conf->currency);
|
$out='<input type="text" class="flat" name="'.$keysuffix.'options_'.$key.$keyprefix.'" size="6" value="'.price($value).'" '.($moreparam?$moreparam:'').'> '.$langs->getCurrencySymbol($conf->currency);
|
||||||
}
|
}
|
||||||
elseif ($type == 'double')
|
elseif ($type == 'double')
|
||||||
{
|
{
|
||||||
if (!empty($value)) {
|
if (!empty($value)) {
|
||||||
$value=price($value);
|
$value=price($value);
|
||||||
}
|
}
|
||||||
$out='<input type="text" class="flat" name="options_'.$key.$keyprefix.'" size="6" value="'.$value.'" '.($moreparam?$moreparam:'').'> ';
|
$out='<input type="text" class="flat" name="'.$keysuffix.'options_'.$key.$keyprefix.'" size="6" value="'.$value.'" '.($moreparam?$moreparam:'').'> ';
|
||||||
}
|
}
|
||||||
elseif ($type == 'select')
|
elseif ($type == 'select')
|
||||||
{
|
{
|
||||||
@ -737,10 +742,10 @@ class ExtraFields
|
|||||||
if (! empty($conf->use_javascript_ajax) && ! empty($conf->global->COMPANY_USE_SEARCH_TO_SELECT) && ! $forcecombo)
|
if (! empty($conf->use_javascript_ajax) && ! empty($conf->global->COMPANY_USE_SEARCH_TO_SELECT) && ! $forcecombo)
|
||||||
{
|
{
|
||||||
include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php';
|
include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php';
|
||||||
$out.= ajax_combobox('options_'.$key.$keyprefix, array(), $conf->global->COMPANY_USE_SEARCH_TO_SELECT);
|
$out.= ajax_combobox($keysuffix.'options_'.$key.$keyprefix, array(), $conf->global->COMPANY_USE_SEARCH_TO_SELECT);
|
||||||
}
|
}
|
||||||
|
|
||||||
$out.='<select class="flat" name="options_'.$key.$keyprefix.'" id="options_'.$key.$keyprefix.'" '.($moreparam?$moreparam:'').'>';
|
$out.='<select class="flat" name="'.$keysuffix.'options_'.$key.$keyprefix.'" id="options_'.$key.$keyprefix.'" '.($moreparam?$moreparam:'').'>';
|
||||||
$out.='<option value="0"> </option>';
|
$out.='<option value="0"> </option>';
|
||||||
foreach ($param['options'] as $key=>$val )
|
foreach ($param['options'] as $key=>$val )
|
||||||
{
|
{
|
||||||
@ -758,10 +763,10 @@ class ExtraFields
|
|||||||
if ($conf->use_javascript_ajax && $conf->global->COMPANY_USE_SEARCH_TO_SELECT && ! $forcecombo)
|
if ($conf->use_javascript_ajax && $conf->global->COMPANY_USE_SEARCH_TO_SELECT && ! $forcecombo)
|
||||||
{
|
{
|
||||||
include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php';
|
include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php';
|
||||||
$out.= ajax_combobox('options_'.$key.$keyprefix, array(), $conf->global->COMPANY_USE_SEARCH_TO_SELECT);
|
$out.= ajax_combobox($keysuffix.'options_'.$key.$keyprefix, array(), $conf->global->COMPANY_USE_SEARCH_TO_SELECT);
|
||||||
}
|
}
|
||||||
|
|
||||||
$out.='<select class="flat" name="options_'.$key.$keyprefix.'" id="options_'.$key.$keyprefix.'" '.($moreparam?$moreparam:'').'>';
|
$out.='<select class="flat" name="'.$keysuffix.'options_'.$key.$keyprefix.'" id="options_'.$key.$keyprefix.'" '.($moreparam?$moreparam:'').'>';
|
||||||
if (is_array($param['options']))
|
if (is_array($param['options']))
|
||||||
{
|
{
|
||||||
$param_list=array_keys($param['options']);
|
$param_list=array_keys($param['options']);
|
||||||
@ -907,7 +912,7 @@ class ExtraFields
|
|||||||
foreach ($param['options'] as $keyopt=>$val )
|
foreach ($param['options'] as $keyopt=>$val )
|
||||||
{
|
{
|
||||||
|
|
||||||
$out.='<input class="flat" type="checkbox" name="options_'.$key.$keyprefix.'[]" '.($moreparam?$moreparam:'');
|
$out.='<input class="flat" type="checkbox" name="'.$keysuffix.'options_'.$key.$keyprefix.'[]" '.($moreparam?$moreparam:'');
|
||||||
$out.=' value="'.$keyopt.'"';
|
$out.=' value="'.$keyopt.'"';
|
||||||
|
|
||||||
if ((is_array($value_arr)) && in_array($keyopt,$value_arr)) {
|
if ((is_array($value_arr)) && in_array($keyopt,$value_arr)) {
|
||||||
@ -924,7 +929,7 @@ class ExtraFields
|
|||||||
$out='';
|
$out='';
|
||||||
foreach ($param['options'] as $keyopt=>$val )
|
foreach ($param['options'] as $keyopt=>$val )
|
||||||
{
|
{
|
||||||
$out.='<input class="flat" type="radio" name="options_'.$key.$keyprefix.'" '.($moreparam?$moreparam:'');
|
$out.='<input class="flat" type="radio" name="'.$keysuffix.'options_'.$key.$keyprefix.'" '.($moreparam?$moreparam:'');
|
||||||
$out.=' value="'.$keyopt.'"';
|
$out.=' value="'.$keyopt.'"';
|
||||||
$out.= ($value==$keyopt?'checked':'');
|
$out.= ($value==$keyopt?'checked':'');
|
||||||
$out.='/>'.$val.'<br>';
|
$out.='/>'.$val.'<br>';
|
||||||
@ -1018,7 +1023,7 @@ class ExtraFields
|
|||||||
$labeltoshow = dol_trunc($obj->$field_toshow, 18) . ' ';
|
$labeltoshow = dol_trunc($obj->$field_toshow, 18) . ' ';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$out .= '<input class="flat" type="checkbox" name="options_' . $key . $keyprefix . '[]" ' . ($moreparam ? $moreparam : '');
|
$out .= '<input class="flat" type="checkbox" name="'.$keysuffix.'options_' . $key . $keyprefix . '[]" ' . ($moreparam ? $moreparam : '');
|
||||||
$out .= ' value="' . $obj->rowid . '"';
|
$out .= ' value="' . $obj->rowid . '"';
|
||||||
|
|
||||||
$out .= 'checked';
|
$out .= 'checked';
|
||||||
@ -1037,7 +1042,7 @@ class ExtraFields
|
|||||||
$labeltoshow = '(not defined)';
|
$labeltoshow = '(not defined)';
|
||||||
|
|
||||||
if (is_array($value_arr) && in_array($obj->rowid, $value_arr)) {
|
if (is_array($value_arr) && in_array($obj->rowid, $value_arr)) {
|
||||||
$out .= '<input class="flat" type="checkbox" name="options_' . $key . $keyprefix . '[]" ' . ($moreparam ? $moreparam : '');
|
$out .= '<input class="flat" type="checkbox" name="'.$keysuffix.'options_' . $key . $keyprefix . '[]" ' . ($moreparam ? $moreparam : '');
|
||||||
$out .= ' value="' . $obj->rowid . '"';
|
$out .= ' value="' . $obj->rowid . '"';
|
||||||
|
|
||||||
$out .= 'checked';
|
$out .= 'checked';
|
||||||
@ -1050,7 +1055,7 @@ class ExtraFields
|
|||||||
$parent = $parentName . ':' . $obj->{$parentField};
|
$parent = $parentName . ':' . $obj->{$parentField};
|
||||||
}
|
}
|
||||||
|
|
||||||
$out .= '<input class="flat" type="checkbox" name="options_' . $key . $keyprefix . '[]" ' . ($moreparam ? $moreparam : '');
|
$out .= '<input class="flat" type="checkbox" name="'.$keysuffix.'options_' . $key . $keyprefix . '[]" ' . ($moreparam ? $moreparam : '');
|
||||||
$out .= ' value="' . $obj->rowid . '"';
|
$out .= ' value="' . $obj->rowid . '"';
|
||||||
|
|
||||||
$out .= ((is_array($value_arr) && in_array($obj->rowid, $value_arr)) ? ' checked ' : '');
|
$out .= ((is_array($value_arr) && in_array($obj->rowid, $value_arr)) ? ' checked ' : '');
|
||||||
@ -1080,7 +1085,7 @@ class ExtraFields
|
|||||||
dol_include_once($InfoFieldList[1]);
|
dol_include_once($InfoFieldList[1]);
|
||||||
$object = new $InfoFieldList[0]($this->db);
|
$object = new $InfoFieldList[0]($this->db);
|
||||||
$object->fetch($value);
|
$object->fetch($value);
|
||||||
$out='<input type="text" class="flat" name="options_'.$key.$keyprefix.'" size="20" value="'.$object->ref.'" >';
|
$out='<input type="text" class="flat" name="'.$keysuffix.'options_'.$key.$keyprefix.'" size="20" value="'.$object->ref.'" >';
|
||||||
|
|
||||||
}
|
}
|
||||||
/* Add comments
|
/* Add comments
|
||||||
@ -1417,14 +1422,16 @@ class ExtraFields
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* return array_options array for object by extrafields value (using for data send by forms)
|
* return array_options array for object by extrafields value (using for data send by forms)
|
||||||
*
|
*
|
||||||
* @param array $extralabels $array of extrafields
|
* @param array $extralabels $array of extrafields
|
||||||
* @param string $keyprefix Prefix string to add into name and id of field (can be used to avoid duplicate names)
|
* @param string $keyprefix Prefix string to add into name and id of field (can be used to avoid duplicate names)
|
||||||
* @return int 1 if array_options set / 0 if no value
|
* @param string $keysuffix Suffix string to add into name and id of field (can be used to avoid duplicate names)
|
||||||
|
* @return int 1 if array_options set / 0 if no value
|
||||||
*/
|
*/
|
||||||
function getOptionalsFromPost($extralabels,$keyprefix='')
|
function getOptionalsFromPost($extralabels,$keyprefix='',$keysuffix='')
|
||||||
{
|
{
|
||||||
global $_POST;
|
global $_POST;
|
||||||
|
|
||||||
@ -1439,24 +1446,24 @@ class ExtraFields
|
|||||||
if (in_array($key_type,array('date','datetime')))
|
if (in_array($key_type,array('date','datetime')))
|
||||||
{
|
{
|
||||||
// Clean parameters
|
// Clean parameters
|
||||||
$value_key=dol_mktime($_POST["options_".$key.$keyprefix."hour"], $_POST["options_".$key.$keyprefix."min"], 0, $_POST["options_".$key.$keyprefix."month"], $_POST["options_".$key.$keyprefix."day"], $_POST["options_".$key.$keyprefix."year"]);
|
$value_key=dol_mktime($_POST[$keysuffix."options_".$key.$keyprefix."hour"], $_POST[$keysuffix."options_".$key.$keyprefix."min"], 0, $_POST[$keysuffix."options_".$key.$keyprefix."month"], $_POST[$keysuffix."options_".$key.$keyprefix."day"], $_POST[$keysuffix."options_".$key.$keyprefix."year"]);
|
||||||
}
|
}
|
||||||
else if (in_array($key_type,array('checkbox')))
|
else if (in_array($key_type,array('checkbox')))
|
||||||
{
|
{
|
||||||
$value_arr=GETPOST("options_".$key.$keyprefix);
|
$value_arr=GETPOST($keysuffix."options_".$key.$keyprefix);
|
||||||
$value_key=implode($value_arr,',');
|
$value_key=implode($value_arr,',');
|
||||||
}
|
}
|
||||||
else if (in_array($key_type,array('price','double')))
|
else if (in_array($key_type,array('price','double')))
|
||||||
{
|
{
|
||||||
$value_arr=GETPOST("options_".$key.$keyprefix);
|
$value_arr=GETPOST($keysuffix."options_".$key.$keyprefix);
|
||||||
$value_key=price2num($value_arr);
|
$value_key=price2num($value_arr);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$value_key=GETPOST("options_".$key.$keyprefix);
|
$value_key=GETPOST($keysuffix."options_".$key.$keyprefix);
|
||||||
}
|
}
|
||||||
|
|
||||||
$array_options["options_".$key]=$value_key; // No keyprefix here. keyprefix is used only for read.
|
$array_options[$keysuffix."options_".$key]=$value_key; // No keyprefix here. keyprefix is used only for read.
|
||||||
}
|
}
|
||||||
|
|
||||||
return $array_options;
|
return $array_options;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user