commit
45f8b1e71b
10
.github/CONTRIBUTING.md
vendored
10
.github/CONTRIBUTING.md
vendored
@ -4,15 +4,17 @@ How to contribute to Dolibarr
|
|||||||
Bug reports and feature requests
|
Bug reports and feature requests
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
<a name="not-a-support-forum"></a>*Note*: Issues are not a support forum. If you need help using the software, please use [the forums](https://www.dolibarr.org/forum.php). Forums exist in different languages.
|
<a name="not-a-support-forum"></a>*Note*: **GitHub Issues is not a support forum.** If you have questions about Dolibarr / need help using the software, please use [the forums](https://www.dolibarr.org/forum.php). Forums exist in different languages.
|
||||||
|
|
||||||
Issues are managed on [GitHub](https://github.com/Dolibarr/dolibarr/issues).
|
Issues are managed on [GitHub](https://github.com/Dolibarr/dolibarr/issues).
|
||||||
Default language here is english. So please prepare your contributions in english.
|
Default **language here is english**. So please prepare your contributions in english.
|
||||||
|
|
||||||
1. Please [use the search engine](https://help.github.com/articles/searching-issues) to check if nobody's already reported your problem.
|
1. Please [use the search engine](https://help.github.com/articles/searching-issues) to check if nobody's already reported your problem.
|
||||||
2. [Create an issue](https://help.github.com/articles/creating-an-issue). Choose an appropriate title. Prepend appropriately with Bug or Feature Request.
|
2. [Create an issue](https://help.github.com/articles/creating-an-issue). Choose an appropriate title. Prepend appropriately with Bug or Feature Request.
|
||||||
4. Tell us the version you are using! (look at /htdocs/admin/system/dolibarr.php? and check if you are using the latest version)
|
3. Tell us the version you are using! (look at /htdocs/admin/system/dolibarr.php? and check if you are using the latest version)
|
||||||
3. Write a report with as much detail as possible (Use [screenshots](https://help.github.com/articles/issue-attachments) or even screencasts and provide logging and debugging informations whenever possible).
|
4. Write a report with as much detail as possible (Use [screenshots](https://help.github.com/articles/issue-attachments) or even screencasts and provide logging and debugging informations whenever possible).
|
||||||
|
5. Delete unnecessary submissions.
|
||||||
|
6. **Check your Message at Preview before sending.**
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
118
ChangeLog
118
ChangeLog
@ -18,8 +18,69 @@ WARNING:
|
|||||||
|
|
||||||
Following changes may create regressions for some external modules, but were necessary to make Dolibarr better:
|
Following changes may create regressions for some external modules, but were necessary to make Dolibarr better:
|
||||||
* The ICS value for direct debit or credit transfer is now store on each bank account instead of into the global setup.
|
* The ICS value for direct debit or credit transfer is now store on each bank account instead of into the global setup.
|
||||||
|
* API /setup/shipment_methods has been replaced with API /setup/shipping_methods
|
||||||
|
* Field "tva" renamed into "total_tva" in llx_propal, llx_supplier_proposal, llx_commande, llx_commande_fournisseur for better field name consistency
|
||||||
|
* Field "total" renamed into "total_ttc" in llx_propal, llx_supplier_proposal for better field name consistency
|
||||||
|
* If your database is PostgreSql, you must use version 9.1.0 or more (Dolibarr need the SQL function CONCAT)
|
||||||
|
* If your database is MySql or MariaDB, you need at least version 5.1
|
||||||
|
|
||||||
|
|
||||||
|
***** ChangeLog for 13.0.1 compared to 13.0.0 *****
|
||||||
|
|
||||||
|
FIX: 10.0 before crediting a withdrawal receipt, check whether it has been credited already.
|
||||||
|
FIX: 11.0 when a mandatory extrafield of type sellist contains '0' it should be considered empty and trigger an error message upon insertion
|
||||||
|
FIX: 11.0 when a new intervention is created from an object, a new $extrafields object is instantiated but not initialized
|
||||||
|
FIX: create MO, Column 'tms' cannot be null
|
||||||
|
FIX: #14290 #15900
|
||||||
|
FIX: #16076 patch user/list.php for extrafields
|
||||||
|
FIX: #16077 patch wrong timezone
|
||||||
|
FIX: #16079 error of service date at duplicated invoice
|
||||||
|
FIX: #16080 mailing list title
|
||||||
|
FIX: #16084 DB error at projects
|
||||||
|
FIX: #16107
|
||||||
|
FIX: #16118 Timezone problem on some fields
|
||||||
|
FIX: #16131
|
||||||
|
FIX: #16135
|
||||||
|
FIX: #16143
|
||||||
|
FIX: #16156
|
||||||
|
FIX: #16160
|
||||||
|
FIX: #16165 Create customer discount without vat
|
||||||
|
FIX: #16185
|
||||||
|
FIX: #16189, fix download/see check deposit PDF
|
||||||
|
FIX: #16215
|
||||||
|
FIX: Accountancy - label_operation is used instead of label_compte
|
||||||
|
FIX: Add critical price patch
|
||||||
|
FIX: Assignement of actors on tasks
|
||||||
|
FIX: Bad dates on info tabs
|
||||||
|
FIX: cash fence for takepos with multientity
|
||||||
|
FIX: CSRF errors on margin forms
|
||||||
|
FIX: encoding status in graph of vendor proposals
|
||||||
|
FIX: Fix detect dispached product and set to received completely when the supplier order have services (support STOCK_SUPPORTS_SERVICES)
|
||||||
|
FIX: Hide/Unhide external ICSS calendars
|
||||||
|
FIX: link to create event when task is in a project with a thirdparty
|
||||||
|
FIX: Localtax must be converted with price2num
|
||||||
|
FIX: manage price min for PRODUIT_CUSTOMER_PRICES
|
||||||
|
FIX: Missing language ico
|
||||||
|
FIX: Must not be able to edit vat of all lines if not draft
|
||||||
|
FIX: Bad "htdocs" found into a path
|
||||||
|
FIX: removed no more used proc update_modified_column_date_m on pgsql (its presence triggered errors)
|
||||||
|
FIX: Vulnerability report by Ricardo Matias
|
||||||
|
FIX: select default mail template
|
||||||
|
FIX: Select transport mode function when creating a supplier invoice and add unique key to the table llx_c_transport_mode in migrate sql
|
||||||
|
FIX: Merge of thirdparties : "unknow column fk_soc" + "Delivery" label
|
||||||
|
FIX: SQL Error in group by with postgres or mysql strict mode
|
||||||
|
FIX: TakePOS : load date function
|
||||||
|
FIX: Timeout during import
|
||||||
|
FIX: Trigger on expense report was not fired
|
||||||
|
FIX: User creation of expense report not visible
|
||||||
|
FIX: warning when adding a line if $remise_percent is an empty string
|
||||||
|
FIX: status late on purchase orders
|
||||||
|
FIX: ODT generation very slow
|
||||||
|
FIX: amount in summary of report
|
||||||
|
FIX: vat value when code contains number
|
||||||
|
FIX: payment term label on PDF
|
||||||
|
FIX: date selector when using reduced year (like on smartphone)
|
||||||
|
|
||||||
|
|
||||||
***** ChangeLog for 13.0.0 compared to 12.0.0 *****
|
***** ChangeLog for 13.0.0 compared to 12.0.0 *****
|
||||||
|
|
||||||
@ -269,6 +330,63 @@ Following changes may create regressions for some external modules, but were nec
|
|||||||
* Dolibarr v13 is still compatible with any PHP version between 5.6.0 and 7.4.*; Unit tests are OK with PHP 8.0 but some warnings or troubles may appears with PHP 8.0.
|
* Dolibarr v13 is still compatible with any PHP version between 5.6.0 and 7.4.*; Unit tests are OK with PHP 8.0 but some warnings or troubles may appears with PHP 8.0.
|
||||||
* All your Ajax services must contains such a line at begin of file: if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1'); // Disables token renewal
|
* All your Ajax services must contains such a line at begin of file: if (!defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1'); // Disables token renewal
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
***** ChangeLog for 12.0.5 compared to 12.0.4 *****
|
||||||
|
FIX: before crediting a withdrawal receipt, check whether it has been credited already
|
||||||
|
FIX: mandatory extrafields of type sellist
|
||||||
|
FIX: when a mandatory extrafield of type sellist contains '0' it should be considered empty and trigger an error message upon insertion
|
||||||
|
FIX: when a new intervention is created from an object, a new $extrafields object is instantiated but not initialized
|
||||||
|
FIX: "openall" filter on ticket list does not include read tickets
|
||||||
|
FIX: ticket - extrafields of type 'date' are not saved
|
||||||
|
FIX: ticket - the "openall" filter on the ticket list does not include tickets with status READ
|
||||||
|
FIX: #14290 #15900
|
||||||
|
FIX: #15388 #15891
|
||||||
|
FIX: #15465 External user sees last 5 shipments to other customers in the dashboard
|
||||||
|
FIX: #15629
|
||||||
|
FIX: #15751 Miscellaneous payment type change to 0 after updating subledger account
|
||||||
|
FIX: #15946
|
||||||
|
FIX: #15966 #15967
|
||||||
|
FIX: Accountancy - Fix some problems on CEGID export
|
||||||
|
FIX: Accountancy - label_operation is used instead of label_compte
|
||||||
|
FIX: Accountancy - Retire entire opening balance feature
|
||||||
|
FIX: add autofix of count of email target when data is corrupted
|
||||||
|
FIX: add categories params on llxHeader filter
|
||||||
|
FIX: Add critical price patch from 12 to 11.
|
||||||
|
FIX: Bad cleaning of VAT rate when numbers are into code
|
||||||
|
FIX: Bad dates filtering in the ticket list causes sql error
|
||||||
|
FIX: balance starting and ending fiscal month #14197
|
||||||
|
FIX: bom line unit display #13831
|
||||||
|
FIX: cash fence for takepos with multientity
|
||||||
|
FIX: Check of customer/vendor code fails in some cases
|
||||||
|
FIX: create ticket : thirdparty/contact notification #15629
|
||||||
|
FIX: Creation of thirdparty when setup is empty
|
||||||
|
FIX: Dates of sales start in TakePOS
|
||||||
|
FIX: dupliacete customer or supplier code must be error dipslayed with new code proposed
|
||||||
|
FIX: Export FEC - Force Carriage Return Line Feed
|
||||||
|
FIX: Facture Situation Out : status condition
|
||||||
|
FIX: Filter on date of next generation on template invoices
|
||||||
|
FIX: Fix detect dispatched product and set to received completely when the supplier order have services (support STOCK_SUPPORTS_SERVICES)
|
||||||
|
FIX: Invoice Situation Out : status condition
|
||||||
|
FIX: issue 15659 : Missing test if supplier conf is enabled
|
||||||
|
FIX: link to create event when task is in a project with a thirdparty
|
||||||
|
FIX: Localtax must be converted with price2num
|
||||||
|
FIX: manage price min for PRODUIT_CUSTOMER_PRICES
|
||||||
|
FIX: missing GETPOST parameters on card_presend.tpl.php
|
||||||
|
FIX: missing socid into link to create event from project agenda tab
|
||||||
|
FIX: Must delete extrafields before main table on product deletion.
|
||||||
|
FIX: (path) htdocs removed
|
||||||
|
FIX: php alert sms.php
|
||||||
|
FIX: right to show VAT rate in product list
|
||||||
|
FIX: select default mail template
|
||||||
|
FIX: Timeout during import
|
||||||
|
FIX: update order by api
|
||||||
|
FIX: useless tracking number displayed on pdf if empty issue #14501
|
||||||
|
FIX: Visible date of payment
|
||||||
|
FIX: warning when adding a line if $remise_percent is an empty string
|
||||||
|
FIX: When creating a new POS sell, the creation date must be modified.
|
||||||
|
FIX: wrong name for search status param issue #15516
|
||||||
|
|
||||||
***** ChangeLog for 12.0.4 compared to 12.0.3 *****
|
***** ChangeLog for 12.0.4 compared to 12.0.3 *****
|
||||||
FIX: make formConfirm an addreplace-type hook
|
FIX: make formConfirm an addreplace-type hook
|
||||||
FIX: regex to remove 'action' parameter: taking feedback from PR#15213 into account
|
FIX: regex to remove 'action' parameter: taking feedback from PR#15213 into account
|
||||||
|
|||||||
34
DCO
Normal file
34
DCO
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
Developer Certificate of Origin
|
||||||
|
Version 1.1
|
||||||
|
|
||||||
|
Copyright (C) 2002 - Today, The Dolibarr team and its contributors.
|
||||||
|
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies of this
|
||||||
|
license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
|
||||||
|
Developer's Certificate of Origin 1.1
|
||||||
|
|
||||||
|
By making a contribution to this project, I certify that:
|
||||||
|
|
||||||
|
(a) The contribution was created in whole or in part by me and I
|
||||||
|
have the right to submit it under the open source license
|
||||||
|
indicated in the file; or
|
||||||
|
|
||||||
|
(b) The contribution is based upon previous work that, to the best
|
||||||
|
of my knowledge, is covered under an appropriate open source
|
||||||
|
license and I have the right under that license to submit that
|
||||||
|
work with modifications, whether created in whole or in part
|
||||||
|
by me, under the same open source license (unless I am
|
||||||
|
permitted to submit under a different license), as indicated
|
||||||
|
in the file; or
|
||||||
|
|
||||||
|
(c) The contribution was provided directly to me by some other
|
||||||
|
person who certified (a), (b) or (c) and I have not modified
|
||||||
|
it.
|
||||||
|
|
||||||
|
(d) I understand and agree that this project and the contribution
|
||||||
|
are public and that a record of the contribution (including all
|
||||||
|
personal information I submit with it, including my sign-off) is
|
||||||
|
maintained indefinitely and may be redistributed consistent with
|
||||||
|
this project or the open source license(s) involved.
|
||||||
@ -12,7 +12,7 @@ This file contains some policies about the security reports on Dolibarr ERP CRM
|
|||||||
|
|
||||||
## Reporting a Vulnerability
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
To report a vulnerability, please use GitHub security advisory (alternatively send an email to security@dolibarr.org)
|
To report a vulnerability, please use GitHub security advisory at https://github.com/Dolibarr/dolibarr/security/advisories/new (or alternatively send an email to security@dolibarr.org)
|
||||||
|
|
||||||
|
|
||||||
## Hunting vulnerabilities on Dolibarr
|
## Hunting vulnerabilities on Dolibarr
|
||||||
|
|||||||
@ -22,7 +22,9 @@
|
|||||||
* \brief This script create a xml checksum file
|
* \brief This script create a xml checksum file
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (! defined('NOREQUIREDB')) define('NOREQUIREDB', '1'); // Do not create database handler $db
|
if (! defined('NOREQUIREDB')) {
|
||||||
|
define('NOREQUIREDB', '1'); // Do not create database handler $db
|
||||||
|
}
|
||||||
|
|
||||||
$sapi_type = php_sapi_name();
|
$sapi_type = php_sapi_name();
|
||||||
$script_file = basename(__FILE__);
|
$script_file = basename(__FILE__);
|
||||||
@ -50,15 +52,18 @@ if (empty($argv[1])) {
|
|||||||
print "Example: ".$script_file." release=6.0.0 includecustom=1 includeconstant=FR:INVOICE_CAN_ALWAYS_BE_REMOVED:0 includeconstant=all:MAILING_NO_USING_PHPMAIL:1\n";
|
print "Example: ".$script_file." release=6.0.0 includecustom=1 includeconstant=FR:INVOICE_CAN_ALWAYS_BE_REMOVED:0 includeconstant=all:MAILING_NO_USING_PHPMAIL:1\n";
|
||||||
exit -1;
|
exit -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
parse_str($argv[1]);
|
parse_str($argv[1]);
|
||||||
|
|
||||||
$i=0;
|
$i=0;
|
||||||
while ($i < $argc) {
|
while ($i < $argc) {
|
||||||
if (! empty($argv[$i])) parse_str($argv[$i]);
|
if (! empty($argv[$i])) {
|
||||||
|
parse_str($argv[$i]);
|
||||||
|
}
|
||||||
if (preg_match('/includeconstant=/', $argv[$i])) {
|
if (preg_match('/includeconstant=/', $argv[$i])) {
|
||||||
$tmp=explode(':', $includeconstant, 3);
|
$tmp=explode(':', $includeconstant, 3); // $includeconstant has been set with previous parse_str()
|
||||||
if (count($tmp) != 3) {
|
if (count($tmp) != 3) {
|
||||||
print "Error: Bad parameter includeconstant ".$includeconstant."\n";
|
print "Error: Bad parameter includeconstant=".$includeconstant."\n";
|
||||||
exit -1;
|
exit -1;
|
||||||
}
|
}
|
||||||
$includeconstants[$tmp[0]][$tmp[1]] = $tmp[2];
|
$includeconstants[$tmp[0]][$tmp[1]] = $tmp[2];
|
||||||
@ -78,7 +83,9 @@ $savrelease = $release;
|
|||||||
$tmpver=explode('-', $release, 2);
|
$tmpver=explode('-', $release, 2);
|
||||||
if ($tmpver[0] == 'auto' || $tmpver[0] == 'autostable') {
|
if ($tmpver[0] == 'auto' || $tmpver[0] == 'autostable') {
|
||||||
$release=DOL_VERSION;
|
$release=DOL_VERSION;
|
||||||
if ($tmpver[1] && $tmpver[0] == 'auto') $release.='-'.$tmpver[1];
|
if ($tmpver[1] && $tmpver[0] == 'auto') {
|
||||||
|
$release.='-'.$tmpver[1];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($includecustom)) {
|
if (empty($includecustom)) {
|
||||||
@ -151,8 +158,9 @@ $iterator1 = new RecursiveIteratorIterator($dir_iterator1);
|
|||||||
$files = new RegexIterator($iterator1, '#^(?:[A-Z]:)?(?:/(?!(?:'.($includecustom?'':'custom\/|').'documents\/|conf\/|install\/))[^/]+)+/[^/]+\.(?:php|css|html|js|json|tpl|jpg|png|gif|sql|lang)$#i');
|
$files = new RegexIterator($iterator1, '#^(?:[A-Z]:)?(?:/(?!(?:'.($includecustom?'':'custom\/|').'documents\/|conf\/|install\/))[^/]+)+/[^/]+\.(?:php|css|html|js|json|tpl|jpg|png|gif|sql|lang)$#i');
|
||||||
*/
|
*/
|
||||||
$regextoinclude='\.(php|php3|php4|php5|phtml|phps|phar|inc|css|scss|html|xml|js|json|tpl|jpg|jpeg|png|gif|ico|sql|lang|txt|yml|md|mp3|mp4|wav|mkv|z|gz|zip|rar|tar|less|svg|eot|woff|woff2|ttf|manifest)$';
|
$regextoinclude='\.(php|php3|php4|php5|phtml|phps|phar|inc|css|scss|html|xml|js|json|tpl|jpg|jpeg|png|gif|ico|sql|lang|txt|yml|md|mp3|mp4|wav|mkv|z|gz|zip|rar|tar|less|svg|eot|woff|woff2|ttf|manifest)$';
|
||||||
$regextoexclude='('.($includecustom?'':'custom|').'documents|conf|install|public\/test|sabre\/sabre\/.*\/tests|Shared\/PCLZip|nusoap\/lib\/Mail|php\/example|php\/test|geoip\/sample.*\.php|ckeditor\/samples|ckeditor\/adapters)$'; // Exclude dirs
|
$regextoexclude='('.($includecustom?'':'custom|').'documents|conf|install|dejavu-fonts-ttf-.*|public\/test|sabre\/sabre\/.*\/tests|Shared\/PCLZip|nusoap\/lib\/Mail|php\/example|php\/test|geoip\/sample.*\.php|ckeditor\/samples|ckeditor\/adapters)$'; // Exclude dirs
|
||||||
$files = dol_dir_list(DOL_DOCUMENT_ROOT, 'files', 1, $regextoinclude, $regextoexclude, 'fullname');
|
$files = dol_dir_list(DOL_DOCUMENT_ROOT, 'files', 1, $regextoinclude, $regextoexclude, 'fullname');
|
||||||
|
|
||||||
$dir='';
|
$dir='';
|
||||||
$needtoclose=0;
|
$needtoclose=0;
|
||||||
foreach ($files as $filetmp) {
|
foreach ($files as $filetmp) {
|
||||||
@ -160,9 +168,10 @@ foreach ($files as $filetmp) {
|
|||||||
//$newdir = str_replace(dirname(__FILE__).'/../htdocs', '', dirname($file));
|
//$newdir = str_replace(dirname(__FILE__).'/../htdocs', '', dirname($file));
|
||||||
$newdir = str_replace(DOL_DOCUMENT_ROOT, '', dirname($file));
|
$newdir = str_replace(DOL_DOCUMENT_ROOT, '', dirname($file));
|
||||||
if ($newdir!=$dir) {
|
if ($newdir!=$dir) {
|
||||||
if ($needtoclose)
|
if ($needtoclose) {
|
||||||
fputs($fp, ' </dir>'."\n");
|
fputs($fp, ' </dir>'."\n");
|
||||||
fputs($fp, ' <dir name="'.$newdir.'" >'."\n");
|
}
|
||||||
|
fputs($fp, ' <dir name="'.$newdir.'">'."\n");
|
||||||
$dir = $newdir;
|
$dir = $newdir;
|
||||||
$needtoclose=1;
|
$needtoclose=1;
|
||||||
}
|
}
|
||||||
@ -203,8 +212,9 @@ foreach ($files as $filetmp) {
|
|||||||
$newdir = str_replace(DOL_DOCUMENT_ROOT, '', dirname($file));
|
$newdir = str_replace(DOL_DOCUMENT_ROOT, '', dirname($file));
|
||||||
$newdir = str_replace(dirname(__FILE__).'/../scripts', '', dirname($file));
|
$newdir = str_replace(dirname(__FILE__).'/../scripts', '', dirname($file));
|
||||||
if ($newdir!=$dir) {
|
if ($newdir!=$dir) {
|
||||||
if ($needtoclose)
|
if ($needtoclose) {
|
||||||
fputs($fp, ' </dir>'."\n");
|
fputs($fp, ' </dir>'."\n");
|
||||||
|
}
|
||||||
fputs($fp, ' <dir name="'.$newdir.'" >'."\n");
|
fputs($fp, ' <dir name="'.$newdir.'" >'."\n");
|
||||||
$dir = $newdir;
|
$dir = $newdir;
|
||||||
$needtoclose=1;
|
$needtoclose=1;
|
||||||
|
|||||||
@ -390,6 +390,9 @@ if ($nboftargetok) {
|
|||||||
$olddir=getcwd();
|
$olddir=getcwd();
|
||||||
chdir("$SOURCE");
|
chdir("$SOURCE");
|
||||||
|
|
||||||
|
print "Clean $SOURCE/htdocs\n";
|
||||||
|
$ret=`rm -f $SOURCE/htdocs/includes/autoload.php`;
|
||||||
|
|
||||||
$ret=`git ls-files . --exclude-standard --others`;
|
$ret=`git ls-files . --exclude-standard --others`;
|
||||||
if ($ret)
|
if ($ret)
|
||||||
{
|
{
|
||||||
@ -579,7 +582,6 @@ if ($nboftargetok) {
|
|||||||
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/teclib*`;
|
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/teclib*`;
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/timesheet*`;
|
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/timesheet*`;
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/webmail*`;
|
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/webmail*`;
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/workstation*`;
|
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/themes/oblyon*`;
|
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/themes/oblyon*`;
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/themes/allscreen*`;
|
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/themes/allscreen*`;
|
||||||
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/theme/common/octicons/LICENSE`;
|
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/theme/common/octicons/LICENSE`;
|
||||||
@ -614,7 +616,6 @@ if ($nboftargetok) {
|
|||||||
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nnnick/chartjs/test`;
|
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nnnick/chartjs/test`;
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nusoap/lib/Mail`;
|
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nusoap/lib/Mail`;
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nusoap/samples`;
|
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nusoap/samples`;
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/parsedown/LICENSE.txt`;
|
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/php-iban/docs`;
|
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/php-iban/docs`;
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/sabre/sabre/*/tests`;
|
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/sabre/sabre/*/tests`;
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/stripe/tests`;
|
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/stripe/tests`;
|
||||||
@ -624,8 +625,6 @@ if ($nboftargetok) {
|
|||||||
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-*`;
|
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-*`;
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/ae_fonts_*`;
|
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/ae_fonts_*`;
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/utils`;
|
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/utils`;
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/tools`;
|
|
||||||
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/LICENSE.TXT`;
|
|
||||||
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/tools`;
|
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/tools`;
|
||||||
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/vendor`;
|
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/vendor`;
|
||||||
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/webmozart`;
|
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/webmozart`;
|
||||||
|
|||||||
@ -212,6 +212,7 @@ done >>%{name}.lang
|
|||||||
%_datadir/dolibarr/htdocs/product
|
%_datadir/dolibarr/htdocs/product
|
||||||
%_datadir/dolibarr/htdocs/projet
|
%_datadir/dolibarr/htdocs/projet
|
||||||
%_datadir/dolibarr/htdocs/public
|
%_datadir/dolibarr/htdocs/public
|
||||||
|
%_datadir/dolibarr/htdocs/recruitment
|
||||||
%_datadir/dolibarr/htdocs/reception
|
%_datadir/dolibarr/htdocs/reception
|
||||||
%_datadir/dolibarr/htdocs/resource
|
%_datadir/dolibarr/htdocs/resource
|
||||||
%_datadir/dolibarr/htdocs/salaries
|
%_datadir/dolibarr/htdocs/salaries
|
||||||
|
|||||||
@ -1,4 +1,10 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
# To install this precommit file: put this file in your local repo in .git/hooks directory and make it executable
|
||||||
|
# you need to adapt the path to your phpcs install
|
||||||
|
# if phpcs check fail, then it run phpcbf to fix automaticaly the syntax, and git commit is canceled
|
||||||
|
# if you have a multiprocessor computer, you can add to the option --parallel=xx
|
||||||
|
# when running git commit, it first execute this file checking only modified files, so it is faster than running on all files
|
||||||
|
# To run the fix manually: cd ~/git/dolibarr; phpcbf -s -p -d memory_limit=-1 --extensions=php --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 --runtime-set ignore_warnings_on_exit true fileordir
|
||||||
|
|
||||||
PROJECT=`php -r "echo dirname(dirname(dirname(realpath('$0'))));"`
|
PROJECT=`php -r "echo dirname(dirname(dirname(realpath('$0'))));"`
|
||||||
STAGED_FILES_CMD=`git diff --cached --name-only --diff-filter=ACMR HEAD | grep \\\\.php`
|
STAGED_FILES_CMD=`git diff --cached --name-only --diff-filter=ACMR HEAD | grep \\\\.php`
|
||||||
|
|||||||
@ -131,13 +131,16 @@ $fields = implode(',', $fieldArray);
|
|||||||
//var_dump($fieldArray);die();
|
//var_dump($fieldArray);die();
|
||||||
$maxLength = 0;
|
$maxLength = 0;
|
||||||
for ($i = 1; $i <= $record_numbers; $i++) {
|
for ($i = 1; $i <= $record_numbers; $i++) {
|
||||||
if ($startlinenb && $i < $startlinenb)
|
if ($startlinenb && $i < $startlinenb) {
|
||||||
continue;
|
continue;
|
||||||
if ($endlinenb && $i > $endlinenb)
|
}
|
||||||
|
if ($endlinenb && $i > $endlinenb) {
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
$row = dbase_get_record_with_names($fhandle, $i);
|
$row = dbase_get_record_with_names($fhandle, $i);
|
||||||
if ($row === false || (isset($row["deleted"]) && $row["deleted"] == '1'))
|
if ($row === false || (isset($row["deleted"]) && $row["deleted"] == '1')) {
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
$sqlInsert = "INSERT INTO `$table_name`($fields) VALUES (null,";
|
$sqlInsert = "INSERT INTO `$table_name`($fields) VALUES (null,";
|
||||||
array_shift($row); // remove delete column
|
array_shift($row); // remove delete column
|
||||||
foreach ($row as $value) {
|
foreach ($row as $value) {
|
||||||
|
|||||||
@ -88,25 +88,29 @@ if (!$ret > 0) {
|
|||||||
|
|
||||||
$sql = "SELECT * FROM `$table` WHERE 1";
|
$sql = "SELECT * FROM `$table` WHERE 1";
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql)
|
if ($resql) {
|
||||||
while ($fields = $db->fetch_array($resql)) {
|
while ($fields = $db->fetch_array($resql)) {
|
||||||
$errorrecord = 0;
|
$errorrecord = 0;
|
||||||
if ($fields === false)
|
if ($fields === false) {
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
$nboflines++;
|
$nboflines++;
|
||||||
|
|
||||||
$produit = new Product($db);
|
$produit = new Product($db);
|
||||||
$produit->type = 0;
|
$produit->type = 0;
|
||||||
$produit->status = 1;
|
$produit->status = 1;
|
||||||
$produit->ref = trim($fields['REF']);
|
$produit->ref = trim($fields['REF']);
|
||||||
if ($produit->ref == '')
|
if ($produit->ref == '') {
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
print "Process line nb " . $j . ", ref " . $produit->ref;
|
print "Process line nb " . $j . ", ref " . $produit->ref;
|
||||||
$produit->label = trim($fields['LIBELLE']);
|
$produit->label = trim($fields['LIBELLE']);
|
||||||
if ($produit->label == '')
|
if ($produit->label == '') {
|
||||||
$produit->label = $produit->ref;
|
$produit->label = $produit->ref;
|
||||||
if (empty($produit->label))
|
}
|
||||||
|
if (empty($produit->label)) {
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
//$produit->description = trim($fields[4] . "\n" . ($fields[5] ? $fields[5] . ' x ' . $fields[6] . ' x ' . $fields[7] : ''));
|
//$produit->description = trim($fields[4] . "\n" . ($fields[5] ? $fields[5] . ' x ' . $fields[6] . ' x ' . $fields[7] : ''));
|
||||||
// $produit->volume = price2num($fields[8]);
|
// $produit->volume = price2num($fields[8]);
|
||||||
// $produit->volume_unit = 0;
|
// $produit->volume_unit = 0;
|
||||||
@ -166,8 +170,9 @@ while ($fields = $db->fetch_array($resql)) {
|
|||||||
//$ret1 = $produit->updatePrice($produit->price_ttc, $produit->price_base_type, $user, $produit->tva_tx, $produit->price_min, 1, $produit->tva_npr, 0, 0, array());
|
//$ret1 = $produit->updatePrice($produit->price_ttc, $produit->price_base_type, $user, $produit->tva_tx, $produit->price_min, 1, $produit->tva_npr, 0, 0, array());
|
||||||
$ret1 = false;
|
$ret1 = false;
|
||||||
for ($i = 0; $i < 10; $i++) {
|
for ($i = 0; $i < 10; $i++) {
|
||||||
if ($fields['TARIF' . ($i)] == 0)
|
if ($fields['TARIF' . ($i)] == 0) {
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
$ret1 = $ret1 || $produit->updatePrice(price2num($fields['TARIF' . ($i)]), 'HT', $user, $produit->tva_tx, $produit->price_min, $i + 1, $produit->tva_npr, 0, 0, array()) < 0;
|
$ret1 = $ret1 || $produit->updatePrice(price2num($fields['TARIF' . ($i)]), 'HT', $user, $produit->tva_tx, $produit->price_min, $i + 1, $produit->tva_npr, 0, 0, array()) < 0;
|
||||||
}
|
}
|
||||||
if ($ret1) {
|
if ($ret1) {
|
||||||
@ -227,7 +232,10 @@ while ($fields = $db->fetch_array($resql)) {
|
|||||||
$error++; // $errorrecord will be reset
|
$error++; // $errorrecord will be reset
|
||||||
}
|
}
|
||||||
$j++;
|
$j++;
|
||||||
} else die("error : $sql");
|
}
|
||||||
|
} else {
|
||||||
|
die("error : $sql");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -144,15 +144,17 @@ if (!$ret > 0) {
|
|||||||
$sql = "SELECT * FROM `$table` WHERE 1 "; //ORDER BY REMISE DESC,`LCIVIL` DESC";
|
$sql = "SELECT * FROM `$table` WHERE 1 "; //ORDER BY REMISE DESC,`LCIVIL` DESC";
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
//$db->begin();
|
//$db->begin();
|
||||||
if ($resql)
|
if ($resql) {
|
||||||
while ($fields = $db->fetch_array($resql)) {
|
while ($fields = $db->fetch_array($resql)) {
|
||||||
$i++;
|
$i++;
|
||||||
$errorrecord = 0;
|
$errorrecord = 0;
|
||||||
|
|
||||||
if ($startlinenb && $i < $startlinenb)
|
if ($startlinenb && $i < $startlinenb) {
|
||||||
continue;
|
continue;
|
||||||
if ($endlinenb && $i > $endlinenb)
|
}
|
||||||
|
if ($endlinenb && $i > $endlinenb) {
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$nboflines++;
|
$nboflines++;
|
||||||
|
|
||||||
@ -170,16 +172,20 @@ while ($fields = $db->fetch_array($resql)) {
|
|||||||
|
|
||||||
|
|
||||||
$object->address = trim($fields['FADR1']);
|
$object->address = trim($fields['FADR1']);
|
||||||
if ($fields['FADR2'])
|
if ($fields['FADR2']) {
|
||||||
$object->address .= "\n" . trim($fields['FADR2']);
|
$object->address .= "\n" . trim($fields['FADR2']);
|
||||||
if ($fields['FADR3'])
|
}
|
||||||
|
if ($fields['FADR3']) {
|
||||||
$object->address .= "\n" . trim($fields['FADR3']);
|
$object->address .= "\n" . trim($fields['FADR3']);
|
||||||
|
}
|
||||||
|
|
||||||
$object->zip = trim($fields['FPOSTE']);
|
$object->zip = trim($fields['FPOSTE']);
|
||||||
$object->town = trim($fields['FVILLE']);
|
$object->town = trim($fields['FVILLE']);
|
||||||
if ($fields['FPAYS'])
|
if ($fields['FPAYS']) {
|
||||||
$object->country_id = dol_getIdFromCode($db, trim(ucwords(strtolower($fields['FPAYS']))), 'c_country', 'label', 'rowid');
|
$object->country_id = dol_getIdFromCode($db, trim(ucwords(strtolower($fields['FPAYS']))), 'c_country', 'label', 'rowid');
|
||||||
else $object->country_id = 1;
|
} else {
|
||||||
|
$object->country_id = 1;
|
||||||
|
}
|
||||||
$object->phone = trim($fields['FTEL']) ? trim($fields['FTEL']) : trim($fields['FCONTACT']);
|
$object->phone = trim($fields['FTEL']) ? trim($fields['FTEL']) : trim($fields['FCONTACT']);
|
||||||
$object->phone = substr($object->phone, 0, 20);
|
$object->phone = substr($object->phone, 0, 20);
|
||||||
$object->fax = trim($fields['FFAX']) ? trim($fields['FFAX']) : trim($fields['FCONTACT']);
|
$object->fax = trim($fields['FFAX']) ? trim($fields['FFAX']) : trim($fields['FCONTACT']);
|
||||||
@ -289,16 +295,20 @@ while ($fields = $db->fetch_array($resql)) {
|
|||||||
$contact->lastname = $fields['LCIVIL'] . " " . $fields['LNOM'];
|
$contact->lastname = $fields['LCIVIL'] . " " . $fields['LNOM'];
|
||||||
}
|
}
|
||||||
$contact->address = trim($fields['LADR1']);
|
$contact->address = trim($fields['LADR1']);
|
||||||
if ($fields['LADR2'])
|
if ($fields['LADR2']) {
|
||||||
$contact->address .= "\n" . trim($fields['LADR2']);
|
$contact->address .= "\n" . trim($fields['LADR2']);
|
||||||
if ($fields['LADR3'])
|
}
|
||||||
|
if ($fields['LADR3']) {
|
||||||
$contact->address .= "\n" . trim($fields['LADR3']);
|
$contact->address .= "\n" . trim($fields['LADR3']);
|
||||||
|
}
|
||||||
|
|
||||||
$contact->zip = trim($fields['LPOSTE']);
|
$contact->zip = trim($fields['LPOSTE']);
|
||||||
$contact->town = trim($fields['LVILLE']);
|
$contact->town = trim($fields['LVILLE']);
|
||||||
if ($fields['FPAYS'])
|
if ($fields['FPAYS']) {
|
||||||
$contact->country_id = dol_getIdFromCode($db, trim(ucwords(strtolower($fields['LPAYS']))), 'c_country', 'label', 'rowid');
|
$contact->country_id = dol_getIdFromCode($db, trim(ucwords(strtolower($fields['LPAYS']))), 'c_country', 'label', 'rowid');
|
||||||
else $contact->country_id = 1;
|
} else {
|
||||||
|
$contact->country_id = 1;
|
||||||
|
}
|
||||||
$contact->email = $fields['LMAIL'];
|
$contact->email = $fields['LMAIL'];
|
||||||
$contact->phone = trim($fields['LTEL']) ? trim($fields['LTEL']) : trim($fields['LCONTACT']);
|
$contact->phone = trim($fields['LTEL']) ? trim($fields['LTEL']) : trim($fields['LCONTACT']);
|
||||||
$contact->fax = trim($fields['LFAX']) ? trim($fields['LFAX']) : trim($fields['LCONTACT']);
|
$contact->fax = trim($fields['LFAX']) ? trim($fields['LFAX']) : trim($fields['LCONTACT']);
|
||||||
@ -338,7 +348,10 @@ while ($fields = $db->fetch_array($resql)) {
|
|||||||
$error++; // $errorrecord will be reset
|
$error++; // $errorrecord will be reset
|
||||||
}
|
}
|
||||||
$j++;
|
$j++;
|
||||||
} else die("error : $sql");
|
}
|
||||||
|
} else {
|
||||||
|
die("error : $sql");
|
||||||
|
}
|
||||||
|
|
||||||
$db->commit();
|
$db->commit();
|
||||||
|
|
||||||
|
|||||||
@ -25,27 +25,42 @@ class DBase
|
|||||||
private $recordLength = 0;
|
private $recordLength = 0;
|
||||||
private $recordCount = 0;
|
private $recordCount = 0;
|
||||||
|
|
||||||
//resource dbase_open ( string $filename , int $mode )
|
/**
|
||||||
|
* resource dbase_open
|
||||||
|
* @param string $filename filename
|
||||||
|
* @param int $mode mode
|
||||||
|
* @return DBase
|
||||||
|
*/
|
||||||
public static function open($filename, $mode)
|
public static function open($filename, $mode)
|
||||||
{
|
{
|
||||||
if (!file_exists($filename))
|
if (!file_exists($filename)) {
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
$modes = array('r', 'w', 'r+');
|
$modes = array('r', 'w', 'r+');
|
||||||
$mode = $modes[$mode];
|
$mode = $modes[$mode];
|
||||||
$fd = fopen($filename, $mode);
|
$fd = fopen($filename, $mode);
|
||||||
if (!$fd)
|
if (!$fd) {
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
return new DBase($fd);
|
return new DBase($fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
//resource dbase_create ( string $filename , array $fields [, int $type = DBASE_TYPE_DBASE ] )
|
/**
|
||||||
|
* resource dbase_create
|
||||||
|
* @param string $filename filename
|
||||||
|
* @param array $fields fields
|
||||||
|
* @param int $type DBASE_TYPE_DBASE
|
||||||
|
* @return DBase
|
||||||
|
*/
|
||||||
public static function create($filename, $fields, $type = DBASE_TYPE_DBASE)
|
public static function create($filename, $fields, $type = DBASE_TYPE_DBASE)
|
||||||
{
|
{
|
||||||
if (file_exists($filename))
|
if (file_exists($filename)) {
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
$fd = fopen($filename, 'c+');
|
$fd = fopen($filename, 'c+');
|
||||||
if (!$fd)
|
if (!$fd) {
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
// Byte 0 (1 byte): Valid dBASE for DOS file; bits 0-2 indicate version number, bit 3
|
// Byte 0 (1 byte): Valid dBASE for DOS file; bits 0-2 indicate version number, bit 3
|
||||||
// indicates the presence of a dBASE for DOS memo file, bits 4-6 indicate the
|
// indicates the presence of a dBASE for DOS memo file, bits 4-6 indicate the
|
||||||
// presence of a SQL table, bit 7 indicates the presence of any memo file
|
// presence of a SQL table, bit 7 indicates the presence of any memo file
|
||||||
@ -62,8 +77,9 @@ class DBase
|
|||||||
// Byte 10-11 (16-bit number): Number of bytes in record.
|
// Byte 10-11 (16-bit number): Number of bytes in record.
|
||||||
// Make sure the include the byte for deleted flag
|
// Make sure the include the byte for deleted flag
|
||||||
$len = 1;
|
$len = 1;
|
||||||
foreach ($fields as &$field)
|
foreach ($fields as &$field) {
|
||||||
$len += self::length($field);
|
$len += self::length($field);
|
||||||
|
}
|
||||||
self::putInt16($fd, $len);
|
self::putInt16($fd, $len);
|
||||||
// Byte 12-13 (2 bytes): Reserved, 0 filled.
|
// Byte 12-13 (2 bytes): Reserved, 0 filled.
|
||||||
self::putInt16($fd, 0);
|
self::putInt16($fd, 0);
|
||||||
@ -102,7 +118,11 @@ class DBase
|
|||||||
return new DBase($fd);
|
return new DBase($fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create DBase instance
|
/**
|
||||||
|
* Create DBase instance
|
||||||
|
* @param mixed $fd file descriptor
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
private function __construct($fd)
|
private function __construct($fd)
|
||||||
{
|
{
|
||||||
$this->fd = $fd;
|
$this->fd = $fd;
|
||||||
@ -126,75 +146,120 @@ class DBase
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//bool dbase_close ( resource $dbase_identifier )
|
/**
|
||||||
|
* dbase_close
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
public function close()
|
public function close()
|
||||||
{
|
{
|
||||||
fclose($this->fd);
|
fclose($this->fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
//array dbase_get_header_info ( resource $dbase_identifier )
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
|
/**
|
||||||
|
* dbase_get_header_info
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
public function get_header_info()
|
public function get_header_info()
|
||||||
{
|
{
|
||||||
|
// phpcs:disable
|
||||||
return $this->fields;
|
return $this->fields;
|
||||||
}
|
}
|
||||||
|
|
||||||
//int dbase_numfields ( resource $dbase_identifier )
|
/**
|
||||||
|
* dbase_numfields
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
public function numfields()
|
public function numfields()
|
||||||
{
|
{
|
||||||
return $this->fieldCount;
|
return $this->fieldCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
//int dbase_numrecords ( resource $dbase_identifier )
|
/**
|
||||||
|
* dbase_numrecords
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
public function numrecords()
|
public function numrecords()
|
||||||
{
|
{
|
||||||
return $this->recordCount;
|
return $this->recordCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
//bool dbase_add_record ( resource $dbase_identifier , array $record )
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
|
/**
|
||||||
|
* dbase_add_record
|
||||||
|
* @param array $record record
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
public function add_record($record)
|
public function add_record($record)
|
||||||
{
|
{
|
||||||
if (count($record) != $this->fieldCount)
|
// phpcs:enable
|
||||||
|
if (count($record) != $this->fieldCount) {
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
// Seek to end of file, minus the end of file marker
|
// Seek to end of file, minus the end of file marker
|
||||||
fseek($this->fd, 0, SEEK_END);
|
fseek($this->fd, 0, SEEK_END);
|
||||||
// Put the deleted flag
|
// Put the deleted flag
|
||||||
self::putChar8($this->fd, 0x20);
|
self::putChar8($this->fd, 0x20);
|
||||||
// Put the record
|
// Put the record
|
||||||
if (!$this->putRecord($record))
|
if (!$this->putRecord($record)) {
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
// Update the record count
|
// Update the record count
|
||||||
fseek($this->fd, 4);
|
fseek($this->fd, 4);
|
||||||
self::putInt32($this->fd, ++$this->recordCount);
|
self::putInt32($this->fd, ++$this->recordCount);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//bool dbase_replace_record ( resource $dbase_identifier , array $record , int $record_number )
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
|
/**
|
||||||
|
* dbase_replace_record
|
||||||
|
* @param array $record record
|
||||||
|
* @param int $record_number record number
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
public function replace_record($record, $record_number)
|
public function replace_record($record, $record_number)
|
||||||
{
|
{
|
||||||
if (count($record) != $this->fieldCount)
|
// phpcs:enable
|
||||||
|
if (count($record) != $this->fieldCount) {
|
||||||
return false;
|
return false;
|
||||||
if ($record_number < 1 || $record_number > $this->recordCount)
|
}
|
||||||
|
if ($record_number < 1 || $record_number > $this->recordCount) {
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
// Skip to the record location, plus the 1 byte for the deleted flag
|
// Skip to the record location, plus the 1 byte for the deleted flag
|
||||||
fseek($this->fd, $this->headerLength + ($this->recordLength * ($record_number - 1)) + 1);
|
fseek($this->fd, $this->headerLength + ($this->recordLength * ($record_number - 1)) + 1);
|
||||||
return $this->putRecord($record);
|
return $this->putRecord($record);
|
||||||
}
|
}
|
||||||
|
|
||||||
//bool dbase_delete_record ( resource $dbase_identifier , int $record_number )
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
|
/**
|
||||||
|
* dbase_delete_record
|
||||||
|
* @param int $record_number record number
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
public function delete_record($record_number)
|
public function delete_record($record_number)
|
||||||
{
|
{
|
||||||
if ($record_number < 1 || $record_number > $this->recordCount)
|
// phpcs:enable
|
||||||
|
if ($record_number < 1 || $record_number > $this->recordCount) {
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
fseek($this->fd, $this->headerLength + ($this->recordLength * ($record_number - 1)));
|
fseek($this->fd, $this->headerLength + ($this->recordLength * ($record_number - 1)));
|
||||||
self::putChar8($this->fd, 0x2A);
|
self::putChar8($this->fd, 0x2A);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//array dbase_get_record ( resource $dbase_identifier , int $record_number )
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
|
/**
|
||||||
|
* dbase_get_record
|
||||||
|
* @param int $record_number record number
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
public function get_record($record_number)
|
public function get_record($record_number)
|
||||||
{
|
{
|
||||||
if ($record_number < 1 || $record_number > $this->recordCount)
|
// phpcs:enable
|
||||||
|
if ($record_number < 1 || $record_number > $this->recordCount) {
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
fseek($this->fd, $this->headerLength + ($this->recordLength * ($record_number - 1)));
|
fseek($this->fd, $this->headerLength + ($this->recordLength * ($record_number - 1)));
|
||||||
$record = array(
|
$record = array(
|
||||||
'deleted' => self::getChar8($this->fd) == 0x2A ? 1 : 0
|
'deleted' => self::getChar8($this->fd) == 0x2A ? 1 : 0
|
||||||
@ -203,22 +268,31 @@ class DBase
|
|||||||
$value = trim(fread($this->fd, $field['length']));
|
$value = trim(fread($this->fd, $field['length']));
|
||||||
if ($field['type'] == 'L') {
|
if ($field['type'] == 'L') {
|
||||||
$value = strtolower($value);
|
$value = strtolower($value);
|
||||||
if ($value == 't' || $value == 'y')
|
if ($value == 't' || $value == 'y') {
|
||||||
$value = true;
|
$value = true;
|
||||||
elseif ($value == 'f' || $value == 'n')
|
} elseif ($value == 'f' || $value == 'n') {
|
||||||
$value = false;
|
$value = false;
|
||||||
else $value = null;
|
} else {
|
||||||
|
$value = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$record[$i] = $value;
|
$record[$i] = $value;
|
||||||
}
|
}
|
||||||
return $record;
|
return $record;
|
||||||
}
|
}
|
||||||
|
|
||||||
//array dbase_get_record_with_names ( resource $dbase_identifier , int $record_number )
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
|
/**
|
||||||
|
* dbase_get_record_with_names
|
||||||
|
* @param int $record_number record number
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
public function get_record_with_names($record_number)
|
public function get_record_with_names($record_number)
|
||||||
{
|
{
|
||||||
if ($record_number < 1 || $record_number > $this->recordCount)
|
// phpcs:enable
|
||||||
|
if ($record_number < 1 || $record_number > $this->recordCount) {
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
$record = $this->get_record($record_number);
|
$record = $this->get_record($record_number);
|
||||||
foreach ($this->fields as $i => &$field) {
|
foreach ($this->fields as $i => &$field) {
|
||||||
$record[$field['name']] = $record[$i];
|
$record[$field['name']] = $record[$i];
|
||||||
@ -227,7 +301,10 @@ class DBase
|
|||||||
return $record;
|
return $record;
|
||||||
}
|
}
|
||||||
|
|
||||||
//bool dbase_pack ( resource $dbase_identifier )
|
/**
|
||||||
|
* dbase_pack
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
public function pack()
|
public function pack()
|
||||||
{
|
{
|
||||||
$in_offset = $out_offset = $this->headerLength;
|
$in_offset = $out_offset = $this->headerLength;
|
||||||
@ -256,6 +333,10 @@ class DBase
|
|||||||
* A few utilitiy functions
|
* A few utilitiy functions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $field field
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
private static function length($field)
|
private static function length($field)
|
||||||
{
|
{
|
||||||
switch ($field[1]) {
|
switch ($field[1]) {
|
||||||
@ -278,49 +359,100 @@ class DBase
|
|||||||
* Functions for reading and writing bytes
|
* Functions for reading and writing bytes
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* getChar8
|
||||||
|
* @param mixed $fd file descriptor
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
private static function getChar8($fd)
|
private static function getChar8($fd)
|
||||||
{
|
{
|
||||||
return ord(fread($fd, 1));
|
return ord(fread($fd, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* putChar8
|
||||||
|
* @param mixed $fd file descriptor
|
||||||
|
* @param mixed $value value
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
private static function putChar8($fd, $value)
|
private static function putChar8($fd, $value)
|
||||||
{
|
{
|
||||||
return fwrite($fd, chr($value));
|
return fwrite($fd, chr($value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* getInt16
|
||||||
|
* @param mixed $fd file descriptor
|
||||||
|
* @param int $n n
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
private static function getInt16($fd, $n = 1)
|
private static function getInt16($fd, $n = 1)
|
||||||
{
|
{
|
||||||
$data = fread($fd, 2 * $n);
|
$data = fread($fd, 2 * $n);
|
||||||
$i = unpack("S$n", $data);
|
$i = unpack("S$n", $data);
|
||||||
if ($n == 1)
|
if ($n == 1) {
|
||||||
return (int) $i[1];
|
return (int) $i[1];
|
||||||
else return array_merge($i);
|
} else {
|
||||||
|
return array_merge($i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* putInt16
|
||||||
|
* @param mixed $fd file descriptor
|
||||||
|
* @param mixed $value value
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
private static function putInt16($fd, $value)
|
private static function putInt16($fd, $value)
|
||||||
{
|
{
|
||||||
return fwrite($fd, pack('S', $value));
|
return fwrite($fd, pack('S', $value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* getInt32
|
||||||
|
* @param mixed $fd file descriptor
|
||||||
|
* @param int $n n
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
private static function getInt32($fd, $n = 1)
|
private static function getInt32($fd, $n = 1)
|
||||||
{
|
{
|
||||||
$data = fread($fd, 4 * $n);
|
$data = fread($fd, 4 * $n);
|
||||||
$i = unpack("L$n", $data);
|
$i = unpack("L$n", $data);
|
||||||
if ($n == 1)
|
if ($n == 1) {
|
||||||
return (int) $i[1];
|
return (int) $i[1];
|
||||||
else return array_merge($i);
|
} else {
|
||||||
|
return array_merge($i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* putint32
|
||||||
|
* @param mixed $fd file descriptor
|
||||||
|
* @param mixed $value value
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
private static function putInt32($fd, $value)
|
private static function putInt32($fd, $value)
|
||||||
{
|
{
|
||||||
return fwrite($fd, pack('L', $value));
|
return fwrite($fd, pack('L', $value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* putString
|
||||||
|
* @param mixed $fd file descriptor
|
||||||
|
* @param mixed $value value
|
||||||
|
* @param int $length length
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
private static function putString($fd, $value, $length = 254)
|
private static function putString($fd, $value, $length = 254)
|
||||||
{
|
{
|
||||||
$ret = fwrite($fd, pack('A' . $length, $value));
|
$ret = fwrite($fd, pack('A' . $length, $value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* putRecord
|
||||||
|
* @param mixed $record record
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
private function putRecord($record)
|
private function putRecord($record)
|
||||||
{
|
{
|
||||||
foreach ($this->fields as $i => &$field) {
|
foreach ($this->fields as $i => &$field) {
|
||||||
@ -336,62 +468,130 @@ class DBase
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!function_exists('dbase_open')) {
|
if (!function_exists('dbase_open')) {
|
||||||
|
/**
|
||||||
|
* dbase_open
|
||||||
|
* @param string $filename filename
|
||||||
|
* @param int $mode mode
|
||||||
|
* @return DBase
|
||||||
|
*/
|
||||||
function dbase_open($filename, $mode)
|
function dbase_open($filename, $mode)
|
||||||
{
|
{
|
||||||
return DBase::open($filename, $mode);
|
return DBase::open($filename, $mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dbase_create
|
||||||
|
* @param string $filename filename
|
||||||
|
* @param array $fields fields
|
||||||
|
* @param int $type type
|
||||||
|
* @return DBase
|
||||||
|
*/
|
||||||
function dbase_create($filename, $fields, $type = DBASE_TYPE_DBASE)
|
function dbase_create($filename, $fields, $type = DBASE_TYPE_DBASE)
|
||||||
{
|
{
|
||||||
return DBase::create($filename, $fields, $type);
|
return DBase::create($filename, $fields, $type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dbase_close
|
||||||
|
* @param Resource $dbase_identifier dbase identifier
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
function dbase_close($dbase_identifier)
|
function dbase_close($dbase_identifier)
|
||||||
{
|
{
|
||||||
return $dbase_identifier->close();
|
return $dbase_identifier->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dbase_get_header_info
|
||||||
|
* @param Resource $dbase_identifier dbase identifier
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function dbase_get_header_info($dbase_identifier)
|
function dbase_get_header_info($dbase_identifier)
|
||||||
{
|
{
|
||||||
return $dbase_identifier->get_header_info();
|
return $dbase_identifier->get_header_info();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dbase_numfields
|
||||||
|
* @param Resource $dbase_identifier dbase identifier
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
function dbase_numfields($dbase_identifier)
|
function dbase_numfields($dbase_identifier)
|
||||||
{
|
{
|
||||||
$dbase_identifier->numfields();
|
$dbase_identifier->numfields();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dbase_numrecords
|
||||||
|
* @param Resource $dbase_identifier dbase identifier
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
function dbase_numrecords($dbase_identifier)
|
function dbase_numrecords($dbase_identifier)
|
||||||
{
|
{
|
||||||
return $dbase_identifier->numrecords();
|
return $dbase_identifier->numrecords();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dbase_add_record
|
||||||
|
* @param Resource $dbase_identifier dbase identifier
|
||||||
|
* @param array $record record
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
function dbase_add_record($dbase_identifier, $record)
|
function dbase_add_record($dbase_identifier, $record)
|
||||||
{
|
{
|
||||||
return $dbase_identifier->add_record($record);
|
return $dbase_identifier->add_record($record);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dbase_delete_record
|
||||||
|
* @param Resource $dbase_identifier dbase identifier
|
||||||
|
* @param int $record_number record number
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
function dbase_delete_record($dbase_identifier, $record_number)
|
function dbase_delete_record($dbase_identifier, $record_number)
|
||||||
{
|
{
|
||||||
return $dbase_identifier->delete_record($record_number);
|
return $dbase_identifier->delete_record($record_number);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dbase_replace_record
|
||||||
|
* @param Resource $dbase_identifier dbase identifier
|
||||||
|
* @param array $record record
|
||||||
|
* @param int $record_number record number
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
function dbase_replace_record($dbase_identifier, $record, $record_number)
|
function dbase_replace_record($dbase_identifier, $record, $record_number)
|
||||||
{
|
{
|
||||||
return $dbase_identifier->replace_record($record, $record_number);
|
return $dbase_identifier->replace_record($record, $record_number);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dbase_get_record
|
||||||
|
* @param Resource $dbase_identifier dbase identifier
|
||||||
|
* @param int $record_number record number
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
function dbase_get_record($dbase_identifier, $record_number)
|
function dbase_get_record($dbase_identifier, $record_number)
|
||||||
{
|
{
|
||||||
return $dbase_identifier->get_record($record_number);
|
return $dbase_identifier->get_record($record_number);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dbase_get_record_with_names
|
||||||
|
* @param Resource $dbase_identifier dbase identifier
|
||||||
|
* @param int $record_number record number
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
function dbase_get_record_with_names($dbase_identifier, $record_number)
|
function dbase_get_record_with_names($dbase_identifier, $record_number)
|
||||||
{
|
{
|
||||||
return $dbase_identifier->get_record_with_names($record_number);
|
return $dbase_identifier->get_record_with_names($record_number);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dbase_pack
|
||||||
|
* @param Resource $dbase_identifier dbase identifier
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
function dbase_pack($dbase_identifier)
|
function dbase_pack($dbase_identifier)
|
||||||
{
|
{
|
||||||
return $dbase_identifier->pack();
|
return $dbase_identifier->pack();
|
||||||
|
|||||||
@ -100,8 +100,7 @@ $dates = array (mktime(12, 0, 0, 1, 3, $year),
|
|||||||
);
|
);
|
||||||
|
|
||||||
$ret=$user->fetch('', 'admin');
|
$ret=$user->fetch('', 'admin');
|
||||||
if (! $ret > 0)
|
if (! $ret > 0) {
|
||||||
{
|
|
||||||
print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
|
print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
@ -111,12 +110,10 @@ $user->getrights();
|
|||||||
$socids = array();
|
$socids = array();
|
||||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe WHERE client in (1, 3)";
|
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe WHERE client in (1, 3)";
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql)
|
if ($resql) {
|
||||||
{
|
|
||||||
$num_thirdparties = $db->num_rows($resql);
|
$num_thirdparties = $db->num_rows($resql);
|
||||||
$i = 0;
|
$i = 0;
|
||||||
while ($i < $num_thirdparties)
|
while ($i < $num_thirdparties) {
|
||||||
{
|
|
||||||
$i++;
|
$i++;
|
||||||
$row = $db->fetch_row($resql);
|
$row = $db->fetch_row($resql);
|
||||||
$socids[$i] = $row[0];
|
$socids[$i] = $row[0];
|
||||||
@ -126,12 +123,10 @@ if ($resql)
|
|||||||
$prodids = array();
|
$prodids = array();
|
||||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."product WHERE tosell=1";
|
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."product WHERE tosell=1";
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql)
|
if ($resql) {
|
||||||
{
|
|
||||||
$num_prods = $db->num_rows($resql);
|
$num_prods = $db->num_rows($resql);
|
||||||
$i = 0;
|
$i = 0;
|
||||||
while ($i < $num_prods)
|
while ($i < $num_prods) {
|
||||||
{
|
|
||||||
$i++;
|
$i++;
|
||||||
$row = $db->fetch_row($resql);
|
$row = $db->fetch_row($resql);
|
||||||
$prodids[$i] = $row[0];
|
$prodids[$i] = $row[0];
|
||||||
@ -140,8 +135,7 @@ if ($resql)
|
|||||||
|
|
||||||
$i=0;
|
$i=0;
|
||||||
$result=0;
|
$result=0;
|
||||||
while ($i < GEN_NUMBER_FACTURE && $result >= 0)
|
while ($i < GEN_NUMBER_FACTURE && $result >= 0) {
|
||||||
{
|
|
||||||
$i++;
|
$i++;
|
||||||
$socid = mt_rand(1, $num_thirdparties);
|
$socid = mt_rand(1, $num_thirdparties);
|
||||||
|
|
||||||
@ -158,26 +152,22 @@ while ($i < GEN_NUMBER_FACTURE && $result >= 0)
|
|||||||
$fuser->getRights();
|
$fuser->getRights();
|
||||||
|
|
||||||
$result=$object->create($fuser);
|
$result=$object->create($fuser);
|
||||||
if ($result >= 0)
|
if ($result >= 0) {
|
||||||
{
|
|
||||||
$nbp = mt_rand(2, 5);
|
$nbp = mt_rand(2, 5);
|
||||||
$xnbp = 0;
|
$xnbp = 0;
|
||||||
while ($xnbp < $nbp)
|
while ($xnbp < $nbp) {
|
||||||
{
|
|
||||||
$prodid = mt_rand(1, $num_prods);
|
$prodid = mt_rand(1, $num_prods);
|
||||||
$product=new Product($db);
|
$product=new Product($db);
|
||||||
$result=$product->fetch($prodids[$prodid]);
|
$result=$product->fetch($prodids[$prodid]);
|
||||||
$result=$object->addline($product->description, $product->price, mt_rand(1, 5), 0, 0, 0, $prodids[$prodid], 0, '', '', 0, 0, '', $product->price_base_type, $product->price_ttc, $product->type);
|
$result=$object->addline($product->description, $product->price, mt_rand(1, 5), 0, 0, 0, $prodids[$prodid], 0, '', '', 0, 0, '', $product->price_base_type, $product->price_ttc, $product->type);
|
||||||
if ($result < 0)
|
if ($result < 0) {
|
||||||
{
|
|
||||||
dol_print_error($db, $propal->error);
|
dol_print_error($db, $propal->error);
|
||||||
}
|
}
|
||||||
$xnbp++;
|
$xnbp++;
|
||||||
}
|
}
|
||||||
|
|
||||||
$result=$object->validate($fuser);
|
$result=$object->validate($fuser);
|
||||||
if ($result)
|
if ($result) {
|
||||||
{
|
|
||||||
print " OK with ref ".$object->ref."\n";;
|
print " OK with ref ".$object->ref."\n";;
|
||||||
} else {
|
} else {
|
||||||
dol_print_error($db, $object->error);
|
dol_print_error($db, $object->error);
|
||||||
|
|||||||
@ -106,8 +106,7 @@ $dates = array (mktime(12, 0, 0, 1, 3, $year),
|
|||||||
);
|
);
|
||||||
|
|
||||||
$ret=$user->fetch('', 'admin');
|
$ret=$user->fetch('', 'admin');
|
||||||
if ($ret <= 0)
|
if ($ret <= 0) {
|
||||||
{
|
|
||||||
print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
|
print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
@ -124,7 +123,9 @@ if ($resql) {
|
|||||||
$row = $db->fetch_row($resql);
|
$row = $db->fetch_row($resql);
|
||||||
$societesid[$i] = $row[0];
|
$societesid[$i] = $row[0];
|
||||||
}
|
}
|
||||||
} else { print "err"; }
|
} else {
|
||||||
|
print "err";
|
||||||
|
}
|
||||||
|
|
||||||
$commandesid = array();
|
$commandesid = array();
|
||||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."commande";
|
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."commande";
|
||||||
@ -137,7 +138,9 @@ if ($resql) {
|
|||||||
$row = $db->fetch_row($resql);
|
$row = $db->fetch_row($resql);
|
||||||
$commandesid[$i] = $row[0];
|
$commandesid[$i] = $row[0];
|
||||||
}
|
}
|
||||||
} else { print "err"; }
|
} else {
|
||||||
|
print "err";
|
||||||
|
}
|
||||||
|
|
||||||
$prodids = array();
|
$prodids = array();
|
||||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."product WHERE tosell=1";
|
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."product WHERE tosell=1";
|
||||||
@ -156,8 +159,7 @@ if ($resql) {
|
|||||||
|
|
||||||
|
|
||||||
print "Build ".GEN_NUMBER_COMMANDE." orders\n";
|
print "Build ".GEN_NUMBER_COMMANDE." orders\n";
|
||||||
for ($s = 0 ; $s < GEN_NUMBER_COMMANDE ; $s++)
|
for ($s = 0; $s < GEN_NUMBER_COMMANDE; $s++) {
|
||||||
{
|
|
||||||
print "Process order ".$s."\n";
|
print "Process order ".$s."\n";
|
||||||
|
|
||||||
$object = new Commande($db);
|
$object = new Commande($db);
|
||||||
@ -182,26 +184,22 @@ for ($s = 0 ; $s < GEN_NUMBER_COMMANDE ; $s++)
|
|||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
$result=$object->create($fuser);
|
$result=$object->create($fuser);
|
||||||
if ($result >= 0)
|
if ($result >= 0) {
|
||||||
{
|
|
||||||
$nbp = mt_rand(2, 5);
|
$nbp = mt_rand(2, 5);
|
||||||
$xnbp = 0;
|
$xnbp = 0;
|
||||||
while ($xnbp < $nbp)
|
while ($xnbp < $nbp) {
|
||||||
{
|
|
||||||
$prodid = mt_rand(1, $num_prods);
|
$prodid = mt_rand(1, $num_prods);
|
||||||
$product=new Product($db);
|
$product=new Product($db);
|
||||||
$result=$product->fetch($prodids[$prodid]);
|
$result=$product->fetch($prodids[$prodid]);
|
||||||
$result=$object->addline($product->description, $product->price, mt_rand(1, 5), 0, 0, 0, $prodids[$prodid], 0, 0, 0, $product->price_base_type, $product->price_ttc, '', '', $product->type);
|
$result=$object->addline($product->description, $product->price, mt_rand(1, 5), 0, 0, 0, $prodids[$prodid], 0, 0, 0, $product->price_base_type, $product->price_ttc, '', '', $product->type);
|
||||||
if ($result <= 0)
|
if ($result <= 0) {
|
||||||
{
|
|
||||||
dol_print_error($db, $object->error);
|
dol_print_error($db, $object->error);
|
||||||
}
|
}
|
||||||
$xnbp++;
|
$xnbp++;
|
||||||
}
|
}
|
||||||
|
|
||||||
$result=$object->valid($fuser);
|
$result=$object->valid($fuser);
|
||||||
if ($result > 0)
|
if ($result > 0) {
|
||||||
{
|
|
||||||
$db->commit();
|
$db->commit();
|
||||||
print " OK with ref ".$object->ref."\n";
|
print " OK with ref ".$object->ref."\n";
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -54,8 +54,7 @@ define(GEN_NUMBER_PRODUIT, 100000);
|
|||||||
|
|
||||||
|
|
||||||
$ret=$user->fetch('', 'admin');
|
$ret=$user->fetch('', 'admin');
|
||||||
if (! $ret > 0)
|
if (! $ret > 0) {
|
||||||
{
|
|
||||||
print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
|
print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
@ -66,27 +65,36 @@ $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."product"; $productsid = array();
|
|||||||
$resql=$db->query($sql);
|
$resql=$db->query($sql);
|
||||||
if ($resql) {
|
if ($resql) {
|
||||||
$num = $db->num_rows($resql); $i = 0;
|
$num = $db->num_rows($resql); $i = 0;
|
||||||
while ($i < $num) { $row = $db->fetch_row($resql); $productsid[$i] = $row[0]; $i++; }
|
while ($i < $num) {
|
||||||
|
$row = $db->fetch_row($resql); $productsid[$i] = $row[0]; $i++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe"; $societesid = array();
|
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe"; $societesid = array();
|
||||||
$resql=$db->query($sql);
|
$resql=$db->query($sql);
|
||||||
if ($resql) {
|
if ($resql) {
|
||||||
$num = $db->num_rows($resql); $i = 0;
|
$num = $db->num_rows($resql); $i = 0;
|
||||||
while ($i < $num) { $row = $db->fetch_row($resql); $societesid[$i] = $row[0]; $i++; }
|
while ($i < $num) {
|
||||||
} else { print "err"; }
|
$row = $db->fetch_row($resql); $societesid[$i] = $row[0]; $i++;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
print "err";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."commande"; $commandesid = array();
|
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."commande"; $commandesid = array();
|
||||||
$resql=$db->query($sql);
|
$resql=$db->query($sql);
|
||||||
if ($resql) {
|
if ($resql) {
|
||||||
$num = $db->num_rows($resql); $i = 0;
|
$num = $db->num_rows($resql); $i = 0;
|
||||||
while ($i < $num) { $row = $db->fetch_row($resql); $commandesid[$i] = $row[0]; $i++; }
|
while ($i < $num) {
|
||||||
} else { print "err"; }
|
$row = $db->fetch_row($resql); $commandesid[$i] = $row[0]; $i++;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
print "err";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
print "Generates ".GEN_NUMBER_PRODUIT." products\n";
|
print "Generates ".GEN_NUMBER_PRODUIT." products\n";
|
||||||
for ($s = 0 ; $s < GEN_NUMBER_PRODUIT ; $s++)
|
for ($s = 0; $s < GEN_NUMBER_PRODUIT; $s++) {
|
||||||
{
|
|
||||||
print "Product ".$s;
|
print "Product ".$s;
|
||||||
$produit = new Product($db);
|
$produit = new Product($db);
|
||||||
$produit->type = mt_rand(0, 1);
|
$produit->type = mt_rand(0, 1);
|
||||||
@ -97,6 +105,9 @@ for ($s = 0 ; $s < GEN_NUMBER_PRODUIT ; $s++)
|
|||||||
$produit->price = mt_rand(1, 1000);
|
$produit->price = mt_rand(1, 1000);
|
||||||
$produit->tva_tx = "19.6";
|
$produit->tva_tx = "19.6";
|
||||||
$ret=$produit->create($user);
|
$ret=$produit->create($user);
|
||||||
if ($ret < 0) print "Error $ret - ".$produit->error."\n";
|
if ($ret < 0) {
|
||||||
else print " OK with ref ".$produit->ref."\n";
|
print "Error $ret - ".$produit->error."\n";
|
||||||
|
} else {
|
||||||
|
print " OK with ref ".$produit->ref."\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -102,8 +102,7 @@ $dates = array (mktime(12, 0, 0, 1, 3, $year),
|
|||||||
);
|
);
|
||||||
|
|
||||||
$ret=$user->fetch('', 'admin');
|
$ret=$user->fetch('', 'admin');
|
||||||
if (! $ret > 0)
|
if (! $ret > 0) {
|
||||||
{
|
|
||||||
print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
|
print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
@ -113,12 +112,10 @@ $user->getrights();
|
|||||||
$socids = array();
|
$socids = array();
|
||||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe WHERE client in (1,3)";
|
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe WHERE client in (1,3)";
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql)
|
if ($resql) {
|
||||||
{
|
|
||||||
$num_thirdparties = $db->num_rows($resql);
|
$num_thirdparties = $db->num_rows($resql);
|
||||||
$i = 0;
|
$i = 0;
|
||||||
while ($i < $num_thirdparties)
|
while ($i < $num_thirdparties) {
|
||||||
{
|
|
||||||
$i++;
|
$i++;
|
||||||
$row = $db->fetch_row($resql);
|
$row = $db->fetch_row($resql);
|
||||||
$socids[$i] = $row[0];
|
$socids[$i] = $row[0];
|
||||||
@ -128,12 +125,10 @@ if ($resql)
|
|||||||
$contids = array();
|
$contids = array();
|
||||||
$sql = "SELECT rowid, fk_soc FROM ".MAIN_DB_PREFIX."socpeople";
|
$sql = "SELECT rowid, fk_soc FROM ".MAIN_DB_PREFIX."socpeople";
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql)
|
if ($resql) {
|
||||||
{
|
|
||||||
$num_conts = $db->num_rows($resql);
|
$num_conts = $db->num_rows($resql);
|
||||||
$i = 0;
|
$i = 0;
|
||||||
while ($i < $num_conts)
|
while ($i < $num_conts) {
|
||||||
{
|
|
||||||
$i++;
|
$i++;
|
||||||
$row = $db->fetch_row($resql);
|
$row = $db->fetch_row($resql);
|
||||||
$contids[$row[1]][0] = $row[0]; // A ameliorer
|
$contids[$row[1]][0] = $row[0]; // A ameliorer
|
||||||
@ -143,12 +138,10 @@ if ($resql)
|
|||||||
$prodids = array();
|
$prodids = array();
|
||||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."product WHERE tosell=1";
|
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."product WHERE tosell=1";
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql)
|
if ($resql) {
|
||||||
{
|
|
||||||
$num_prods = $db->num_rows($resql);
|
$num_prods = $db->num_rows($resql);
|
||||||
$i = 0;
|
$i = 0;
|
||||||
while ($i < $num_prods)
|
while ($i < $num_prods) {
|
||||||
{
|
|
||||||
$i++;
|
$i++;
|
||||||
$row = $db->fetch_row($resql);
|
$row = $db->fetch_row($resql);
|
||||||
$prodids[$i] = $row[0];
|
$prodids[$i] = $row[0];
|
||||||
@ -159,15 +152,13 @@ $user->rights->propal->creer=1;
|
|||||||
$user->rights->propal->propal_advance->validate=1;
|
$user->rights->propal->propal_advance->validate=1;
|
||||||
|
|
||||||
|
|
||||||
if (! empty($conf->global->PROPALE_ADDON) && is_readable(DOL_DOCUMENT_ROOT ."/core/modules/propale/".$conf->global->PROPALE_ADDON.".php"))
|
if (! empty($conf->global->PROPALE_ADDON) && is_readable(DOL_DOCUMENT_ROOT ."/core/modules/propale/".$conf->global->PROPALE_ADDON.".php")) {
|
||||||
{
|
|
||||||
require_once DOL_DOCUMENT_ROOT ."/core/modules/propale/".$conf->global->PROPALE_ADDON.".php";
|
require_once DOL_DOCUMENT_ROOT ."/core/modules/propale/".$conf->global->PROPALE_ADDON.".php";
|
||||||
}
|
}
|
||||||
|
|
||||||
$i=0;
|
$i=0;
|
||||||
$result=0;
|
$result=0;
|
||||||
while ($i < GEN_NUMBER_PROPAL && $result >= 0)
|
while ($i < GEN_NUMBER_PROPAL && $result >= 0) {
|
||||||
{
|
|
||||||
$i++;
|
$i++;
|
||||||
$socid = mt_rand(1, $num_thirdparties);
|
$socid = mt_rand(1, $num_thirdparties);
|
||||||
print "Proposal ".$i." for socid ".$socid;
|
print "Proposal ".$i." for socid ".$socid;
|
||||||
@ -188,26 +179,22 @@ while ($i < GEN_NUMBER_PROPAL && $result >= 0)
|
|||||||
$object->mode_reglement_id = 3;
|
$object->mode_reglement_id = 3;
|
||||||
|
|
||||||
$result=$object->create($fuser);
|
$result=$object->create($fuser);
|
||||||
if ($result >= 0)
|
if ($result >= 0) {
|
||||||
{
|
|
||||||
$nbp = mt_rand(2, 5);
|
$nbp = mt_rand(2, 5);
|
||||||
$xnbp = 0;
|
$xnbp = 0;
|
||||||
while ($xnbp < $nbp)
|
while ($xnbp < $nbp) {
|
||||||
{
|
|
||||||
$prodid = mt_rand(1, $num_prods);
|
$prodid = mt_rand(1, $num_prods);
|
||||||
$product=new Product($db);
|
$product=new Product($db);
|
||||||
$result=$product->fetch($prodids[$prodid]);
|
$result=$product->fetch($prodids[$prodid]);
|
||||||
$result=$object->addline($product->description, $product->price, mt_rand(1, 5), 0, 0, 0, $prodids[$prodid], 0);
|
$result=$object->addline($product->description, $product->price, mt_rand(1, 5), 0, 0, 0, $prodids[$prodid], 0);
|
||||||
if ($result < 0)
|
if ($result < 0) {
|
||||||
{
|
|
||||||
dol_print_error($db, $object->error);
|
dol_print_error($db, $object->error);
|
||||||
}
|
}
|
||||||
$xnbp++;
|
$xnbp++;
|
||||||
}
|
}
|
||||||
|
|
||||||
$result=$object->valid($fuser);
|
$result=$object->valid($fuser);
|
||||||
if ($result > 0)
|
if ($result > 0) {
|
||||||
{
|
|
||||||
$db->commit();
|
$db->commit();
|
||||||
print " OK with ref ".$object->ref."\n";
|
print " OK with ref ".$object->ref."\n";
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -57,8 +57,7 @@ define(GEN_NUMBER_SOCIETE, 10);
|
|||||||
|
|
||||||
|
|
||||||
$ret=$user->fetch('', 'admin');
|
$ret=$user->fetch('', 'admin');
|
||||||
if (! $ret > 0)
|
if (! $ret > 0) {
|
||||||
{
|
|
||||||
print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
|
print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
@ -85,7 +84,9 @@ if ($resql) {
|
|||||||
$societesid[$i] = $row[0];
|
$societesid[$i] = $row[0];
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
} else { print "err"; }
|
} else {
|
||||||
|
print "err";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."commande"; $commandesid = array();
|
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."commande"; $commandesid = array();
|
||||||
$resql=$db->query($sql);
|
$resql=$db->query($sql);
|
||||||
@ -96,13 +97,14 @@ if ($resql) {
|
|||||||
$commandesid[$i] = $row[0];
|
$commandesid[$i] = $row[0];
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
} else { print "err"; }
|
} else {
|
||||||
|
print "err";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
print "Generates ".GEN_NUMBER_SOCIETE." companies\n";
|
print "Generates ".GEN_NUMBER_SOCIETE." companies\n";
|
||||||
for ($s = 0 ; $s < GEN_NUMBER_SOCIETE ; $s++)
|
for ($s = 0; $s < GEN_NUMBER_SOCIETE; $s++) {
|
||||||
{
|
|
||||||
print "Company $s\n";
|
print "Company $s\n";
|
||||||
$soc = new Societe($db);
|
$soc = new Societe($db);
|
||||||
$soc->name = "Company num ".time()."$s";
|
$soc->name = "Company num ".time()."$s";
|
||||||
@ -115,23 +117,22 @@ for ($s = 0 ; $s < GEN_NUMBER_SOCIETE ; $s++)
|
|||||||
$soc->country_id=1;
|
$soc->country_id=1;
|
||||||
$soc->country_code='FR';
|
$soc->country_code='FR';
|
||||||
// Un client sur 3 a une remise de 5%
|
// Un client sur 3 a une remise de 5%
|
||||||
$user_remise=mt_rand(1, 3); if ($user_remise==3) $soc->remise_percent=5;
|
$user_remise=mt_rand(1, 3); if ($user_remise==3) {
|
||||||
|
$soc->remise_percent=5;
|
||||||
|
}
|
||||||
print "> client=".$soc->client.", fournisseur=".$soc->fournisseur.", remise=".$soc->remise_percent."\n";
|
print "> client=".$soc->client.", fournisseur=".$soc->fournisseur.", remise=".$soc->remise_percent."\n";
|
||||||
$soc->note_private = 'Company created by the script generate-societe.php';
|
$soc->note_private = 'Company created by the script generate-societe.php';
|
||||||
$socid = $soc->create();
|
$socid = $soc->create();
|
||||||
|
|
||||||
if ($socid >= 0)
|
if ($socid >= 0) {
|
||||||
{
|
|
||||||
$rand = mt_rand(1, 4);
|
$rand = mt_rand(1, 4);
|
||||||
print "> Generates $rand contact(s)\n";
|
print "> Generates $rand contact(s)\n";
|
||||||
for ($c = 0 ; $c < $rand ; $c++)
|
for ($c = 0; $c < $rand; $c++) {
|
||||||
{
|
|
||||||
$contact = new Contact($db);
|
$contact = new Contact($db);
|
||||||
$contact->socid = $soc->id;
|
$contact->socid = $soc->id;
|
||||||
$contact->lastname = "Lastname".$c;
|
$contact->lastname = "Lastname".$c;
|
||||||
$contact->firstname = $listoflastname[mt_rand(0, count($listoflastname)-1)];
|
$contact->firstname = $listoflastname[mt_rand(0, count($listoflastname)-1)];
|
||||||
if ( $contact->create($user) )
|
if ($contact->create($user)) {
|
||||||
{
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -79,30 +79,26 @@ if (! file_exists($filepath)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$ret=$user->fetch('', 'admin');
|
$ret=$user->fetch('', 'admin');
|
||||||
if (! $ret > 0)
|
if (! $ret > 0) {
|
||||||
{
|
|
||||||
print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
|
print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
$user->getrights();
|
$user->getrights();
|
||||||
|
|
||||||
// Ask confirmation
|
// Ask confirmation
|
||||||
if (! $confirmed)
|
if (! $confirmed) {
|
||||||
{
|
|
||||||
print "Hit Enter to continue or CTRL+C to stop...\n";
|
print "Hit Enter to continue or CTRL+C to stop...\n";
|
||||||
$input = trim(fgets(STDIN));
|
$input = trim(fgets(STDIN));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Open input and output files
|
// Open input and output files
|
||||||
$fhandle = fopen($filepath, 'r');
|
$fhandle = fopen($filepath, 'r');
|
||||||
if (! $fhandle)
|
if (! $fhandle) {
|
||||||
{
|
|
||||||
print 'Error: Failed to open file '.$filepath."\n";
|
print 'Error: Failed to open file '.$filepath."\n";
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
$fhandleerr = fopen($filepatherr, 'w');
|
$fhandleerr = fopen($filepatherr, 'w');
|
||||||
if (! $fhandleerr)
|
if (! $fhandleerr) {
|
||||||
{
|
|
||||||
print 'Error: Failed to open file '.$filepatherr."\n";
|
print 'Error: Failed to open file '.$filepatherr."\n";
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@ -114,13 +110,16 @@ $db->begin();
|
|||||||
|
|
||||||
$i=0;
|
$i=0;
|
||||||
$nboflines++;
|
$nboflines++;
|
||||||
while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape)) {
|
||||||
{
|
|
||||||
$i++;
|
$i++;
|
||||||
$errorrecord=0;
|
$errorrecord=0;
|
||||||
|
|
||||||
if ($startlinenb && $i < $startlinenb) continue;
|
if ($startlinenb && $i < $startlinenb) {
|
||||||
if ($endlinenb && $i > $endlinenb) continue;
|
continue;
|
||||||
|
}
|
||||||
|
if ($endlinenb && $i > $endlinenb) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$nboflines++;
|
$nboflines++;
|
||||||
|
|
||||||
@ -159,8 +158,7 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
|||||||
$produit->array_options['options_ecotaxdeee']=price2num($fields[17]);
|
$produit->array_options['options_ecotaxdeee']=price2num($fields[17]);
|
||||||
|
|
||||||
$ret=$produit->create($user);
|
$ret=$produit->create($user);
|
||||||
if ($ret < 0)
|
if ($ret < 0) {
|
||||||
{
|
|
||||||
print " - Error in create result code = ".$ret." - ".$produit->errorsToString();
|
print " - Error in create result code = ".$ret." - ".$produit->errorsToString();
|
||||||
$errorrecord++;
|
$errorrecord++;
|
||||||
} else {
|
} else {
|
||||||
@ -170,12 +168,10 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
|||||||
dol_syslog("Add prices");
|
dol_syslog("Add prices");
|
||||||
|
|
||||||
// If we use price level, insert price for each level
|
// If we use price level, insert price for each level
|
||||||
if (! $errorrecord && 1)
|
if (! $errorrecord && 1) {
|
||||||
{
|
|
||||||
$ret1=$produit->updatePrice($produit->price_ttc, $produit->price_base_type, $user, $produit->tva_tx, $produit->price_min, 1, $produit->tva_npr, 0, 0, array());
|
$ret1=$produit->updatePrice($produit->price_ttc, $produit->price_base_type, $user, $produit->tva_tx, $produit->price_min, 1, $produit->tva_npr, 0, 0, array());
|
||||||
$ret2=$produit->updatePrice(price2num($fields[14]), 'HT', $user, $produit->tva_tx, $produit->price_min, 2, $produit->tva_npr, 0, 0, array());
|
$ret2=$produit->updatePrice(price2num($fields[14]), 'HT', $user, $produit->tva_tx, $produit->price_min, 2, $produit->tva_npr, 0, 0, array());
|
||||||
if ($ret1 < 0 || $ret2 < 0)
|
if ($ret1 < 0 || $ret2 < 0) {
|
||||||
{
|
|
||||||
print " - Error in updatePrice result code = ".$ret1." ".$ret2." - ".$produit->errorsToString();
|
print " - Error in updatePrice result code = ".$ret1." ".$ret2." - ".$produit->errorsToString();
|
||||||
$errorrecord++;
|
$errorrecord++;
|
||||||
} else {
|
} else {
|
||||||
@ -186,14 +182,12 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
|||||||
dol_syslog("Add multilangs");
|
dol_syslog("Add multilangs");
|
||||||
|
|
||||||
// Add alternative languages
|
// Add alternative languages
|
||||||
if (! $errorrecord && 1)
|
if (! $errorrecord && 1) {
|
||||||
{
|
|
||||||
$produit->multilangs['fr_FR']=array('label'=>$produit->label, 'description'=>$produit->description, 'note'=>$produit->note_private);
|
$produit->multilangs['fr_FR']=array('label'=>$produit->label, 'description'=>$produit->description, 'note'=>$produit->note_private);
|
||||||
$produit->multilangs['en_US']=array('label'=>$fields[3], 'description'=>$produit->description, 'note'=>$produit->note_private);
|
$produit->multilangs['en_US']=array('label'=>$fields[3], 'description'=>$produit->description, 'note'=>$produit->note_private);
|
||||||
|
|
||||||
$ret=$produit->setMultiLangs($user);
|
$ret=$produit->setMultiLangs($user);
|
||||||
if ($ret < 0)
|
if ($ret < 0) {
|
||||||
{
|
|
||||||
print " - Error in setMultiLangs result code = ".$ret." - ".$produit->errorsToString();
|
print " - Error in setMultiLangs result code = ".$ret." - ".$produit->errorsToString();
|
||||||
$errorrecord++;
|
$errorrecord++;
|
||||||
} else {
|
} else {
|
||||||
@ -203,8 +197,7 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
|||||||
|
|
||||||
print "\n";
|
print "\n";
|
||||||
|
|
||||||
if ($errorrecord)
|
if ($errorrecord) {
|
||||||
{
|
|
||||||
fwrite($fhandleerr, 'Error on record nb '.$i." - ".$produit->errorsToString()."\n");
|
fwrite($fhandleerr, 'Error on record nb '.$i." - ".$produit->errorsToString()."\n");
|
||||||
$error++; // $errorrecord will be reset
|
$error++; // $errorrecord will be reset
|
||||||
}
|
}
|
||||||
@ -217,8 +210,7 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
|||||||
// commit or rollback
|
// commit or rollback
|
||||||
print "Nb of lines qualified: ".$nboflines."\n";
|
print "Nb of lines qualified: ".$nboflines."\n";
|
||||||
print "Nb of errors: ".$error."\n";
|
print "Nb of errors: ".$error."\n";
|
||||||
if ($mode != 'confirmforced' && ($error || $mode != 'confirm'))
|
if ($mode != 'confirmforced' && ($error || $mode != 'confirm')) {
|
||||||
{
|
|
||||||
print "Rollback any changes.\n";
|
print "Rollback any changes.\n";
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -79,30 +79,26 @@ if (! file_exists($filepath)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$ret=$user->fetch('', 'admin');
|
$ret=$user->fetch('', 'admin');
|
||||||
if (! $ret > 0)
|
if (! $ret > 0) {
|
||||||
{
|
|
||||||
print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
|
print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
$user->getrights();
|
$user->getrights();
|
||||||
|
|
||||||
// Ask confirmation
|
// Ask confirmation
|
||||||
if (! $confirmed)
|
if (! $confirmed) {
|
||||||
{
|
|
||||||
print "Hit Enter to continue or CTRL+C to stop...\n";
|
print "Hit Enter to continue or CTRL+C to stop...\n";
|
||||||
$input = trim(fgets(STDIN));
|
$input = trim(fgets(STDIN));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Open input and output files
|
// Open input and output files
|
||||||
$fhandle = fopen($filepath, 'r');
|
$fhandle = fopen($filepath, 'r');
|
||||||
if (! $fhandle)
|
if (! $fhandle) {
|
||||||
{
|
|
||||||
print 'Error: Failed to open file '.$filepath."\n";
|
print 'Error: Failed to open file '.$filepath."\n";
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
$fhandleerr = fopen($filepatherr, 'w');
|
$fhandleerr = fopen($filepatherr, 'w');
|
||||||
if (! $fhandleerr)
|
if (! $fhandleerr) {
|
||||||
{
|
|
||||||
print 'Error: Failed to open file '.$filepatherr."\n";
|
print 'Error: Failed to open file '.$filepatherr."\n";
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@ -114,13 +110,16 @@ $db->begin();
|
|||||||
|
|
||||||
$i=0;
|
$i=0;
|
||||||
$nboflines=0;
|
$nboflines=0;
|
||||||
while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape)) {
|
||||||
{
|
|
||||||
$i++;
|
$i++;
|
||||||
$errorrecord=0;
|
$errorrecord=0;
|
||||||
|
|
||||||
if ($startlinenb && $i < $startlinenb) continue;
|
if ($startlinenb && $i < $startlinenb) {
|
||||||
if ($endlinenb && $i > $endlinenb) continue;
|
continue;
|
||||||
|
}
|
||||||
|
if ($endlinenb && $i > $endlinenb) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$nboflines++;
|
$nboflines++;
|
||||||
|
|
||||||
@ -144,14 +143,16 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
|||||||
$object->default_lang = trim($fields[43]);
|
$object->default_lang = trim($fields[43]);
|
||||||
|
|
||||||
//$condpayment = dol_string_unaccent(trim($fields[36]));
|
//$condpayment = dol_string_unaccent(trim($fields[36]));
|
||||||
if ($fields[36])
|
if ($fields[36]) {
|
||||||
{
|
|
||||||
$condpayment = trim($fields[36]);
|
$condpayment = trim($fields[36]);
|
||||||
if ($condpayment == 'A la commande') $condpayment = 'A réception de commande';
|
if ($condpayment == 'A la commande') {
|
||||||
if ($condpayment == 'A reception facture') $condpayment = 'Réception de facture';
|
$condpayment = 'A réception de commande';
|
||||||
|
}
|
||||||
|
if ($condpayment == 'A reception facture') {
|
||||||
|
$condpayment = 'Réception de facture';
|
||||||
|
}
|
||||||
$object->cond_reglement_id = dol_getIdFromCode($db, $condpayment, 'c_payment_term', 'libelle_facture', 'rowid', 1);
|
$object->cond_reglement_id = dol_getIdFromCode($db, $condpayment, 'c_payment_term', 'libelle_facture', 'rowid', 1);
|
||||||
if (empty($object->cond_reglement_id))
|
if (empty($object->cond_reglement_id)) {
|
||||||
{
|
|
||||||
print " - Error cant find payment mode for ".$condpayment."\n";
|
print " - Error cant find payment mode for ".$condpayment."\n";
|
||||||
$errorrecord++;
|
$errorrecord++;
|
||||||
}
|
}
|
||||||
@ -165,7 +166,9 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
|||||||
|
|
||||||
// Set price level
|
// Set price level
|
||||||
$object->price_level = 1;
|
$object->price_level = 1;
|
||||||
if ($labeltype == 'Revendeur') $object->price_level = 2;
|
if ($labeltype == 'Revendeur') {
|
||||||
|
$object->price_level = 2;
|
||||||
|
}
|
||||||
|
|
||||||
print "Process line nb ".$i.", name ".$object->name;
|
print "Process line nb ".$i.", name ".$object->name;
|
||||||
|
|
||||||
@ -174,11 +177,9 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
|||||||
$object->array_options['options_anastate']=price2num($fields[20]);
|
$object->array_options['options_anastate']=price2num($fields[20]);
|
||||||
$object->array_options['options_anaregion']=price2num($fields[17]);
|
$object->array_options['options_anaregion']=price2num($fields[17]);
|
||||||
|
|
||||||
if (! $errorrecord)
|
if (! $errorrecord) {
|
||||||
{
|
|
||||||
$ret=$object->create($user);
|
$ret=$object->create($user);
|
||||||
if ($ret < 0)
|
if ($ret < 0) {
|
||||||
{
|
|
||||||
print " - Error in create result code = ".$ret." - ".$object->errorsToString();
|
print " - Error in create result code = ".$ret." - ".$object->errorsToString();
|
||||||
$errorrecord++;
|
$errorrecord++;
|
||||||
} else {
|
} else {
|
||||||
@ -186,28 +187,28 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $errorrecord)
|
if (! $errorrecord) {
|
||||||
{
|
|
||||||
dol_syslog("Set price level");
|
dol_syslog("Set price level");
|
||||||
$object->set_price_level($object->price_level, $user);
|
$object->set_price_level($object->price_level, $user);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Assign sales representative
|
// Assign sales representative
|
||||||
if (! $errorrecord && $fields[3])
|
if (! $errorrecord && $fields[3]) {
|
||||||
{
|
|
||||||
$salesrep=new User($db);
|
$salesrep=new User($db);
|
||||||
|
|
||||||
$tmp=explode(' ', $fields[3], 2);
|
$tmp=explode(' ', $fields[3], 2);
|
||||||
$salesrep->firstname = trim($tmp[0]);
|
$salesrep->firstname = trim($tmp[0]);
|
||||||
$salesrep->lastname = trim($tmp[1]);
|
$salesrep->lastname = trim($tmp[1]);
|
||||||
if ($salesrep->lastname) $salesrep->login = strtolower(substr($salesrep->firstname, 0, 1)) . strtolower(substr($salesrep->lastname, 0));
|
if ($salesrep->lastname) {
|
||||||
else $salesrep->login=strtolower($salesrep->firstname);
|
$salesrep->login = strtolower(substr($salesrep->firstname, 0, 1)) . strtolower(substr($salesrep->lastname, 0));
|
||||||
|
} else {
|
||||||
|
$salesrep->login=strtolower($salesrep->firstname);
|
||||||
|
}
|
||||||
$salesrep->login=preg_replace('/ /', '', $salesrep->login);
|
$salesrep->login=preg_replace('/ /', '', $salesrep->login);
|
||||||
$salesrep->fetch(0, $salesrep->login);
|
$salesrep->fetch(0, $salesrep->login);
|
||||||
|
|
||||||
$result = $object->add_commercial($user, $salesrep->id);
|
$result = $object->add_commercial($user, $salesrep->id);
|
||||||
if ($result < 0)
|
if ($result < 0) {
|
||||||
{
|
|
||||||
print " - Error in create link with sale representative result code = ".$result." - ".$object->errorsToString();
|
print " - Error in create link with sale representative result code = ".$result." - ".$object->errorsToString();
|
||||||
$errorrecord++;
|
$errorrecord++;
|
||||||
} else {
|
} else {
|
||||||
@ -217,8 +218,7 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
|||||||
|
|
||||||
dol_syslog("Add invoice contacts");
|
dol_syslog("Add invoice contacts");
|
||||||
// Insert an invoice contact if there is an invoice email != standard email
|
// Insert an invoice contact if there is an invoice email != standard email
|
||||||
if (! $errorrecord && $fields[27] && $fields[26] != $fields[27])
|
if (! $errorrecord && $fields[27] && $fields[26] != $fields[27]) {
|
||||||
{
|
|
||||||
$ret1=$ret2=0;
|
$ret1=$ret2=0;
|
||||||
|
|
||||||
$contact = new Contact($db);
|
$contact = new Contact($db);
|
||||||
@ -231,12 +231,10 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
|||||||
$contact->socid=$object->id;
|
$contact->socid=$object->id;
|
||||||
|
|
||||||
$ret1=$contact->create($user);
|
$ret1=$contact->create($user);
|
||||||
if ($ret1 > 0)
|
if ($ret1 > 0) {
|
||||||
{
|
|
||||||
//$ret2=$contact->add_contact($object->id, 'BILLING');
|
//$ret2=$contact->add_contact($object->id, 'BILLING');
|
||||||
}
|
}
|
||||||
if ($ret1 < 0 || $ret2 < 0)
|
if ($ret1 < 0 || $ret2 < 0) {
|
||||||
{
|
|
||||||
print " - Error in create contact result code = ".$ret1." ".$ret2." - ".$object->errorsToString();
|
print " - Error in create contact result code = ".$ret1." ".$ret2." - ".$object->errorsToString();
|
||||||
$errorrecord++;
|
$errorrecord++;
|
||||||
} else {
|
} else {
|
||||||
@ -246,8 +244,7 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
|||||||
|
|
||||||
dol_syslog("Add delivery contacts");
|
dol_syslog("Add delivery contacts");
|
||||||
// Insert a delivery contact
|
// Insert a delivery contact
|
||||||
if (! $errorrecord && $fields[47])
|
if (! $errorrecord && $fields[47]) {
|
||||||
{
|
|
||||||
$ret1=$ret2=0;
|
$ret1=$ret2=0;
|
||||||
|
|
||||||
$contact2 = new Contact($db);
|
$contact2 = new Contact($db);
|
||||||
@ -263,12 +260,10 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
|||||||
$contact2->array_options['options_anazoneliv']=price2num($fields[53]);
|
$contact2->array_options['options_anazoneliv']=price2num($fields[53]);
|
||||||
|
|
||||||
$ret1=$contact2->create($user);
|
$ret1=$contact2->create($user);
|
||||||
if ($ret1 > 0)
|
if ($ret1 > 0) {
|
||||||
{
|
|
||||||
//$ret2=$contact2->add_contact($object->id, 'SHIPPING');
|
//$ret2=$contact2->add_contact($object->id, 'SHIPPING');
|
||||||
}
|
}
|
||||||
if ($ret1 < 0 || $ret2 < 0)
|
if ($ret1 < 0 || $ret2 < 0) {
|
||||||
{
|
|
||||||
print " - Error in create contact result code = ".$ret1." ".$ret2." - ".$object->errorsToString();
|
print " - Error in create contact result code = ".$ret1." ".$ret2." - ".$object->errorsToString();
|
||||||
$errorrecord++;
|
$errorrecord++;
|
||||||
} else {
|
} else {
|
||||||
@ -279,8 +274,7 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
|||||||
|
|
||||||
print "\n";
|
print "\n";
|
||||||
|
|
||||||
if ($errorrecord)
|
if ($errorrecord) {
|
||||||
{
|
|
||||||
fwrite($fhandleerr, 'Error on record nb '.$i." - ".$object->errorsToString()."\n");
|
fwrite($fhandleerr, 'Error on record nb '.$i." - ".$object->errorsToString()."\n");
|
||||||
$error++; // $errorrecord will be reset
|
$error++; // $errorrecord will be reset
|
||||||
}
|
}
|
||||||
@ -293,8 +287,7 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
|||||||
// commit or rollback
|
// commit or rollback
|
||||||
print "Nb of lines qualified: ".$nboflines."\n";
|
print "Nb of lines qualified: ".$nboflines."\n";
|
||||||
print "Nb of errors: ".$error."\n";
|
print "Nb of errors: ".$error."\n";
|
||||||
if ($mode != 'confirmforced' && ($error || $mode != 'confirm'))
|
if ($mode != 'confirmforced' && ($error || $mode != 'confirm')) {
|
||||||
{
|
|
||||||
print "Rollback any changes.\n";
|
print "Rollback any changes.\n";
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -79,30 +79,26 @@ if (! file_exists($filepath)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$ret=$user->fetch('', 'admin');
|
$ret=$user->fetch('', 'admin');
|
||||||
if (! $ret > 0)
|
if (! $ret > 0) {
|
||||||
{
|
|
||||||
print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
|
print 'A user with login "admin" and all permissions must be created to use this script.'."\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
$user->getrights();
|
$user->getrights();
|
||||||
|
|
||||||
// Ask confirmation
|
// Ask confirmation
|
||||||
if (! $confirmed)
|
if (! $confirmed) {
|
||||||
{
|
|
||||||
print "Hit Enter to continue or CTRL+C to stop...\n";
|
print "Hit Enter to continue or CTRL+C to stop...\n";
|
||||||
$input = trim(fgets(STDIN));
|
$input = trim(fgets(STDIN));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Open input and output files
|
// Open input and output files
|
||||||
$fhandle = fopen($filepath, 'r');
|
$fhandle = fopen($filepath, 'r');
|
||||||
if (! $fhandle)
|
if (! $fhandle) {
|
||||||
{
|
|
||||||
print 'Error: Failed to open file '.$filepath."\n";
|
print 'Error: Failed to open file '.$filepath."\n";
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
$fhandleerr = fopen($filepatherr, 'w');
|
$fhandleerr = fopen($filepatherr, 'w');
|
||||||
if (! $fhandleerr)
|
if (! $fhandleerr) {
|
||||||
{
|
|
||||||
print 'Error: Failed to open file '.$filepatherr."\n";
|
print 'Error: Failed to open file '.$filepatherr."\n";
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@ -114,13 +110,16 @@ $db->begin();
|
|||||||
|
|
||||||
$i=0;
|
$i=0;
|
||||||
$nboflines=0;
|
$nboflines=0;
|
||||||
while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape)) {
|
||||||
{
|
|
||||||
$i++;
|
$i++;
|
||||||
$errorrecord=0;
|
$errorrecord=0;
|
||||||
|
|
||||||
if ($startlinenb && $i < $startlinenb) continue;
|
if ($startlinenb && $i < $startlinenb) {
|
||||||
if ($endlinenb && $i > $endlinenb) continue;
|
continue;
|
||||||
|
}
|
||||||
|
if ($endlinenb && $i > $endlinenb) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$nboflines++;
|
$nboflines++;
|
||||||
|
|
||||||
@ -130,16 +129,18 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
|||||||
$tmp=explode(' ', $fields[3], 2);
|
$tmp=explode(' ', $fields[3], 2);
|
||||||
$object->firstname = trim($tmp[0]);
|
$object->firstname = trim($tmp[0]);
|
||||||
$object->lastname = trim($tmp[1]);
|
$object->lastname = trim($tmp[1]);
|
||||||
if ($object->lastname) $object->login = strtolower(substr($object->firstname, 0, 1)) . strtolower(substr($object->lastname, 0));
|
if ($object->lastname) {
|
||||||
else $object->login=strtolower($object->firstname);
|
$object->login = strtolower(substr($object->firstname, 0, 1)) . strtolower(substr($object->lastname, 0));
|
||||||
|
} else {
|
||||||
|
$object->login=strtolower($object->firstname);
|
||||||
|
}
|
||||||
$object->login=preg_replace('/ /', '', $object->login);
|
$object->login=preg_replace('/ /', '', $object->login);
|
||||||
$object->password = 'init';
|
$object->password = 'init';
|
||||||
|
|
||||||
print "Process line nb ".$i.", login ".$object->login;
|
print "Process line nb ".$i.", login ".$object->login;
|
||||||
|
|
||||||
$ret=$object->create($user);
|
$ret=$object->create($user);
|
||||||
if ($ret < 0)
|
if ($ret < 0) {
|
||||||
{
|
|
||||||
print " - Error in create result code = ".$ret." - ".$object->errorsToString();
|
print " - Error in create result code = ".$ret." - ".$object->errorsToString();
|
||||||
$errorrecord++;
|
$errorrecord++;
|
||||||
} else {
|
} else {
|
||||||
@ -148,8 +149,7 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
|||||||
|
|
||||||
print "\n";
|
print "\n";
|
||||||
|
|
||||||
if ($errorrecord)
|
if ($errorrecord) {
|
||||||
{
|
|
||||||
fwrite($fhandleerr, 'Error on record nb '.$i." - ".$object->errorsToString()."\n");
|
fwrite($fhandleerr, 'Error on record nb '.$i." - ".$object->errorsToString()."\n");
|
||||||
$error++; // $errorrecord will be reset
|
$error++; // $errorrecord will be reset
|
||||||
}
|
}
|
||||||
@ -162,8 +162,7 @@ while ($fields=fgetcsv($fhandle, $linelength, $delimiter, $enclosure, $escape))
|
|||||||
// commit or rollback
|
// commit or rollback
|
||||||
print "Nb of lines qualified: ".$nboflines."\n";
|
print "Nb of lines qualified: ".$nboflines."\n";
|
||||||
print "Nb of errors: ".$error."\n";
|
print "Nb of errors: ".$error."\n";
|
||||||
if ($mode != 'confirmforced' && ($error || $mode != 'confirm'))
|
if ($mode != 'confirmforced' && ($error || $mode != 'confirm')) {
|
||||||
{
|
|
||||||
print "Rollback any changes.\n";
|
print "Rollback any changes.\n";
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -188,18 +188,15 @@ if (empty($mode) || ! in_array($mode, array('test','confirm'))) {
|
|||||||
print "option can be ".implode(',', array_keys($sqls))."\n";
|
print "option can be ".implode(',', array_keys($sqls))."\n";
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
if (empty($option))
|
if (empty($option)) {
|
||||||
{
|
|
||||||
print "Usage: $script_file (test|confirm) (all|option) (all|YYYY-MM-DD) [dbtype dbhost dbuser dbpassword dbname dbport]\n";
|
print "Usage: $script_file (test|confirm) (all|option) (all|YYYY-MM-DD) [dbtype dbhost dbuser dbpassword dbname dbport]\n";
|
||||||
print "\n";
|
print "\n";
|
||||||
print "option must be defined with a value in list ".implode(',', array_keys($sqls))."\n";
|
print "option must be defined with a value in list ".implode(',', array_keys($sqls))."\n";
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
if ($option != 'all')
|
if ($option != 'all') {
|
||||||
{
|
|
||||||
$listofoptions=explode(',', $option);
|
$listofoptions=explode(',', $option);
|
||||||
foreach ($listofoptions as $cursoroption)
|
foreach ($listofoptions as $cursoroption) {
|
||||||
{
|
|
||||||
if (! in_array($cursoroption, array_keys($sqls))) {
|
if (! in_array($cursoroption, array_keys($sqls))) {
|
||||||
print "Usage: $script_file (test|confirm) (all|option) (all|YYYY-MM-DD) [dbtype dbhost dbuser dbpassword dbname dbport]\n";
|
print "Usage: $script_file (test|confirm) (all|option) (all|YYYY-MM-DD) [dbtype dbhost dbuser dbpassword dbname dbport]\n";
|
||||||
print "\n";
|
print "\n";
|
||||||
@ -216,11 +213,12 @@ if (empty($date) || (! preg_match('/\d\d\d\d\-\d\d\-\d\d$/', $date) && $date !=
|
|||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($date == 'all') $date = '2199-01-01';
|
if ($date == 'all') {
|
||||||
|
$date = '2199-01-01';
|
||||||
|
}
|
||||||
|
|
||||||
// Replace database handler
|
// Replace database handler
|
||||||
if (! empty($argv[4]))
|
if (! empty($argv[4])) {
|
||||||
{
|
|
||||||
$db->close();
|
$db->close();
|
||||||
unset($db);
|
unset($db);
|
||||||
$db=getDoliDBInstance($argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9]);
|
$db=getDoliDBInstance($argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9]);
|
||||||
@ -229,8 +227,7 @@ if (! empty($argv[4]))
|
|||||||
|
|
||||||
//var_dump($user->db->database_name);
|
//var_dump($user->db->database_name);
|
||||||
$ret=$user->fetch('', 'admin');
|
$ret=$user->fetch('', 'admin');
|
||||||
if (! $ret > 0)
|
if (! $ret > 0) {
|
||||||
{
|
|
||||||
print 'An admin user with login "admin" must exists to use this script.'."\n";
|
print 'An admin user with login "admin" must exists to use this script.'."\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
@ -245,8 +242,7 @@ print "Database port = ".$db->database_port."\n";
|
|||||||
print "User = ".$db->database_user."\n";
|
print "User = ".$db->database_user."\n";
|
||||||
print "\n";
|
print "\n";
|
||||||
|
|
||||||
if (! $confirmed)
|
if (! $confirmed) {
|
||||||
{
|
|
||||||
print "Hit Enter to continue or CTRL+C to stop...\n";
|
print "Hit Enter to continue or CTRL+C to stop...\n";
|
||||||
$input = trim(fgets(STDIN));
|
$input = trim(fgets(STDIN));
|
||||||
}
|
}
|
||||||
@ -264,10 +260,8 @@ function processfamily($family, $date)
|
|||||||
global $db, $sqls;
|
global $db, $sqls;
|
||||||
|
|
||||||
$error=0;
|
$error=0;
|
||||||
foreach ($sqls[$family] as $sql)
|
foreach ($sqls[$family] as $sql) {
|
||||||
{
|
if (preg_match('/^@/', $sql)) {
|
||||||
if (preg_match('/^@/', $sql))
|
|
||||||
{
|
|
||||||
$newfamily=preg_replace('/@/', '', $sql);
|
$newfamily=preg_replace('/@/', '', $sql);
|
||||||
processfamily($newfamily, $date);
|
processfamily($newfamily, $date);
|
||||||
continue;
|
continue;
|
||||||
@ -278,51 +272,51 @@ function processfamily($family, $date)
|
|||||||
print "Run sql: ".$sql."\n";
|
print "Run sql: ".$sql."\n";
|
||||||
|
|
||||||
$resql=$db->query($sql);
|
$resql=$db->query($sql);
|
||||||
if (! $resql)
|
if (! $resql) {
|
||||||
{
|
if ($db->errno() != 'DB_ERROR_NOSUCHTABLE') {
|
||||||
if ($db->errno() != 'DB_ERROR_NOSUCHTABLE')
|
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($error)
|
if ($error) {
|
||||||
{
|
|
||||||
print $db->lasterror();
|
print $db->lasterror();
|
||||||
$error++;
|
$error++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($error) return -1;
|
if ($error) {
|
||||||
else return 1;
|
return -1;
|
||||||
|
} else {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
$listofoptions=explode(',', $option);
|
$listofoptions=explode(',', $option);
|
||||||
foreach ($listofoptions as $cursoroption)
|
foreach ($listofoptions as $cursoroption) {
|
||||||
{
|
|
||||||
$oldfamily='';
|
$oldfamily='';
|
||||||
foreach ($sqls as $family => $familysql)
|
foreach ($sqls as $family => $familysql) {
|
||||||
{
|
if ($cursoroption && $cursoroption != 'all' && $cursoroption != $family) {
|
||||||
if ($cursoroption && $cursoroption != 'all' && $cursoroption != $family) continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ($family != $oldfamily) print "Process action for family ".$family."\n";
|
if ($family != $oldfamily) {
|
||||||
|
print "Process action for family ".$family."\n";
|
||||||
|
}
|
||||||
$oldfamily = $family;
|
$oldfamily = $family;
|
||||||
|
|
||||||
$result=processfamily($family, $date);
|
$result=processfamily($family, $date);
|
||||||
if ($result < 0)
|
if ($result < 0) {
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($error || $mode != 'confirm')
|
if ($error || $mode != 'confirm') {
|
||||||
{
|
|
||||||
print "\nRollback any changes.\n";
|
print "\nRollback any changes.\n";
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -41,14 +41,30 @@ $passwordbase=isset($argv[6])?$argv[6]:'';
|
|||||||
|
|
||||||
// Include Dolibarr environment
|
// Include Dolibarr environment
|
||||||
$res=0;
|
$res=0;
|
||||||
if (! $res && file_exists($path."../../master.inc.php")) $res=@include $path."../../master.inc.php";
|
if (! $res && file_exists($path."../../master.inc.php")) {
|
||||||
if (! $res && file_exists($path."../../htdocs/master.inc.php")) $res=@include $path."../../htdocs/master.inc.php";
|
$res=@include $path."../../master.inc.php";
|
||||||
if (! $res && file_exists("../master.inc.php")) $res=@include "../master.inc.php";
|
}
|
||||||
if (! $res && file_exists("../../master.inc.php")) $res=@include "../../master.inc.php";
|
if (! $res && file_exists($path."../../htdocs/master.inc.php")) {
|
||||||
if (! $res && file_exists("../../../master.inc.php")) $res=@include "../../../master.inc.php";
|
$res=@include $path."../../htdocs/master.inc.php";
|
||||||
if (! $res && preg_match('/\/nltechno([^\/]*)\//', $_SERVER["PHP_SELF"], $reg)) $res=@include $path."../../../dolibarr".$reg[1]."/htdocs/master.inc.php"; // Used on dev env only
|
}
|
||||||
if (! $res && preg_match('/\/nltechno([^\/]*)\//', $_SERVER["PHP_SELF"], $reg)) $res=@include "../../../dolibarr".$reg[1]."/htdocs/master.inc.php"; // Used on dev env only
|
if (! $res && file_exists("../master.inc.php")) {
|
||||||
if (! $res) die("Failed to include master.inc.php file\n");
|
$res=@include "../master.inc.php";
|
||||||
|
}
|
||||||
|
if (! $res && file_exists("../../master.inc.php")) {
|
||||||
|
$res=@include "../../master.inc.php";
|
||||||
|
}
|
||||||
|
if (! $res && file_exists("../../../master.inc.php")) {
|
||||||
|
$res=@include "../../../master.inc.php";
|
||||||
|
}
|
||||||
|
if (! $res && preg_match('/\/nltechno([^\/]*)\//', $_SERVER["PHP_SELF"], $reg)) {
|
||||||
|
$res=@include $path."../../../dolibarr".$reg[1]."/htdocs/master.inc.php"; // Used on dev env only
|
||||||
|
}
|
||||||
|
if (! $res && preg_match('/\/nltechno([^\/]*)\//', $_SERVER["PHP_SELF"], $reg)) {
|
||||||
|
$res=@include "../../../dolibarr".$reg[1]."/htdocs/master.inc.php"; // Used on dev env only
|
||||||
|
}
|
||||||
|
if (! $res) {
|
||||||
|
die("Failed to include master.inc.php file\n");
|
||||||
|
}
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
|
|
||||||
|
|
||||||
@ -58,15 +74,13 @@ include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
|||||||
|
|
||||||
$login='';
|
$login='';
|
||||||
$server='';
|
$server='';
|
||||||
if (preg_match('/^(.*)@(.*):(.*)$/', $sourceserver, $reg))
|
if (preg_match('/^(.*)@(.*):(.*)$/', $sourceserver, $reg)) {
|
||||||
{
|
|
||||||
$login=$reg[1];
|
$login=$reg[1];
|
||||||
$server=$reg[2];
|
$server=$reg[2];
|
||||||
$sourcefile=$reg[3];
|
$sourcefile=$reg[3];
|
||||||
$targetfile=basename($sourcefile);
|
$targetfile=basename($sourcefile);
|
||||||
}
|
}
|
||||||
if (empty($sourceserver) || empty($server) || empty($login) || empty($sourcefile) || empty($password) || empty($database) || empty($loginbase) || empty($passwordbase))
|
if (empty($sourceserver) || empty($server) || empty($login) || empty($sourcefile) || empty($password) || empty($database) || empty($loginbase) || empty($passwordbase)) {
|
||||||
{
|
|
||||||
print "Usage: $script_file login@server:/src/file.(sql|gz|bz2) passssh databaseserver databasename loginbase passbase\n";
|
print "Usage: $script_file login@server:/src/file.(sql|gz|bz2) passssh databaseserver databasename loginbase passbase\n";
|
||||||
print "Return code: 0 if success, <>0 if error\n";
|
print "Return code: 0 if success, <>0 if error\n";
|
||||||
print "Warning, this script may take a long time.\n";
|
print "Warning, this script may take a long time.\n";
|
||||||
@ -88,14 +102,11 @@ if (! function_exists("ssh2_connect")) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$connection = ssh2_connect($server, 22);
|
$connection = ssh2_connect($server, 22);
|
||||||
if ($connection)
|
if ($connection) {
|
||||||
{
|
if (! @ssh2_auth_password($connection, $login, $password)) {
|
||||||
if (! @ssh2_auth_password($connection, $login, $password))
|
|
||||||
{
|
|
||||||
dol_syslog("Could not authenticate with username ".$login." . and password ".preg_replace('/./', '*', $password), LOG_ERR);
|
dol_syslog("Could not authenticate with username ".$login." . and password ".preg_replace('/./', '*', $password), LOG_ERR);
|
||||||
exit(-5);
|
exit(-5);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
//$stream = ssh2_exec($connection, '/usr/bin/php -i');
|
//$stream = ssh2_exec($connection, '/usr/bin/php -i');
|
||||||
/*
|
/*
|
||||||
print "Generate dump ".$filesys1.'.bz2'."\n";
|
print "Generate dump ".$filesys1.'.bz2'."\n";
|
||||||
@ -111,12 +122,10 @@ if ($connection)
|
|||||||
ssh2_scp_recv($connection, $sourcefile, $targetdir.$targetfile);
|
ssh2_scp_recv($connection, $sourcefile, $targetdir.$targetfile);
|
||||||
|
|
||||||
$fullcommand="cat ".$targetdir.$targetfile." | mysql -h".$databaseserver." -u".$loginbase." -p".$passwordbase." -D ".$database;
|
$fullcommand="cat ".$targetdir.$targetfile." | mysql -h".$databaseserver." -u".$loginbase." -p".$passwordbase." -D ".$database;
|
||||||
if (preg_match('/\.bz2$/', $targetfile))
|
if (preg_match('/\.bz2$/', $targetfile)) {
|
||||||
{
|
|
||||||
$fullcommand="bzip2 -c -d ".$targetdir.$targetfile." | mysql -h".$databaseserver." -u".$loginbase." -p".$passwordbase." -D ".$database;
|
$fullcommand="bzip2 -c -d ".$targetdir.$targetfile." | mysql -h".$databaseserver." -u".$loginbase." -p".$passwordbase." -D ".$database;
|
||||||
}
|
}
|
||||||
if (preg_match('/\.gz$/', $targetfile))
|
if (preg_match('/\.gz$/', $targetfile)) {
|
||||||
{
|
|
||||||
$fullcommand="gzip -d ".$targetdir.$targetfile." | mysql -h".$databaseserver." -u".$loginbase." -p".$passwordbase." -D ".$database;
|
$fullcommand="gzip -d ".$targetdir.$targetfile." | mysql -h".$databaseserver." -u".$loginbase." -p".$passwordbase." -D ".$database;
|
||||||
}
|
}
|
||||||
print "Load dump with ".$fullcommand."\n";
|
print "Load dump with ".$fullcommand."\n";
|
||||||
@ -124,13 +133,14 @@ if ($connection)
|
|||||||
$return_var=0;
|
$return_var=0;
|
||||||
print strftime("%Y%m%d-%H%M%S").' '.$fullcommand."\n";
|
print strftime("%Y%m%d-%H%M%S").' '.$fullcommand."\n";
|
||||||
exec($fullcommand, $output, $return_var);
|
exec($fullcommand, $output, $return_var);
|
||||||
foreach ($output as $line) print $line."\n";
|
foreach ($output as $line) {
|
||||||
|
print $line."\n";
|
||||||
|
}
|
||||||
|
|
||||||
//ssh2_sftp_unlink($sftp, $fileinstalllock);
|
//ssh2_sftp_unlink($sftp, $fileinstalllock);
|
||||||
//print $output;
|
//print $output;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
print 'Failed to connect to ssh2 to '.$server;
|
print 'Failed to connect to ssh2 to '.$server;
|
||||||
exit(-6);
|
exit(-6);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -36,14 +36,30 @@ $confirm=isset($argv[1])?$argv[1]:'';
|
|||||||
|
|
||||||
// Include Dolibarr environment
|
// Include Dolibarr environment
|
||||||
$res=0;
|
$res=0;
|
||||||
if (! $res && file_exists($path."../../master.inc.php")) $res=@include $path."../../master.inc.php";
|
if (! $res && file_exists($path."../../master.inc.php")) {
|
||||||
if (! $res && file_exists($path."../../htdocs/master.inc.php")) $res=@include $path."../../htdocs/master.inc.php";
|
$res=@include $path."../../master.inc.php";
|
||||||
if (! $res && file_exists("../master.inc.php")) $res=@include "../master.inc.php";
|
}
|
||||||
if (! $res && file_exists("../../master.inc.php")) $res=@include "../../master.inc.php";
|
if (! $res && file_exists($path."../../htdocs/master.inc.php")) {
|
||||||
if (! $res && file_exists("../../../master.inc.php")) $res=@include "../../../master.inc.php";
|
$res=@include $path."../../htdocs/master.inc.php";
|
||||||
if (! $res && preg_match('/\/nltechno([^\/]*)\//', $_SERVER["PHP_SELF"], $reg)) $res=@include $path."../../../dolibarr".$reg[1]."/htdocs/master.inc.php"; // Used on dev env only
|
}
|
||||||
if (! $res && preg_match('/\/nltechno([^\/]*)\//', $_SERVER["PHP_SELF"], $reg)) $res=@include "../../../dolibarr".$reg[1]."/htdocs/master.inc.php"; // Used on dev env only
|
if (! $res && file_exists("../master.inc.php")) {
|
||||||
if (! $res) die("Failed to include master.inc.php file\n");
|
$res=@include "../master.inc.php";
|
||||||
|
}
|
||||||
|
if (! $res && file_exists("../../master.inc.php")) {
|
||||||
|
$res=@include "../../master.inc.php";
|
||||||
|
}
|
||||||
|
if (! $res && file_exists("../../../master.inc.php")) {
|
||||||
|
$res=@include "../../../master.inc.php";
|
||||||
|
}
|
||||||
|
if (! $res && preg_match('/\/nltechno([^\/]*)\//', $_SERVER["PHP_SELF"], $reg)) {
|
||||||
|
$res=@include $path."../../../dolibarr".$reg[1]."/htdocs/master.inc.php"; // Used on dev env only
|
||||||
|
}
|
||||||
|
if (! $res && preg_match('/\/nltechno([^\/]*)\//', $_SERVER["PHP_SELF"], $reg)) {
|
||||||
|
$res=@include "../../../dolibarr".$reg[1]."/htdocs/master.inc.php"; // Used on dev env only
|
||||||
|
}
|
||||||
|
if (! $res) {
|
||||||
|
die("Failed to include master.inc.php file\n");
|
||||||
|
}
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
|
|
||||||
|
|
||||||
@ -53,8 +69,7 @@ include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
|||||||
|
|
||||||
print "***** ".$script_file." *****\n";
|
print "***** ".$script_file." *****\n";
|
||||||
print "Update dates to current year for database name = ".$db->database_name."\n";
|
print "Update dates to current year for database name = ".$db->database_name."\n";
|
||||||
if (empty($confirm))
|
if (empty($confirm)) {
|
||||||
{
|
|
||||||
print "Usage: $script_file confirm\n";
|
print "Usage: $script_file confirm\n";
|
||||||
print "Return code: 0 if success, <>0 if error\n";
|
print "Return code: 0 if success, <>0 if error\n";
|
||||||
exit(-1);
|
exit(-1);
|
||||||
@ -73,53 +88,52 @@ $tables=array(
|
|||||||
'commande_fournisseur'=>array(0=>'date_commande', 1=>'date_valid', 3=>'date_creation', 4=>'date_approve', 5=>'date_approve2', 6=>'date_livraison'),
|
'commande_fournisseur'=>array(0=>'date_commande', 1=>'date_valid', 3=>'date_creation', 4=>'date_approve', 5=>'date_approve2', 6=>'date_livraison'),
|
||||||
'supplier_proposal'=>array(0=>'datec', 1=>'date_valid', 2=>'date_cloture'),
|
'supplier_proposal'=>array(0=>'datec', 1=>'date_valid', 2=>'date_cloture'),
|
||||||
'expensereport'=>array(0=>'date_debut', 1=>'date_fin', 2=>'date_create', 3=>'date_valid', 4=>'date_approve', 5=>'date_refuse', 6=>'date_cancel'),
|
'expensereport'=>array(0=>'date_debut', 1=>'date_fin', 2=>'date_create', 3=>'date_valid', 4=>'date_approve', 5=>'date_refuse', 6=>'date_cancel'),
|
||||||
'holiday'=>array(0=>'date_debut', 1=>'date_fin', 2=>'date_create', 3=>'date_valid', 5=>'date_refuse', 6=>'date_cancel')
|
'holiday'=>array(0=>'date_debut', 1=>'date_fin', 2=>'date_create', 3=>'date_valid', 5=>'date_refuse', 6=>'date_cancel'),
|
||||||
|
'ticket'=>array(0=>'datec', 1=>'date_read', 2=>'date_close')
|
||||||
);
|
);
|
||||||
|
|
||||||
$year=2010;
|
$year=2010;
|
||||||
$currentyear=$tmp['year'];
|
$currentyear=$tmp['year'];
|
||||||
while ($year <= $currentyear)
|
while ($year <= $currentyear) {
|
||||||
{
|
|
||||||
//$year=2021;
|
//$year=2021;
|
||||||
$delta1=($currentyear - $year);
|
$delta1=($currentyear - $year);
|
||||||
$delta2=($currentyear - $year - 1);
|
$delta2=($currentyear - $year - 1);
|
||||||
//$delta=-1;
|
//$delta=-1;
|
||||||
|
|
||||||
if ($delta1)
|
if ($delta1) {
|
||||||
{
|
foreach ($tables as $tablekey => $tableval) {
|
||||||
foreach ($tables as $tablekey => $tableval)
|
|
||||||
{
|
|
||||||
print "Correct ".$tablekey." for year ".$year." and move them to current year ".$currentyear." ";
|
print "Correct ".$tablekey." for year ".$year." and move them to current year ".$currentyear." ";
|
||||||
$sql="select rowid from ".MAIN_DB_PREFIX.$tablekey." where ".$tableval[0]." between '".$year."-01-01' and '".$year."-12-31' and ".$tableval[0]." < DATE_ADD(NOW(), INTERVAL -1 YEAR)";
|
$sql="select rowid from ".MAIN_DB_PREFIX.$tablekey." where ".$tableval[0]." between '".$year."-01-01' and '".$year."-12-31' and ".$tableval[0]." < DATE_ADD(NOW(), INTERVAL -1 YEAR)";
|
||||||
//$sql="select rowid from ".MAIN_DB_PREFIX.$tablekey." where ".$tableval[0]." between '".$year."-01-01' and '".$year."-12-31' and ".$tableval[0]." > NOW()";
|
//$sql="select rowid from ".MAIN_DB_PREFIX.$tablekey." where ".$tableval[0]." between '".$year."-01-01' and '".$year."-12-31' and ".$tableval[0]." > NOW()";
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql)
|
if ($resql) {
|
||||||
{
|
|
||||||
$num = $db->num_rows($resql);
|
$num = $db->num_rows($resql);
|
||||||
$i=0;
|
$i=0;
|
||||||
while ($i < $num)
|
while ($i < $num) {
|
||||||
{
|
|
||||||
$obj=$db->fetch_object($resql);
|
$obj=$db->fetch_object($resql);
|
||||||
if ($obj)
|
if ($obj) {
|
||||||
{
|
|
||||||
print ".";
|
print ".";
|
||||||
$sql2="UPDATE ".MAIN_DB_PREFIX.$tablekey." set ";
|
$sql2="UPDATE ".MAIN_DB_PREFIX.$tablekey." set ";
|
||||||
$j=0;
|
$j=0;
|
||||||
foreach ($tableval as $field)
|
foreach ($tableval as $field) {
|
||||||
{
|
if ($j) {
|
||||||
if ($j) $sql2.=", ";
|
$sql2.=", ";
|
||||||
|
}
|
||||||
$sql2.= $field." = ".$db->ifsql("DATE_ADD(".$field.", INTERVAL ".$delta1." YEAR) > NOW()", "DATE_ADD(".$field.", INTERVAL ".$delta2." YEAR)", "DATE_ADD(".$field.", INTERVAL ".$delta1." YEAR)");
|
$sql2.= $field." = ".$db->ifsql("DATE_ADD(".$field.", INTERVAL ".$delta1." YEAR) > NOW()", "DATE_ADD(".$field.", INTERVAL ".$delta2." YEAR)", "DATE_ADD(".$field.", INTERVAL ".$delta1." YEAR)");
|
||||||
$j++;
|
$j++;
|
||||||
}
|
}
|
||||||
$sql2.=" WHERE rowid = ".$obj->rowid;
|
$sql2.=" WHERE rowid = ".$obj->rowid;
|
||||||
//print $sql2."\n";
|
//print $sql2."\n";
|
||||||
$resql2 = $db->query($sql2);
|
$resql2 = $db->query($sql2);
|
||||||
if (! $resql2) dol_print_error($db);
|
if (! $resql2) {
|
||||||
|
dol_print_error($db);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
dol_print_error($db);
|
||||||
}
|
}
|
||||||
else dol_print_error($db);
|
|
||||||
print "\n";
|
print "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
<exclude-pattern type="relative">build/html</exclude-pattern>
|
<exclude-pattern type="relative">build/html</exclude-pattern>
|
||||||
<exclude-pattern type="relative">build/aps</exclude-pattern>
|
<exclude-pattern type="relative">build/aps</exclude-pattern>
|
||||||
<exclude-pattern type="relative">dev/tools/test/namespacemig</exclude-pattern>
|
<exclude-pattern type="relative">dev/tools/test/namespacemig</exclude-pattern>
|
||||||
<exclude-pattern type="relative">dev/initdata/dbf/includes</exclude-pattern>
|
<!-- <exclude-pattern type="relative">dev/initdata/dbf/includes</exclude-pattern> -->
|
||||||
<exclude-pattern type="relative">documents</exclude-pattern>
|
<exclude-pattern type="relative">documents</exclude-pattern>
|
||||||
<exclude-pattern type="relative">htdocs/core/class/lessc.class.php</exclude-pattern>
|
<exclude-pattern type="relative">htdocs/core/class/lessc.class.php</exclude-pattern>
|
||||||
<exclude-pattern type="relative">htdocs/custom</exclude-pattern>
|
<exclude-pattern type="relative">htdocs/custom</exclude-pattern>
|
||||||
@ -104,9 +104,9 @@
|
|||||||
</rule>
|
</rule>
|
||||||
-->
|
-->
|
||||||
<!-- We want to allow 'if () { ...small code... }' on same line for better code compacity and readability -->
|
<!-- We want to allow 'if () { ...small code... }' on same line for better code compacity and readability -->
|
||||||
<rule ref="Generic.Formatting.DisallowMultipleStatements">
|
<!-- <rule ref="Generic.Formatting.DisallowMultipleStatements">
|
||||||
<severity>0</severity>
|
<severity>0</severity>
|
||||||
</rule>
|
</rule> -->
|
||||||
|
|
||||||
|
|
||||||
<!-- Check assignement have the = align on each line. Have 20 chars padding maximum and always show as errors -->
|
<!-- Check assignement have the = align on each line. Have 20 chars padding maximum and always show as errors -->
|
||||||
@ -174,8 +174,8 @@
|
|||||||
<rule ref="Generic.Strings.UnnecessaryStringConcat.Found">
|
<rule ref="Generic.Strings.UnnecessaryStringConcat.Found">
|
||||||
</rule>
|
</rule>
|
||||||
|
|
||||||
<!-- Disallow usage of tab -->
|
<!-- Disallow usage of space -->
|
||||||
<!-- <rule ref="Generic.WhiteSpace.DisallowTabIndent" /> -->
|
<rule ref="Generic.WhiteSpace.DisallowSpaceIndent" />
|
||||||
|
|
||||||
<!-- Check indent are done with spaces and with correct number -->
|
<!-- Check indent are done with spaces and with correct number -->
|
||||||
<!-- Disabled as this does not support tab -->
|
<!-- Disabled as this does not support tab -->
|
||||||
@ -214,8 +214,8 @@
|
|||||||
<rule ref="Squiz.WhiteSpace.ControlStructureSpacing.SpacingAfterOpen" />
|
<rule ref="Squiz.WhiteSpace.ControlStructureSpacing.SpacingAfterOpen" />
|
||||||
<rule ref="Squiz.WhiteSpace.ControlStructureSpacing.SpacingBeforeClose" />
|
<rule ref="Squiz.WhiteSpace.ControlStructureSpacing.SpacingBeforeClose" />
|
||||||
|
|
||||||
<!-- <rule ref="Squiz.ControlStructures.ControlSignature.SpaceAfterCloseParenthesis" /> -->
|
<rule ref="Squiz.ControlStructures.ControlSignature.SpaceAfterCloseParenthesis" />
|
||||||
<!-- <rule ref="Squiz.ControlStructures.ControlSignature.SpaceAfterCloseBrace" /> -->
|
<rule ref="Squiz.ControlStructures.ControlSignature.SpaceAfterCloseBrace" />
|
||||||
<rule ref="Squiz.ControlStructures.ControlSignature.SpaceAfterKeyword" />
|
<rule ref="Squiz.ControlStructures.ControlSignature.SpaceAfterKeyword" />
|
||||||
|
|
||||||
<rule ref="Squiz.ControlStructures.ForEachLoopDeclaration.SpaceAfterOpen" />
|
<rule ref="Squiz.ControlStructures.ForEachLoopDeclaration.SpaceAfterOpen" />
|
||||||
|
|||||||
@ -48,8 +48,9 @@ if (! ($argv[1] && $argv[2])) {
|
|||||||
echo "Usage: php pg2mysql_cli.php <inputfilename> <outputfilename> [engine]\n";
|
echo "Usage: php pg2mysql_cli.php <inputfilename> <outputfilename> [engine]\n";
|
||||||
exit();
|
exit();
|
||||||
} else {
|
} else {
|
||||||
if (isset($argv[3]))
|
if (isset($argv[3])) {
|
||||||
$config['engine'] = $argv[3];
|
$config['engine'] = $argv[3];
|
||||||
|
}
|
||||||
pg2mysql_large($argv[1], $argv[2]);
|
pg2mysql_large($argv[1], $argv[2]);
|
||||||
|
|
||||||
echo <<<XHTML
|
echo <<<XHTML
|
||||||
@ -74,14 +75,18 @@ function getfieldname($l)
|
|||||||
// first check if its in nice quotes for us
|
// first check if its in nice quotes for us
|
||||||
$regs = array();
|
$regs = array();
|
||||||
if (preg_match("/`(.*)`/", $l, $regs)) {
|
if (preg_match("/`(.*)`/", $l, $regs)) {
|
||||||
if ($regs[1])
|
if ($regs[1]) {
|
||||||
return $regs[1];
|
return $regs[1];
|
||||||
else return null;
|
} else {
|
||||||
} // if its not in quotes, then it should (we hope!) be the first "word" on the line, up to the first space.
|
return null;
|
||||||
elseif (preg_match("/([^\ ]*)/", trim($l), $regs)) {
|
}
|
||||||
if ($regs[1])
|
} elseif (preg_match("/([^\ ]*)/", trim($l), $regs)) {
|
||||||
|
// if its not in quotes, then it should (we hope!) be the first "word" on the line, up to the first space.
|
||||||
|
if ($regs[1]) {
|
||||||
return $regs[1];
|
return $regs[1];
|
||||||
else return null;
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -94,13 +99,15 @@ function getfieldname($l)
|
|||||||
*/
|
*/
|
||||||
function formatsize($s)
|
function formatsize($s)
|
||||||
{
|
{
|
||||||
if ($s < pow(2, 14))
|
if ($s < pow(2, 14)) {
|
||||||
return "{$s}B";
|
return "{$s}B";
|
||||||
elseif ($s < pow(2, 20))
|
} elseif ($s < pow(2, 20)) {
|
||||||
return sprintf("%.1f", round($s / 1024, 1)) . "K";
|
return sprintf("%.1f", round($s / 1024, 1)) . "K";
|
||||||
elseif ($s < pow(2, 30))
|
} elseif ($s < pow(2, 30)) {
|
||||||
return sprintf("%.1f", round($s / 1024 / 1024, 1)) . "M";
|
return sprintf("%.1f", round($s / 1024 / 1024, 1)) . "M";
|
||||||
else return sprintf("%.1f", round($s / 1024 / 1024 / 1024, 1)) . "G";
|
} else {
|
||||||
|
return sprintf("%.1f", round($s / 1024 / 1024 / 1024, 1)) . "G";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -141,9 +148,11 @@ function pg2mysql_large($infilename, $outfilename)
|
|||||||
$c = substr_count($instr, "'");
|
$c = substr_count($instr, "'");
|
||||||
// we have an odd number of ' marks
|
// we have an odd number of ' marks
|
||||||
if ($c % 2 != 0) {
|
if ($c % 2 != 0) {
|
||||||
if ($inquotes)
|
if ($inquotes) {
|
||||||
$inquotes = false;
|
$inquotes = false;
|
||||||
else $inquotes = true;
|
} else {
|
||||||
|
$inquotes = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($linenum % 10000 == 0) {
|
if ($linenum % 10000 == 0) {
|
||||||
@ -323,9 +332,11 @@ function pg2mysql(&$input, &$arrayofprimaryalreadyintabledef, $header = true)
|
|||||||
$line = str_replace(" bool DEFAULT false", " bool DEFAULT 0", $line);
|
$line = str_replace(" bool DEFAULT false", " bool DEFAULT 0", $line);
|
||||||
if (preg_match("/ character varying\(([0-9]*)\)/", $line, $regs)) {
|
if (preg_match("/ character varying\(([0-9]*)\)/", $line, $regs)) {
|
||||||
$num = $regs[1];
|
$num = $regs[1];
|
||||||
if ($num <= 255)
|
if ($num <= 255) {
|
||||||
$line = preg_replace("/ character varying\([0-9]*\)/", " varchar($num)", $line);
|
$line = preg_replace("/ character varying\([0-9]*\)/", " varchar($num)", $line);
|
||||||
else $line = preg_replace("/ character varying\([0-9]*\)/", " text", $line);
|
} else {
|
||||||
|
$line = preg_replace("/ character varying\([0-9]*\)/", " text", $line);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// character varying with no size, we will default to varchar(255)
|
// character varying with no size, we will default to varchar(255)
|
||||||
if (preg_match("/ character varying/", $line)) {
|
if (preg_match("/ character varying/", $line)) {
|
||||||
@ -345,9 +356,11 @@ function pg2mysql(&$input, &$arrayofprimaryalreadyintabledef, $header = true)
|
|||||||
$line = preg_replace("/::.*$/", "\n", $line);
|
$line = preg_replace("/::.*$/", "\n", $line);
|
||||||
if (preg_match("/character\(([0-9]*)\)/", $line, $regs)) {
|
if (preg_match("/character\(([0-9]*)\)/", $line, $regs)) {
|
||||||
$num = $regs[1];
|
$num = $regs[1];
|
||||||
if ($num <= 255)
|
if ($num <= 255) {
|
||||||
$line = preg_replace("/ character\([0-9]*\)/", " varchar($num)", $line);
|
$line = preg_replace("/ character\([0-9]*\)/", " varchar($num)", $line);
|
||||||
else $line = preg_replace("/ character\([0-9]*\)/", " text", $line);
|
} else {
|
||||||
|
$line = preg_replace("/ character\([0-9]*\)/", " text", $line);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// timestamps
|
// timestamps
|
||||||
$line = str_replace(" timestamp with time zone", " datetime", $line);
|
$line = str_replace(" timestamp with time zone", " datetime", $line);
|
||||||
@ -457,9 +470,11 @@ function pg2mysql(&$input, &$arrayofprimaryalreadyintabledef, $header = true)
|
|||||||
$c = substr_count($line, "'");
|
$c = substr_count($line, "'");
|
||||||
// we have an odd number of ' marks
|
// we have an odd number of ' marks
|
||||||
if ($c % 2 != 0) {
|
if ($c % 2 != 0) {
|
||||||
if ($inquotes)
|
if ($inquotes) {
|
||||||
$inquotes = false;
|
$inquotes = false;
|
||||||
else $inquotes = true;
|
} else {
|
||||||
|
$inquotes = true;
|
||||||
|
}
|
||||||
// echo "inquotes=$inquotes\n";
|
// echo "inquotes=$inquotes\n";
|
||||||
}
|
}
|
||||||
} while (substr($lines[$linenumber], - 3, - 1) != ");" || $inquotes);
|
} while (substr($lines[$linenumber], - 3, - 1) != ");" || $inquotes);
|
||||||
@ -524,8 +539,9 @@ function pg2mysql(&$input, &$arrayofprimaryalreadyintabledef, $header = true)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (substr($line, 0, 13) == 'DROP DATABASE')
|
if (substr($line, 0, 13) == 'DROP DATABASE') {
|
||||||
$output .= $line;
|
$output .= $line;
|
||||||
|
}
|
||||||
|
|
||||||
if (substr($line, 0, 15) == 'CREATE DATABASE') {
|
if (substr($line, 0, 15) == 'CREATE DATABASE') {
|
||||||
$matches = array();
|
$matches = array();
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
use Dolibarr\Aaa as Aaa;
|
use Dolibarr\Aaa as Aaa;
|
||||||
use function Dolibarr\faaa as faaa; // Need php 5.6+
|
use function Dolibarr\faaa as faaa; // Need php 5.6+
|
||||||
|
|
||||||
//use const Dolibarr\AAA;
|
//use const Dolibarr\AAA;
|
||||||
|
|
||||||
//use Bbb as Bbb;
|
//use Bbb as Bbb;
|
||||||
|
|||||||
@ -3,10 +3,11 @@
|
|||||||
$a = microtime(true);
|
$a = microtime(true);
|
||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
while ($i < 1000000)
|
while ($i < 1000000) {
|
||||||
{
|
|
||||||
$key = '1234567890111213141516171819'.$i;
|
$key = '1234567890111213141516171819'.$i;
|
||||||
if ($i == 1000) $key = 'MAIN_MODULE_AAAAAiiiiiiiiiiiiiiiiiiiiiiiiiiiii';
|
if ($i == 1000) {
|
||||||
|
$key = 'MAIN_MODULE_AAAAAiiiiiiiiiiiiiiiiiiiiiiiiiiiii';
|
||||||
|
}
|
||||||
|
|
||||||
//if (preg_match('/^MAIN_MODULE_/', $key)) {
|
//if (preg_match('/^MAIN_MODULE_/', $key)) {
|
||||||
//if (substr($key, 0, 12) == 'MAIN_MODULE_') {
|
//if (substr($key, 0, 12) == 'MAIN_MODULE_') {
|
||||||
|
|||||||
@ -89,8 +89,8 @@ $pdf->SetKeywords('TCPDF, PDF, example, test, guide');
|
|||||||
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 016', PDF_HEADER_STRING);
|
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 016', PDF_HEADER_STRING);
|
||||||
|
|
||||||
// set header and footer fonts
|
// set header and footer fonts
|
||||||
$pdf->setHeaderFont(Array('helvetica', '', PDF_FONT_SIZE_MAIN));
|
$pdf->setHeaderFont(array('helvetica', '', PDF_FONT_SIZE_MAIN));
|
||||||
$pdf->setFooterFont(Array('helvetica', '', PDF_FONT_SIZE_DATA));
|
$pdf->setFooterFont(array('helvetica', '', PDF_FONT_SIZE_DATA));
|
||||||
|
|
||||||
// set default monospaced font
|
// set default monospaced font
|
||||||
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||||
|
|||||||
@ -64,8 +64,8 @@ $pdf->SetKeywords('TCPDF, PDF, example, test, guide');
|
|||||||
$pdf->SetHeaderData('', PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 038', PDF_HEADER_STRING);
|
$pdf->SetHeaderData('', PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 038', PDF_HEADER_STRING);
|
||||||
|
|
||||||
// set header and footer fonts
|
// set header and footer fonts
|
||||||
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
|
$pdf->setHeaderFont(array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
|
||||||
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
|
$pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
|
||||||
|
|
||||||
// set default monospaced font
|
// set default monospaced font
|
||||||
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
|
||||||
|
|||||||
@ -77,9 +77,10 @@ class autoTranslator
|
|||||||
|
|
||||||
$files = $this->getTranslationFilesArray($this->_refLang);
|
$files = $this->getTranslationFilesArray($this->_refLang);
|
||||||
$counter = 1;
|
$counter = 1;
|
||||||
foreach ($files as $file)
|
foreach ($files as $file) {
|
||||||
{
|
if ($this->_limittofile && $this->_limittofile != $file) {
|
||||||
if ($this->_limittofile && $this->_limittofile != $file) continue;
|
continue;
|
||||||
|
}
|
||||||
$counter++;
|
$counter++;
|
||||||
$fileContent = null;
|
$fileContent = null;
|
||||||
$refPath = $this->_langDir.$this->_refLang.self::DIR_SEPARATOR.$file;
|
$refPath = $this->_langDir.$this->_refLang.self::DIR_SEPARATOR.$file;
|
||||||
@ -88,54 +89,66 @@ class autoTranslator
|
|||||||
|
|
||||||
// Define target dirs
|
// Define target dirs
|
||||||
$targetlangs=array($this->_destlang);
|
$targetlangs=array($this->_destlang);
|
||||||
if ($this->_destlang == 'all')
|
if ($this->_destlang == 'all') {
|
||||||
{
|
|
||||||
$targetlangs=array();
|
$targetlangs=array();
|
||||||
|
|
||||||
// If we must process all languages
|
// If we must process all languages
|
||||||
$arraytmp=dol_dir_list($this->_langDir, 'directories', 0);
|
$arraytmp=dol_dir_list($this->_langDir, 'directories', 0);
|
||||||
foreach ($arraytmp as $dirtmp)
|
foreach ($arraytmp as $dirtmp) {
|
||||||
{
|
if ($dirtmp['name'] === $this->_refLang) {
|
||||||
if ($dirtmp['name'] === $this->_refLang) continue; // We discard source language
|
continue; // We discard source language
|
||||||
|
}
|
||||||
$tmppart=explode('_', $dirtmp['name']);
|
$tmppart=explode('_', $dirtmp['name']);
|
||||||
if (preg_match('/^en/i', $dirtmp['name'])) continue; // We discard en_* languages
|
if (preg_match('/^en/i', $dirtmp['name'])) {
|
||||||
if (preg_match('/^fr/i', $dirtmp['name'])) continue; // We discard fr_* languages
|
continue; // We discard en_* languages
|
||||||
if (preg_match('/^es/i', $dirtmp['name'])) continue; // We discard es_* languages
|
}
|
||||||
if (preg_match('/ca_ES/i', $dirtmp['name'])) continue; // We discard es_CA language
|
if (preg_match('/^fr/i', $dirtmp['name'])) {
|
||||||
if (preg_match('/pt_BR/i', $dirtmp['name'])) continue; // We discard pt_BR language
|
continue; // We discard fr_* languages
|
||||||
if (preg_match('/nl_BE/i', $dirtmp['name'])) continue; // We discard nl_BE language
|
}
|
||||||
if (preg_match('/^\./i', $dirtmp['name'])) continue; // We discard files .*
|
if (preg_match('/^es/i', $dirtmp['name'])) {
|
||||||
if (preg_match('/^CVS/i', $dirtmp['name'])) continue; // We discard CVS
|
continue; // We discard es_* languages
|
||||||
|
}
|
||||||
|
if (preg_match('/ca_ES/i', $dirtmp['name'])) {
|
||||||
|
continue; // We discard es_CA language
|
||||||
|
}
|
||||||
|
if (preg_match('/pt_BR/i', $dirtmp['name'])) {
|
||||||
|
continue; // We discard pt_BR language
|
||||||
|
}
|
||||||
|
if (preg_match('/nl_BE/i', $dirtmp['name'])) {
|
||||||
|
continue; // We discard nl_BE language
|
||||||
|
}
|
||||||
|
if (preg_match('/^\./i', $dirtmp['name'])) {
|
||||||
|
continue; // We discard files .*
|
||||||
|
}
|
||||||
|
if (preg_match('/^CVS/i', $dirtmp['name'])) {
|
||||||
|
continue; // We discard CVS
|
||||||
|
}
|
||||||
$targetlangs[]=$dirtmp['name'];
|
$targetlangs[]=$dirtmp['name'];
|
||||||
}
|
}
|
||||||
//var_dump($targetlangs);
|
//var_dump($targetlangs);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Process translation of source file for each target languages
|
// Process translation of source file for each target languages
|
||||||
foreach ($targetlangs as $my_destlang)
|
foreach ($targetlangs as $my_destlang) {
|
||||||
{
|
|
||||||
$this->_translatedFiles = array();
|
$this->_translatedFiles = array();
|
||||||
|
|
||||||
$destPath = $this->_langDir.$my_destlang.self::DIR_SEPARATOR.$file;
|
$destPath = $this->_langDir.$my_destlang.self::DIR_SEPARATOR.$file;
|
||||||
// Check destination file presence
|
// Check destination file presence
|
||||||
if (! file_exists($destPath))
|
if (! file_exists($destPath)) {
|
||||||
{
|
|
||||||
// No file present, we generate file
|
// No file present, we generate file
|
||||||
echo "File not found: " . $destPath . ". We generate it.<br>\n";
|
echo "File not found: " . $destPath . ". We generate it.<br>\n";
|
||||||
$this->createTranslationFile($destPath, $my_destlang);
|
$this->createTranslationFile($destPath, $my_destlang);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
echo "Updating file: " . $destPath . "<br>\n";
|
echo "Updating file: " . $destPath . "<br>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Translate lines
|
// Translate lines
|
||||||
$fileContentDest = file($destPath, FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
|
$fileContentDest = file($destPath, FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
|
||||||
$newlines=0;
|
$newlines=0;
|
||||||
foreach ($fileContent as $line){
|
foreach ($fileContent as $line) {
|
||||||
$key = $this->getLineKey($line);
|
$key = $this->getLineKey($line);
|
||||||
$value = $this->getLineValue($line);
|
$value = $this->getLineValue($line);
|
||||||
if ($key && $value)
|
if ($key && $value) {
|
||||||
{
|
|
||||||
$newlines+=$this->translateFileLine($fileContentDest, $file, $key, $value, $my_destlang);
|
$newlines+=$this->translateFileLine($fileContentDest, $file, $key, $value, $my_destlang);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -159,8 +172,7 @@ class autoTranslator
|
|||||||
{
|
{
|
||||||
$this->_time_end = date('Y-m-d H:i:s');
|
$this->_time_end = date('Y-m-d H:i:s');
|
||||||
|
|
||||||
if (isset($this->_translatedFiles[$file]) && count($this->_translatedFiles[$file])>0)
|
if (isset($this->_translatedFiles[$file]) && count($this->_translatedFiles[$file])>0) {
|
||||||
{
|
|
||||||
$fp = fopen($destPath, 'a');
|
$fp = fopen($destPath, 'a');
|
||||||
fwrite($fp, "\n");
|
fwrite($fp, "\n");
|
||||||
fwrite($fp, "\n");
|
fwrite($fp, "\n");
|
||||||
@ -213,8 +225,7 @@ class autoTranslator
|
|||||||
$destValue = $this->getLineValue($line);
|
$destValue = $this->getLineValue($line);
|
||||||
// If translated return
|
// If translated return
|
||||||
//print "destKey=".$destKey."\n";
|
//print "destKey=".$destKey."\n";
|
||||||
if ( trim($destKey) == trim($key) )
|
if (trim($destKey) == trim($key)) { // Found already existing translation (key already exits in dest file)
|
||||||
{ // Found already existing translation (key already exits in dest file)
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -227,13 +238,18 @@ class autoTranslator
|
|||||||
$val=$value;
|
$val=$value;
|
||||||
} else {
|
} else {
|
||||||
// If not translated then translate
|
// If not translated then translate
|
||||||
if ($this->_outputpagecode == 'UTF-8') $val=$this->translateTexts(array($value), substr($this->_refLang, 0, 2), substr($my_destlang, 0, 2));
|
if ($this->_outputpagecode == 'UTF-8') {
|
||||||
else $val=utf8_decode($this->translateTexts(array($value), substr($this->_refLang, 0, 2), substr($my_destlang, 0, 2)));
|
$val=$this->translateTexts(array($value), substr($this->_refLang, 0, 2), substr($my_destlang, 0, 2));
|
||||||
|
} else {
|
||||||
|
$val=utf8_decode($this->translateTexts(array($value), substr($this->_refLang, 0, 2), substr($my_destlang, 0, 2)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$val=trim($val);
|
$val=trim($val);
|
||||||
|
|
||||||
if (empty($val)) return 0;
|
if (empty($val)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
$this->_translatedFiles[$file][] = $key . '=' . $val ;
|
$this->_translatedFiles[$file][] = $key . '=' . $val ;
|
||||||
return 1;
|
return 1;
|
||||||
@ -293,9 +309,13 @@ class autoTranslator
|
|||||||
{
|
{
|
||||||
// We want to be sure that src_lang and dest_lang are using 2 chars only
|
// We want to be sure that src_lang and dest_lang are using 2 chars only
|
||||||
$tmp=explode('_', $src_lang);
|
$tmp=explode('_', $src_lang);
|
||||||
if (! empty($tmp[1]) && $tmp[0] == $tmp[1]) $src_lang=$tmp[0];
|
if (! empty($tmp[1]) && $tmp[0] == $tmp[1]) {
|
||||||
|
$src_lang=$tmp[0];
|
||||||
|
}
|
||||||
$tmp=explode('_', $dest_lang);
|
$tmp=explode('_', $dest_lang);
|
||||||
if (! empty($tmp[1]) && $tmp[0] == $tmp[1]) $dest_lang=$tmp[0];
|
if (! empty($tmp[1]) && $tmp[0] == $tmp[1]) {
|
||||||
|
$dest_lang=$tmp[0];
|
||||||
|
}
|
||||||
|
|
||||||
//setting language pair
|
//setting language pair
|
||||||
$lang_pair = $src_lang.'|'.$dest_lang;
|
$lang_pair = $src_lang.'|'.$dest_lang;
|
||||||
@ -313,8 +333,7 @@ class autoTranslator
|
|||||||
// Send request
|
// Send request
|
||||||
//print "Url to translate: ".$url."\n";
|
//print "Url to translate: ".$url."\n";
|
||||||
|
|
||||||
if (! function_exists("curl_init"))
|
if (! function_exists("curl_init")) {
|
||||||
{
|
|
||||||
print "Error, your PHP does not support curl functions.\n";
|
print "Error, your PHP does not support curl functions.\n";
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
@ -331,8 +350,7 @@ class autoTranslator
|
|||||||
$json = json_decode($body, true);
|
$json = json_decode($body, true);
|
||||||
|
|
||||||
if ((! empty($json['responseStatus']) && $json['responseStatus'] != 200)
|
if ((! empty($json['responseStatus']) && $json['responseStatus'] != 200)
|
||||||
|| count($json['data']['translations']) == 0)
|
|| count($json['data']['translations']) == 0) {
|
||||||
{
|
|
||||||
print "Error: ".$json['responseStatus']." ".$url."\n";
|
print "Error: ".$json['responseStatus']." ".$url."\n";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -67,21 +67,17 @@ print 'Argument 1='.$argv[1]."\n";
|
|||||||
print 'Argument 2='.$argv[2]."\n";
|
print 'Argument 2='.$argv[2]."\n";
|
||||||
print 'Argument 3='.$argv[3]."\n";
|
print 'Argument 3='.$argv[3]."\n";
|
||||||
$file='';
|
$file='';
|
||||||
if (isset($argv[4]))
|
if (isset($argv[4])) {
|
||||||
{
|
|
||||||
$file=$argv[4];
|
$file=$argv[4];
|
||||||
print 'Argument 4='.$argv[4]."\n";
|
print 'Argument 4='.$argv[4]."\n";
|
||||||
}
|
}
|
||||||
print 'Files will be generated/updated in directory '.$dir."\n";
|
print 'Files will be generated/updated in directory '.$dir."\n";
|
||||||
|
|
||||||
if ($argv[2] != 'all')
|
if ($argv[2] != 'all') {
|
||||||
{
|
if (! is_dir($dir.'/'.$argv[2])) {
|
||||||
if (! is_dir($dir.'/'.$argv[2]))
|
|
||||||
{
|
|
||||||
print 'Create directory '.$dir.'/'.$argv[2]."\n";
|
print 'Create directory '.$dir.'/'.$argv[2]."\n";
|
||||||
$result=mkdir($dir.'/'.$argv[2]);
|
$result=mkdir($dir.'/'.$argv[2]);
|
||||||
if (! $result)
|
if (! $result) {
|
||||||
{
|
|
||||||
$db->close();
|
$db->close();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,14 +25,12 @@ $path=dirname(__FILE__).'/';
|
|||||||
$web=0;
|
$web=0;
|
||||||
|
|
||||||
// Test if batch mode
|
// Test if batch mode
|
||||||
if (substr($sapi_type, 0, 3) == 'cgi')
|
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||||
{
|
|
||||||
$web=1;
|
$web=1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($web)
|
if ($web) {
|
||||||
{
|
|
||||||
echo "<html>";
|
echo "<html>";
|
||||||
echo "<head>";
|
echo "<head>";
|
||||||
|
|
||||||
@ -87,9 +85,13 @@ if ($web)
|
|||||||
}
|
}
|
||||||
|
|
||||||
echo "If you call this with argument \"unused=true\" it searches for the translation strings that exist in en_US but are never used.\n";
|
echo "If you call this with argument \"unused=true\" it searches for the translation strings that exist in en_US but are never used.\n";
|
||||||
if ($web) print "<br>";
|
if ($web) {
|
||||||
|
print "<br>";
|
||||||
|
}
|
||||||
echo "IMPORTANT: that can take quite a lot of time (up to 10 minutes), you need to tune the max_execution_time on your php.ini accordingly.\n";
|
echo "IMPORTANT: that can take quite a lot of time (up to 10 minutes), you need to tune the max_execution_time on your php.ini accordingly.\n";
|
||||||
if ($web) print "<br>";
|
if ($web) {
|
||||||
|
print "<br>";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -105,8 +107,7 @@ $workdir = $htdocs."langs/en_US/";
|
|||||||
|
|
||||||
|
|
||||||
$files = scandir($workdir);
|
$files = scandir($workdir);
|
||||||
if (empty($files))
|
if (empty($files)) {
|
||||||
{
|
|
||||||
echo "Can't scan workdir = ".$workdir;
|
echo "Can't scan workdir = ".$workdir;
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
@ -115,18 +116,17 @@ $dups=array();
|
|||||||
$exludefiles = array('.','..','README');
|
$exludefiles = array('.','..','README');
|
||||||
$files = array_diff($files, $exludefiles);
|
$files = array_diff($files, $exludefiles);
|
||||||
// To force a file: $files=array('myfile.lang');
|
// To force a file: $files=array('myfile.lang');
|
||||||
if (isset($argv[2]))
|
if (isset($argv[2])) {
|
||||||
{
|
|
||||||
$files = array($argv[2]);
|
$files = array($argv[2]);
|
||||||
}
|
}
|
||||||
$langstrings_3d = array();
|
$langstrings_3d = array();
|
||||||
$langstrings_full = array();
|
$langstrings_full = array();
|
||||||
foreach ($files AS $file) {
|
foreach ($files as $file) {
|
||||||
$path_file = pathinfo($file);
|
$path_file = pathinfo($file);
|
||||||
// we're only interested in .lang files
|
// we're only interested in .lang files
|
||||||
if ($path_file['extension']=='lang') {
|
if ($path_file['extension']=='lang') {
|
||||||
$content = file($workdir.$file);
|
$content = file($workdir.$file);
|
||||||
foreach ($content AS $line => $row) {
|
foreach ($content as $line => $row) {
|
||||||
// don't want comment lines
|
// don't want comment lines
|
||||||
if (substr($row, 0, 1) !== '#') {
|
if (substr($row, 0, 1) !== '#') {
|
||||||
// don't want lines without the separator (why should those even be here, anyway...)
|
// don't want lines without the separator (why should those even be here, anyway...)
|
||||||
@ -142,26 +142,26 @@ foreach ($files AS $file) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($langstrings_3d AS $filename => $file)
|
foreach ($langstrings_3d as $filename => $file) {
|
||||||
{
|
foreach ($file as $linenum => $value) {
|
||||||
foreach ($file AS $linenum => $value)
|
|
||||||
{
|
|
||||||
$keys = array_keys($langstrings_full, $value);
|
$keys = array_keys($langstrings_full, $value);
|
||||||
if (count($keys)>1)
|
if (count($keys)>1) {
|
||||||
{
|
foreach ($keys as $key) {
|
||||||
foreach ($keys AS $key) {
|
|
||||||
$dups[$value][$filename][$linenum] = trim($langstrings_3dtrans[$filename][$linenum]);
|
$dups[$value][$filename][$linenum] = trim($langstrings_3dtrans[$filename][$linenum]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($web) print "<h2>";
|
if ($web) {
|
||||||
|
print "<h2>";
|
||||||
|
}
|
||||||
print "Duplicate strings in lang files in $workdir - ".count($dups)." found\n";
|
print "Duplicate strings in lang files in $workdir - ".count($dups)." found\n";
|
||||||
if ($web) print "</h2>";
|
if ($web) {
|
||||||
|
print "</h2>";
|
||||||
|
}
|
||||||
|
|
||||||
if ($web)
|
if ($web) {
|
||||||
{
|
|
||||||
echo '<table border_bottom="1">'."\n";
|
echo '<table border_bottom="1">'."\n";
|
||||||
echo "<thead><tr><th align=\"center\">#</th><th>String</th><th>File and lines</th></thead>\n";
|
echo "<thead><tr><th align=\"center\">#</th><th>String</th><th>File and lines</th></thead>\n";
|
||||||
echo "<tbody>\n";
|
echo "<tbody>\n";
|
||||||
@ -173,75 +173,126 @@ $sininstallandadmin='';
|
|||||||
$sother='';
|
$sother='';
|
||||||
|
|
||||||
$count = 0;
|
$count = 0;
|
||||||
foreach ($dups as $string => $pages)
|
foreach ($dups as $string => $pages) {
|
||||||
{
|
|
||||||
$count++;
|
$count++;
|
||||||
$s='';
|
$s='';
|
||||||
|
|
||||||
// Keyword $string
|
// Keyword $string
|
||||||
if ($web) $s.="<tr>";
|
if ($web) {
|
||||||
if ($web) $s.="<td align=\"center\">";
|
$s.="<tr>";
|
||||||
if ($web) $s.=$count;
|
}
|
||||||
if ($web) $s.="</td>";
|
if ($web) {
|
||||||
if ($web) $s.="<td>";
|
$s.="<td align=\"center\">";
|
||||||
|
}
|
||||||
|
if ($web) {
|
||||||
|
$s.=$count;
|
||||||
|
}
|
||||||
|
if ($web) {
|
||||||
|
$s.="</td>";
|
||||||
|
}
|
||||||
|
if ($web) {
|
||||||
|
$s.="<td>";
|
||||||
|
}
|
||||||
$s.=$string;
|
$s.=$string;
|
||||||
if ($web) $s.="</td>";
|
if ($web) {
|
||||||
if ($web) $s.="<td>";
|
$s.="</td>";
|
||||||
if (! $web) $s.= ' : ';
|
}
|
||||||
|
if ($web) {
|
||||||
|
$s.="<td>";
|
||||||
|
}
|
||||||
|
if (! $web) {
|
||||||
|
$s.= ' : ';
|
||||||
|
}
|
||||||
|
|
||||||
// Loop on each files keyword was found
|
// Loop on each files keyword was found
|
||||||
$duplicateinsamefile=0;
|
$duplicateinsamefile=0;
|
||||||
$inmain=0;
|
$inmain=0;
|
||||||
$inadmin=0;
|
$inadmin=0;
|
||||||
foreach ($pages AS $file => $lines)
|
foreach ($pages as $file => $lines) {
|
||||||
{
|
if ($file == 'main.lang') {
|
||||||
if ($file == 'main.lang') { $inmain=1; $inadmin=0; }
|
$inmain=1; $inadmin=0;
|
||||||
if ($file == 'admin.lang' && ! $inmain) { $inadmin=1; }
|
}
|
||||||
|
if ($file == 'admin.lang' && ! $inmain) {
|
||||||
|
$inadmin=1;
|
||||||
|
}
|
||||||
|
|
||||||
$s.=$file." ";
|
$s.=$file." ";
|
||||||
|
|
||||||
// Loop on each line keword was found into file.
|
// Loop on each line keword was found into file.
|
||||||
$listoffilesforthisentry=array();
|
$listoffilesforthisentry=array();
|
||||||
foreach ($lines as $line => $translatedvalue)
|
foreach ($lines as $line => $translatedvalue) {
|
||||||
{
|
if (! empty($listoffilesforthisentry[$file])) {
|
||||||
if (! empty($listoffilesforthisentry[$file])) $duplicateinsamefile=1;
|
$duplicateinsamefile=1;
|
||||||
|
}
|
||||||
$listoffilesforthisentry[$file]=1;
|
$listoffilesforthisentry[$file]=1;
|
||||||
|
|
||||||
$s.= "(".$line." - ".htmlentities($translatedvalue).") ";
|
$s.= "(".$line." - ".htmlentities($translatedvalue).") ";
|
||||||
}
|
}
|
||||||
if ($web) $s.="<br>";
|
if ($web) {
|
||||||
|
$s.="<br>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($web) {
|
||||||
|
$s.="</td></tr>";
|
||||||
}
|
}
|
||||||
if ($web) $s.="</td></tr>";
|
|
||||||
$s.="\n";
|
$s.="\n";
|
||||||
|
|
||||||
if ($duplicateinsamefile) $sduplicateinsamefile .= $s;
|
if ($duplicateinsamefile) {
|
||||||
elseif ($inmain) $sinmainandother .= $s;
|
$sduplicateinsamefile .= $s;
|
||||||
elseif ($inadmin) $sininstallandadmin .= $s;
|
} elseif ($inmain) {
|
||||||
else $sother .= $s;
|
$sinmainandother .= $s;
|
||||||
|
} elseif ($inadmin) {
|
||||||
|
$sininstallandadmin .= $s;
|
||||||
|
} else {
|
||||||
|
$sother .= $s;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $web) print "\n***** Entries duplicated in same file\n";
|
if (! $web) {
|
||||||
|
print "\n***** Entries duplicated in same file\n";
|
||||||
|
}
|
||||||
print $sduplicateinsamefile;
|
print $sduplicateinsamefile;
|
||||||
if (! $web && empty($sduplicateinsamefile)) print "None\n";
|
if (! $web && empty($sduplicateinsamefile)) {
|
||||||
if (! $web) print "\n";
|
print "None\n";
|
||||||
|
}
|
||||||
|
if (! $web) {
|
||||||
|
print "\n";
|
||||||
|
}
|
||||||
|
|
||||||
if (! $web) print "***** Entries in main and another (keep only entry in main)\n";
|
if (! $web) {
|
||||||
|
print "***** Entries in main and another (keep only entry in main)\n";
|
||||||
|
}
|
||||||
print $sinmainandother;
|
print $sinmainandother;
|
||||||
if (! $web && empty($sinmainandother)) print "None\n";
|
if (! $web && empty($sinmainandother)) {
|
||||||
if (! $web) print "\n";
|
print "None\n";
|
||||||
|
}
|
||||||
|
if (! $web) {
|
||||||
|
print "\n";
|
||||||
|
}
|
||||||
|
|
||||||
if (! $web) print "***** Entries in admin and another\n";
|
if (! $web) {
|
||||||
|
print "***** Entries in admin and another\n";
|
||||||
|
}
|
||||||
print $sininstallandadmin;
|
print $sininstallandadmin;
|
||||||
if (! $web && empty($sininstallandadmin)) print "None\n";
|
if (! $web && empty($sininstallandadmin)) {
|
||||||
if (! $web) print "\n";
|
print "None\n";
|
||||||
|
}
|
||||||
|
if (! $web) {
|
||||||
|
print "\n";
|
||||||
|
}
|
||||||
|
|
||||||
if (! $web) print "***** Other\n";
|
if (! $web) {
|
||||||
|
print "***** Other\n";
|
||||||
|
}
|
||||||
print $sother;
|
print $sother;
|
||||||
if (! $web && empty($sother)) print "None\n";
|
if (! $web && empty($sother)) {
|
||||||
if (! $web) print "\n";
|
print "None\n";
|
||||||
|
}
|
||||||
|
if (! $web) {
|
||||||
|
print "\n";
|
||||||
|
}
|
||||||
|
|
||||||
if ($web)
|
if ($web) {
|
||||||
{
|
|
||||||
echo "</tbody>\n";
|
echo "</tbody>\n";
|
||||||
echo "</table>\n";
|
echo "</table>\n";
|
||||||
}
|
}
|
||||||
@ -249,105 +300,254 @@ if ($web)
|
|||||||
|
|
||||||
// STEP 2 - Search key not used
|
// STEP 2 - Search key not used
|
||||||
|
|
||||||
if ((! empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true') || (isset($argv[1]) && $argv[1]=='unused=true'))
|
if ((! empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true') || (isset($argv[1]) && $argv[1]=='unused=true')) {
|
||||||
{
|
|
||||||
print "***** Strings in en_US that are never used:\n";
|
print "***** Strings in en_US that are never used:\n";
|
||||||
|
|
||||||
$unused=array();
|
$unused=array();
|
||||||
foreach ($langstrings_dist AS $value => $line)
|
foreach ($langstrings_dist as $value => $line) {
|
||||||
{
|
|
||||||
$qualifiedforclean=1;
|
$qualifiedforclean=1;
|
||||||
// Check if we must keep this key to be into file for removal
|
// Check if we must keep this key to be into file for removal
|
||||||
if (preg_match('/^Module\d+/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^Module\d+/', $value)) {
|
||||||
if (preg_match('/^Permission\d+/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
if (preg_match('/^PermissionAdvanced\d+/', $value)) $qualifiedforclean=0;
|
}
|
||||||
if (preg_match('/^ProfId\d+/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^Permission\d+/', $value)) {
|
||||||
if (preg_match('/^Delays_/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
if (preg_match('/^BarcodeDesc/', $value)) $qualifiedforclean=0;
|
}
|
||||||
if (preg_match('/^Extrafield/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^PermissionAdvanced\d+/', $value)) {
|
||||||
if (preg_match('/^LocalTax/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
if (preg_match('/^Country/', $value)) $qualifiedforclean=0;
|
}
|
||||||
if (preg_match('/^Civility/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^ProfId\d+/', $value)) {
|
||||||
if (preg_match('/^Currency/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
if (preg_match('/^DemandReasonTypeSRC/', $value)) $qualifiedforclean=0;
|
}
|
||||||
if (preg_match('/^PaperFormat/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^Delays_/', $value)) {
|
||||||
if (preg_match('/^Duration/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
if (preg_match('/^AmountLT/', $value)) $qualifiedforclean=0;
|
}
|
||||||
if (preg_match('/^TotalLT/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^BarcodeDesc/', $value)) {
|
||||||
if (preg_match('/^Month/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
if (preg_match('/^MonthShort/', $value)) $qualifiedforclean=0;
|
}
|
||||||
if (preg_match('/^Day\d/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^Extrafield/', $value)) {
|
||||||
if (preg_match('/^Short/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
if (preg_match('/^ExportDataset_/', $value)) $qualifiedforclean=0;
|
}
|
||||||
if (preg_match('/^ImportDataset_/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^LocalTax/', $value)) {
|
||||||
if (preg_match('/^ActionAC_/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
if (preg_match('/^TypeLocaltax/', $value)) $qualifiedforclean=0;
|
}
|
||||||
if (preg_match('/^StatusProspect/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^Country/', $value)) {
|
||||||
if (preg_match('/^PL_/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
if (preg_match('/^TE_/', $value)) $qualifiedforclean=0;
|
}
|
||||||
if (preg_match('/^JuridicalStatus/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^Civility/', $value)) {
|
||||||
if (preg_match('/^CalcMode/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
if (preg_match('/^newLT/', $value)) $qualifiedforclean=0;
|
}
|
||||||
if (preg_match('/^LT[0-9]/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^Currency/', $value)) {
|
||||||
if (preg_match('/^TypeContact_contrat_/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
if (preg_match('/^ErrorPriceExpression/', $value)) $qualifiedforclean=0;
|
}
|
||||||
if (preg_match('/^Language_/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^DemandReasonTypeSRC/', $value)) {
|
||||||
if (preg_match('/^DescADHERENT_/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
if (preg_match('/^SubmitTranslation/', $value)) $qualifiedforclean=0;
|
}
|
||||||
if (preg_match('/^ModuleCompanyCode/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^PaperFormat/', $value)) {
|
||||||
if (preg_match('/InDolibarr$/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^Duration/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^AmountLT/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^TotalLT/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^Month/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^MonthShort/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^Day\d/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^Short/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^ExportDataset_/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^ImportDataset_/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^ActionAC_/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^TypeLocaltax/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^StatusProspect/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^PL_/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^TE_/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^JuridicalStatus/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^CalcMode/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^newLT/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^LT[0-9]/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^TypeContact_contrat_/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^ErrorPriceExpression/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^Language_/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^DescADHERENT_/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^SubmitTranslation/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^ModuleCompanyCode/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/InDolibarr$/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
// admin.lang
|
// admin.lang
|
||||||
if (preg_match('/^DAV_ALLOW_PUBLIC_DIR/i', $value)) $qualifiedforclean=0;
|
if (preg_match('/^DAV_ALLOW_PUBLIC_DIR/i', $value)) {
|
||||||
if (preg_match('/^DAV_ALLOW_ECM_DIR/i', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^DAV_ALLOW_ECM_DIR/i', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
// boxes.lang
|
// boxes.lang
|
||||||
if (preg_match('/^BoxTitleLast/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^BoxTitleLast/', $value)) {
|
||||||
if (preg_match('/^BoxTitleLatest/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^BoxTitleLatest/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
// install.lang
|
// install.lang
|
||||||
if (preg_match('/^KeepDefaultValues/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^KeepDefaultValues/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
// mail.lang
|
// mail.lang
|
||||||
if (preg_match('/MailingModuleDesc/i', $value)) $qualifiedforclean=0;
|
if (preg_match('/MailingModuleDesc/i', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
// main.lang
|
// main.lang
|
||||||
if (preg_match('/^Duration/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^Duration/', $value)) {
|
||||||
if (preg_match('/^FormatDate/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
if (preg_match('/^DateFormat/', $value)) $qualifiedforclean=0;
|
}
|
||||||
if (preg_match('/^.b$/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^FormatDate/', $value)) {
|
||||||
if (preg_match('/^.*Bytes$/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
if (preg_match('/^NoteSomeFeaturesAreDisabled/', $value)) $qualifiedforclean=0;
|
}
|
||||||
if (preg_match('/^(DoTest|Under|Limits|Cards|CurrentValue|DateLimit|DateAndHour|NbOfLines|NbOfObjects|NbOfReferes|TotalTTCShort|VATs)/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^DateFormat/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^.b$/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^.*Bytes$/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^NoteSomeFeaturesAreDisabled/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^(DoTest|Under|Limits|Cards|CurrentValue|DateLimit|DateAndHour|NbOfLines|NbOfObjects|NbOfReferes|TotalTTCShort|VATs)/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
// modulebuilder
|
// modulebuilder
|
||||||
if (preg_match('/^ModuleBuilderDesc/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^ModuleBuilderDesc/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
// orders
|
// orders
|
||||||
if (preg_match('/^OrderSource/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^OrderSource/', $value)) {
|
||||||
if (preg_match('/^TypeContact_/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^TypeContact_/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
// other.lang
|
// other.lang
|
||||||
if (preg_match('/^Notify_/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^Notify_/', $value)) {
|
||||||
if (preg_match('/^PredefinedMail/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
if (preg_match('/^DemoCompany/', $value)) $qualifiedforclean=0;
|
}
|
||||||
if (preg_match('/^WeightUnit/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^PredefinedMail/', $value)) {
|
||||||
if (preg_match('/^LengthUnit/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
if (preg_match('/^SurfaceUnit/', $value)) $qualifiedforclean=0;
|
}
|
||||||
if (preg_match('/^VolumeUnit/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^DemoCompany/', $value)) {
|
||||||
if (preg_match('/^SizeUnit/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
if (preg_match('/^EMailText/', $value)) $qualifiedforclean=0;
|
}
|
||||||
if (preg_match('/ById$/', $value)) $qualifiedforclean=0;
|
if (preg_match('/^WeightUnit/', $value)) {
|
||||||
if (preg_match('/ByLogin$/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^LengthUnit/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^SurfaceUnit/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^VolumeUnit/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^SizeUnit/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/^EMailText/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/ById$/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/ByLogin$/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
// printing
|
// printing
|
||||||
if (preg_match('/PrintingDriverDesc$/', $value)) $qualifiedforclean=0;
|
if (preg_match('/PrintingDriverDesc$/', $value)) {
|
||||||
if (preg_match('/PrintTestDesc$/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/PrintTestDesc$/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
// products
|
// products
|
||||||
if (preg_match('/GlobalVariableUpdaterType$/', $value)) $qualifiedforclean=0;
|
if (preg_match('/GlobalVariableUpdaterType$/', $value)) {
|
||||||
if (preg_match('/GlobalVariableUpdaterHelp$/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
if (preg_match('/OppStatus/', $value)) $qualifiedforclean=0;
|
}
|
||||||
if (preg_match('/AvailabilityType/', $value)) $qualifiedforclean=0;
|
if (preg_match('/GlobalVariableUpdaterHelp$/', $value)) {
|
||||||
if (preg_match('/CardProduct/', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/OppStatus/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/AvailabilityType/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/CardProduct/', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
|
||||||
if (preg_match('/sms/i', $value)) $qualifiedforclean=0;
|
if (preg_match('/sms/i', $value)) {
|
||||||
if (preg_match('/TF_/i', $value)) $qualifiedforclean=0;
|
$qualifiedforclean=0;
|
||||||
if (preg_match('/WithBankUsing/i', $value)) $qualifiedforclean=0;
|
}
|
||||||
if (preg_match('/descWORKFLOW_/i', $value)) $qualifiedforclean=0;
|
if (preg_match('/TF_/i', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/WithBankUsing/i', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
if (preg_match('/descWORKFLOW_/i', $value)) {
|
||||||
|
$qualifiedforclean=0;
|
||||||
|
}
|
||||||
|
|
||||||
if (! $qualifiedforclean)
|
if (! $qualifiedforclean) {
|
||||||
{
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -359,28 +559,31 @@ if ((! empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true') || (isset($a
|
|||||||
if (empty($output)) {
|
if (empty($output)) {
|
||||||
$unused[$value] = $line;
|
$unused[$value] = $line;
|
||||||
echo $line; // $trad contains the \n
|
echo $line; // $trad contains the \n
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
unset($output);
|
unset($output);
|
||||||
//print 'X'.$output.'Y';
|
//print 'X'.$output.'Y';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($unused)) print "No string not used found.\n";
|
if (empty($unused)) {
|
||||||
else {
|
print "No string not used found.\n";
|
||||||
|
} else {
|
||||||
$filetosave='/tmp/'.($argv[2]?$argv[2]:"").'notused.lang';
|
$filetosave='/tmp/'.($argv[2]?$argv[2]:"").'notused.lang';
|
||||||
print "Strings in en_US that are never used are saved into file ".$filetosave.":\n";
|
print "Strings in en_US that are never used are saved into file ".$filetosave.":\n";
|
||||||
file_put_contents($filetosave, implode("", $unused));
|
file_put_contents($filetosave, implode("", $unused));
|
||||||
print "To remove from original file, run command :\n";
|
print "To remove from original file, run command :\n";
|
||||||
if (($argv[2]?$argv[2]:"")) print 'cd htdocs/langs/en_US; mv '.($argv[2]?$argv[2]:"")." ".($argv[2]?$argv[2]:"").".tmp; ";
|
if (($argv[2]?$argv[2]:"")) {
|
||||||
|
print 'cd htdocs/langs/en_US; mv '.($argv[2]?$argv[2]:"")." ".($argv[2]?$argv[2]:"").".tmp; ";
|
||||||
|
}
|
||||||
print "diff ".($argv[2]?$argv[2]:"").".tmp ".$filetosave." | grep \< | cut -b 3- > ".($argv[2]?$argv[2]:"");
|
print "diff ".($argv[2]?$argv[2]:"").".tmp ".$filetosave." | grep \< | cut -b 3- > ".($argv[2]?$argv[2]:"");
|
||||||
if (($argv[2]?$argv[2]:"")) print "; rm ".($argv[2]?$argv[2]:"").".tmp;\n";
|
if (($argv[2]?$argv[2]:"")) {
|
||||||
|
print "; rm ".($argv[2]?$argv[2]:"").".tmp;\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "\n";
|
echo "\n";
|
||||||
if ($web)
|
if ($web) {
|
||||||
{
|
|
||||||
echo "</body>\n";
|
echo "</body>\n";
|
||||||
echo "</html>\n";
|
echo "</html>\n";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -63,8 +63,7 @@ $lSecondary = isset($argv[2])?$argv[2]:'';
|
|||||||
$lEnglish = 'en_US';
|
$lEnglish = 'en_US';
|
||||||
$filesToProcess = isset($argv[3])?$argv[3]:'';
|
$filesToProcess = isset($argv[3])?$argv[3]:'';
|
||||||
|
|
||||||
if (empty($lPrimary) || empty($lSecondary) || empty($filesToProcess))
|
if (empty($lPrimary) || empty($lSecondary) || empty($filesToProcess)) {
|
||||||
{
|
|
||||||
$rc = 1;
|
$rc = 1;
|
||||||
$msg = '***** Script to clean language files *****'."\n";
|
$msg = '***** Script to clean language files *****'."\n";
|
||||||
$msg.= 'Usage: ./dev/translation/strip_language_file.php xx_XX xx_YY [file.lang|all]'."\n";
|
$msg.= 'Usage: ./dev/translation/strip_language_file.php xx_XX xx_YY [file.lang|all]'."\n";
|
||||||
@ -77,8 +76,7 @@ $aSecondary = array();
|
|||||||
$aEnglish = array();
|
$aEnglish = array();
|
||||||
|
|
||||||
// Define array $filesToProcess
|
// Define array $filesToProcess
|
||||||
if ($filesToProcess == 'all')
|
if ($filesToProcess == 'all') {
|
||||||
{
|
|
||||||
$dir = new DirectoryIterator('htdocs/langs/'.$lPrimary);
|
$dir = new DirectoryIterator('htdocs/langs/'.$lPrimary);
|
||||||
while ($dir->valid()) {
|
while ($dir->valid()) {
|
||||||
if (!$dir->isDot() && $dir->isFile() && ! preg_match('/^\./', $dir->getFilename())) {
|
if (!$dir->isDot() && $dir->isFile() && ! preg_match('/^\./', $dir->getFilename())) {
|
||||||
@ -87,15 +85,15 @@ if ($filesToProcess == 'all')
|
|||||||
$dir->next();
|
$dir->next();
|
||||||
}
|
}
|
||||||
$filesToProcess=$files;
|
$filesToProcess=$files;
|
||||||
|
} else {
|
||||||
|
$filesToProcess=explode(',', $filesToProcess);
|
||||||
}
|
}
|
||||||
else $filesToProcess=explode(',', $filesToProcess);
|
|
||||||
|
|
||||||
// Arguments should be OK here.
|
// Arguments should be OK here.
|
||||||
|
|
||||||
|
|
||||||
// Loop on each file
|
// Loop on each file
|
||||||
foreach ($filesToProcess as $fileToProcess)
|
foreach ($filesToProcess as $fileToProcess) {
|
||||||
{
|
|
||||||
$lPrimaryFile = 'htdocs/langs/'.$lPrimary.'/'.$fileToProcess;
|
$lPrimaryFile = 'htdocs/langs/'.$lPrimary.'/'.$fileToProcess;
|
||||||
$lSecondaryFile = 'htdocs/langs/'.$lSecondary.'/'.$fileToProcess;
|
$lSecondaryFile = 'htdocs/langs/'.$lSecondary.'/'.$fileToProcess;
|
||||||
$lEnglishFile = 'htdocs/langs/'.$lEnglish.'/'.$fileToProcess;
|
$lEnglishFile = 'htdocs/langs/'.$lEnglish.'/'.$fileToProcess;
|
||||||
@ -103,21 +101,21 @@ foreach ($filesToProcess as $fileToProcess)
|
|||||||
|
|
||||||
print "---- Process language file ".$lSecondaryFile."\n";
|
print "---- Process language file ".$lSecondaryFile."\n";
|
||||||
|
|
||||||
if ( ! is_readable($lPrimaryFile) ) {
|
if (! is_readable($lPrimaryFile)) {
|
||||||
$rc = 2;
|
$rc = 2;
|
||||||
$msg = "Cannot read primary language file $lPrimaryFile.";
|
$msg = "Cannot read primary language file $lPrimaryFile.";
|
||||||
print $msg . " (rc=$rc).\n";
|
print $msg . " (rc=$rc).\n";
|
||||||
exit($rc);
|
exit($rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! is_readable($lSecondaryFile) ) {
|
if (! is_readable($lSecondaryFile)) {
|
||||||
$rc = 3;
|
$rc = 3;
|
||||||
$msg = "Cannot read secondary language file $lSecondaryFile. We discard this file.";
|
$msg = "Cannot read secondary language file $lSecondaryFile. We discard this file.";
|
||||||
print $msg . "\n";
|
print $msg . "\n";
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! is_readable($lEnglishFile) ) {
|
if (! is_readable($lEnglishFile)) {
|
||||||
$rc = 3;
|
$rc = 3;
|
||||||
$msg = "Cannot read english language file $lEnglishFile. We discard this file.";
|
$msg = "Cannot read english language file $lEnglishFile. We discard this file.";
|
||||||
print $msg . "\n";
|
print $msg . "\n";
|
||||||
@ -126,25 +124,23 @@ foreach ($filesToProcess as $fileToProcess)
|
|||||||
|
|
||||||
// Start reading and parsing Secondary
|
// Start reading and parsing Secondary
|
||||||
|
|
||||||
if ( $handle = fopen($lSecondaryFile, 'r') )
|
if ($handle = fopen($lSecondaryFile, 'r')) {
|
||||||
{
|
|
||||||
print "Read Secondary File $lSecondaryFile:\n";
|
print "Read Secondary File $lSecondaryFile:\n";
|
||||||
$cnt = 0;
|
$cnt = 0;
|
||||||
while (($line = fgets($handle)) !== false)
|
while (($line = fgets($handle)) !== false) {
|
||||||
{
|
|
||||||
$cnt++;
|
$cnt++;
|
||||||
|
|
||||||
// strip comments
|
// strip comments
|
||||||
if ( preg_match("/^\w*#/", $line) ) {
|
if (preg_match("/^\w*#/", $line)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// strip empty lines
|
// strip empty lines
|
||||||
if ( preg_match("/^\w*$/", $line) ) {
|
if (preg_match("/^\w*$/", $line)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$a = mb_split('=', trim($line), 2);
|
$a = mb_split('=', trim($line), 2);
|
||||||
if ( count($a) != 2 ) {
|
if (count($a) != 2) {
|
||||||
print "ERROR in file $lSecondaryFile, line $cnt: " . trim($line) . "\n";
|
print "ERROR in file $lSecondaryFile, line $cnt: " . trim($line) . "\n";
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -152,29 +148,27 @@ foreach ($filesToProcess as $fileToProcess)
|
|||||||
list($key, $value) = $a;
|
list($key, $value) = $a;
|
||||||
|
|
||||||
// key is redundant
|
// key is redundant
|
||||||
if ( array_key_exists($key, $aSecondary) ) {
|
if (array_key_exists($key, $aSecondary)) {
|
||||||
print "Key $key is redundant in file $lSecondaryFile (line: $cnt).\n";
|
print "Key $key is redundant in file $lSecondaryFile (line: $cnt).\n";
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// String has no value
|
// String has no value
|
||||||
if ( $value == '' ) {
|
if ($value == '') {
|
||||||
print "Key $key has no value in file $lSecondaryFile (line: $cnt).\n";
|
print "Key $key has no value in file $lSecondaryFile (line: $cnt).\n";
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$aSecondary[$key] = trim($value);
|
$aSecondary[$key] = trim($value);
|
||||||
}
|
}
|
||||||
if ( ! feof($handle) )
|
if (! feof($handle)) {
|
||||||
{
|
|
||||||
$rc = 5;
|
$rc = 5;
|
||||||
$msg = "Unexpected fgets() fail";
|
$msg = "Unexpected fgets() fail";
|
||||||
print $msg . " (rc=$rc).\n";
|
print $msg . " (rc=$rc).\n";
|
||||||
exit($rc);
|
exit($rc);
|
||||||
}
|
}
|
||||||
fclose($handle);
|
fclose($handle);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
$rc = 6;
|
$rc = 6;
|
||||||
$msg = "Cannot open file $lSecondaryFile";
|
$msg = "Cannot open file $lSecondaryFile";
|
||||||
print $msg . " (rc=$rc).\n";
|
print $msg . " (rc=$rc).\n";
|
||||||
@ -184,25 +178,23 @@ foreach ($filesToProcess as $fileToProcess)
|
|||||||
|
|
||||||
// Start reading and parsing English
|
// Start reading and parsing English
|
||||||
|
|
||||||
if ( $handle = fopen($lEnglishFile, 'r') )
|
if ($handle = fopen($lEnglishFile, 'r')) {
|
||||||
{
|
|
||||||
print "Read English File $lEnglishFile:\n";
|
print "Read English File $lEnglishFile:\n";
|
||||||
$cnt = 0;
|
$cnt = 0;
|
||||||
while (($line = fgets($handle)) !== false)
|
while (($line = fgets($handle)) !== false) {
|
||||||
{
|
|
||||||
$cnt++;
|
$cnt++;
|
||||||
|
|
||||||
// strip comments
|
// strip comments
|
||||||
if ( preg_match("/^\w*#/", $line) ) {
|
if (preg_match("/^\w*#/", $line)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// strip empty lines
|
// strip empty lines
|
||||||
if ( preg_match("/^\w*$/", $line) ) {
|
if (preg_match("/^\w*$/", $line)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$a = mb_split('=', trim($line), 2);
|
$a = mb_split('=', trim($line), 2);
|
||||||
if ( count($a) != 2 ) {
|
if (count($a) != 2) {
|
||||||
print "ERROR in file $lEnglishFile, line $cnt: " . trim($line) . "\n";
|
print "ERROR in file $lEnglishFile, line $cnt: " . trim($line) . "\n";
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -210,29 +202,27 @@ foreach ($filesToProcess as $fileToProcess)
|
|||||||
list($key, $value) = $a;
|
list($key, $value) = $a;
|
||||||
|
|
||||||
// key is redundant
|
// key is redundant
|
||||||
if ( array_key_exists($key, $aEnglish) ) {
|
if (array_key_exists($key, $aEnglish)) {
|
||||||
print "Key $key is redundant in file $lEnglishFile (line: $cnt).\n";
|
print "Key $key is redundant in file $lEnglishFile (line: $cnt).\n";
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// String has no value
|
// String has no value
|
||||||
if ( $value == '' ) {
|
if ($value == '') {
|
||||||
print "Key $key has no value in file $lEnglishFile (line: $cnt).\n";
|
print "Key $key has no value in file $lEnglishFile (line: $cnt).\n";
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$aEnglish[$key] = trim($value);
|
$aEnglish[$key] = trim($value);
|
||||||
}
|
}
|
||||||
if ( ! feof($handle) )
|
if (! feof($handle)) {
|
||||||
{
|
|
||||||
$rc = 5;
|
$rc = 5;
|
||||||
$msg = "Unexpected fgets() fail";
|
$msg = "Unexpected fgets() fail";
|
||||||
print $msg . " (rc=$rc).\n";
|
print $msg . " (rc=$rc).\n";
|
||||||
exit($rc);
|
exit($rc);
|
||||||
}
|
}
|
||||||
fclose($handle);
|
fclose($handle);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
$rc = 6;
|
$rc = 6;
|
||||||
$msg = "Cannot open file $lEnglishFile";
|
$msg = "Cannot open file $lEnglishFile";
|
||||||
print $msg . " (rc=$rc).\n";
|
print $msg . " (rc=$rc).\n";
|
||||||
@ -246,10 +236,8 @@ foreach ($filesToProcess as $fileToProcess)
|
|||||||
$arrayofkeytoalwayskeep=array('DIRECTION','FONTFORPDF','FONTSIZEFORPDF','SeparatorDecimal','SeparatorThousand');
|
$arrayofkeytoalwayskeep=array('DIRECTION','FONTFORPDF','FONTSIZEFORPDF','SeparatorDecimal','SeparatorThousand');
|
||||||
|
|
||||||
|
|
||||||
if ( $handle = fopen($lPrimaryFile, 'r') )
|
if ($handle = fopen($lPrimaryFile, 'r')) {
|
||||||
{
|
if (! $oh = fopen($output, 'w')) {
|
||||||
if ( ! $oh = fopen($output, 'w') )
|
|
||||||
{
|
|
||||||
print "ERROR in writing to file ".$output."\n";
|
print "ERROR in writing to file ".$output."\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
@ -259,21 +247,20 @@ foreach ($filesToProcess as $fileToProcess)
|
|||||||
fwrite($oh, "# Dolibarr language file - Source file is en_US - ".(preg_replace('/\.lang$/', '', $fileToProcess))."\n");
|
fwrite($oh, "# Dolibarr language file - Source file is en_US - ".(preg_replace('/\.lang$/', '', $fileToProcess))."\n");
|
||||||
|
|
||||||
$cnt = 0;
|
$cnt = 0;
|
||||||
while (($line = fgets($handle)) !== false)
|
while (($line = fgets($handle)) !== false) {
|
||||||
{
|
|
||||||
$cnt++;
|
$cnt++;
|
||||||
|
|
||||||
// strip comments
|
// strip comments
|
||||||
if ( preg_match("/^\w*#/", $line) ) {
|
if (preg_match("/^\w*#/", $line)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// strip empty lines
|
// strip empty lines
|
||||||
if ( preg_match("/^\w*$/", $line) ) {
|
if (preg_match("/^\w*$/", $line)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$a = mb_split('=', trim($line), 2);
|
$a = mb_split('=', trim($line), 2);
|
||||||
if ( count($a) != 2 ) {
|
if (count($a) != 2) {
|
||||||
print "ERROR in file $lPrimaryFile, line $cnt: " . trim($line) . "\n";
|
print "ERROR in file $lPrimaryFile, line $cnt: " . trim($line) . "\n";
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -281,17 +268,16 @@ foreach ($filesToProcess as $fileToProcess)
|
|||||||
list($key, $value) = $a;
|
list($key, $value) = $a;
|
||||||
|
|
||||||
// key is redundant
|
// key is redundant
|
||||||
if ( array_key_exists($key, $aPrimary) ) {
|
if (array_key_exists($key, $aPrimary)) {
|
||||||
print "Key $key is redundant in file $lPrimaryFile (line: $cnt) - Already found into ".$fileFirstFound[$key]." (line: ".$lineFirstFound[$key].").\n";
|
print "Key $key is redundant in file $lPrimaryFile (line: $cnt) - Already found into ".$fileFirstFound[$key]." (line: ".$lineFirstFound[$key].").\n";
|
||||||
continue;
|
continue;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
$fileFirstFound[$key] = $fileToProcess;
|
$fileFirstFound[$key] = $fileToProcess;
|
||||||
$lineFirstFound[$key] = $cnt;
|
$lineFirstFound[$key] = $cnt;
|
||||||
}
|
}
|
||||||
|
|
||||||
// String has no value
|
// String has no value
|
||||||
if ( $value == '' ) {
|
if ($value == '') {
|
||||||
print "Key $key has no value in file $lPrimaryFile (line: $cnt).\n";
|
print "Key $key has no value in file $lPrimaryFile (line: $cnt).\n";
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -305,28 +291,23 @@ foreach ($filesToProcess as $fileToProcess)
|
|||||||
//print "Found primary key = ".$key."\n";
|
//print "Found primary key = ".$key."\n";
|
||||||
|
|
||||||
// Key not in other file
|
// Key not in other file
|
||||||
if (in_array($key, $arrayofkeytoalwayskeep) || preg_match('/^FormatDate/', $key) || preg_match('/^FormatHour/', $key))
|
if (in_array($key, $arrayofkeytoalwayskeep) || preg_match('/^FormatDate/', $key) || preg_match('/^FormatHour/', $key)) {
|
||||||
{
|
|
||||||
//print "Key $key is a key we always want to see into secondary file (line: $cnt).\n";
|
//print "Key $key is a key we always want to see into secondary file (line: $cnt).\n";
|
||||||
}
|
} elseif (! array_key_exists($key, $aSecondary)) {
|
||||||
elseif ( ! array_key_exists($key, $aSecondary))
|
|
||||||
{
|
|
||||||
//print "Key $key does NOT exist in secondary language (line: $cnt).\n";
|
//print "Key $key does NOT exist in secondary language (line: $cnt).\n";
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// String exists in both files and value into alternative language differs from main language but also from english files
|
// String exists in both files and value into alternative language differs from main language but also from english files
|
||||||
if (
|
if ((! empty($aSecondary[$key]) && $aSecondary[$key] != $aPrimary[$key]
|
||||||
(! empty($aSecondary[$key]) && $aSecondary[$key] != $aPrimary[$key]
|
|
||||||
&& ! empty($aEnglish[$key]) && $aSecondary[$key] != $aEnglish[$key])
|
&& ! empty($aEnglish[$key]) && $aSecondary[$key] != $aEnglish[$key])
|
||||||
|| in_array($key, $arrayofkeytoalwayskeep) || preg_match('/^FormatDate/', $key) || preg_match('/^FormatHour/', $key)
|
|| in_array($key, $arrayofkeytoalwayskeep) || preg_match('/^FormatDate/', $key) || preg_match('/^FormatHour/', $key)
|
||||||
)
|
) {
|
||||||
{
|
|
||||||
//print "Key $key differs (aSecondary=".$aSecondary[$key].", aPrimary=".$aPrimary[$key].", aEnglish=".$aEnglish[$key].") so we add it into new secondary language (line: $cnt).\n";
|
//print "Key $key differs (aSecondary=".$aSecondary[$key].", aPrimary=".$aPrimary[$key].", aEnglish=".$aEnglish[$key].") so we add it into new secondary language (line: $cnt).\n";
|
||||||
fwrite($oh, $key."=".(empty($aSecondary[$key])?$aPrimary[$key]:$aSecondary[$key])."\n");
|
fwrite($oh, $key."=".(empty($aSecondary[$key])?$aPrimary[$key]:$aSecondary[$key])."\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( ! feof($handle) ) {
|
if (! feof($handle)) {
|
||||||
$rc = 7;
|
$rc = 7;
|
||||||
$msg = "Unexpected fgets() fail";
|
$msg = "Unexpected fgets() fail";
|
||||||
print $msg . " (rc=$rc).\n";
|
print $msg . " (rc=$rc).\n";
|
||||||
@ -334,8 +315,7 @@ foreach ($filesToProcess as $fileToProcess)
|
|||||||
}
|
}
|
||||||
fclose($oh);
|
fclose($oh);
|
||||||
fclose($handle);
|
fclose($handle);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
$rc = 8;
|
$rc = 8;
|
||||||
$msg = "Cannot open file $lPrimaryFile";
|
$msg = "Cannot open file $lPrimaryFile";
|
||||||
print $msg . " (rc=$rc).\n";
|
print $msg . " (rc=$rc).\n";
|
||||||
|
|||||||
BIN
doc/images/dolibarr_screenshot12_1920x1080.jpg
Normal file
BIN
doc/images/dolibarr_screenshot12_1920x1080.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 219 KiB |
@ -49,20 +49,30 @@ $search_pcgtype = GETPOST('search_pcgtype', 'alpha');
|
|||||||
$chartofaccounts = GETPOST('chartofaccounts', 'int');
|
$chartofaccounts = GETPOST('chartofaccounts', 'int');
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->socid > 0) accessforbidden();
|
if ($user->socid > 0) {
|
||||||
if (!$user->rights->accounting->chartofaccount) accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
if (!$user->rights->accounting->chartofaccount) {
|
||||||
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
// Load variable for pagination
|
// Load variable for pagination
|
||||||
$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
|
$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
|
||||||
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
||||||
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
||||||
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
||||||
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1
|
if (empty($page) || $page == -1) {
|
||||||
|
$page = 0;
|
||||||
|
} // If $page is not defined, or '' or -1
|
||||||
$offset = $limit * $page;
|
$offset = $limit * $page;
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
if (!$sortfield) $sortfield = "aa.account_number";
|
if (!$sortfield) {
|
||||||
if (!$sortorder) $sortorder = "ASC";
|
$sortfield = "aa.account_number";
|
||||||
|
}
|
||||||
|
if (!$sortorder) {
|
||||||
|
$sortorder = "ASC";
|
||||||
|
}
|
||||||
|
|
||||||
$arrayfields = array(
|
$arrayfields = array(
|
||||||
'aa.account_number'=>array('label'=>$langs->trans("AccountNumber"), 'checked'=>1),
|
'aa.account_number'=>array('label'=>$langs->trans("AccountNumber"), 'checked'=>1),
|
||||||
@ -74,7 +84,9 @@ $arrayfields = array(
|
|||||||
'aa.active'=>array('label'=>$langs->trans("Activated"), 'checked'=>1)
|
'aa.active'=>array('label'=>$langs->trans("Activated"), 'checked'=>1)
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($conf->global->MAIN_FEATURES_LEVEL < 2) unset($arrayfields['aa.reconcilable']);
|
if ($conf->global->MAIN_FEATURES_LEVEL < 2) {
|
||||||
|
unset($arrayfields['aa.reconcilable']);
|
||||||
|
}
|
||||||
|
|
||||||
$accounting = new AccountingAccount($db);
|
$accounting = new AccountingAccount($db);
|
||||||
|
|
||||||
@ -84,21 +96,27 @@ $accounting = new AccountingAccount($db);
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (GETPOST('cancel', 'alpha')) { $action = 'list'; $massaction = ''; }
|
if (GETPOST('cancel', 'alpha')) {
|
||||||
if (!GETPOST('confirmmassaction', 'alpha')) { $massaction = ''; }
|
$action = 'list'; $massaction = '';
|
||||||
|
}
|
||||||
|
if (!GETPOST('confirmmassaction', 'alpha')) {
|
||||||
|
$massaction = '';
|
||||||
|
}
|
||||||
|
|
||||||
$parameters = array();
|
$parameters = array();
|
||||||
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
||||||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
if ($reshook < 0) {
|
||||||
|
setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($reshook))
|
if (empty($reshook)) {
|
||||||
{
|
if (!empty($cancel)) {
|
||||||
if (!empty($cancel)) $action = '';
|
$action = '';
|
||||||
|
}
|
||||||
|
|
||||||
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
||||||
|
|
||||||
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // All test are required to be compatible with all browsers
|
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All test are required to be compatible with all browsers
|
||||||
{
|
|
||||||
$search_account = "";
|
$search_account = "";
|
||||||
$search_label = "";
|
$search_label = "";
|
||||||
$search_labelshort = "";
|
$search_labelshort = "";
|
||||||
@ -107,23 +125,21 @@ if (empty($reshook))
|
|||||||
$search_array_options = array();
|
$search_array_options = array();
|
||||||
}
|
}
|
||||||
if ((GETPOST('valid_change_chart', 'alpha') && GETPOST('chartofaccounts', 'int') > 0) // explicit click on button 'Change and load' with js on
|
if ((GETPOST('valid_change_chart', 'alpha') && GETPOST('chartofaccounts', 'int') > 0) // explicit click on button 'Change and load' with js on
|
||||||
|| (GETPOST('chartofaccounts', 'int') > 0 && GETPOST('chartofaccounts', 'int') != $conf->global->CHARTOFACCOUNTS)) // a submit of form is done and chartofaccounts combo has been modified
|
|| (GETPOST('chartofaccounts', 'int') > 0 && GETPOST('chartofaccounts', 'int') != $conf->global->CHARTOFACCOUNTS)) { // a submit of form is done and chartofaccounts combo has been modified
|
||||||
{
|
if ($chartofaccounts > 0) {
|
||||||
if ($chartofaccounts > 0)
|
|
||||||
{
|
|
||||||
// Get language code for this $chartofaccounts
|
// Get language code for this $chartofaccounts
|
||||||
$sql = 'SELECT code FROM '.MAIN_DB_PREFIX.'c_country as c, '.MAIN_DB_PREFIX.'accounting_system as a';
|
$sql = 'SELECT code FROM '.MAIN_DB_PREFIX.'c_country as c, '.MAIN_DB_PREFIX.'accounting_system as a';
|
||||||
$sql .= ' WHERE c.rowid = a.fk_country AND a.rowid = '.(int) $chartofaccounts;
|
$sql .= ' WHERE c.rowid = a.fk_country AND a.rowid = '.(int) $chartofaccounts;
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql)
|
if ($resql) {
|
||||||
{
|
|
||||||
$obj = $db->fetch_object($resql);
|
$obj = $db->fetch_object($resql);
|
||||||
$country_code = $obj->code;
|
$country_code = $obj->code;
|
||||||
} else dol_print_error($db);
|
} else {
|
||||||
|
dol_print_error($db);
|
||||||
|
}
|
||||||
|
|
||||||
// Try to load sql file
|
// Try to load sql file
|
||||||
if ($country_code)
|
if ($country_code) {
|
||||||
{
|
|
||||||
$sqlfile = DOL_DOCUMENT_ROOT.'/install/mysql/data/llx_accounting_account_'.strtolower($country_code).'.sql';
|
$sqlfile = DOL_DOCUMENT_ROOT.'/install/mysql/data/llx_accounting_account_'.strtolower($country_code).'.sql';
|
||||||
|
|
||||||
$offsetforchartofaccount = 0;
|
$offsetforchartofaccount = 0;
|
||||||
@ -131,16 +147,14 @@ if (empty($reshook))
|
|||||||
// and pass CCCNNNNN + (num of company * 100 000 000) as offset to the run_sql as a new parameter to say to update sql on the fly to add offset to rowid and account_parent value.
|
// and pass CCCNNNNN + (num of company * 100 000 000) as offset to the run_sql as a new parameter to say to update sql on the fly to add offset to rowid and account_parent value.
|
||||||
// This is to be sure there is no conflict for each chart of account, whatever is country, whatever is company when multicompany is used.
|
// This is to be sure there is no conflict for each chart of account, whatever is country, whatever is company when multicompany is used.
|
||||||
$tmp = file_get_contents($sqlfile);
|
$tmp = file_get_contents($sqlfile);
|
||||||
if (preg_match('/-- ADD (\d+) to rowid/ims', $tmp, $reg))
|
if (preg_match('/-- ADD (\d+) to rowid/ims', $tmp, $reg)) {
|
||||||
{
|
|
||||||
$offsetforchartofaccount += $reg[1];
|
$offsetforchartofaccount += $reg[1];
|
||||||
}
|
}
|
||||||
$offsetforchartofaccount += ($conf->entity * 100000000);
|
$offsetforchartofaccount += ($conf->entity * 100000000);
|
||||||
|
|
||||||
$result = run_sql($sqlfile, 1, $conf->entity, 1, '', 'default', 32768, 0, $offsetforchartofaccount);
|
$result = run_sql($sqlfile, 1, $conf->entity, 1, '', 'default', 32768, 0, $offsetforchartofaccount);
|
||||||
|
|
||||||
if ($result > 0)
|
if ($result > 0) {
|
||||||
{
|
|
||||||
setEventMessages($langs->trans("ChartLoaded"), null, 'mesgs');
|
setEventMessages($langs->trans("ChartLoaded"), null, 'mesgs');
|
||||||
} else {
|
} else {
|
||||||
setEventMessages($langs->trans("ErrorDuringChartLoad"), null, 'warnings');
|
setEventMessages($langs->trans("ErrorDuringChartLoad"), null, 'warnings');
|
||||||
@ -198,8 +212,11 @@ $sql = "SELECT aa.rowid, aa.fk_pcg_version, aa.pcg_type, aa.account_number, aa.a
|
|||||||
$sql .= " a2.rowid as rowid2, a2.label as label2, a2.account_number as account_number2";
|
$sql .= " a2.rowid as rowid2, a2.label as label2, a2.account_number as account_number2";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as aa";
|
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as aa";
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version AND aa.entity = ".$conf->entity;
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version AND aa.entity = ".$conf->entity;
|
||||||
if ($db->type == 'pgsql') $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as a2 ON a2.rowid = aa.account_parent AND a2.entity = ".$conf->entity;
|
if ($db->type == 'pgsql') {
|
||||||
else $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as a2 ON a2.rowid = aa.account_parent AND a2.entity = ".$conf->entity;
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as a2 ON a2.rowid = aa.account_parent AND a2.entity = ".$conf->entity;
|
||||||
|
} else {
|
||||||
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as a2 ON a2.rowid = aa.account_parent AND a2.entity = ".$conf->entity;
|
||||||
|
}
|
||||||
$sql .= " WHERE asy.rowid = ".$pcgver;
|
$sql .= " WHERE asy.rowid = ".$pcgver;
|
||||||
//print $sql;
|
//print $sql;
|
||||||
if (strlen(trim($search_account))) {
|
if (strlen(trim($search_account))) {
|
||||||
@ -224,31 +241,38 @@ if (strlen(trim($search_account))) {
|
|||||||
$search_account_tmp_clean = $search_account_tmp;
|
$search_account_tmp_clean = $search_account_tmp;
|
||||||
$search_account_clean = $search_account;
|
$search_account_clean = $search_account;
|
||||||
$startchar = '%';
|
$startchar = '%';
|
||||||
if (strpos($search_account_tmp, '^') === 0)
|
if (strpos($search_account_tmp, '^') === 0) {
|
||||||
{
|
|
||||||
$startchar = '';
|
$startchar = '';
|
||||||
$search_account_tmp_clean = preg_replace('/^\^/', '', $search_account_tmp);
|
$search_account_tmp_clean = preg_replace('/^\^/', '', $search_account_tmp);
|
||||||
$search_account_clean = preg_replace('/^\^/', '', $search_account);
|
$search_account_clean = preg_replace('/^\^/', '', $search_account);
|
||||||
}
|
}
|
||||||
$sql .= " AND (aa.account_number LIKE '".$db->escape($startchar.$search_account_tmp_clean)."'";
|
$sql .= " AND (aa.account_number LIKE '".$db->escape($startchar.$search_account_tmp_clean)."'";
|
||||||
$sql .= " OR aa.account_number LIKE '".$db->escape($startchar.$search_account_clean)."%')";
|
$sql .= " OR aa.account_number LIKE '".$db->escape($startchar.$search_account_clean)."%')";
|
||||||
} else $sql .= natural_search("aa.account_number", $search_account_tmp);
|
} else {
|
||||||
|
$sql .= natural_search("aa.account_number", $search_account_tmp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (strlen(trim($search_label))) $sql .= natural_search("aa.label", $search_label);
|
if (strlen(trim($search_label))) {
|
||||||
if (strlen(trim($search_labelshort))) $sql .= natural_search("aa.labelshort", $search_labelshort);
|
$sql .= natural_search("aa.label", $search_label);
|
||||||
if (strlen(trim($search_accountparent)) && $search_accountparent != '-1') $sql .= natural_search("aa.account_parent", $search_accountparent, 2);
|
}
|
||||||
if (strlen(trim($search_pcgtype))) $sql .= natural_search("aa.pcg_type", $search_pcgtype);
|
if (strlen(trim($search_labelshort))) {
|
||||||
|
$sql .= natural_search("aa.labelshort", $search_labelshort);
|
||||||
|
}
|
||||||
|
if (strlen(trim($search_accountparent)) && $search_accountparent != '-1') {
|
||||||
|
$sql .= natural_search("aa.account_parent", $search_accountparent, 2);
|
||||||
|
}
|
||||||
|
if (strlen(trim($search_pcgtype))) {
|
||||||
|
$sql .= natural_search("aa.pcg_type", $search_pcgtype);
|
||||||
|
}
|
||||||
$sql .= $db->order($sortfield, $sortorder);
|
$sql .= $db->order($sortfield, $sortorder);
|
||||||
|
|
||||||
// Count total nb of records
|
// Count total nb of records
|
||||||
$nbtotalofrecords = '';
|
$nbtotalofrecords = '';
|
||||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||||
{
|
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
$nbtotalofrecords = $db->num_rows($resql);
|
$nbtotalofrecords = $db->num_rows($resql);
|
||||||
if (($page * $limit) > $nbtotalofrecords) // if total resultset is smaller then paging size (filtering), goto and load page 0
|
if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0
|
||||||
{
|
|
||||||
$page = 0;
|
$page = 0;
|
||||||
$offset = 0;
|
$offset = 0;
|
||||||
}
|
}
|
||||||
@ -259,22 +283,36 @@ $sql .= $db->plimit($limit + 1, $offset);
|
|||||||
dol_syslog('accountancy/admin/account.php:: $sql='.$sql);
|
dol_syslog('accountancy/admin/account.php:: $sql='.$sql);
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
|
|
||||||
if ($resql)
|
if ($resql) {
|
||||||
{
|
|
||||||
$num = $db->num_rows($resql);
|
$num = $db->num_rows($resql);
|
||||||
|
|
||||||
$param = '';
|
$param = '';
|
||||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
$param .= '&contextpage='.urlencode($contextpage);
|
||||||
if ($search_account) $param .= '&search_account='.urlencode($search_account);
|
}
|
||||||
if ($search_label) $param .= '&search_label='.urlencode($search_label);
|
if ($limit > 0 && $limit != $conf->liste_limit) {
|
||||||
if ($search_labelshort) $param .= '&search_labelshort='.urlencode($search_labelshort);
|
$param .= '&limit='.urlencode($limit);
|
||||||
if ($search_accountparent > 0 || $search_accountparent == '0') $param .= '&search_accountparent='.urlencode($search_accountparent);
|
}
|
||||||
if ($search_pcgtype) $param .= '&search_pcgtype='.urlencode($search_pcgtype);
|
if ($search_account) {
|
||||||
if ($optioncss != '') $param .= '&optioncss='.urlencode($optioncss);
|
$param .= '&search_account='.urlencode($search_account);
|
||||||
|
}
|
||||||
|
if ($search_label) {
|
||||||
|
$param .= '&search_label='.urlencode($search_label);
|
||||||
|
}
|
||||||
|
if ($search_labelshort) {
|
||||||
|
$param .= '&search_labelshort='.urlencode($search_labelshort);
|
||||||
|
}
|
||||||
|
if ($search_accountparent > 0 || $search_accountparent == '0') {
|
||||||
|
$param .= '&search_accountparent='.urlencode($search_accountparent);
|
||||||
|
}
|
||||||
|
if ($search_pcgtype) {
|
||||||
|
$param .= '&search_pcgtype='.urlencode($search_pcgtype);
|
||||||
|
}
|
||||||
|
if ($optioncss != '') {
|
||||||
|
$param .= '&optioncss='.urlencode($optioncss);
|
||||||
|
}
|
||||||
|
|
||||||
if (!empty($conf->use_javascript_ajax))
|
if (!empty($conf->use_javascript_ajax)) {
|
||||||
{
|
|
||||||
print '<!-- Add javascript to reload page when we click "Change plan" -->
|
print '<!-- Add javascript to reload page when we click "Change plan" -->
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
@ -288,7 +326,9 @@ if ($resql)
|
|||||||
}
|
}
|
||||||
|
|
||||||
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
|
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') {
|
||||||
|
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
}
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
||||||
print '<input type="hidden" name="action" value="list">';
|
print '<input type="hidden" name="action" value="list">';
|
||||||
@ -322,7 +362,9 @@ if ($resql)
|
|||||||
|
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
} else dol_print_error($db);
|
} else {
|
||||||
|
dol_print_error($db);
|
||||||
|
}
|
||||||
print "</select>";
|
print "</select>";
|
||||||
print ajax_combobox("chartofaccounts");
|
print ajax_combobox("chartofaccounts");
|
||||||
print '<input type="'.(empty($conf->use_javascript_ajax) ? 'submit' : 'button').'" class="button" name="change_chart" id="change_chart" value="'.dol_escape_htmltag($langs->trans("ChangeAndLoad")).'">';
|
print '<input type="'.(empty($conf->use_javascript_ajax) ? 'submit' : 'button').'" class="button" name="change_chart" id="change_chart" value="'.dol_escape_htmltag($langs->trans("ChangeAndLoad")).'">';
|
||||||
@ -341,17 +383,31 @@ if ($resql)
|
|||||||
|
|
||||||
// Line for search fields
|
// Line for search fields
|
||||||
print '<tr class="liste_titre_filter">';
|
print '<tr class="liste_titre_filter">';
|
||||||
if (!empty($arrayfields['aa.account_number']['checked'])) print '<td class="liste_titre"><input type="text" class="flat width100" name="search_account" value="'.$search_account.'"></td>';
|
if (!empty($arrayfields['aa.account_number']['checked'])) {
|
||||||
if (!empty($arrayfields['aa.label']['checked'])) print '<td class="liste_titre"><input type="text" class="flat width150" name="search_label" value="'.$search_label.'"></td>';
|
print '<td class="liste_titre"><input type="text" class="flat width100" name="search_account" value="'.$search_account.'"></td>';
|
||||||
if (!empty($arrayfields['aa.labelshort']['checked'])) print '<td class="liste_titre"><input type="text" class="flat width100" name="search_labelshort" value="'.$search_labelshort.'"></td>';
|
}
|
||||||
|
if (!empty($arrayfields['aa.label']['checked'])) {
|
||||||
|
print '<td class="liste_titre"><input type="text" class="flat width150" name="search_label" value="'.$search_label.'"></td>';
|
||||||
|
}
|
||||||
|
if (!empty($arrayfields['aa.labelshort']['checked'])) {
|
||||||
|
print '<td class="liste_titre"><input type="text" class="flat width100" name="search_labelshort" value="'.$search_labelshort.'"></td>';
|
||||||
|
}
|
||||||
if (!empty($arrayfields['aa.account_parent']['checked'])) {
|
if (!empty($arrayfields['aa.account_parent']['checked'])) {
|
||||||
print '<td class="liste_titre">';
|
print '<td class="liste_titre">';
|
||||||
print $formaccounting->select_account($search_accountparent, 'search_accountparent', 2);
|
print $formaccounting->select_account($search_accountparent, 'search_accountparent', 2);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
if (!empty($arrayfields['aa.pcg_type']['checked'])) print '<td class="liste_titre"><input type="text" class="flat width100" name="search_pcgtype" value="'.$search_pcgtype.'"></td>';
|
if (!empty($arrayfields['aa.pcg_type']['checked'])) {
|
||||||
if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { if (!empty($arrayfields['aa.reconcilable']['checked'])) print '<td class="liste_titre"> </td>'; }
|
print '<td class="liste_titre"><input type="text" class="flat width100" name="search_pcgtype" value="'.$search_pcgtype.'"></td>';
|
||||||
if (!empty($arrayfields['aa.active']['checked'])) print '<td class="liste_titre"> </td>';
|
}
|
||||||
|
if ($conf->global->MAIN_FEATURES_LEVEL >= 2) {
|
||||||
|
if (!empty($arrayfields['aa.reconcilable']['checked'])) {
|
||||||
|
print '<td class="liste_titre"> </td>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!empty($arrayfields['aa.active']['checked'])) {
|
||||||
|
print '<td class="liste_titre"> </td>';
|
||||||
|
}
|
||||||
print '<td class="liste_titre maxwidthsearch">';
|
print '<td class="liste_titre maxwidthsearch">';
|
||||||
$searchpicto = $form->showFilterAndCheckAddButtons($massactionbutton ? 1 : 0, 'checkforselect', 1);
|
$searchpicto = $form->showFilterAndCheckAddButtons($massactionbutton ? 1 : 0, 'checkforselect', 1);
|
||||||
print $searchpicto;
|
print $searchpicto;
|
||||||
@ -359,13 +415,29 @@ if ($resql)
|
|||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
if (!empty($arrayfields['aa.account_number']['checked'])) print_liste_field_titre($arrayfields['aa.account_number']['label'], $_SERVER["PHP_SELF"], "aa.account_number", "", $param, '', $sortfield, $sortorder);
|
if (!empty($arrayfields['aa.account_number']['checked'])) {
|
||||||
if (!empty($arrayfields['aa.label']['checked'])) print_liste_field_titre($arrayfields['aa.label']['label'], $_SERVER["PHP_SELF"], "aa.label", "", $param, '', $sortfield, $sortorder);
|
print_liste_field_titre($arrayfields['aa.account_number']['label'], $_SERVER["PHP_SELF"], "aa.account_number", "", $param, '', $sortfield, $sortorder);
|
||||||
if (!empty($arrayfields['aa.labelshort']['checked'])) print_liste_field_titre($arrayfields['aa.labelshort']['label'], $_SERVER["PHP_SELF"], "aa.labelshort", "", $param, '', $sortfield, $sortorder);
|
}
|
||||||
if (!empty($arrayfields['aa.account_parent']['checked'])) print_liste_field_titre($arrayfields['aa.account_parent']['label'], $_SERVER["PHP_SELF"], "aa.account_parent", "", $param, '', $sortfield, $sortorder, 'left ');
|
if (!empty($arrayfields['aa.label']['checked'])) {
|
||||||
if (!empty($arrayfields['aa.pcg_type']['checked'])) print_liste_field_titre($arrayfields['aa.pcg_type']['label'], $_SERVER["PHP_SELF"], 'aa.pcg_type', '', $param, '', $sortfield, $sortorder, '', $arrayfields['aa.pcg_type']['help']);
|
print_liste_field_titre($arrayfields['aa.label']['label'], $_SERVER["PHP_SELF"], "aa.label", "", $param, '', $sortfield, $sortorder);
|
||||||
if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { if (!empty($arrayfields['aa.reconcilable']['checked'])) print_liste_field_titre($arrayfields['aa.reconcilable']['label'], $_SERVER["PHP_SELF"], 'aa.reconcilable', '', $param, '', $sortfield, $sortorder); }
|
}
|
||||||
if (!empty($arrayfields['aa.active']['checked'])) print_liste_field_titre($arrayfields['aa.active']['label'], $_SERVER["PHP_SELF"], 'aa.active', '', $param, '', $sortfield, $sortorder);
|
if (!empty($arrayfields['aa.labelshort']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['aa.labelshort']['label'], $_SERVER["PHP_SELF"], "aa.labelshort", "", $param, '', $sortfield, $sortorder);
|
||||||
|
}
|
||||||
|
if (!empty($arrayfields['aa.account_parent']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['aa.account_parent']['label'], $_SERVER["PHP_SELF"], "aa.account_parent", "", $param, '', $sortfield, $sortorder, 'left ');
|
||||||
|
}
|
||||||
|
if (!empty($arrayfields['aa.pcg_type']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['aa.pcg_type']['label'], $_SERVER["PHP_SELF"], 'aa.pcg_type', '', $param, '', $sortfield, $sortorder, '', $arrayfields['aa.pcg_type']['help']);
|
||||||
|
}
|
||||||
|
if ($conf->global->MAIN_FEATURES_LEVEL >= 2) {
|
||||||
|
if (!empty($arrayfields['aa.reconcilable']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['aa.reconcilable']['label'], $_SERVER["PHP_SELF"], 'aa.reconcilable', '', $param, '', $sortfield, $sortorder);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!empty($arrayfields['aa.active']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['aa.active']['label'], $_SERVER["PHP_SELF"], 'aa.active', '', $param, '', $sortfield, $sortorder);
|
||||||
|
}
|
||||||
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ');
|
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ');
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
@ -374,8 +446,7 @@ if ($resql)
|
|||||||
|
|
||||||
$totalarray = array();
|
$totalarray = array();
|
||||||
$i = 0;
|
$i = 0;
|
||||||
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;
|
||||||
@ -385,39 +456,40 @@ if ($resql)
|
|||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
// Account number
|
// Account number
|
||||||
if (!empty($arrayfields['aa.account_number']['checked']))
|
if (!empty($arrayfields['aa.account_number']['checked'])) {
|
||||||
{
|
|
||||||
print "<td>";
|
print "<td>";
|
||||||
print $accountstatic->getNomUrl(1, 0, 0, '', 0, 1, 0, 'accountcard');
|
print $accountstatic->getNomUrl(1, 0, 0, '', 0, 1, 0, 'accountcard');
|
||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Account label
|
// Account label
|
||||||
if (!empty($arrayfields['aa.label']['checked']))
|
if (!empty($arrayfields['aa.label']['checked'])) {
|
||||||
{
|
|
||||||
print "<td>";
|
print "<td>";
|
||||||
print $obj->label;
|
print $obj->label;
|
||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Account label to show (label short)
|
// Account label to show (label short)
|
||||||
if (!empty($arrayfields['aa.labelshort']['checked']))
|
if (!empty($arrayfields['aa.labelshort']['checked'])) {
|
||||||
{
|
|
||||||
print "<td>";
|
print "<td>";
|
||||||
print $obj->labelshort;
|
print $obj->labelshort;
|
||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Account parent
|
// Account parent
|
||||||
if (!empty($arrayfields['aa.account_parent']['checked']))
|
if (!empty($arrayfields['aa.account_parent']['checked'])) {
|
||||||
{
|
|
||||||
// Note: obj->account_parent is a foreign key to a rowid. It is field in child table and obj->rowid2 is same, but in parent table.
|
// Note: obj->account_parent is a foreign key to a rowid. It is field in child table and obj->rowid2 is same, but in parent table.
|
||||||
// So for orphans, obj->account_parent is set but not obj->rowid2
|
// So for orphans, obj->account_parent is set but not obj->rowid2
|
||||||
if (!empty($obj->account_parent) && !empty($obj->rowid2))
|
if (!empty($obj->account_parent) && !empty($obj->rowid2)) {
|
||||||
{
|
|
||||||
print "<td>";
|
print "<td>";
|
||||||
print '<!-- obj->account_parent = '.$obj->account_parent.' obj->rowid2 = '.$obj->rowid2.' -->';
|
print '<!-- obj->account_parent = '.$obj->account_parent.' obj->rowid2 = '.$obj->rowid2.' -->';
|
||||||
$accountparent->id = $obj->rowid2;
|
$accountparent->id = $obj->rowid2;
|
||||||
@ -425,24 +497,29 @@ if ($resql)
|
|||||||
$accountparent->account_number = $obj->account_number2; // Sotre an account number for output
|
$accountparent->account_number = $obj->account_number2; // Sotre an account number for output
|
||||||
print $accountparent->getNomUrl(1);
|
print $accountparent->getNomUrl(1);
|
||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
print '<td>';
|
print '<td>';
|
||||||
if (!empty($obj->account_parent)) {
|
if (!empty($obj->account_parent)) {
|
||||||
print '<!-- Bad value for obj->account_parent = '.$obj->account_parent.': is a rowid that does not exists -->';
|
print '<!-- Bad value for obj->account_parent = '.$obj->account_parent.': is a rowid that does not exists -->';
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Chart of accounts type
|
// Chart of accounts type
|
||||||
if (!empty($arrayfields['aa.pcg_type']['checked']))
|
if (!empty($arrayfields['aa.pcg_type']['checked'])) {
|
||||||
{
|
|
||||||
print "<td>";
|
print "<td>";
|
||||||
print $obj->pcg_type;
|
print $obj->pcg_type;
|
||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($conf->global->MAIN_FEATURES_LEVEL >= 2) {
|
if ($conf->global->MAIN_FEATURES_LEVEL >= 2) {
|
||||||
@ -466,8 +543,7 @@ if ($resql)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Activated or not
|
// Activated or not
|
||||||
if (!empty($arrayfields['aa.active']['checked']))
|
if (!empty($arrayfields['aa.active']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
if (empty($obj->active)) {
|
if (empty($obj->active)) {
|
||||||
print '<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?id='.$obj->rowid.'&action=enable&mode=0">';
|
print '<a class="reposition" href="'.$_SERVER["PHP_SELF"].'?id='.$obj->rowid.'&action=enable&mode=0">';
|
||||||
@ -479,7 +555,9 @@ if ($resql)
|
|||||||
print '</a>';
|
print '</a>';
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Action
|
// Action
|
||||||
@ -494,7 +572,9 @@ if ($resql)
|
|||||||
print '</a>';
|
print '</a>';
|
||||||
}
|
}
|
||||||
print '</td>'."\n";
|
print '</td>'."\n";
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
|
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
$i++;
|
$i++;
|
||||||
|
|||||||
@ -39,7 +39,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
|
||||||
if (!empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
|
if (!empty($conf->accounting->enabled)) {
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
|
||||||
|
}
|
||||||
|
|
||||||
// Load translation files required by the page
|
// Load translation files required by the page
|
||||||
$langs->loadLangs(array("errors", "admin", "companies", "resource", "holiday", "compta", "accountancy", "hrm"));
|
$langs->loadLangs(array("errors", "admin", "companies", "resource", "holiday", "compta", "accountancy", "hrm"));
|
||||||
@ -62,7 +64,9 @@ $active = 1;
|
|||||||
$sortfield = GETPOST("sortfield", 'aZ09comma');
|
$sortfield = GETPOST("sortfield", 'aZ09comma');
|
||||||
$sortorder = GETPOST("sortorder", 'aZ09comma');
|
$sortorder = GETPOST("sortorder", 'aZ09comma');
|
||||||
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
||||||
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1
|
if (empty($page) || $page == -1) {
|
||||||
|
$page = 0;
|
||||||
|
} // If $page is not defined, or '' or -1
|
||||||
$offset = $listlimit * $page;
|
$offset = $listlimit * $page;
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
@ -71,8 +75,12 @@ $search_country_id = GETPOST('search_country_id', 'int');
|
|||||||
|
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->socid > 0) accessforbidden();
|
if ($user->socid > 0) {
|
||||||
if (!$user->rights->accounting->chartofaccount) accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
if (!$user->rights->accounting->chartofaccount) {
|
||||||
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
|
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
|
||||||
@ -139,14 +147,12 @@ $sourceList = array();
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (GETPOST('button_removefilter', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter_x', 'alpha'))
|
if (GETPOST('button_removefilter', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter_x', 'alpha')) {
|
||||||
{
|
|
||||||
$search_country_id = '';
|
$search_country_id = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Actions add or modify an entry into a dictionary
|
// Actions add or modify an entry into a dictionary
|
||||||
if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha'))
|
if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
|
||||||
{
|
|
||||||
$listfield = explode(',', str_replace(' ', '', $tabfield[$id]));
|
$listfield = explode(',', str_replace(' ', '', $tabfield[$id]));
|
||||||
$listfieldinsert = explode(',', $tabfieldinsert[$id]);
|
$listfieldinsert = explode(',', $tabfieldinsert[$id]);
|
||||||
$listfieldmodify = explode(',', $tabfieldinsert[$id]);
|
$listfieldmodify = explode(',', $tabfieldinsert[$id]);
|
||||||
@ -154,17 +160,21 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha'))
|
|||||||
|
|
||||||
// Check that all fields are filled
|
// Check that all fields are filled
|
||||||
$ok = 1;
|
$ok = 1;
|
||||||
foreach ($listfield as $f => $value)
|
foreach ($listfield as $f => $value) {
|
||||||
{
|
if ($value == 'country_id' && in_array($tablib[$id], array('Pcg_version'))) {
|
||||||
if ($value == 'country_id' && in_array($tablib[$id], array('Pcg_version'))) continue; // For some pages, country is not mandatory
|
continue; // For some pages, country is not mandatory
|
||||||
if ((!GETPOSTISSET($value)) || GETPOST($value) == '')
|
}
|
||||||
{
|
if ((!GETPOSTISSET($value)) || GETPOST($value) == '') {
|
||||||
$ok = 0;
|
$ok = 0;
|
||||||
$fieldnamekey = $listfield[$f];
|
$fieldnamekey = $listfield[$f];
|
||||||
// We take translate key of field
|
// We take translate key of field
|
||||||
|
|
||||||
if ($fieldnamekey == 'pcg_version') $fieldnamekey = 'Pcg_version';
|
if ($fieldnamekey == 'pcg_version') {
|
||||||
if ($fieldnamekey == 'libelle' || ($fieldnamekey == 'label')) $fieldnamekey = 'Label';
|
$fieldnamekey = 'Pcg_version';
|
||||||
|
}
|
||||||
|
if ($fieldnamekey == 'libelle' || ($fieldnamekey == 'label')) {
|
||||||
|
$fieldnamekey = 'Label';
|
||||||
|
}
|
||||||
|
|
||||||
setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentities($fieldnamekey)), null, 'errors');
|
setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentities($fieldnamekey)), null, 'errors');
|
||||||
}
|
}
|
||||||
@ -174,10 +184,8 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha'))
|
|||||||
$ok = 0;
|
$ok = 0;
|
||||||
setEventMessages($langs->transnoentities('ErrorReservedTypeSystemSystemAuto'), null, 'errors');
|
setEventMessages($langs->transnoentities('ErrorReservedTypeSystemSystemAuto'), null, 'errors');
|
||||||
}
|
}
|
||||||
if (GETPOSTISSET("pcg_version"))
|
if (GETPOSTISSET("pcg_version")) {
|
||||||
{
|
if (GETPOST("pcg_version") == '0') {
|
||||||
if (GETPOST("pcg_version") == '0')
|
|
||||||
{
|
|
||||||
$ok = 0;
|
$ok = 0;
|
||||||
setEventMessages($langs->transnoentities('ErrorCodeCantContainZero'), null, 'errors');
|
setEventMessages($langs->transnoentities('ErrorCodeCantContainZero'), null, 'errors');
|
||||||
}
|
}
|
||||||
@ -187,23 +195,19 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha'))
|
|||||||
$msg .= $langs->transnoentities('ErrorFieldFormat', $langs->transnoentities('Code')).'<br>';
|
$msg .= $langs->transnoentities('ErrorFieldFormat', $langs->transnoentities('Code')).'<br>';
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
if (GETPOSTISSET("country") && (GETPOST("country") == '0') && ($id != 2))
|
if (GETPOSTISSET("country") && (GETPOST("country") == '0') && ($id != 2)) {
|
||||||
{
|
|
||||||
$ok = 0;
|
$ok = 0;
|
||||||
setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentities("Country")), null, 'errors');
|
setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentities("Country")), null, 'errors');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Si verif ok et action add, on ajoute la ligne
|
// Si verif ok et action add, on ajoute la ligne
|
||||||
if ($ok && GETPOST('actionadd', 'alpha'))
|
if ($ok && GETPOST('actionadd', 'alpha')) {
|
||||||
{
|
if ($tabrowid[$id]) {
|
||||||
if ($tabrowid[$id])
|
|
||||||
{
|
|
||||||
// Recupere id libre pour insertion
|
// Recupere id libre pour insertion
|
||||||
$newid = 0;
|
$newid = 0;
|
||||||
$sql = "SELECT max(".$tabrowid[$id].") newid from ".$tabname[$id];
|
$sql = "SELECT max(".$tabrowid[$id].") newid from ".$tabname[$id];
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if ($result)
|
if ($result) {
|
||||||
{
|
|
||||||
$obj = $db->fetch_object($result);
|
$obj = $db->fetch_object($result);
|
||||||
$newid = ($obj->newid + 1);
|
$newid = ($obj->newid + 1);
|
||||||
} else {
|
} else {
|
||||||
@ -214,34 +218,39 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha'))
|
|||||||
// Add new entry
|
// Add new entry
|
||||||
$sql = "INSERT INTO ".$tabname[$id]." (";
|
$sql = "INSERT INTO ".$tabname[$id]." (";
|
||||||
// List of fields
|
// List of fields
|
||||||
if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldinsert))
|
if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldinsert)) {
|
||||||
$sql .= $tabrowid[$id].",";
|
$sql .= $tabrowid[$id].",";
|
||||||
|
}
|
||||||
$sql .= $tabfieldinsert[$id];
|
$sql .= $tabfieldinsert[$id];
|
||||||
$sql .= ",active)";
|
$sql .= ",active)";
|
||||||
$sql .= " VALUES(";
|
$sql .= " VALUES(";
|
||||||
|
|
||||||
// List of values
|
// List of values
|
||||||
if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldinsert))
|
if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldinsert)) {
|
||||||
$sql .= $newid.",";
|
$sql .= $newid.",";
|
||||||
|
}
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach ($listfieldinsert as $f => $value)
|
foreach ($listfieldinsert as $f => $value) {
|
||||||
{
|
|
||||||
if ($value == 'price' || preg_match('/^amount/i', $value) || $value == 'taux') {
|
if ($value == 'price' || preg_match('/^amount/i', $value) || $value == 'taux') {
|
||||||
$_POST[$listfieldvalue[$i]] = price2num($_POST[$listfieldvalue[$i]], 'MU');
|
$_POST[$listfieldvalue[$i]] = price2num($_POST[$listfieldvalue[$i]], 'MU');
|
||||||
} elseif ($value == 'entity') {
|
} elseif ($value == 'entity') {
|
||||||
$_POST[$listfieldvalue[$i]] = $conf->entity;
|
$_POST[$listfieldvalue[$i]] = $conf->entity;
|
||||||
}
|
}
|
||||||
if ($i) $sql .= ",";
|
if ($i) {
|
||||||
if ($_POST[$listfieldvalue[$i]] == '') $sql .= "null";
|
$sql .= ",";
|
||||||
else $sql .= "'".$db->escape($_POST[$listfieldvalue[$i]])."'";
|
}
|
||||||
|
if ($_POST[$listfieldvalue[$i]] == '') {
|
||||||
|
$sql .= "null";
|
||||||
|
} else {
|
||||||
|
$sql .= "'".$db->escape($_POST[$listfieldvalue[$i]])."'";
|
||||||
|
}
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
$sql .= ",1)";
|
$sql .= ",1)";
|
||||||
|
|
||||||
dol_syslog("actionadd", LOG_DEBUG);
|
dol_syslog("actionadd", LOG_DEBUG);
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if ($result) // Add is ok
|
if ($result) { // Add is ok
|
||||||
{
|
|
||||||
setEventMessages($langs->transnoentities("RecordSaved"), null, 'mesgs');
|
setEventMessages($langs->transnoentities("RecordSaved"), null, 'mesgs');
|
||||||
$_POST = array('id'=>$id); // Clean $_POST array, we keep only
|
$_POST = array('id'=>$id); // Clean $_POST array, we keep only
|
||||||
} else {
|
} else {
|
||||||
@ -254,30 +263,36 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha'))
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Si verif ok et action modify, on modifie la ligne
|
// Si verif ok et action modify, on modifie la ligne
|
||||||
if ($ok && GETPOST('actionmodify', 'alpha'))
|
if ($ok && GETPOST('actionmodify', 'alpha')) {
|
||||||
{
|
if ($tabrowid[$id]) {
|
||||||
if ($tabrowid[$id]) { $rowidcol = $tabrowid[$id]; } else { $rowidcol = "rowid"; }
|
$rowidcol = $tabrowid[$id];
|
||||||
|
} else {
|
||||||
|
$rowidcol = "rowid";
|
||||||
|
}
|
||||||
|
|
||||||
// Modify entry
|
// Modify entry
|
||||||
$sql = "UPDATE ".$tabname[$id]." SET ";
|
$sql = "UPDATE ".$tabname[$id]." SET ";
|
||||||
// Modifie valeur des champs
|
// Modifie valeur des champs
|
||||||
if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldmodify))
|
if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldmodify)) {
|
||||||
{
|
|
||||||
$sql .= $tabrowid[$id]."=";
|
$sql .= $tabrowid[$id]."=";
|
||||||
$sql .= "'".$db->escape($rowid)."', ";
|
$sql .= "'".$db->escape($rowid)."', ";
|
||||||
}
|
}
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach ($listfieldmodify as $field)
|
foreach ($listfieldmodify as $field) {
|
||||||
{
|
|
||||||
if ($field == 'price' || preg_match('/^amount/i', $field) || $field == 'taux') {
|
if ($field == 'price' || preg_match('/^amount/i', $field) || $field == 'taux') {
|
||||||
$_POST[$listfieldvalue[$i]] = price2num($_POST[$listfieldvalue[$i]], 'MU');
|
$_POST[$listfieldvalue[$i]] = price2num($_POST[$listfieldvalue[$i]], 'MU');
|
||||||
} elseif ($field == 'entity') {
|
} elseif ($field == 'entity') {
|
||||||
$_POST[$listfieldvalue[$i]] = $conf->entity;
|
$_POST[$listfieldvalue[$i]] = $conf->entity;
|
||||||
}
|
}
|
||||||
if ($i) $sql .= ",";
|
if ($i) {
|
||||||
|
$sql .= ",";
|
||||||
|
}
|
||||||
$sql .= $field."=";
|
$sql .= $field."=";
|
||||||
if ($_POST[$listfieldvalue[$i]] == '') $sql .= "null";
|
if ($_POST[$listfieldvalue[$i]] == '') {
|
||||||
else $sql .= "'".$db->escape($_POST[$listfieldvalue[$i]])."'";
|
$sql .= "null";
|
||||||
|
} else {
|
||||||
|
$sql .= "'".$db->escape($_POST[$listfieldvalue[$i]])."'";
|
||||||
|
}
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
$sql .= " WHERE ".$rowidcol." = ".((int) $rowid);
|
$sql .= " WHERE ".$rowidcol." = ".((int) $rowid);
|
||||||
@ -285,31 +300,30 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha'))
|
|||||||
dol_syslog("actionmodify", LOG_DEBUG);
|
dol_syslog("actionmodify", LOG_DEBUG);
|
||||||
//print $sql;
|
//print $sql;
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if (!$resql)
|
if (!$resql) {
|
||||||
{
|
|
||||||
setEventMessages($db->error(), null, 'errors');
|
setEventMessages($db->error(), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//$_GET["id"]=GETPOST('id', 'int'); // Force affichage dictionnaire en cours d'edition
|
//$_GET["id"]=GETPOST('id', 'int'); // Force affichage dictionnaire en cours d'edition
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GETPOST('actioncancel', 'alpha'))
|
if (GETPOST('actioncancel', 'alpha')) {
|
||||||
{
|
|
||||||
//$_GET["id"]=GETPOST('id', 'int'); // Force affichage dictionnaire en cours d'edition
|
//$_GET["id"]=GETPOST('id', 'int'); // Force affichage dictionnaire en cours d'edition
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'confirm_delete' && $confirm == 'yes') // delete
|
if ($action == 'confirm_delete' && $confirm == 'yes') { // delete
|
||||||
{
|
if ($tabrowid[$id]) {
|
||||||
if ($tabrowid[$id]) { $rowidcol = $tabrowid[$id]; } else { $rowidcol = "rowid"; }
|
$rowidcol = $tabrowid[$id];
|
||||||
|
} else {
|
||||||
|
$rowidcol = "rowid";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = "DELETE from ".$tabname[$id]." WHERE ".$rowidcol." = ".((int) $rowid);
|
$sql = "DELETE from ".$tabname[$id]." WHERE ".$rowidcol." = ".((int) $rowid);
|
||||||
|
|
||||||
dol_syslog("delete", LOG_DEBUG);
|
dol_syslog("delete", LOG_DEBUG);
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
{
|
if ($db->errno() == 'DB_ERROR_CHILD_EXISTS') {
|
||||||
if ($db->errno() == 'DB_ERROR_CHILD_EXISTS')
|
|
||||||
{
|
|
||||||
setEventMessages($langs->transnoentities("ErrorRecordIsUsedByChild"), null, 'errors');
|
setEventMessages($langs->transnoentities("ErrorRecordIsUsedByChild"), null, 'errors');
|
||||||
} else {
|
} else {
|
||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
@ -318,9 +332,12 @@ if ($action == 'confirm_delete' && $confirm == 'yes') // delete
|
|||||||
}
|
}
|
||||||
|
|
||||||
// activate
|
// activate
|
||||||
if ($action == $acts[0])
|
if ($action == $acts[0]) {
|
||||||
{
|
if ($tabrowid[$id]) {
|
||||||
if ($tabrowid[$id]) { $rowidcol = $tabrowid[$id]; } else { $rowidcol = "rowid"; }
|
$rowidcol = $tabrowid[$id];
|
||||||
|
} else {
|
||||||
|
$rowidcol = "rowid";
|
||||||
|
}
|
||||||
|
|
||||||
if ($rowid) {
|
if ($rowid) {
|
||||||
$sql = "UPDATE ".$tabname[$id]." SET active = 1 WHERE ".$rowidcol." = ".((int) $rowid);
|
$sql = "UPDATE ".$tabname[$id]." SET active = 1 WHERE ".$rowidcol." = ".((int) $rowid);
|
||||||
@ -329,16 +346,18 @@ if ($action == $acts[0])
|
|||||||
}
|
}
|
||||||
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
{
|
|
||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// disable
|
// disable
|
||||||
if ($action == $acts[1])
|
if ($action == $acts[1]) {
|
||||||
{
|
if ($tabrowid[$id]) {
|
||||||
if ($tabrowid[$id]) { $rowidcol = $tabrowid[$id]; } else { $rowidcol = "rowid"; }
|
$rowidcol = $tabrowid[$id];
|
||||||
|
} else {
|
||||||
|
$rowidcol = "rowid";
|
||||||
|
}
|
||||||
|
|
||||||
if ($rowid) {
|
if ($rowid) {
|
||||||
$sql = "UPDATE ".$tabname[$id]." SET active = 0 WHERE ".$rowidcol." = ".((int) $rowid);
|
$sql = "UPDATE ".$tabname[$id]." SET active = 0 WHERE ".$rowidcol." = ".((int) $rowid);
|
||||||
@ -347,16 +366,18 @@ if ($action == $acts[1])
|
|||||||
}
|
}
|
||||||
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
{
|
|
||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// favorite
|
// favorite
|
||||||
if ($action == 'activate_favorite')
|
if ($action == 'activate_favorite') {
|
||||||
{
|
if ($tabrowid[$id]) {
|
||||||
if ($tabrowid[$id]) { $rowidcol = $tabrowid[$id]; } else { $rowidcol = "rowid"; }
|
$rowidcol = $tabrowid[$id];
|
||||||
|
} else {
|
||||||
|
$rowidcol = "rowid";
|
||||||
|
}
|
||||||
|
|
||||||
if ($rowid) {
|
if ($rowid) {
|
||||||
$sql = "UPDATE ".$tabname[$id]." SET favorite = 1 WHERE ".$rowidcol." = ".((int) $rowid);
|
$sql = "UPDATE ".$tabname[$id]." SET favorite = 1 WHERE ".$rowidcol." = ".((int) $rowid);
|
||||||
@ -365,16 +386,18 @@ if ($action == 'activate_favorite')
|
|||||||
}
|
}
|
||||||
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
{
|
|
||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// disable favorite
|
// disable favorite
|
||||||
if ($action == 'disable_favorite')
|
if ($action == 'disable_favorite') {
|
||||||
{
|
if ($tabrowid[$id]) {
|
||||||
if ($tabrowid[$id]) { $rowidcol = $tabrowid[$id]; } else { $rowidcol = "rowid"; }
|
$rowidcol = $tabrowid[$id];
|
||||||
|
} else {
|
||||||
|
$rowidcol = "rowid";
|
||||||
|
}
|
||||||
|
|
||||||
if ($rowid) {
|
if ($rowid) {
|
||||||
$sql = "UPDATE ".$tabname[$id]." SET favorite = 0 WHERE ".$rowidcol." = ".((int) $rowid);
|
$sql = "UPDATE ".$tabname[$id]." SET favorite = 0 WHERE ".$rowidcol." = ".((int) $rowid);
|
||||||
@ -383,8 +406,7 @@ if ($action == 'disable_favorite')
|
|||||||
}
|
}
|
||||||
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
{
|
|
||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -406,8 +428,7 @@ print load_fiche_titre($titre, $linkback, 'title_accountancy');
|
|||||||
|
|
||||||
|
|
||||||
// Confirmation de la suppression de la ligne
|
// Confirmation de la suppression de la ligne
|
||||||
if ($action == 'delete')
|
if ($action == 'delete') {
|
||||||
{
|
|
||||||
print $form->formconfirm($_SERVER["PHP_SELF"].'?'.($page ? 'page='.urlencode($page).'&' : '').'sortfield='.urlencode($sortfield).'&sortorder='.urlencode($sortorder).'&rowid='.urlencode($rowid).'&code='.urlencode($code).'&id='.urlencode($id), $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_delete', '', 0, 1);
|
print $form->formconfirm($_SERVER["PHP_SELF"].'?'.($page ? 'page='.urlencode($page).'&' : '').'sortfield='.urlencode($sortfield).'&sortorder='.urlencode($sortorder).'&rowid='.urlencode($rowid).'&code='.urlencode($code).'&id='.urlencode($id), $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_delete', '', 0, 1);
|
||||||
}
|
}
|
||||||
//var_dump($elementList);
|
//var_dump($elementList);
|
||||||
@ -415,20 +436,23 @@ if ($action == 'delete')
|
|||||||
/*
|
/*
|
||||||
* Show a dictionary
|
* Show a dictionary
|
||||||
*/
|
*/
|
||||||
if ($id)
|
if ($id) {
|
||||||
{
|
|
||||||
// Complete requete recherche valeurs avec critere de tri
|
// Complete requete recherche valeurs avec critere de tri
|
||||||
$sql = $tabsql[$id];
|
$sql = $tabsql[$id];
|
||||||
|
|
||||||
if ($search_country_id > 0)
|
if ($search_country_id > 0) {
|
||||||
{
|
if (preg_match('/ WHERE /', $sql)) {
|
||||||
if (preg_match('/ WHERE /', $sql)) $sql .= " AND ";
|
$sql .= " AND ";
|
||||||
else $sql .= " WHERE ";
|
} else {
|
||||||
|
$sql .= " WHERE ";
|
||||||
|
}
|
||||||
$sql .= " c.rowid = ".$search_country_id;
|
$sql .= " c.rowid = ".$search_country_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If sort order is "country", we use country_code instead
|
// If sort order is "country", we use country_code instead
|
||||||
if ($sortfield == 'country') $sortfield = 'country_code';
|
if ($sortfield == 'country') {
|
||||||
|
$sortfield = 'country_code';
|
||||||
|
}
|
||||||
$sql .= $db->order($sortfield, $sortorder);
|
$sql .= $db->order($sortfield, $sortorder);
|
||||||
$sql .= $db->plimit($listlimit + 1, $offset);
|
$sql .= $db->plimit($listlimit + 1, $offset);
|
||||||
//print $sql;
|
//print $sql;
|
||||||
@ -442,30 +466,35 @@ if ($id)
|
|||||||
print '<table class="noborder centpercent">';
|
print '<table class="noborder centpercent">';
|
||||||
|
|
||||||
// Form to add a new line
|
// Form to add a new line
|
||||||
if ($tabname[$id])
|
if ($tabname[$id]) {
|
||||||
{
|
|
||||||
$fieldlist = explode(',', $tabfield[$id]);
|
$fieldlist = explode(',', $tabfield[$id]);
|
||||||
|
|
||||||
// Line for title
|
// Line for title
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
foreach ($fieldlist as $field => $value)
|
foreach ($fieldlist as $field => $value) {
|
||||||
{
|
|
||||||
// Determine le nom du champ par rapport aux noms possibles
|
// Determine le nom du champ par rapport aux noms possibles
|
||||||
// dans les dictionnaires de donnees
|
// dans les dictionnaires de donnees
|
||||||
$valuetoshow = ucfirst($fieldlist[$field]); // Par defaut
|
$valuetoshow = ucfirst($fieldlist[$field]); // Par defaut
|
||||||
$valuetoshow = $langs->trans($valuetoshow); // try to translate
|
$valuetoshow = $langs->trans($valuetoshow); // try to translate
|
||||||
$class = "left";
|
$class = "left";
|
||||||
if ($fieldlist[$field] == 'code') { $valuetoshow = $langs->trans("Code"); }
|
if ($fieldlist[$field] == 'code') {
|
||||||
if ($fieldlist[$field] == 'libelle' || $fieldlist[$field] == 'label')
|
$valuetoshow = $langs->trans("Code");
|
||||||
{
|
}
|
||||||
|
if ($fieldlist[$field] == 'libelle' || $fieldlist[$field] == 'label') {
|
||||||
$valuetoshow = $langs->trans("Label");
|
$valuetoshow = $langs->trans("Label");
|
||||||
}
|
}
|
||||||
if ($fieldlist[$field] == 'country') {
|
if ($fieldlist[$field] == 'country') {
|
||||||
if (in_array('region_id', $fieldlist)) { print '<td> </td>'; continue; } // For region page, we do not show the country input
|
if (in_array('region_id', $fieldlist)) {
|
||||||
|
print '<td> </td>'; continue;
|
||||||
|
} // For region page, we do not show the country input
|
||||||
$valuetoshow = $langs->trans("Country");
|
$valuetoshow = $langs->trans("Country");
|
||||||
}
|
}
|
||||||
if ($fieldlist[$field] == 'country_id') { $valuetoshow = ''; }
|
if ($fieldlist[$field] == 'country_id') {
|
||||||
if ($fieldlist[$field] == 'pcg_version' || $fieldlist[$field] == 'fk_pcg_version') { $valuetoshow = $langs->trans("Pcg_version"); }
|
$valuetoshow = '';
|
||||||
|
}
|
||||||
|
if ($fieldlist[$field] == 'pcg_version' || $fieldlist[$field] == 'fk_pcg_version') {
|
||||||
|
$valuetoshow = $langs->trans("Pcg_version");
|
||||||
|
}
|
||||||
|
|
||||||
if ($valuetoshow != '') {
|
if ($valuetoshow != '') {
|
||||||
print '<td class="'.$class.'">';
|
print '<td class="'.$class.'">';
|
||||||
@ -492,22 +521,20 @@ if ($id)
|
|||||||
|
|
||||||
$obj = new stdClass();
|
$obj = new stdClass();
|
||||||
// If data was already input, we define them in obj to populate input fields.
|
// If data was already input, we define them in obj to populate input fields.
|
||||||
if (GETPOST('actionadd', 'alpha'))
|
if (GETPOST('actionadd', 'alpha')) {
|
||||||
{
|
foreach ($fieldlist as $key => $val) {
|
||||||
foreach ($fieldlist as $key=>$val)
|
if (GETPOST($val)) {
|
||||||
{
|
|
||||||
if (GETPOST($val))
|
|
||||||
$obj->$val = GETPOST($val);
|
$obj->$val = GETPOST($val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$tmpaction = 'create';
|
$tmpaction = 'create';
|
||||||
$parameters = array('fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]);
|
$parameters = array('fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]);
|
||||||
$reshook = $hookmanager->executeHooks('createDictionaryFieldlist', $parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('createDictionaryFieldlist', $parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
|
||||||
$error = $hookmanager->error; $errors = $hookmanager->errors;
|
$error = $hookmanager->error; $errors = $hookmanager->errors;
|
||||||
|
|
||||||
if (empty($reshook))
|
if (empty($reshook)) {
|
||||||
{
|
|
||||||
fieldListAccountModel($fieldlist, $obj, $tabname[$id], 'add');
|
fieldListAccountModel($fieldlist, $obj, $tabname[$id], 'add');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -526,20 +553,24 @@ if ($id)
|
|||||||
// List of available values in database
|
// List of available values in database
|
||||||
dol_syslog("htdocs/admin/dict", LOG_DEBUG);
|
dol_syslog("htdocs/admin/dict", LOG_DEBUG);
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql)
|
if ($resql) {
|
||||||
{
|
|
||||||
$num = $db->num_rows($resql);
|
$num = $db->num_rows($resql);
|
||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
$param = '&id='.$id;
|
$param = '&id='.$id;
|
||||||
if ($search_country_id > 0) $param .= '&search_country_id='.$search_country_id;
|
if ($search_country_id > 0) {
|
||||||
|
$param .= '&search_country_id='.$search_country_id;
|
||||||
|
}
|
||||||
$paramwithsearch = $param;
|
$paramwithsearch = $param;
|
||||||
if ($sortorder) $paramwithsearch .= '&sortorder='.$sortorder;
|
if ($sortorder) {
|
||||||
if ($sortfield) $paramwithsearch .= '&sortfield='.$sortfield;
|
$paramwithsearch .= '&sortorder='.$sortorder;
|
||||||
|
}
|
||||||
|
if ($sortfield) {
|
||||||
|
$paramwithsearch .= '&sortfield='.$sortfield;
|
||||||
|
}
|
||||||
|
|
||||||
// There is several pages
|
// There is several pages
|
||||||
if ($num > $listlimit)
|
if ($num > $listlimit) {
|
||||||
{
|
|
||||||
print '<tr class="none"><td class="right" colspan="'.(3 + count($fieldlist)).'">';
|
print '<tr class="none"><td class="right" colspan="'.(3 + count($fieldlist)).'">';
|
||||||
print_fleche_navigation($page, $_SERVER["PHP_SELF"], $paramwithsearch, ($num > $listlimit), '<li class="pagination"><span>'.$langs->trans("Page").' '.($page + 1).'</span></li>');
|
print_fleche_navigation($page, $_SERVER["PHP_SELF"], $paramwithsearch, ($num > $listlimit), '<li class="pagination"><span>'.$langs->trans("Page").' '.($page + 1).'</span></li>');
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
@ -547,16 +578,15 @@ if ($id)
|
|||||||
|
|
||||||
// Title line with search boxes
|
// Title line with search boxes
|
||||||
print '<tr class="liste_titre liste_titre_add">';
|
print '<tr class="liste_titre liste_titre_add">';
|
||||||
foreach ($fieldlist as $field => $value)
|
foreach ($fieldlist as $field => $value) {
|
||||||
{
|
|
||||||
$showfield = 1; // By defaut
|
$showfield = 1; // By defaut
|
||||||
|
|
||||||
if ($fieldlist[$field] == 'region_id' || $fieldlist[$field] == 'country_id') { $showfield = 0; }
|
if ($fieldlist[$field] == 'region_id' || $fieldlist[$field] == 'country_id') {
|
||||||
|
$showfield = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if ($showfield)
|
if ($showfield) {
|
||||||
{
|
if ($value == 'country') {
|
||||||
if ($value == 'country')
|
|
||||||
{
|
|
||||||
print '<td class="liste_titre">';
|
print '<td class="liste_titre">';
|
||||||
print $form->select_country($search_country_id, 'search_country_id', '', 28, 'maxwidth200 maxwidthonsmartphone');
|
print $form->select_country($search_country_id, 'search_country_id', '', 28, 'maxwidth200 maxwidthonsmartphone');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -582,16 +612,13 @@ if ($id)
|
|||||||
print getTitleFieldOfList('');
|
print getTitleFieldOfList('');
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
if ($num)
|
if ($num) {
|
||||||
{
|
|
||||||
// Lines with values
|
// Lines with values
|
||||||
while ($i < $num)
|
while ($i < $num) {
|
||||||
{
|
|
||||||
$obj = $db->fetch_object($resql);
|
$obj = $db->fetch_object($resql);
|
||||||
//print_r($obj);
|
//print_r($obj);
|
||||||
print '<tr class="oddeven" id="rowid-'.$obj->rowid.'">';
|
print '<tr class="oddeven" id="rowid-'.$obj->rowid.'">';
|
||||||
if ($action == 'edit' && ($rowid == (!empty($obj->rowid) ? $obj->rowid : $obj->code)))
|
if ($action == 'edit' && ($rowid == (!empty($obj->rowid) ? $obj->rowid : $obj->code))) {
|
||||||
{
|
|
||||||
print '<form action="'.$_SERVER['PHP_SELF'].'?id='.$id.'" method="POST">';
|
print '<form action="'.$_SERVER['PHP_SELF'].'?id='.$id.'" method="POST">';
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="page" value="'.$page.'">';
|
print '<input type="hidden" name="page" value="'.$page.'">';
|
||||||
@ -602,7 +629,9 @@ if ($id)
|
|||||||
$reshook = $hookmanager->executeHooks('editDictionaryFieldlist', $parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('editDictionaryFieldlist', $parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
|
||||||
$error = $hookmanager->error; $errors = $hookmanager->errors;
|
$error = $hookmanager->error; $errors = $hookmanager->errors;
|
||||||
|
|
||||||
if (empty($reshook)) fieldListAccountModel($fieldlist, $obj, $tabname[$id], 'edit');
|
if (empty($reshook)) {
|
||||||
|
fieldListAccountModel($fieldlist, $obj, $tabname[$id], 'edit');
|
||||||
|
}
|
||||||
|
|
||||||
print '<td colspan="3" class="right"><a name="'.(!empty($obj->rowid) ? $obj->rowid : $obj->code).'"> </a><input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">';
|
print '<td colspan="3" class="right"><a name="'.(!empty($obj->rowid) ? $obj->rowid : $obj->code).'"> </a><input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">';
|
||||||
print ' <input type="submit" class="button button-cancel" name="actioncancel" value="'.$langs->trans("Cancel").'"></td>';
|
print ' <input type="submit" class="button button-cancel" name="actioncancel" value="'.$langs->trans("Cancel").'"></td>';
|
||||||
@ -613,28 +642,22 @@ if ($id)
|
|||||||
|
|
||||||
$error = $hookmanager->error; $errors = $hookmanager->errors;
|
$error = $hookmanager->error; $errors = $hookmanager->errors;
|
||||||
|
|
||||||
if (empty($reshook))
|
if (empty($reshook)) {
|
||||||
{
|
foreach ($fieldlist as $field => $value) {
|
||||||
foreach ($fieldlist as $field => $value)
|
|
||||||
{
|
|
||||||
$showfield = 1;
|
$showfield = 1;
|
||||||
$class = "left";
|
$class = "left";
|
||||||
$valuetoshow = $obj->{$fieldlist[$field]};
|
$valuetoshow = $obj->{$fieldlist[$field]};
|
||||||
if ($value == 'type_template')
|
if ($value == 'type_template') {
|
||||||
{
|
|
||||||
$valuetoshow = isset($elementList[$valuetoshow]) ? $elementList[$valuetoshow] : $valuetoshow;
|
$valuetoshow = isset($elementList[$valuetoshow]) ? $elementList[$valuetoshow] : $valuetoshow;
|
||||||
}
|
}
|
||||||
if ($value == 'element')
|
if ($value == 'element') {
|
||||||
{
|
|
||||||
$valuetoshow = isset($elementList[$valuetoshow]) ? $elementList[$valuetoshow] : $valuetoshow;
|
$valuetoshow = isset($elementList[$valuetoshow]) ? $elementList[$valuetoshow] : $valuetoshow;
|
||||||
} elseif ($value == 'source')
|
} elseif ($value == 'source') {
|
||||||
{
|
|
||||||
$valuetoshow = isset($sourceList[$valuetoshow]) ? $sourceList[$valuetoshow] : $valuetoshow;
|
$valuetoshow = isset($sourceList[$valuetoshow]) ? $sourceList[$valuetoshow] : $valuetoshow;
|
||||||
} elseif ($valuetoshow == 'all') {
|
} elseif ($valuetoshow == 'all') {
|
||||||
$valuetoshow = $langs->trans('All');
|
$valuetoshow = $langs->trans('All');
|
||||||
} elseif ($fieldlist[$field] == 'country') {
|
} elseif ($fieldlist[$field] == 'country') {
|
||||||
if (empty($obj->country_code))
|
if (empty($obj->country_code)) {
|
||||||
{
|
|
||||||
$valuetoshow = '-';
|
$valuetoshow = '-';
|
||||||
} else {
|
} else {
|
||||||
$key = $langs->trans("Country".strtoupper($obj->country_code));
|
$key = $langs->trans("Country".strtoupper($obj->country_code));
|
||||||
@ -645,9 +668,13 @@ if ($id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
$class = 'tddict';
|
$class = 'tddict';
|
||||||
if ($fieldlist[$field] == 'tracking') $class .= ' tdoverflowauto';
|
if ($fieldlist[$field] == 'tracking') {
|
||||||
|
$class .= ' tdoverflowauto';
|
||||||
|
}
|
||||||
// Show value for field
|
// Show value for field
|
||||||
if ($showfield) print '<!-- '.$fieldlist[$field].' --><td class="'.$class.'">'.$valuetoshow.'</td>';
|
if ($showfield) {
|
||||||
|
print '<!-- '.$fieldlist[$field].' --><td class="'.$class.'">'.$valuetoshow.'</td>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -655,22 +682,33 @@ if ($id)
|
|||||||
$iserasable = 1; $canbedisabled = 1; $canbemodified = 1; // true by default
|
$iserasable = 1; $canbedisabled = 1; $canbemodified = 1; // true by default
|
||||||
|
|
||||||
$url = $_SERVER["PHP_SELF"].'?'.($page ? 'page='.$page.'&' : '').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.(!empty($obj->rowid) ? $obj->rowid : (!empty($obj->code) ? $obj->code : '')).'&code='.(!empty($obj->code) ?urlencode($obj->code) : '');
|
$url = $_SERVER["PHP_SELF"].'?'.($page ? 'page='.$page.'&' : '').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.(!empty($obj->rowid) ? $obj->rowid : (!empty($obj->code) ? $obj->code : '')).'&code='.(!empty($obj->code) ?urlencode($obj->code) : '');
|
||||||
if ($param) $url .= '&'.$param;
|
if ($param) {
|
||||||
|
$url .= '&'.$param;
|
||||||
|
}
|
||||||
$url .= '&';
|
$url .= '&';
|
||||||
|
|
||||||
// Active
|
// Active
|
||||||
print '<td class="center nowrap">';
|
print '<td class="center nowrap">';
|
||||||
if ($canbedisabled) print '<a href="'.$url.'action='.$acts[$obj->active].'">'.$actl[$obj->active].'</a>';
|
if ($canbedisabled) {
|
||||||
else print $langs->trans("AlwaysActive");
|
print '<a href="'.$url.'action='.$acts[$obj->active].'">'.$actl[$obj->active].'</a>';
|
||||||
|
} else {
|
||||||
|
print $langs->trans("AlwaysActive");
|
||||||
|
}
|
||||||
print "</td>";
|
print "</td>";
|
||||||
|
|
||||||
// Modify link
|
// Modify link
|
||||||
if ($canbemodified) print '<td class="center"><a class="reposition editfielda" href="'.$url.'action=edit&token='.newToken().'">'.img_edit().'</a></td>';
|
if ($canbemodified) {
|
||||||
else print '<td> </td>';
|
print '<td class="center"><a class="reposition editfielda" href="'.$url.'action=edit&token='.newToken().'">'.img_edit().'</a></td>';
|
||||||
|
} else {
|
||||||
|
print '<td> </td>';
|
||||||
|
}
|
||||||
|
|
||||||
// Delete link
|
// Delete link
|
||||||
if ($iserasable) print '<td class="center"><a href="'.$url.'action=delete&token='.newToken().'">'.img_delete().'</a></td>';
|
if ($iserasable) {
|
||||||
else print '<td> </td>';
|
print '<td class="center"><a href="'.$url.'action=delete&token='.newToken().'">'.img_delete().'</a></td>';
|
||||||
|
} else {
|
||||||
|
print '<td> </td>';
|
||||||
|
}
|
||||||
|
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
}
|
}
|
||||||
@ -714,12 +752,9 @@ function fieldListAccountModel($fieldlist, $obj = '', $tabname = '', $context =
|
|||||||
$formcompany = new FormCompany($db);
|
$formcompany = new FormCompany($db);
|
||||||
$formaccounting = new FormAccounting($db);
|
$formaccounting = new FormAccounting($db);
|
||||||
|
|
||||||
foreach ($fieldlist as $field => $value)
|
foreach ($fieldlist as $field => $value) {
|
||||||
{
|
if ($fieldlist[$field] == 'country') {
|
||||||
if ($fieldlist[$field] == 'country')
|
if (in_array('region_id', $fieldlist)) {
|
||||||
{
|
|
||||||
if (in_array('region_id', $fieldlist))
|
|
||||||
{
|
|
||||||
print '<td>';
|
print '<td>';
|
||||||
//print join(',',$fieldlist);
|
//print join(',',$fieldlist);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -729,18 +764,19 @@ function fieldListAccountModel($fieldlist, $obj = '', $tabname = '', $context =
|
|||||||
$fieldname = 'country';
|
$fieldname = 'country';
|
||||||
print $form->select_country((!empty($obj->country_code) ? $obj->country_code : (!empty($obj->country) ? $obj->country : '')), $fieldname, '', 28, 'maxwidth200 maxwidthonsmartphone');
|
print $form->select_country((!empty($obj->country_code) ? $obj->country_code : (!empty($obj->country) ? $obj->country : '')), $fieldname, '', 28, 'maxwidth200 maxwidthonsmartphone');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
} elseif ($fieldlist[$field] == 'country_id')
|
} elseif ($fieldlist[$field] == 'country_id') {
|
||||||
{
|
if (!in_array('country', $fieldlist)) { // If there is already a field country, we don't show country_id (avoid duplicate)
|
||||||
if (!in_array('country', $fieldlist)) // If there is already a field country, we don't show country_id (avoid duplicate)
|
|
||||||
{
|
|
||||||
$country_id = (!empty($obj->{$fieldlist[$field]}) ? $obj->{$fieldlist[$field]} : 0);
|
$country_id = (!empty($obj->{$fieldlist[$field]}) ? $obj->{$fieldlist[$field]} : 0);
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print '<input type="hidden" name="'.$fieldlist[$field].'" value="'.$country_id.'">';
|
print '<input type="hidden" name="'.$fieldlist[$field].'" value="'.$country_id.'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
} elseif ($fieldlist[$field] == 'type_cdr') {
|
} elseif ($fieldlist[$field] == 'type_cdr') {
|
||||||
if ($fieldlist[$field] == 'type_cdr') print '<td class="center">';
|
if ($fieldlist[$field] == 'type_cdr') {
|
||||||
else print '<td>';
|
print '<td class="center">';
|
||||||
|
} else {
|
||||||
|
print '<td>';
|
||||||
|
}
|
||||||
if ($fieldlist[$field] == 'type_cdr') {
|
if ($fieldlist[$field] == 'type_cdr') {
|
||||||
print $form->selectarray($fieldlist[$field], array(0=>$langs->trans('None'), 1=>$langs->trans('AtEndOfMonth'), 2=>$langs->trans('CurrentNext')), (!empty($obj->{$fieldlist[$field]}) ? $obj->{$fieldlist[$field]}:''));
|
print $form->selectarray($fieldlist[$field], array(0=>$langs->trans('None'), 1=>$langs->trans('AtEndOfMonth'), 2=>$langs->trans('CurrentNext')), (!empty($obj->{$fieldlist[$field]}) ? $obj->{$fieldlist[$field]}:''));
|
||||||
} else {
|
} else {
|
||||||
@ -752,10 +788,18 @@ function fieldListAccountModel($fieldlist, $obj = '', $tabname = '', $context =
|
|||||||
} else {
|
} else {
|
||||||
print '<td>';
|
print '<td>';
|
||||||
$size = ''; $class = '';
|
$size = ''; $class = '';
|
||||||
if ($fieldlist[$field] == 'code') $size = 'size="8" ';
|
if ($fieldlist[$field] == 'code') {
|
||||||
if ($fieldlist[$field] == 'position') $size = 'size="4" ';
|
$size = 'size="8" ';
|
||||||
if ($fieldlist[$field] == 'libelle') $size = 'centpercent';
|
}
|
||||||
if ($fieldlist[$field] == 'sortorder' || $fieldlist[$field] == 'sens' || $fieldlist[$field] == 'category_type') $size = 'size="2" ';
|
if ($fieldlist[$field] == 'position') {
|
||||||
|
$size = 'size="4" ';
|
||||||
|
}
|
||||||
|
if ($fieldlist[$field] == 'libelle') {
|
||||||
|
$size = 'centpercent';
|
||||||
|
}
|
||||||
|
if ($fieldlist[$field] == 'sortorder' || $fieldlist[$field] == 'sens' || $fieldlist[$field] == 'category_type') {
|
||||||
|
$size = 'size="2" ';
|
||||||
|
}
|
||||||
print '<input type="text" '.$size.' class="flat'.($class ? ' '.$class : '').'" value="'.(isset($obj->{$fieldlist[$field]}) ? $obj->{$fieldlist[$field]}:'').'" name="'.$fieldlist[$field].'">';
|
print '<input type="text" '.$size.' class="flat'.($class ? ' '.$class : '').'" value="'.(isset($obj->{$fieldlist[$field]}) ? $obj->{$fieldlist[$field]}:'').'" name="'.$fieldlist[$field].'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -46,8 +46,12 @@ $account_number = GETPOST('account_number', 'string');
|
|||||||
$label = GETPOST('label', 'alpha');
|
$label = GETPOST('label', 'alpha');
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->socid > 0) accessforbidden();
|
if ($user->socid > 0) {
|
||||||
if (!$user->rights->accounting->chartofaccount) accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
if (!$user->rights->accounting->chartofaccount) {
|
||||||
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$object = new AccountingAccount($db);
|
$object = new AccountingAccount($db);
|
||||||
@ -57,22 +61,18 @@ $object = new AccountingAccount($db);
|
|||||||
* Action
|
* Action
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (GETPOST('cancel', 'alpha'))
|
if (GETPOST('cancel', 'alpha')) {
|
||||||
{
|
|
||||||
$urltogo = $backtopage ? $backtopage : dol_buildpath('/accountancy/admin/account.php', 1);
|
$urltogo = $backtopage ? $backtopage : dol_buildpath('/accountancy/admin/account.php', 1);
|
||||||
header("Location: ".$urltogo);
|
header("Location: ".$urltogo);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'add' && $user->rights->accounting->chartofaccount)
|
if ($action == 'add' && $user->rights->accounting->chartofaccount) {
|
||||||
{
|
|
||||||
if (!$cancel) {
|
if (!$cancel) {
|
||||||
if (!$account_number)
|
if (!$account_number) {
|
||||||
{
|
|
||||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AccountNumber")), null, 'errors');
|
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AccountNumber")), null, 'errors');
|
||||||
$action = 'create';
|
$action = 'create';
|
||||||
} elseif (!$label)
|
} elseif (!$label) {
|
||||||
{
|
|
||||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Label")), null, 'errors');
|
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Label")), null, 'errors');
|
||||||
$action = 'create';
|
$action = 'create';
|
||||||
} else {
|
} else {
|
||||||
@ -130,12 +130,10 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount)
|
|||||||
}
|
}
|
||||||
} elseif ($action == 'edit' && $user->rights->accounting->chartofaccount) {
|
} elseif ($action == 'edit' && $user->rights->accounting->chartofaccount) {
|
||||||
if (!$cancel) {
|
if (!$cancel) {
|
||||||
if (!$account_number)
|
if (!$account_number) {
|
||||||
{
|
|
||||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AccountNumber")), null, 'errors');
|
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AccountNumber")), null, 'errors');
|
||||||
$action = 'update';
|
$action = 'update';
|
||||||
} elseif (!$label)
|
} elseif (!$label) {
|
||||||
{
|
|
||||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Label")), null, 'errors');
|
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Label")), null, 'errors');
|
||||||
$action = 'update';
|
$action = 'update';
|
||||||
} else {
|
} else {
|
||||||
@ -286,8 +284,7 @@ if ($action == 'create') {
|
|||||||
$head = accounting_prepare_head($object);
|
$head = accounting_prepare_head($object);
|
||||||
|
|
||||||
// Edit mode
|
// Edit mode
|
||||||
if ($action == 'update')
|
if ($action == 'update') {
|
||||||
{
|
|
||||||
print dol_get_fiche_head($head, 'card', $langs->trans('AccountAccounting'), 0, 'billr');
|
print dol_get_fiche_head($head, 'card', $langs->trans('AccountAccounting'), 0, 'billr');
|
||||||
|
|
||||||
print '<form name="update" action="'.$_SERVER["PHP_SELF"].'" method="POST">'."\n";
|
print '<form name="update" action="'.$_SERVER["PHP_SELF"].'" method="POST">'."\n";
|
||||||
|
|||||||
@ -46,8 +46,7 @@ if ($cat_id == 0) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if (empty($user->rights->accounting->chartofaccount))
|
if (empty($user->rights->accounting->chartofaccount)) {
|
||||||
{
|
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,9 +61,10 @@ $accountingcategory = new AccountancyCategory($db);
|
|||||||
if (!empty($selectcpt)) {
|
if (!empty($selectcpt)) {
|
||||||
$cpts = array();
|
$cpts = array();
|
||||||
foreach ($selectcpt as $selectedoption) {
|
foreach ($selectcpt as $selectedoption) {
|
||||||
if (!array_key_exists($selectedoption, $cpts))
|
if (!array_key_exists($selectedoption, $cpts)) {
|
||||||
$cpts[$selectedoption] = "'".$selectedoption."'";
|
$cpts[$selectedoption] = "'".$selectedoption."'";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$return = $accountingcategory->updateAccAcc($cat_id, $cpts);
|
$return = $accountingcategory->updateAccAcc($cat_id, $cpts);
|
||||||
|
|
||||||
@ -114,8 +114,7 @@ print '<input class="button" type="submit" value="'.$langs->trans("Select").'">'
|
|||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Select the accounts
|
// Select the accounts
|
||||||
if (!empty($cat_id))
|
if (!empty($cat_id)) {
|
||||||
{
|
|
||||||
$return = $accountingcategory->getAccountsWithNoCategory($cat_id);
|
$return = $accountingcategory->getAccountsWithNoCategory($cat_id);
|
||||||
if ($return < 0) {
|
if ($return < 0) {
|
||||||
setEventMessages(null, $accountingcategory->errors, 'errors');
|
setEventMessages(null, $accountingcategory->errors, 'errors');
|
||||||
@ -124,8 +123,7 @@ if (!empty($cat_id))
|
|||||||
print '<td>';
|
print '<td>';
|
||||||
|
|
||||||
$arraykeyvalue = array();
|
$arraykeyvalue = array();
|
||||||
foreach ($accountingcategory->lines_cptbk as $key => $val)
|
foreach ($accountingcategory->lines_cptbk as $key => $val) {
|
||||||
{
|
|
||||||
$arraykeyvalue[length_accountg($val->numero_compte)] = length_accountg($val->numero_compte).' ('.$val->label_compte.($val->doc_ref ? ' '.$val->doc_ref : '').')';
|
$arraykeyvalue[length_accountg($val->numero_compte)] = length_accountg($val->numero_compte).' ('.$val->label_compte.($val->doc_ref ? ' '.$val->doc_ref : '').')';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -57,7 +57,9 @@ $active = 1;
|
|||||||
$sortfield = GETPOST("sortfield", 'aZ09comma');
|
$sortfield = GETPOST("sortfield", 'aZ09comma');
|
||||||
$sortorder = GETPOST("sortorder", 'aZ09comma');
|
$sortorder = GETPOST("sortorder", 'aZ09comma');
|
||||||
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
||||||
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1
|
if (empty($page) || $page == -1) {
|
||||||
|
$page = 0;
|
||||||
|
} // If $page is not defined, or '' or -1
|
||||||
$offset = $listlimit * $page;
|
$offset = $listlimit * $page;
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
@ -133,14 +135,12 @@ $sourceList = array();
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (GETPOST('button_removefilter', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter_x', 'alpha'))
|
if (GETPOST('button_removefilter', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter_x', 'alpha')) {
|
||||||
{
|
|
||||||
$search_country_id = '';
|
$search_country_id = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Actions add or modify an entry into a dictionary
|
// Actions add or modify an entry into a dictionary
|
||||||
if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha'))
|
if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
|
||||||
{
|
|
||||||
$listfield = explode(',', str_replace(' ', '', $tabfield[$id]));
|
$listfield = explode(',', str_replace(' ', '', $tabfield[$id]));
|
||||||
$listfieldinsert = explode(',', $tabfieldinsert[$id]);
|
$listfieldinsert = explode(',', $tabfieldinsert[$id]);
|
||||||
$listfieldmodify = explode(',', $tabfieldinsert[$id]);
|
$listfieldmodify = explode(',', $tabfieldinsert[$id]);
|
||||||
@ -148,57 +148,73 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha'))
|
|||||||
|
|
||||||
// Check that all fields are filled
|
// Check that all fields are filled
|
||||||
$ok = 1;
|
$ok = 1;
|
||||||
foreach ($listfield as $f => $value)
|
foreach ($listfield as $f => $value) {
|
||||||
{
|
if ($value == 'formula' && empty($_POST['formula'])) {
|
||||||
if ($value == 'formula' && empty($_POST['formula'])) continue;
|
continue;
|
||||||
if ($value == 'range_account' && empty($_POST['range_account'])) continue;
|
}
|
||||||
if ($value == 'country' || $value == 'country_id') continue;
|
if ($value == 'range_account' && empty($_POST['range_account'])) {
|
||||||
if (!GETPOSTISSET($value) || GETPOST($value) == '')
|
continue;
|
||||||
{
|
}
|
||||||
|
if ($value == 'country' || $value == 'country_id') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (!GETPOSTISSET($value) || GETPOST($value) == '') {
|
||||||
$ok = 0;
|
$ok = 0;
|
||||||
$fieldnamekey = $listfield[$f];
|
$fieldnamekey = $listfield[$f];
|
||||||
// We take translate key of field
|
// We take translate key of field
|
||||||
if ($fieldnamekey == 'libelle' || ($fieldnamekey == 'label')) $fieldnamekey = 'Label';
|
if ($fieldnamekey == 'libelle' || ($fieldnamekey == 'label')) {
|
||||||
if ($fieldnamekey == 'code') $fieldnamekey = 'Code';
|
$fieldnamekey = 'Label';
|
||||||
if ($fieldnamekey == 'note') $fieldnamekey = 'Note';
|
}
|
||||||
if ($fieldnamekey == 'type') $fieldnamekey = 'Type';
|
if ($fieldnamekey == 'code') {
|
||||||
if ($fieldnamekey == 'position') $fieldnamekey = 'Position';
|
$fieldnamekey = 'Code';
|
||||||
if ($fieldnamekey == 'category_type') $fieldnamekey = 'Calculated';
|
}
|
||||||
|
if ($fieldnamekey == 'note') {
|
||||||
|
$fieldnamekey = 'Note';
|
||||||
|
}
|
||||||
|
if ($fieldnamekey == 'type') {
|
||||||
|
$fieldnamekey = 'Type';
|
||||||
|
}
|
||||||
|
if ($fieldnamekey == 'position') {
|
||||||
|
$fieldnamekey = 'Position';
|
||||||
|
}
|
||||||
|
if ($fieldnamekey == 'category_type') {
|
||||||
|
$fieldnamekey = 'Calculated';
|
||||||
|
}
|
||||||
|
|
||||||
setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentities($fieldnamekey)), null, 'errors');
|
setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentities($fieldnamekey)), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (GETPOSTISSET("code"))
|
if (GETPOSTISSET("code")) {
|
||||||
{
|
if ($_POST["code"] == '0') {
|
||||||
if ($_POST["code"] == '0')
|
|
||||||
{
|
|
||||||
$ok = 0;
|
$ok = 0;
|
||||||
setEventMessages($langs->transnoentities('ErrorCodeCantContainZero'), null, 'errors');
|
setEventMessages($langs->transnoentities('ErrorCodeCantContainZero'), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!is_numeric(GETPOST('position', 'alpha')))
|
if (!is_numeric(GETPOST('position', 'alpha'))) {
|
||||||
{
|
|
||||||
$langs->loadLangs(array("errors"));
|
$langs->loadLangs(array("errors"));
|
||||||
$ok = 0;
|
$ok = 0;
|
||||||
setEventMessages($langs->transnoentities('ErrorFieldMustBeANumeric', $langs->transnoentities("Position")), null, 'errors');
|
setEventMessages($langs->transnoentities('ErrorFieldMustBeANumeric', $langs->transnoentities("Position")), null, 'errors');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clean some parameters
|
// Clean some parameters
|
||||||
if ($_POST["accountancy_code"] <= 0) $_POST["accountancy_code"] = ''; // If empty, we force to null
|
if ($_POST["accountancy_code"] <= 0) {
|
||||||
if ($_POST["accountancy_code_sell"] <= 0) $_POST["accountancy_code_sell"] = ''; // If empty, we force to null
|
$_POST["accountancy_code"] = ''; // If empty, we force to null
|
||||||
if ($_POST["accountancy_code_buy"] <= 0) $_POST["accountancy_code_buy"] = ''; // If empty, we force to null
|
}
|
||||||
|
if ($_POST["accountancy_code_sell"] <= 0) {
|
||||||
|
$_POST["accountancy_code_sell"] = ''; // If empty, we force to null
|
||||||
|
}
|
||||||
|
if ($_POST["accountancy_code_buy"] <= 0) {
|
||||||
|
$_POST["accountancy_code_buy"] = ''; // If empty, we force to null
|
||||||
|
}
|
||||||
|
|
||||||
// Si verif ok et action add, on ajoute la ligne
|
// Si verif ok et action add, on ajoute la ligne
|
||||||
if ($ok && GETPOST('actionadd', 'alpha'))
|
if ($ok && GETPOST('actionadd', 'alpha')) {
|
||||||
{
|
if ($tabrowid[$id]) {
|
||||||
if ($tabrowid[$id])
|
|
||||||
{
|
|
||||||
// Recupere id libre pour insertion
|
// Recupere id libre pour insertion
|
||||||
$newid = 0;
|
$newid = 0;
|
||||||
$sql = "SELECT max(".$tabrowid[$id].") newid from ".$tabname[$id];
|
$sql = "SELECT max(".$tabrowid[$id].") newid from ".$tabname[$id];
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if ($result)
|
if ($result) {
|
||||||
{
|
|
||||||
$obj = $db->fetch_object($result);
|
$obj = $db->fetch_object($result);
|
||||||
$newid = ($obj->newid + 1);
|
$newid = ($obj->newid + 1);
|
||||||
} else {
|
} else {
|
||||||
@ -209,30 +225,37 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha'))
|
|||||||
// Add new entry
|
// Add new entry
|
||||||
$sql = "INSERT INTO ".$tabname[$id]." (";
|
$sql = "INSERT INTO ".$tabname[$id]." (";
|
||||||
// List of fields
|
// List of fields
|
||||||
if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldinsert)) $sql .= $tabrowid[$id].",";
|
if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldinsert)) {
|
||||||
|
$sql .= $tabrowid[$id].",";
|
||||||
|
}
|
||||||
$sql .= $tabfieldinsert[$id];
|
$sql .= $tabfieldinsert[$id];
|
||||||
$sql .= ",active)";
|
$sql .= ",active)";
|
||||||
$sql .= " VALUES(";
|
$sql .= " VALUES(";
|
||||||
|
|
||||||
// List of values
|
// List of values
|
||||||
if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldinsert)) $sql .= $newid.",";
|
if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldinsert)) {
|
||||||
|
$sql .= $newid.",";
|
||||||
|
}
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach ($listfieldinsert as $f => $value)
|
foreach ($listfieldinsert as $f => $value) {
|
||||||
{
|
|
||||||
if ($value == 'entity') {
|
if ($value == 'entity') {
|
||||||
$_POST[$listfieldvalue[$i]] = $conf->entity;
|
$_POST[$listfieldvalue[$i]] = $conf->entity;
|
||||||
}
|
}
|
||||||
if ($i) $sql .= ",";
|
if ($i) {
|
||||||
if ($_POST[$listfieldvalue[$i]] == '' && !$listfieldvalue[$i] == 'formula') $sql .= "null"; // For vat, we want/accept code = ''
|
$sql .= ",";
|
||||||
else $sql .= "'".$db->escape($_POST[$listfieldvalue[$i]])."'";
|
}
|
||||||
|
if ($_POST[$listfieldvalue[$i]] == '' && !$listfieldvalue[$i] == 'formula') {
|
||||||
|
$sql .= "null"; // For vat, we want/accept code = ''
|
||||||
|
} else {
|
||||||
|
$sql .= "'".$db->escape($_POST[$listfieldvalue[$i]])."'";
|
||||||
|
}
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
$sql .= ",1)";
|
$sql .= ",1)";
|
||||||
|
|
||||||
dol_syslog("actionadd", LOG_DEBUG);
|
dol_syslog("actionadd", LOG_DEBUG);
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if ($result) // Add is ok
|
if ($result) { // Add is ok
|
||||||
{
|
|
||||||
setEventMessages($langs->transnoentities("RecordSaved"), null, 'mesgs');
|
setEventMessages($langs->transnoentities("RecordSaved"), null, 'mesgs');
|
||||||
$_POST = array('id'=>$id); // Clean $_POST array, we keep only
|
$_POST = array('id'=>$id); // Clean $_POST array, we keep only
|
||||||
} else {
|
} else {
|
||||||
@ -245,30 +268,36 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha'))
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Si verif ok et action modify, on modifie la ligne
|
// Si verif ok et action modify, on modifie la ligne
|
||||||
if ($ok && GETPOST('actionmodify', 'alpha'))
|
if ($ok && GETPOST('actionmodify', 'alpha')) {
|
||||||
{
|
if ($tabrowid[$id]) {
|
||||||
if ($tabrowid[$id]) { $rowidcol = $tabrowid[$id]; } else { $rowidcol = "rowid"; }
|
$rowidcol = $tabrowid[$id];
|
||||||
|
} else {
|
||||||
|
$rowidcol = "rowid";
|
||||||
|
}
|
||||||
|
|
||||||
// Modify entry
|
// Modify entry
|
||||||
$sql = "UPDATE ".$tabname[$id]." SET ";
|
$sql = "UPDATE ".$tabname[$id]." SET ";
|
||||||
// Modifie valeur des champs
|
// Modifie valeur des champs
|
||||||
if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldmodify))
|
if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldmodify)) {
|
||||||
{
|
|
||||||
$sql .= $tabrowid[$id]."=";
|
$sql .= $tabrowid[$id]."=";
|
||||||
$sql .= "'".$db->escape($rowid)."', ";
|
$sql .= "'".$db->escape($rowid)."', ";
|
||||||
}
|
}
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach ($listfieldmodify as $field)
|
foreach ($listfieldmodify as $field) {
|
||||||
{
|
|
||||||
if ($field == 'fk_country' && $_POST['country'] > 0) {
|
if ($field == 'fk_country' && $_POST['country'] > 0) {
|
||||||
$_POST[$listfieldvalue[$i]] = $_POST['country'];
|
$_POST[$listfieldvalue[$i]] = $_POST['country'];
|
||||||
} elseif ($field == 'entity') {
|
} elseif ($field == 'entity') {
|
||||||
$_POST[$listfieldvalue[$i]] = $conf->entity;
|
$_POST[$listfieldvalue[$i]] = $conf->entity;
|
||||||
}
|
}
|
||||||
if ($i) $sql .= ",";
|
if ($i) {
|
||||||
|
$sql .= ",";
|
||||||
|
}
|
||||||
$sql .= $field."=";
|
$sql .= $field."=";
|
||||||
if ($_POST[$listfieldvalue[$i]] == '' && !$listfieldvalue[$i] == 'range_account') $sql .= "null"; // For range_account, we want/accept code = ''
|
if ($_POST[$listfieldvalue[$i]] == '' && !$listfieldvalue[$i] == 'range_account') {
|
||||||
else $sql .= "'".$db->escape($_POST[$listfieldvalue[$i]])."'";
|
$sql .= "null"; // For range_account, we want/accept code = ''
|
||||||
|
} else {
|
||||||
|
$sql .= "'".$db->escape($_POST[$listfieldvalue[$i]])."'";
|
||||||
|
}
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
$sql .= " WHERE ".$rowidcol." = ".((int) $rowid);
|
$sql .= " WHERE ".$rowidcol." = ".((int) $rowid);
|
||||||
@ -276,31 +305,30 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha'))
|
|||||||
dol_syslog("actionmodify", LOG_DEBUG);
|
dol_syslog("actionmodify", LOG_DEBUG);
|
||||||
//print $sql;
|
//print $sql;
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if (!$resql)
|
if (!$resql) {
|
||||||
{
|
|
||||||
setEventMessages($db->error(), null, 'errors');
|
setEventMessages($db->error(), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//$_GET["id"]=GETPOST('id', 'int'); // Force affichage dictionnaire en cours d'edition
|
//$_GET["id"]=GETPOST('id', 'int'); // Force affichage dictionnaire en cours d'edition
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GETPOST('actioncancel', 'alpha'))
|
if (GETPOST('actioncancel', 'alpha')) {
|
||||||
{
|
|
||||||
//$_GET["id"]=GETPOST('id', 'int'); // Force affichage dictionnaire en cours d'edition
|
//$_GET["id"]=GETPOST('id', 'int'); // Force affichage dictionnaire en cours d'edition
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'confirm_delete' && $confirm == 'yes') // delete
|
if ($action == 'confirm_delete' && $confirm == 'yes') { // delete
|
||||||
{
|
if ($tabrowid[$id]) {
|
||||||
if ($tabrowid[$id]) { $rowidcol = $tabrowid[$id]; } else { $rowidcol = "rowid"; }
|
$rowidcol = $tabrowid[$id];
|
||||||
|
} else {
|
||||||
|
$rowidcol = "rowid";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = "DELETE from ".$tabname[$id]." WHERE ".$rowidcol." = ".((int) $rowid);
|
$sql = "DELETE from ".$tabname[$id]." WHERE ".$rowidcol." = ".((int) $rowid);
|
||||||
|
|
||||||
dol_syslog("delete", LOG_DEBUG);
|
dol_syslog("delete", LOG_DEBUG);
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
{
|
if ($db->errno() == 'DB_ERROR_CHILD_EXISTS') {
|
||||||
if ($db->errno() == 'DB_ERROR_CHILD_EXISTS')
|
|
||||||
{
|
|
||||||
setEventMessages($langs->transnoentities("ErrorRecordIsUsedByChild"), null, 'errors');
|
setEventMessages($langs->transnoentities("ErrorRecordIsUsedByChild"), null, 'errors');
|
||||||
} else {
|
} else {
|
||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
@ -309,9 +337,12 @@ if ($action == 'confirm_delete' && $confirm == 'yes') // delete
|
|||||||
}
|
}
|
||||||
|
|
||||||
// activate
|
// activate
|
||||||
if ($action == $acts[0])
|
if ($action == $acts[0]) {
|
||||||
{
|
if ($tabrowid[$id]) {
|
||||||
if ($tabrowid[$id]) { $rowidcol = $tabrowid[$id]; } else { $rowidcol = "rowid"; }
|
$rowidcol = $tabrowid[$id];
|
||||||
|
} else {
|
||||||
|
$rowidcol = "rowid";
|
||||||
|
}
|
||||||
|
|
||||||
if ($rowid) {
|
if ($rowid) {
|
||||||
$sql = "UPDATE ".$tabname[$id]." SET active = 1 WHERE ".$rowidcol." = ".((int) $rowid);
|
$sql = "UPDATE ".$tabname[$id]." SET active = 1 WHERE ".$rowidcol." = ".((int) $rowid);
|
||||||
@ -320,16 +351,18 @@ if ($action == $acts[0])
|
|||||||
}
|
}
|
||||||
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
{
|
|
||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// disable
|
// disable
|
||||||
if ($action == $acts[1])
|
if ($action == $acts[1]) {
|
||||||
{
|
if ($tabrowid[$id]) {
|
||||||
if ($tabrowid[$id]) { $rowidcol = $tabrowid[$id]; } else { $rowidcol = "rowid"; }
|
$rowidcol = $tabrowid[$id];
|
||||||
|
} else {
|
||||||
|
$rowidcol = "rowid";
|
||||||
|
}
|
||||||
|
|
||||||
if ($rowid) {
|
if ($rowid) {
|
||||||
$sql = "UPDATE ".$tabname[$id]." SET active = 0 WHERE ".$rowidcol." = ".((int) $rowid);
|
$sql = "UPDATE ".$tabname[$id]." SET active = 0 WHERE ".$rowidcol." = ".((int) $rowid);
|
||||||
@ -338,16 +371,18 @@ if ($action == $acts[1])
|
|||||||
}
|
}
|
||||||
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
{
|
|
||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// favorite
|
// favorite
|
||||||
if ($action == 'activate_favorite')
|
if ($action == 'activate_favorite') {
|
||||||
{
|
if ($tabrowid[$id]) {
|
||||||
if ($tabrowid[$id]) { $rowidcol = $tabrowid[$id]; } else { $rowidcol = "rowid"; }
|
$rowidcol = $tabrowid[$id];
|
||||||
|
} else {
|
||||||
|
$rowidcol = "rowid";
|
||||||
|
}
|
||||||
|
|
||||||
if ($rowid) {
|
if ($rowid) {
|
||||||
$sql = "UPDATE ".$tabname[$id]." SET favorite = 1 WHERE ".$rowidcol." = ".((int) $rowid);
|
$sql = "UPDATE ".$tabname[$id]." SET favorite = 1 WHERE ".$rowidcol." = ".((int) $rowid);
|
||||||
@ -356,16 +391,18 @@ if ($action == 'activate_favorite')
|
|||||||
}
|
}
|
||||||
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
{
|
|
||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// disable favorite
|
// disable favorite
|
||||||
if ($action == 'disable_favorite')
|
if ($action == 'disable_favorite') {
|
||||||
{
|
if ($tabrowid[$id]) {
|
||||||
if ($tabrowid[$id]) { $rowidcol = $tabrowid[$id]; } else { $rowidcol = "rowid"; }
|
$rowidcol = $tabrowid[$id];
|
||||||
|
} else {
|
||||||
|
$rowidcol = "rowid";
|
||||||
|
}
|
||||||
|
|
||||||
if ($rowid) {
|
if ($rowid) {
|
||||||
$sql = "UPDATE ".$tabname[$id]." SET favorite = 0 WHERE ".$rowidcol." = ".((int) $rowid);
|
$sql = "UPDATE ".$tabname[$id]." SET favorite = 0 WHERE ".$rowidcol." = ".((int) $rowid);
|
||||||
@ -374,8 +411,7 @@ if ($action == 'disable_favorite')
|
|||||||
}
|
}
|
||||||
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
{
|
|
||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -399,8 +435,7 @@ print load_fiche_titre($titre, $linkback, $titlepicto);
|
|||||||
print '<span class="opacitymedium">'.$langs->trans("AccountingAccountGroupsDesc", $langs->transnoentitiesnoconv("ByPersonalizedAccountGroups")).'</span><br><br>';
|
print '<span class="opacitymedium">'.$langs->trans("AccountingAccountGroupsDesc", $langs->transnoentitiesnoconv("ByPersonalizedAccountGroups")).'</span><br><br>';
|
||||||
|
|
||||||
// Confirmation de la suppression de la ligne
|
// Confirmation de la suppression de la ligne
|
||||||
if ($action == 'delete')
|
if ($action == 'delete') {
|
||||||
{
|
|
||||||
print $form->formconfirm($_SERVER["PHP_SELF"].'?'.($page ? 'page='.$page.'&' : '').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.$rowid.'&code='.$code.'&id='.$id.($search_country_id > 0 ? '&search_country_id='.$search_country_id : ''), $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_delete', '', 0, 1);
|
print $form->formconfirm($_SERVER["PHP_SELF"].'?'.($page ? 'page='.$page.'&' : '').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.$rowid.'&code='.$code.'&id='.$id.($search_country_id > 0 ? '&search_country_id='.$search_country_id : ''), $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_delete', '', 0, 1);
|
||||||
}
|
}
|
||||||
//var_dump($elementList);
|
//var_dump($elementList);
|
||||||
@ -408,20 +443,23 @@ if ($action == 'delete')
|
|||||||
/*
|
/*
|
||||||
* Show a dictionary
|
* Show a dictionary
|
||||||
*/
|
*/
|
||||||
if ($id)
|
if ($id) {
|
||||||
{
|
|
||||||
// Complete requete recherche valeurs avec critere de tri
|
// Complete requete recherche valeurs avec critere de tri
|
||||||
$sql = $tabsql[$id];
|
$sql = $tabsql[$id];
|
||||||
|
|
||||||
if ($search_country_id > 0)
|
if ($search_country_id > 0) {
|
||||||
{
|
if (preg_match('/ WHERE /', $sql)) {
|
||||||
if (preg_match('/ WHERE /', $sql)) $sql .= " AND ";
|
$sql .= " AND ";
|
||||||
else $sql .= " WHERE ";
|
} else {
|
||||||
|
$sql .= " WHERE ";
|
||||||
|
}
|
||||||
$sql .= " (a.fk_country = ".$search_country_id." OR a.fk_country = 0)";
|
$sql .= " (a.fk_country = ".$search_country_id." OR a.fk_country = 0)";
|
||||||
}
|
}
|
||||||
|
|
||||||
// If sort order is "country", we use country_code instead
|
// If sort order is "country", we use country_code instead
|
||||||
if ($sortfield == 'country') $sortfield = 'country_code';
|
if ($sortfield == 'country') {
|
||||||
|
$sortfield = 'country_code';
|
||||||
|
}
|
||||||
$sql .= $db->order($sortfield, $sortorder);
|
$sql .= $db->order($sortfield, $sortorder);
|
||||||
$sql .= $db->plimit($listlimit + 1, $offset);
|
$sql .= $db->plimit($listlimit + 1, $offset);
|
||||||
//print $sql;
|
//print $sql;
|
||||||
@ -436,14 +474,12 @@ if ($id)
|
|||||||
print '<table class="noborder centpercent">';
|
print '<table class="noborder centpercent">';
|
||||||
|
|
||||||
// Form to add a new line
|
// Form to add a new line
|
||||||
if ($tabname[$id])
|
if ($tabname[$id]) {
|
||||||
{
|
|
||||||
$fieldlist = explode(',', $tabfield[$id]);
|
$fieldlist = explode(',', $tabfield[$id]);
|
||||||
|
|
||||||
// Line for title
|
// Line for title
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
foreach ($fieldlist as $field => $value)
|
foreach ($fieldlist as $field => $value) {
|
||||||
{
|
|
||||||
// Determine le nom du champ par rapport aux noms possibles
|
// Determine le nom du champ par rapport aux noms possibles
|
||||||
// dans les dictionnaires de donnees
|
// dans les dictionnaires de donnees
|
||||||
$valuetoshow = ucfirst($fieldlist[$field]); // Par defaut
|
$valuetoshow = ucfirst($fieldlist[$field]); // Par defaut
|
||||||
@ -489,9 +525,13 @@ if ($id)
|
|||||||
|
|
||||||
if ($valuetoshow != '') {
|
if ($valuetoshow != '') {
|
||||||
print '<td class="'.$class.'">';
|
print '<td class="'.$class.'">';
|
||||||
if (!empty($tabhelp[$id][$value]) && preg_match('/^http(s*):/i', $tabhelp[$id][$value])) print '<a href="'.$tabhelp[$id][$value].'" target="_blank">'.$valuetoshow.' '.img_help(1, $valuetoshow).'</a>';
|
if (!empty($tabhelp[$id][$value]) && preg_match('/^http(s*):/i', $tabhelp[$id][$value])) {
|
||||||
elseif (!empty($tabhelp[$id][$value])) print $form->textwithpicto($valuetoshow, $tabhelp[$id][$value]);
|
print '<a href="'.$tabhelp[$id][$value].'" target="_blank">'.$valuetoshow.' '.img_help(1, $valuetoshow).'</a>';
|
||||||
else print $valuetoshow;
|
} elseif (!empty($tabhelp[$id][$value])) {
|
||||||
|
print $form->textwithpicto($valuetoshow, $tabhelp[$id][$value]);
|
||||||
|
} else {
|
||||||
|
print $valuetoshow;
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -509,22 +549,20 @@ if ($id)
|
|||||||
|
|
||||||
$obj = new stdClass();
|
$obj = new stdClass();
|
||||||
// If data was already input, we define them in obj to populate input fields.
|
// If data was already input, we define them in obj to populate input fields.
|
||||||
if (GETPOST('actionadd', 'alpha'))
|
if (GETPOST('actionadd', 'alpha')) {
|
||||||
{
|
foreach ($fieldlist as $key => $val) {
|
||||||
foreach ($fieldlist as $key=>$val)
|
if (GETPOST($val) != '') {
|
||||||
{
|
|
||||||
if (GETPOST($val) != '')
|
|
||||||
$obj->$val = GETPOST($val);
|
$obj->$val = GETPOST($val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$tmpaction = 'create';
|
$tmpaction = 'create';
|
||||||
$parameters = array('fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]);
|
$parameters = array('fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]);
|
||||||
$reshook = $hookmanager->executeHooks('createDictionaryFieldlist', $parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('createDictionaryFieldlist', $parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
|
||||||
$error = $hookmanager->error; $errors = $hookmanager->errors;
|
$error = $hookmanager->error; $errors = $hookmanager->errors;
|
||||||
|
|
||||||
if (empty($reshook))
|
if (empty($reshook)) {
|
||||||
{
|
|
||||||
fieldListAccountingCategories($fieldlist, $obj, $tabname[$id], 'add');
|
fieldListAccountingCategories($fieldlist, $obj, $tabname[$id], 'add');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -534,7 +572,9 @@ if ($id)
|
|||||||
print "</tr>";
|
print "</tr>";
|
||||||
|
|
||||||
$colspan = count($fieldlist) + 3;
|
$colspan = count($fieldlist) + 3;
|
||||||
if ($id == 32) $colspan++;
|
if ($id == 32) {
|
||||||
|
$colspan++;
|
||||||
|
}
|
||||||
|
|
||||||
print '<tr><td colspan="'.$colspan.'"> </td></tr>'; // Keep to have a line with enough height
|
print '<tr><td colspan="'.$colspan.'"> </td></tr>'; // Keep to have a line with enough height
|
||||||
}
|
}
|
||||||
@ -542,20 +582,26 @@ if ($id)
|
|||||||
// List of available record in database
|
// List of available record in database
|
||||||
dol_syslog("htdocs/admin/dict", LOG_DEBUG);
|
dol_syslog("htdocs/admin/dict", LOG_DEBUG);
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql)
|
if ($resql) {
|
||||||
{
|
|
||||||
$num = $db->num_rows($resql);
|
$num = $db->num_rows($resql);
|
||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
$param = '&id='.$id;
|
$param = '&id='.$id;
|
||||||
if ($search_country_id > 0) $param .= '&search_country_id='.$search_country_id;
|
if ($search_country_id > 0) {
|
||||||
|
$param .= '&search_country_id='.$search_country_id;
|
||||||
|
}
|
||||||
$paramwithsearch = $param;
|
$paramwithsearch = $param;
|
||||||
if ($sortorder) $paramwithsearch .= '&sortorder='.$sortorder;
|
if ($sortorder) {
|
||||||
if ($sortfield) $paramwithsearch .= '&sortfield='.$sortfield;
|
$paramwithsearch .= '&sortorder='.$sortorder;
|
||||||
if (GETPOST('from', 'alpha')) $paramwithsearch .= '&from='.GETPOST('from', 'alpha');
|
}
|
||||||
|
if ($sortfield) {
|
||||||
|
$paramwithsearch .= '&sortfield='.$sortfield;
|
||||||
|
}
|
||||||
|
if (GETPOST('from', 'alpha')) {
|
||||||
|
$paramwithsearch .= '&from='.GETPOST('from', 'alpha');
|
||||||
|
}
|
||||||
// There is several pages
|
// There is several pages
|
||||||
if ($num > $listlimit)
|
if ($num > $listlimit) {
|
||||||
{
|
|
||||||
print '<tr class="none"><td class="right" colspan="'.(3 + count($fieldlist)).'">';
|
print '<tr class="none"><td class="right" colspan="'.(3 + count($fieldlist)).'">';
|
||||||
print_fleche_navigation($page, $_SERVER["PHP_SELF"], $paramwithsearch, ($num > $listlimit), '<li class="pagination"><span>'.$langs->trans("Page").' '.($page + 1).'</span></li>');
|
print_fleche_navigation($page, $_SERVER["PHP_SELF"], $paramwithsearch, ($num > $listlimit), '<li class="pagination"><span>'.$langs->trans("Page").' '.($page + 1).'</span></li>');
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
@ -564,16 +610,15 @@ if ($id)
|
|||||||
// Title line with search boxes
|
// Title line with search boxes
|
||||||
print '<tr class="liste_titre liste_titre_add liste_titre_filter">';
|
print '<tr class="liste_titre liste_titre_add liste_titre_filter">';
|
||||||
$filterfound = 0;
|
$filterfound = 0;
|
||||||
foreach ($fieldlist as $field => $value)
|
foreach ($fieldlist as $field => $value) {
|
||||||
{
|
|
||||||
$showfield = 1; // By defaut
|
$showfield = 1; // By defaut
|
||||||
|
|
||||||
if ($fieldlist[$field] == 'region_id' || $fieldlist[$field] == 'country_id') { $showfield = 0; }
|
if ($fieldlist[$field] == 'region_id' || $fieldlist[$field] == 'country_id') {
|
||||||
|
$showfield = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if ($showfield)
|
if ($showfield) {
|
||||||
{
|
if ($value == 'country') {
|
||||||
if ($value == 'country')
|
|
||||||
{
|
|
||||||
print '<td class="liste_titre">';
|
print '<td class="liste_titre">';
|
||||||
print $form->select_country($search_country_id, 'search_country_id', '', 28, 'maxwidth200 maxwidthonsmartphone');
|
print $form->select_country($search_country_id, 'search_country_id', '', 28, 'maxwidth200 maxwidthonsmartphone');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -587,8 +632,7 @@ if ($id)
|
|||||||
print '<td class="liste_titre"></td>';
|
print '<td class="liste_titre"></td>';
|
||||||
print '<td class="liste_titre"></td>';
|
print '<td class="liste_titre"></td>';
|
||||||
print '<td class="liste_titre center">';
|
print '<td class="liste_titre center">';
|
||||||
if ($filterfound)
|
if ($filterfound) {
|
||||||
{
|
|
||||||
$searchpicto = $form->showFilterAndCheckAddButtons(0);
|
$searchpicto = $form->showFilterAndCheckAddButtons(0);
|
||||||
print $searchpicto;
|
print $searchpicto;
|
||||||
}
|
}
|
||||||
@ -597,8 +641,7 @@ if ($id)
|
|||||||
|
|
||||||
// Title of lines
|
// Title of lines
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
foreach ($fieldlist as $field => $value)
|
foreach ($fieldlist as $field => $value) {
|
||||||
{
|
|
||||||
// Determine le nom du champ par rapport aux noms possibles
|
// Determine le nom du champ par rapport aux noms possibles
|
||||||
// dans les dictionnaires de donnees
|
// dans les dictionnaires de donnees
|
||||||
$showfield = 1; // By defaut
|
$showfield = 1; // By defaut
|
||||||
@ -677,23 +720,22 @@ if ($id)
|
|||||||
print getTitleFieldOfList('');
|
print getTitleFieldOfList('');
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
if ($num)
|
if ($num) {
|
||||||
{
|
|
||||||
// Lines with values
|
// Lines with values
|
||||||
while ($i < $num)
|
while ($i < $num) {
|
||||||
{
|
|
||||||
$obj = $db->fetch_object($resql);
|
$obj = $db->fetch_object($resql);
|
||||||
//print_r($obj);
|
//print_r($obj);
|
||||||
print '<tr class="oddeven" id="rowid-'.$obj->rowid.'">';
|
print '<tr class="oddeven" id="rowid-'.$obj->rowid.'">';
|
||||||
if ($action == 'edit' && ($rowid == (!empty($obj->rowid) ? $obj->rowid : $obj->code)))
|
if ($action == 'edit' && ($rowid == (!empty($obj->rowid) ? $obj->rowid : $obj->code))) {
|
||||||
{
|
|
||||||
$tmpaction = 'edit';
|
$tmpaction = 'edit';
|
||||||
$parameters = array('fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]);
|
$parameters = array('fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]);
|
||||||
$reshook = $hookmanager->executeHooks('editDictionaryFieldlist', $parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('editDictionaryFieldlist', $parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
|
||||||
$error = $hookmanager->error; $errors = $hookmanager->errors;
|
$error = $hookmanager->error; $errors = $hookmanager->errors;
|
||||||
|
|
||||||
// Show fields
|
// Show fields
|
||||||
if (empty($reshook)) fieldListAccountingCategories($fieldlist, $obj, $tabname[$id], 'edit');
|
if (empty($reshook)) {
|
||||||
|
fieldListAccountingCategories($fieldlist, $obj, $tabname[$id], 'edit');
|
||||||
|
}
|
||||||
|
|
||||||
print '<td></td>';
|
print '<td></td>';
|
||||||
print '<td></td>';
|
print '<td></td>';
|
||||||
@ -712,21 +754,17 @@ if ($id)
|
|||||||
|
|
||||||
$error = $hookmanager->error; $errors = $hookmanager->errors;
|
$error = $hookmanager->error; $errors = $hookmanager->errors;
|
||||||
|
|
||||||
if (empty($reshook))
|
if (empty($reshook)) {
|
||||||
{
|
foreach ($fieldlist as $field => $value) {
|
||||||
foreach ($fieldlist as $field => $value)
|
|
||||||
{
|
|
||||||
$showfield = 1;
|
$showfield = 1;
|
||||||
$class = "left";
|
$class = "left";
|
||||||
$valuetoshow = $obj->{$fieldlist[$field]};
|
$valuetoshow = $obj->{$fieldlist[$field]};
|
||||||
if ($value == 'category_type')
|
if ($value == 'category_type') {
|
||||||
{
|
|
||||||
$valuetoshow = yn($valuetoshow);
|
$valuetoshow = yn($valuetoshow);
|
||||||
} elseif ($valuetoshow == 'all') {
|
} elseif ($valuetoshow == 'all') {
|
||||||
$valuetoshow = $langs->trans('All');
|
$valuetoshow = $langs->trans('All');
|
||||||
} elseif ($fieldlist[$field] == 'country') {
|
} elseif ($fieldlist[$field] == 'country') {
|
||||||
if (empty($obj->country_code))
|
if (empty($obj->country_code)) {
|
||||||
{
|
|
||||||
$valuetoshow = '-';
|
$valuetoshow = '-';
|
||||||
} else {
|
} else {
|
||||||
$key = $langs->trans("Country".strtoupper($obj->country_code));
|
$key = $langs->trans("Country".strtoupper($obj->country_code));
|
||||||
@ -748,48 +786,59 @@ if ($id)
|
|||||||
|
|
||||||
$class = 'tddict';
|
$class = 'tddict';
|
||||||
// Show value for field
|
// Show value for field
|
||||||
if ($showfield) print '<!-- '.$fieldlist[$field].' --><td class="'.$class.'">'.$valuetoshow.'</td>';
|
if ($showfield) {
|
||||||
|
print '<!-- '.$fieldlist[$field].' --><td class="'.$class.'">'.$valuetoshow.'</td>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Can an entry be erased or disabled ?
|
// Can an entry be erased or disabled ?
|
||||||
$iserasable = 1; $canbedisabled = 1; $canbemodified = 1; // true by default
|
$iserasable = 1; $canbedisabled = 1; $canbemodified = 1; // true by default
|
||||||
if (isset($obj->code))
|
if (isset($obj->code)) {
|
||||||
{
|
if (($obj->code == '0' || $obj->code == '' || preg_match('/unknown/i', $obj->code))) {
|
||||||
if (($obj->code == '0' || $obj->code == '' || preg_match('/unknown/i', $obj->code))) { $iserasable = 0; $canbedisabled = 0; }
|
$iserasable = 0; $canbedisabled = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$canbemodified = $iserasable;
|
$canbemodified = $iserasable;
|
||||||
|
|
||||||
$url = $_SERVER["PHP_SELF"].'?'.($page ? 'page='.$page.'&' : '').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.(!empty($obj->rowid) ? $obj->rowid : (!empty($obj->code) ? $obj->code : '')).'&code='.(!empty($obj->code) ?urlencode($obj->code) : '');
|
$url = $_SERVER["PHP_SELF"].'?'.($page ? 'page='.$page.'&' : '').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.(!empty($obj->rowid) ? $obj->rowid : (!empty($obj->code) ? $obj->code : '')).'&code='.(!empty($obj->code) ?urlencode($obj->code) : '');
|
||||||
if ($param) $url .= '&'.$param;
|
if ($param) {
|
||||||
|
$url .= '&'.$param;
|
||||||
|
}
|
||||||
$url .= '&';
|
$url .= '&';
|
||||||
|
|
||||||
// Active
|
// Active
|
||||||
print '<td class="center" class="nowrap">';
|
print '<td class="center" class="nowrap">';
|
||||||
if ($canbedisabled) print '<a href="'.$url.'action='.$acts[$obj->active].'">'.$actl[$obj->active].'</a>';
|
if ($canbedisabled) {
|
||||||
else {
|
print '<a href="'.$url.'action='.$acts[$obj->active].'">'.$actl[$obj->active].'</a>';
|
||||||
|
} else {
|
||||||
print $langs->trans("AlwaysActive");
|
print $langs->trans("AlwaysActive");
|
||||||
}
|
}
|
||||||
print "</td>";
|
print "</td>";
|
||||||
|
|
||||||
// Modify link
|
// Modify link
|
||||||
if ($canbemodified) print '<td class="center"><a class="reposition editfielda" href="'.$url.'action=edit">'.img_edit().'</a></td>';
|
if ($canbemodified) {
|
||||||
else print '<td> </td>';
|
print '<td class="center"><a class="reposition editfielda" href="'.$url.'action=edit">'.img_edit().'</a></td>';
|
||||||
|
} else {
|
||||||
|
print '<td> </td>';
|
||||||
|
}
|
||||||
|
|
||||||
// Delete link
|
// Delete link
|
||||||
if ($iserasable)
|
if ($iserasable) {
|
||||||
{
|
|
||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
if ($user->admin) print '<a href="'.$url.'action=delete">'.img_delete().'</a>';
|
if ($user->admin) {
|
||||||
|
print '<a href="'.$url.'action=delete">'.img_delete().'</a>';
|
||||||
|
}
|
||||||
//else print '<a href="#">'.img_delete().'</a>'; // Some dictionary can be edited by other profile than admin
|
//else print '<a href="#">'.img_delete().'</a>'; // Some dictionary can be edited by other profile than admin
|
||||||
print '</td>';
|
print '</td>';
|
||||||
} else print '<td> </td>';
|
} else {
|
||||||
|
print '<td> </td>';
|
||||||
|
}
|
||||||
|
|
||||||
// Link to setup the group
|
// Link to setup the group
|
||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
if (empty($obj->formula))
|
if (empty($obj->formula)) {
|
||||||
{
|
|
||||||
print '<a href="'.DOL_URL_ROOT.'/accountancy/admin/categories.php?action=display&save_lastsearch_values=1&account_category='.$obj->rowid.'">';
|
print '<a href="'.DOL_URL_ROOT.'/accountancy/admin/categories.php?action=display&save_lastsearch_values=1&account_category='.$obj->rowid.'">';
|
||||||
print $langs->trans("ListOfAccounts");
|
print $langs->trans("ListOfAccounts");
|
||||||
print '</a>';
|
print '</a>';
|
||||||
@ -836,26 +885,23 @@ function fieldListAccountingCategories($fieldlist, $obj = '', $tabname = '', $co
|
|||||||
|
|
||||||
$formadmin = new FormAdmin($db);
|
$formadmin = new FormAdmin($db);
|
||||||
$formcompany = new FormCompany($db);
|
$formcompany = new FormCompany($db);
|
||||||
if (!empty($conf->accounting->enabled)) $formaccounting = new FormAccounting($db);
|
if (!empty($conf->accounting->enabled)) {
|
||||||
|
$formaccounting = new FormAccounting($db);
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($fieldlist as $field => $value)
|
foreach ($fieldlist as $field => $value) {
|
||||||
{
|
if ($fieldlist[$field] == 'country') {
|
||||||
if ($fieldlist[$field] == 'country')
|
|
||||||
{
|
|
||||||
print '<td>';
|
print '<td>';
|
||||||
$fieldname = 'country';
|
$fieldname = 'country';
|
||||||
if ($context == 'add')
|
if ($context == 'add') {
|
||||||
{
|
|
||||||
$fieldname = 'country_id';
|
$fieldname = 'country_id';
|
||||||
print $form->select_country(GETPOST('country_id', 'int'), $fieldname, '', 28, 'maxwidth200 maxwidthonsmartphone');
|
print $form->select_country(GETPOST('country_id', 'int'), $fieldname, '', 28, 'maxwidth200 maxwidthonsmartphone');
|
||||||
} else {
|
} else {
|
||||||
print $form->select_country((!empty($obj->country_code) ? $obj->country_code : (!empty($obj->country) ? $obj->country : $mysoc->country_code)), $fieldname, '', 28, 'maxwidth200 maxwidthonsmartphone');
|
print $form->select_country((!empty($obj->country_code) ? $obj->country_code : (!empty($obj->country) ? $obj->country : $mysoc->country_code)), $fieldname, '', 28, 'maxwidth200 maxwidthonsmartphone');
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
} elseif ($fieldlist[$field] == 'country_id')
|
} elseif ($fieldlist[$field] == 'country_id') {
|
||||||
{
|
if (!in_array('country', $fieldlist)) { // If there is already a field country, we don't show country_id (avoid duplicate)
|
||||||
if (!in_array('country', $fieldlist)) // If there is already a field country, we don't show country_id (avoid duplicate)
|
|
||||||
{
|
|
||||||
$country_id = (!empty($obj->{$fieldlist[$field]}) ? $obj->{$fieldlist[$field]} : 0);
|
$country_id = (!empty($obj->{$fieldlist[$field]}) ? $obj->{$fieldlist[$field]} : 0);
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print '<input type="hidden" name="'.$fieldlist[$field].'" value="'.$country_id.'">';
|
print '<input type="hidden" name="'.$fieldlist[$field].'" value="'.$country_id.'">';
|
||||||
@ -870,10 +916,18 @@ function fieldListAccountingCategories($fieldlist, $obj = '', $tabname = '', $co
|
|||||||
} else {
|
} else {
|
||||||
print '<td>';
|
print '<td>';
|
||||||
$size = ''; $class = '';
|
$size = ''; $class = '';
|
||||||
if ($fieldlist[$field] == 'code') $class = 'maxwidth100';
|
if ($fieldlist[$field] == 'code') {
|
||||||
if ($fieldlist[$field] == 'position') $class = 'maxwidth50';
|
$class = 'maxwidth100';
|
||||||
if ($fieldlist[$field] == 'libelle') $class = 'quatrevingtpercent';
|
}
|
||||||
if ($fieldlist[$field] == 'sortorder' || $fieldlist[$field] == 'category_type') $size = 'size="2" ';
|
if ($fieldlist[$field] == 'position') {
|
||||||
|
$class = 'maxwidth50';
|
||||||
|
}
|
||||||
|
if ($fieldlist[$field] == 'libelle') {
|
||||||
|
$class = 'quatrevingtpercent';
|
||||||
|
}
|
||||||
|
if ($fieldlist[$field] == 'sortorder' || $fieldlist[$field] == 'category_type') {
|
||||||
|
$size = 'size="2" ';
|
||||||
|
}
|
||||||
print '<input type="text" '.$size.'class="flat'.($class ? ' '.$class : '').'" value="'.(isset($obj->{$fieldlist[$field]}) ? $obj->{$fieldlist[$field]}:'').'" name="'.$fieldlist[$field].'">';
|
print '<input type="text" '.$size.'class="flat'.($class ? ' '.$class : '').'" value="'.(isset($obj->{$fieldlist[$field]}) ? $obj->{$fieldlist[$field]}:'').'" name="'.$fieldlist[$field].'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -62,7 +62,6 @@ if ($action == 'update') {
|
|||||||
|
|
||||||
foreach ($list_account_main as $constname) {
|
foreach ($list_account_main 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)) {
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -38,8 +38,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
|
|||||||
$langs->loadLangs(array("compta", "bills", "admin", "accountancy", "salaries", "loan"));
|
$langs->loadLangs(array("compta", "bills", "admin", "accountancy", "salaries", "loan"));
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if (empty($user->rights->accounting->chartofaccount))
|
if (empty($user->rights->accounting->chartofaccount)) {
|
||||||
{
|
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -36,8 +36,7 @@ require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountancyexport.class.php';
|
|||||||
$langs->loadLangs(array("compta", "bills", "admin", "accountancy"));
|
$langs->loadLangs(array("compta", "bills", "admin", "accountancy"));
|
||||||
|
|
||||||
// Security access
|
// Security access
|
||||||
if (empty($user->rights->accounting->chartofaccount))
|
if (empty($user->rights->accounting->chartofaccount)) {
|
||||||
{
|
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -32,21 +32,29 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
|
|||||||
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
||||||
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
||||||
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
||||||
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1
|
if (empty($page) || $page == -1) {
|
||||||
|
$page = 0;
|
||||||
|
} // If $page is not defined, or '' or -1
|
||||||
$offset = $limit * $page;
|
$offset = $limit * $page;
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
if (!$sortfield) $sortfield = "f.rowid"; // Set here default search field
|
if (!$sortfield) {
|
||||||
if (!$sortorder) $sortorder = "ASC";
|
$sortfield = "f.rowid"; // Set here default search field
|
||||||
|
}
|
||||||
|
if (!$sortorder) {
|
||||||
|
$sortorder = "ASC";
|
||||||
|
}
|
||||||
|
|
||||||
// Load translation files required by the page
|
// Load translation files required by the page
|
||||||
$langs->loadLangs(array("admin", "compta"));
|
$langs->loadLangs(array("admin", "compta"));
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->socid > 0)
|
if ($user->socid > 0) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
if (!$user->rights->accounting->fiscalyear->write) // If we can read accounting records, we should be able to see fiscal year.
|
}
|
||||||
|
if (!$user->rights->accounting->fiscalyear->write) { // If we can read accounting records, we should be able to see fiscal year.
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
@ -58,8 +66,9 @@ static $tmpstatut2label = array(
|
|||||||
$statut2label = array(
|
$statut2label = array(
|
||||||
''
|
''
|
||||||
);
|
);
|
||||||
foreach ($tmpstatut2label as $key => $val)
|
foreach ($tmpstatut2label as $key => $val) {
|
||||||
$statut2label[$key] = $langs->trans($val);
|
$statut2label[$key] = $langs->trans($val);
|
||||||
|
}
|
||||||
|
|
||||||
$errors = array();
|
$errors = array();
|
||||||
|
|
||||||
@ -92,12 +101,10 @@ $sql .= $db->order($sortfield, $sortorder);
|
|||||||
|
|
||||||
// Count total nb of records
|
// Count total nb of records
|
||||||
$nbtotalofrecords = '';
|
$nbtotalofrecords = '';
|
||||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||||
{
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
$nbtotalofrecords = $db->num_rows($result);
|
$nbtotalofrecords = $db->num_rows($result);
|
||||||
if (($page * $limit) > $nbtotalofrecords) // if total resultset is smaller then paging size (filtering), goto and load page 0
|
if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0
|
||||||
{
|
|
||||||
$page = 0;
|
$page = 0;
|
||||||
$offset = 0;
|
$offset = 0;
|
||||||
}
|
}
|
||||||
@ -106,8 +113,7 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
|||||||
$sql .= $db->plimit($limit + 1, $offset);
|
$sql .= $db->plimit($limit + 1, $offset);
|
||||||
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if ($result)
|
if ($result) {
|
||||||
{
|
|
||||||
$num = $db->num_rows($result);
|
$num = $db->num_rows($result);
|
||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
|
|||||||
@ -31,10 +31,12 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/fiscalyear.class.php';
|
|||||||
$langs->loadLangs(array("admin", "compta"));
|
$langs->loadLangs(array("admin", "compta"));
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->socid > 0)
|
if ($user->socid > 0) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
if (empty($user->rights->accounting->fiscalyear->write))
|
}
|
||||||
|
if (empty($user->rights->accounting->fiscalyear->write)) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
@ -50,8 +52,9 @@ static $tmpstatut2label = array(
|
|||||||
$statut2label = array(
|
$statut2label = array(
|
||||||
''
|
''
|
||||||
);
|
);
|
||||||
foreach ($tmpstatut2label as $key => $val)
|
foreach ($tmpstatut2label as $key => $val) {
|
||||||
$statut2label[$key] = $langs->trans($val);
|
$statut2label[$key] = $langs->trans($val);
|
||||||
|
}
|
||||||
|
|
||||||
$object = new Fiscalyear($db);
|
$object = new Fiscalyear($db);
|
||||||
|
|
||||||
@ -113,10 +116,8 @@ if ($action == 'confirm_delete' && $confirm == "yes") {
|
|||||||
header("Location: ./fiscalyear.php");
|
header("Location: ./fiscalyear.php");
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
}
|
} elseif ($action == 'update') {
|
||||||
|
// Update record
|
||||||
// Update record
|
|
||||||
elseif ($action == 'update') {
|
|
||||||
if (!GETPOST('cancel', 'alpha')) {
|
if (!GETPOST('cancel', 'alpha')) {
|
||||||
$result = $object->fetch($id);
|
$result = $object->fetch($id);
|
||||||
|
|
||||||
@ -151,8 +152,7 @@ $title = $langs->trans("Fiscalyear")." - ".$langs->trans("Card");
|
|||||||
$helpurl = "";
|
$helpurl = "";
|
||||||
llxHeader("", $title, $helpurl);
|
llxHeader("", $title, $helpurl);
|
||||||
|
|
||||||
if ($action == 'create')
|
if ($action == 'create') {
|
||||||
{
|
|
||||||
print load_fiche_titre($langs->trans("NewFiscalYear"));
|
print load_fiche_titre($langs->trans("NewFiscalYear"));
|
||||||
|
|
||||||
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
||||||
@ -298,8 +298,7 @@ if ($action == 'create')
|
|||||||
|
|
||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
if (!empty($user->rights->accounting->fiscalyear->write))
|
if (!empty($user->rights->accounting->fiscalyear->write)) {
|
||||||
{
|
|
||||||
/*
|
/*
|
||||||
* Barre d'actions
|
* Barre d'actions
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -30,10 +30,12 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/fiscalyear.class.php';
|
|||||||
$langs->loadLangs(array("admin", "compta"));
|
$langs->loadLangs(array("admin", "compta"));
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->socid > 0)
|
if ($user->socid > 0) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
if (!$user->rights->accounting->fiscalyear->write)
|
}
|
||||||
|
if (!$user->rights->accounting->fiscalyear->write) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
$id = GETPOST('id', 'int');
|
$id = GETPOST('id', 'int');
|
||||||
|
|
||||||
|
|||||||
@ -279,6 +279,7 @@ print '</tr>';
|
|||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("ACCOUNTANCY_COMBO_FOR_AUX").'</td>';
|
print '<td>'.$langs->trans("ACCOUNTANCY_COMBO_FOR_AUX").'</td>';
|
||||||
|
|
||||||
if (!empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) {
|
if (!empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) {
|
||||||
print '<td class="right"><a class="reposition" href="'.$_SERVER['PHP_SELF'].'?token='.newToken().'&enablesubsidiarylist&value=0">';
|
print '<td class="right"><a class="reposition" href="'.$_SERVER['PHP_SELF'].'?token='.newToken().'&enablesubsidiarylist&value=0">';
|
||||||
print img_picto($langs->trans("Activated"), 'switch_on');
|
print img_picto($langs->trans("Activated"), 'switch_on');
|
||||||
|
|||||||
@ -22,7 +22,9 @@
|
|||||||
* \brief Setup page to configure journals
|
* \brief Setup page to configure journals
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!defined('CSRFCHECK_WITH_TOKEN')) define('CSRFCHECK_WITH_TOKEN', '1'); // Force use of CSRF protection with tokens even for GET
|
if (!defined('CSRFCHECK_WITH_TOKEN')) {
|
||||||
|
define('CSRFCHECK_WITH_TOKEN', '1'); // Force use of CSRF protection with tokens even for GET
|
||||||
|
}
|
||||||
|
|
||||||
require '../../main.inc.php';
|
require '../../main.inc.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
|
||||||
@ -43,8 +45,7 @@ $rowid = GETPOST('rowid', 'alpha');
|
|||||||
$code = GETPOST('code', 'alpha');
|
$code = GETPOST('code', 'alpha');
|
||||||
|
|
||||||
// Security access
|
// Security access
|
||||||
if (empty($user->rights->accounting->chartofaccount))
|
if (empty($user->rights->accounting->chartofaccount)) {
|
||||||
{
|
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -60,12 +61,18 @@ $active = 1;
|
|||||||
$sortfield = GETPOST("sortfield", 'alpha');
|
$sortfield = GETPOST("sortfield", 'alpha');
|
||||||
$sortorder = GETPOST("sortorder", 'alpha');
|
$sortorder = GETPOST("sortorder", 'alpha');
|
||||||
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
||||||
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1
|
if (empty($page) || $page == -1) {
|
||||||
|
$page = 0;
|
||||||
|
} // If $page is not defined, or '' or -1
|
||||||
$offset = $listlimit * $page;
|
$offset = $listlimit * $page;
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
if (empty($sortfield)) $sortfield = 'code';
|
if (empty($sortfield)) {
|
||||||
if (empty($sortorder)) $sortorder = 'ASC';
|
$sortfield = 'code';
|
||||||
|
}
|
||||||
|
if (empty($sortorder)) {
|
||||||
|
$sortorder = 'ASC';
|
||||||
|
}
|
||||||
|
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
@ -145,14 +152,12 @@ $sourceList = array(
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (GETPOST('button_removefilter', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter_x', 'alpha'))
|
if (GETPOST('button_removefilter', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter_x', 'alpha')) {
|
||||||
{
|
|
||||||
$search_country_id = '';
|
$search_country_id = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Actions add or modify an entry into a dictionary
|
// Actions add or modify an entry into a dictionary
|
||||||
if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha'))
|
if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
|
||||||
{
|
|
||||||
$listfield = explode(',', str_replace(' ', '', $tabfield[$id]));
|
$listfield = explode(',', str_replace(' ', '', $tabfield[$id]));
|
||||||
$listfieldinsert = explode(',', $tabfieldinsert[$id]);
|
$listfieldinsert = explode(',', $tabfieldinsert[$id]);
|
||||||
$listfieldmodify = explode(',', $tabfieldinsert[$id]);
|
$listfieldmodify = explode(',', $tabfieldinsert[$id]);
|
||||||
@ -160,17 +165,20 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha'))
|
|||||||
|
|
||||||
// Check that all fields are filled
|
// Check that all fields are filled
|
||||||
$ok = 1;
|
$ok = 1;
|
||||||
foreach ($listfield as $f => $value)
|
foreach ($listfield as $f => $value) {
|
||||||
{
|
if ($fieldnamekey == 'libelle' || ($fieldnamekey == 'label')) {
|
||||||
if ($fieldnamekey == 'libelle' || ($fieldnamekey == 'label')) $fieldnamekey = 'Label';
|
$fieldnamekey = 'Label';
|
||||||
if ($fieldnamekey == 'code') $fieldnamekey = 'Code';
|
}
|
||||||
if ($fieldnamekey == 'nature') $fieldnamekey = 'NatureOfJournal';
|
if ($fieldnamekey == 'code') {
|
||||||
|
$fieldnamekey = 'Code';
|
||||||
|
}
|
||||||
|
if ($fieldnamekey == 'nature') {
|
||||||
|
$fieldnamekey = 'NatureOfJournal';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Other checks
|
// Other checks
|
||||||
if (GETPOSTISSET("code"))
|
if (GETPOSTISSET("code")) {
|
||||||
{
|
if (GETPOST("code") == '0') {
|
||||||
if (GETPOST("code") == '0')
|
|
||||||
{
|
|
||||||
$ok = 0;
|
$ok = 0;
|
||||||
setEventMessages($langs->transnoentities('ErrorCodeCantContainZero'), null, 'errors');
|
setEventMessages($langs->transnoentities('ErrorCodeCantContainZero'), null, 'errors');
|
||||||
}
|
}
|
||||||
@ -180,28 +188,30 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha'))
|
|||||||
$msg .= $langs->transnoentities('ErrorFieldFormat', $langs->transnoentities('Code')).'<br>';
|
$msg .= $langs->transnoentities('ErrorFieldFormat', $langs->transnoentities('Code')).'<br>';
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
if (!GETPOST('label', 'alpha'))
|
if (!GETPOST('label', 'alpha')) {
|
||||||
{
|
|
||||||
setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentitiesnoconv("Label")), null, 'errors');
|
setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentitiesnoconv("Label")), null, 'errors');
|
||||||
$ok = 0;
|
$ok = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clean some parameters
|
// Clean some parameters
|
||||||
if ($_POST["accountancy_code"] <= 0) $_POST["accountancy_code"] = ''; // If empty, we force to null
|
if ($_POST["accountancy_code"] <= 0) {
|
||||||
if ($_POST["accountancy_code_sell"] <= 0) $_POST["accountancy_code_sell"] = ''; // If empty, we force to null
|
$_POST["accountancy_code"] = ''; // If empty, we force to null
|
||||||
if ($_POST["accountancy_code_buy"] <= 0) $_POST["accountancy_code_buy"] = ''; // If empty, we force to null
|
}
|
||||||
|
if ($_POST["accountancy_code_sell"] <= 0) {
|
||||||
|
$_POST["accountancy_code_sell"] = ''; // If empty, we force to null
|
||||||
|
}
|
||||||
|
if ($_POST["accountancy_code_buy"] <= 0) {
|
||||||
|
$_POST["accountancy_code_buy"] = ''; // If empty, we force to null
|
||||||
|
}
|
||||||
|
|
||||||
// Si verif ok et action add, on ajoute la ligne
|
// Si verif ok et action add, on ajoute la ligne
|
||||||
if ($ok && GETPOST('actionadd', 'alpha'))
|
if ($ok && GETPOST('actionadd', 'alpha')) {
|
||||||
{
|
if ($tabrowid[$id]) {
|
||||||
if ($tabrowid[$id])
|
|
||||||
{
|
|
||||||
// Recupere id libre pour insertion
|
// Recupere id libre pour insertion
|
||||||
$newid = 0;
|
$newid = 0;
|
||||||
$sql = "SELECT max(".$tabrowid[$id].") newid from ".$tabname[$id];
|
$sql = "SELECT max(".$tabrowid[$id].") newid from ".$tabname[$id];
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if ($result)
|
if ($result) {
|
||||||
{
|
|
||||||
$obj = $db->fetch_object($result);
|
$obj = $db->fetch_object($result);
|
||||||
$newid = ($obj->newid + 1);
|
$newid = ($obj->newid + 1);
|
||||||
} else {
|
} else {
|
||||||
@ -212,32 +222,37 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha'))
|
|||||||
// Add new entry
|
// Add new entry
|
||||||
$sql = "INSERT INTO ".$tabname[$id]." (";
|
$sql = "INSERT INTO ".$tabname[$id]." (";
|
||||||
// List of fields
|
// List of fields
|
||||||
if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldinsert))
|
if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldinsert)) {
|
||||||
$sql .= $tabrowid[$id].",";
|
$sql .= $tabrowid[$id].",";
|
||||||
|
}
|
||||||
$sql .= $tabfieldinsert[$id];
|
$sql .= $tabfieldinsert[$id];
|
||||||
$sql .= ",active,entity)";
|
$sql .= ",active,entity)";
|
||||||
$sql .= " VALUES(";
|
$sql .= " VALUES(";
|
||||||
|
|
||||||
// List of values
|
// List of values
|
||||||
if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldinsert))
|
if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldinsert)) {
|
||||||
$sql .= $newid.",";
|
$sql .= $newid.",";
|
||||||
|
}
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach ($listfieldinsert as $f => $value)
|
foreach ($listfieldinsert as $f => $value) {
|
||||||
{
|
|
||||||
if ($value == 'entity') {
|
if ($value == 'entity') {
|
||||||
$_POST[$listfieldvalue[$i]] = $conf->entity;
|
$_POST[$listfieldvalue[$i]] = $conf->entity;
|
||||||
}
|
}
|
||||||
if ($i) $sql .= ",";
|
if ($i) {
|
||||||
if ($_POST[$listfieldvalue[$i]] == '') $sql .= "null"; // For vat, we want/accept code = ''
|
$sql .= ",";
|
||||||
else $sql .= "'".$db->escape($_POST[$listfieldvalue[$i]])."'";
|
}
|
||||||
|
if ($_POST[$listfieldvalue[$i]] == '') {
|
||||||
|
$sql .= "null"; // For vat, we want/accept code = ''
|
||||||
|
} else {
|
||||||
|
$sql .= "'".$db->escape($_POST[$listfieldvalue[$i]])."'";
|
||||||
|
}
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
$sql .= ",1,".$conf->entity.")";
|
$sql .= ",1,".$conf->entity.")";
|
||||||
|
|
||||||
dol_syslog("actionadd", LOG_DEBUG);
|
dol_syslog("actionadd", LOG_DEBUG);
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if ($result) // Add is ok
|
if ($result) { // Add is ok
|
||||||
{
|
|
||||||
setEventMessages($langs->transnoentities("RecordSaved"), null, 'mesgs');
|
setEventMessages($langs->transnoentities("RecordSaved"), null, 'mesgs');
|
||||||
$_POST = array('id'=>$id); // Clean $_POST array, we keep only
|
$_POST = array('id'=>$id); // Clean $_POST array, we keep only
|
||||||
} else {
|
} else {
|
||||||
@ -250,30 +265,36 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha'))
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Si verif ok et action modify, on modifie la ligne
|
// Si verif ok et action modify, on modifie la ligne
|
||||||
if ($ok && GETPOST('actionmodify', 'alpha'))
|
if ($ok && GETPOST('actionmodify', 'alpha')) {
|
||||||
{
|
if ($tabrowid[$id]) {
|
||||||
if ($tabrowid[$id]) { $rowidcol = $tabrowid[$id]; } else { $rowidcol = "rowid"; }
|
$rowidcol = $tabrowid[$id];
|
||||||
|
} else {
|
||||||
|
$rowidcol = "rowid";
|
||||||
|
}
|
||||||
|
|
||||||
// Modify entry
|
// Modify entry
|
||||||
$sql = "UPDATE ".$tabname[$id]." SET ";
|
$sql = "UPDATE ".$tabname[$id]." SET ";
|
||||||
// Modifie valeur des champs
|
// Modifie valeur des champs
|
||||||
if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldmodify))
|
if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldmodify)) {
|
||||||
{
|
|
||||||
$sql .= $tabrowid[$id]."=";
|
$sql .= $tabrowid[$id]."=";
|
||||||
$sql .= "'".$db->escape($rowid)."', ";
|
$sql .= "'".$db->escape($rowid)."', ";
|
||||||
}
|
}
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach ($listfieldmodify as $field)
|
foreach ($listfieldmodify as $field) {
|
||||||
{
|
|
||||||
if ($field == 'price' || preg_match('/^amount/i', $field) || $field == 'taux') {
|
if ($field == 'price' || preg_match('/^amount/i', $field) || $field == 'taux') {
|
||||||
$_POST[$listfieldvalue[$i]] = price2num($_POST[$listfieldvalue[$i]], 'MU');
|
$_POST[$listfieldvalue[$i]] = price2num($_POST[$listfieldvalue[$i]], 'MU');
|
||||||
} elseif ($field == 'entity') {
|
} elseif ($field == 'entity') {
|
||||||
$_POST[$listfieldvalue[$i]] = $conf->entity;
|
$_POST[$listfieldvalue[$i]] = $conf->entity;
|
||||||
}
|
}
|
||||||
if ($i) $sql .= ",";
|
if ($i) {
|
||||||
|
$sql .= ",";
|
||||||
|
}
|
||||||
$sql .= $field."=";
|
$sql .= $field."=";
|
||||||
if ($_POST[$listfieldvalue[$i]] == '' && !($listfieldvalue[$i] == 'code' && $id == 10)) $sql .= "null"; // For vat, we want/accept code = ''
|
if ($_POST[$listfieldvalue[$i]] == '' && !($listfieldvalue[$i] == 'code' && $id == 10)) {
|
||||||
else $sql .= "'".$db->escape($_POST[$listfieldvalue[$i]])."'";
|
$sql .= "null"; // For vat, we want/accept code = ''
|
||||||
|
} else {
|
||||||
|
$sql .= "'".$db->escape($_POST[$listfieldvalue[$i]])."'";
|
||||||
|
}
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
$sql .= " WHERE ".$rowidcol." = ".((int) $rowid);
|
$sql .= " WHERE ".$rowidcol." = ".((int) $rowid);
|
||||||
@ -282,8 +303,7 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha'))
|
|||||||
dol_syslog("actionmodify", LOG_DEBUG);
|
dol_syslog("actionmodify", LOG_DEBUG);
|
||||||
//print $sql;
|
//print $sql;
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if (!$resql)
|
if (!$resql) {
|
||||||
{
|
|
||||||
setEventMessages($db->error(), null, 'errors');
|
setEventMessages($db->error(), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -295,19 +315,20 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha'))
|
|||||||
// $_GET["id"]=GETPOST('id', 'int'); // Force affichage dictionnaire en cours d'edition
|
// $_GET["id"]=GETPOST('id', 'int'); // Force affichage dictionnaire en cours d'edition
|
||||||
//}
|
//}
|
||||||
|
|
||||||
if ($action == 'confirm_delete' && $confirm == 'yes') // delete
|
if ($action == 'confirm_delete' && $confirm == 'yes') { // delete
|
||||||
{
|
if ($tabrowid[$id]) {
|
||||||
if ($tabrowid[$id]) { $rowidcol = $tabrowid[$id]; } else { $rowidcol = "rowid"; }
|
$rowidcol = $tabrowid[$id];
|
||||||
|
} else {
|
||||||
|
$rowidcol = "rowid";
|
||||||
|
}
|
||||||
|
|
||||||
$sql = "DELETE from ".$tabname[$id]." WHERE ".$rowidcol." = ".((int) $rowid);
|
$sql = "DELETE from ".$tabname[$id]." WHERE ".$rowidcol." = ".((int) $rowid);
|
||||||
$sql .= " AND entity = ".$conf->entity;
|
$sql .= " AND entity = ".$conf->entity;
|
||||||
|
|
||||||
dol_syslog("delete", LOG_DEBUG);
|
dol_syslog("delete", LOG_DEBUG);
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
{
|
if ($db->errno() == 'DB_ERROR_CHILD_EXISTS') {
|
||||||
if ($db->errno() == 'DB_ERROR_CHILD_EXISTS')
|
|
||||||
{
|
|
||||||
setEventMessages($langs->transnoentities("ErrorRecordIsUsedByChild"), null, 'errors');
|
setEventMessages($langs->transnoentities("ErrorRecordIsUsedByChild"), null, 'errors');
|
||||||
} else {
|
} else {
|
||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
@ -316,9 +337,12 @@ if ($action == 'confirm_delete' && $confirm == 'yes') // delete
|
|||||||
}
|
}
|
||||||
|
|
||||||
// activate
|
// activate
|
||||||
if ($action == $acts[0])
|
if ($action == $acts[0]) {
|
||||||
{
|
if ($tabrowid[$id]) {
|
||||||
if ($tabrowid[$id]) { $rowidcol = $tabrowid[$id]; } else { $rowidcol = "rowid"; }
|
$rowidcol = $tabrowid[$id];
|
||||||
|
} else {
|
||||||
|
$rowidcol = "rowid";
|
||||||
|
}
|
||||||
|
|
||||||
if ($rowid) {
|
if ($rowid) {
|
||||||
$sql = "UPDATE ".$tabname[$id]." SET active = 1 WHERE ".$rowidcol." = ".((int) $rowid);
|
$sql = "UPDATE ".$tabname[$id]." SET active = 1 WHERE ".$rowidcol." = ".((int) $rowid);
|
||||||
@ -328,16 +352,18 @@ if ($action == $acts[0])
|
|||||||
$sql .= " AND entity = ".$conf->entity;
|
$sql .= " AND entity = ".$conf->entity;
|
||||||
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
{
|
|
||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// disable
|
// disable
|
||||||
if ($action == $acts[1])
|
if ($action == $acts[1]) {
|
||||||
{
|
if ($tabrowid[$id]) {
|
||||||
if ($tabrowid[$id]) { $rowidcol = $tabrowid[$id]; } else { $rowidcol = "rowid"; }
|
$rowidcol = $tabrowid[$id];
|
||||||
|
} else {
|
||||||
|
$rowidcol = "rowid";
|
||||||
|
}
|
||||||
|
|
||||||
if ($rowid) {
|
if ($rowid) {
|
||||||
$sql = "UPDATE ".$tabname[$id]." SET active = 0 WHERE ".$rowidcol." = ".((int) $rowid);
|
$sql = "UPDATE ".$tabname[$id]." SET active = 0 WHERE ".$rowidcol." = ".((int) $rowid);
|
||||||
@ -347,8 +373,7 @@ if ($action == $acts[1])
|
|||||||
$sql .= " AND entity = ".$conf->entity;
|
$sql .= " AND entity = ".$conf->entity;
|
||||||
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
{
|
|
||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -365,8 +390,7 @@ llxHeader();
|
|||||||
|
|
||||||
$titre = $langs->trans("DictionarySetup");
|
$titre = $langs->trans("DictionarySetup");
|
||||||
$linkback = '';
|
$linkback = '';
|
||||||
if ($id)
|
if ($id) {
|
||||||
{
|
|
||||||
$titre .= ' - '.$langs->trans($tablib[$id]);
|
$titre .= ' - '.$langs->trans($tablib[$id]);
|
||||||
$titlepicto = 'title_accountancy';
|
$titlepicto = 'title_accountancy';
|
||||||
}
|
}
|
||||||
@ -375,8 +399,7 @@ print load_fiche_titre($titre, $linkback, $titlepicto);
|
|||||||
|
|
||||||
|
|
||||||
// Confirmation de la suppression de la ligne
|
// Confirmation de la suppression de la ligne
|
||||||
if ($action == 'delete')
|
if ($action == 'delete') {
|
||||||
{
|
|
||||||
print $form->formconfirm($_SERVER["PHP_SELF"].'?'.($page ? 'page='.$page.'&' : '').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.$rowid.'&code='.$code.'&id='.$id, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_delete', '', 0, 1);
|
print $form->formconfirm($_SERVER["PHP_SELF"].'?'.($page ? 'page='.$page.'&' : '').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.$rowid.'&code='.$code.'&id='.$id, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_delete', '', 0, 1);
|
||||||
}
|
}
|
||||||
//var_dump($elementList);
|
//var_dump($elementList);
|
||||||
@ -384,14 +407,15 @@ if ($action == 'delete')
|
|||||||
/*
|
/*
|
||||||
* Show a dictionary
|
* Show a dictionary
|
||||||
*/
|
*/
|
||||||
if ($id)
|
if ($id) {
|
||||||
{
|
|
||||||
// Complete requete recherche valeurs avec critere de tri
|
// Complete requete recherche valeurs avec critere de tri
|
||||||
$sql = $tabsql[$id];
|
$sql = $tabsql[$id];
|
||||||
$sql .= " WHERE a.entity = ".$conf->entity;
|
$sql .= " WHERE a.entity = ".$conf->entity;
|
||||||
|
|
||||||
// If sort order is "country", we use country_code instead
|
// If sort order is "country", we use country_code instead
|
||||||
if ($sortfield == 'country') $sortfield = 'country_code';
|
if ($sortfield == 'country') {
|
||||||
|
$sortfield = 'country_code';
|
||||||
|
}
|
||||||
$sql .= $db->order($sortfield, $sortorder);
|
$sql .= $db->order($sortfield, $sortorder);
|
||||||
$sql .= $db->plimit($listlimit + 1, $offset);
|
$sql .= $db->plimit($listlimit + 1, $offset);
|
||||||
|
|
||||||
@ -405,14 +429,12 @@ if ($id)
|
|||||||
print '<table class="noborder centpercent">';
|
print '<table class="noborder centpercent">';
|
||||||
|
|
||||||
// Form to add a new line
|
// Form to add a new line
|
||||||
if ($tabname[$id])
|
if ($tabname[$id]) {
|
||||||
{
|
|
||||||
$fieldlist = explode(',', $tabfield[$id]);
|
$fieldlist = explode(',', $tabfield[$id]);
|
||||||
|
|
||||||
// Line for title
|
// Line for title
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
foreach ($fieldlist as $field => $value)
|
foreach ($fieldlist as $field => $value) {
|
||||||
{
|
|
||||||
// Determine le nom du champ par rapport aux noms possibles
|
// Determine le nom du champ par rapport aux noms possibles
|
||||||
// dans les dictionnaires de donnees
|
// dans les dictionnaires de donnees
|
||||||
$valuetoshow = ucfirst($fieldlist[$field]); // Par defaut
|
$valuetoshow = ucfirst($fieldlist[$field]); // Par defaut
|
||||||
@ -430,9 +452,13 @@ if ($id)
|
|||||||
|
|
||||||
if ($valuetoshow != '') {
|
if ($valuetoshow != '') {
|
||||||
print '<td class="'.$class.'">';
|
print '<td class="'.$class.'">';
|
||||||
if (!empty($tabhelp[$id][$value]) && preg_match('/^http(s*):/i', $tabhelp[$id][$value])) print '<a href="'.$tabhelp[$id][$value].'" target="_blank">'.$valuetoshow.' '.img_help(1, $valuetoshow).'</a>';
|
if (!empty($tabhelp[$id][$value]) && preg_match('/^http(s*):/i', $tabhelp[$id][$value])) {
|
||||||
elseif (!empty($tabhelp[$id][$value])) print $form->textwithpicto($valuetoshow, $tabhelp[$id][$value]);
|
print '<a href="'.$tabhelp[$id][$value].'" target="_blank">'.$valuetoshow.' '.img_help(1, $valuetoshow).'</a>';
|
||||||
else print $valuetoshow;
|
} elseif (!empty($tabhelp[$id][$value])) {
|
||||||
|
print $form->textwithpicto($valuetoshow, $tabhelp[$id][$value]);
|
||||||
|
} else {
|
||||||
|
print $valuetoshow;
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -450,22 +476,20 @@ if ($id)
|
|||||||
|
|
||||||
$obj = new stdClass();
|
$obj = new stdClass();
|
||||||
// If data was already input, we define them in obj to populate input fields.
|
// If data was already input, we define them in obj to populate input fields.
|
||||||
if (GETPOST('actionadd', 'alpha'))
|
if (GETPOST('actionadd', 'alpha')) {
|
||||||
{
|
foreach ($fieldlist as $key => $val) {
|
||||||
foreach ($fieldlist as $key=>$val)
|
if (GETPOST($val) != '') {
|
||||||
{
|
|
||||||
if (GETPOST($val) != '')
|
|
||||||
$obj->$val = GETPOST($val);
|
$obj->$val = GETPOST($val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$tmpaction = 'create';
|
$tmpaction = 'create';
|
||||||
$parameters = array('fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]);
|
$parameters = array('fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]);
|
||||||
$reshook = $hookmanager->executeHooks('createDictionaryFieldlist', $parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('createDictionaryFieldlist', $parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
|
||||||
$error = $hookmanager->error; $errors = $hookmanager->errors;
|
$error = $hookmanager->error; $errors = $hookmanager->errors;
|
||||||
|
|
||||||
if (empty($reshook))
|
if (empty($reshook)) {
|
||||||
{
|
|
||||||
fieldListJournal($fieldlist, $obj, $tabname[$id], 'add');
|
fieldListJournal($fieldlist, $obj, $tabname[$id], 'add');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -482,21 +506,27 @@ if ($id)
|
|||||||
// List of available record in database
|
// List of available record in database
|
||||||
dol_syslog("htdocs/admin/dict", LOG_DEBUG);
|
dol_syslog("htdocs/admin/dict", LOG_DEBUG);
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql)
|
if ($resql) {
|
||||||
{
|
|
||||||
$num = $db->num_rows($resql);
|
$num = $db->num_rows($resql);
|
||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
$param = '&id='.$id;
|
$param = '&id='.$id;
|
||||||
if ($search_country_id > 0) $param .= '&search_country_id='.$search_country_id;
|
if ($search_country_id > 0) {
|
||||||
|
$param .= '&search_country_id='.$search_country_id;
|
||||||
|
}
|
||||||
$paramwithsearch = $param;
|
$paramwithsearch = $param;
|
||||||
if ($sortorder) $paramwithsearch .= '&sortorder='.$sortorder;
|
if ($sortorder) {
|
||||||
if ($sortfield) $paramwithsearch .= '&sortfield='.$sortfield;
|
$paramwithsearch .= '&sortorder='.$sortorder;
|
||||||
if (GETPOST('from', 'alpha')) $paramwithsearch .= '&from='.GETPOST('from', 'alpha');
|
}
|
||||||
|
if ($sortfield) {
|
||||||
|
$paramwithsearch .= '&sortfield='.$sortfield;
|
||||||
|
}
|
||||||
|
if (GETPOST('from', 'alpha')) {
|
||||||
|
$paramwithsearch .= '&from='.GETPOST('from', 'alpha');
|
||||||
|
}
|
||||||
|
|
||||||
// There is several pages
|
// There is several pages
|
||||||
if ($num > $listlimit)
|
if ($num > $listlimit) {
|
||||||
{
|
|
||||||
print '<tr class="none"><td class="right" colspan="'.(3 + count($fieldlist)).'">';
|
print '<tr class="none"><td class="right" colspan="'.(3 + count($fieldlist)).'">';
|
||||||
print_fleche_navigation($page, $_SERVER["PHP_SELF"], $paramwithsearch, ($num > $listlimit), '<li class="pagination"><span>'.$langs->trans("Page").' '.($page + 1).'</span></li>');
|
print_fleche_navigation($page, $_SERVER["PHP_SELF"], $paramwithsearch, ($num > $listlimit), '<li class="pagination"><span>'.$langs->trans("Page").' '.($page + 1).'</span></li>');
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
@ -519,8 +549,7 @@ if ($id)
|
|||||||
|
|
||||||
// Title of lines
|
// Title of lines
|
||||||
print '<tr class="liste_titre liste_titre_add">';
|
print '<tr class="liste_titre liste_titre_add">';
|
||||||
foreach ($fieldlist as $field => $value)
|
foreach ($fieldlist as $field => $value) {
|
||||||
{
|
|
||||||
// Determine le nom du champ par rapport aux noms possibles
|
// Determine le nom du champ par rapport aux noms possibles
|
||||||
// dans les dictionnaires de donnees
|
// dans les dictionnaires de donnees
|
||||||
$showfield = 1; // By defaut
|
$showfield = 1; // By defaut
|
||||||
@ -557,23 +586,22 @@ if ($id)
|
|||||||
print getTitleFieldOfList('');
|
print getTitleFieldOfList('');
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
if ($num)
|
if ($num) {
|
||||||
{
|
|
||||||
// Lines with values
|
// Lines with values
|
||||||
while ($i < $num)
|
while ($i < $num) {
|
||||||
{
|
|
||||||
$obj = $db->fetch_object($resql);
|
$obj = $db->fetch_object($resql);
|
||||||
//print_r($obj);
|
//print_r($obj);
|
||||||
print '<tr class="oddeven" id="rowid-'.$obj->rowid.'">';
|
print '<tr class="oddeven" id="rowid-'.$obj->rowid.'">';
|
||||||
if ($action == 'edit' && ($rowid == (!empty($obj->rowid) ? $obj->rowid : $obj->code)))
|
if ($action == 'edit' && ($rowid == (!empty($obj->rowid) ? $obj->rowid : $obj->code))) {
|
||||||
{
|
|
||||||
$tmpaction = 'edit';
|
$tmpaction = 'edit';
|
||||||
$parameters = array('fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]);
|
$parameters = array('fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]);
|
||||||
$reshook = $hookmanager->executeHooks('editDictionaryFieldlist', $parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('editDictionaryFieldlist', $parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
|
||||||
$error = $hookmanager->error; $errors = $hookmanager->errors;
|
$error = $hookmanager->error; $errors = $hookmanager->errors;
|
||||||
|
|
||||||
// Show fields
|
// Show fields
|
||||||
if (empty($reshook)) fieldListJournal($fieldlist, $obj, $tabname[$id], 'edit');
|
if (empty($reshook)) {
|
||||||
|
fieldListJournal($fieldlist, $obj, $tabname[$id], 'edit');
|
||||||
|
}
|
||||||
|
|
||||||
print '<td class="center" colspan="4">';
|
print '<td class="center" colspan="4">';
|
||||||
print '<input type="hidden" name="page" value="'.$page.'">';
|
print '<input type="hidden" name="page" value="'.$page.'">';
|
||||||
@ -589,11 +617,9 @@ if ($id)
|
|||||||
|
|
||||||
$error = $hookmanager->error; $errors = $hookmanager->errors;
|
$error = $hookmanager->error; $errors = $hookmanager->errors;
|
||||||
|
|
||||||
if (empty($reshook))
|
if (empty($reshook)) {
|
||||||
{
|
|
||||||
$langs->load("accountancy");
|
$langs->load("accountancy");
|
||||||
foreach ($fieldlist as $field => $value)
|
foreach ($fieldlist as $field => $value) {
|
||||||
{
|
|
||||||
$showfield = 1;
|
$showfield = 1;
|
||||||
$class = "left";
|
$class = "left";
|
||||||
$valuetoshow = $obj->{$fieldlist[$field]};
|
$valuetoshow = $obj->{$fieldlist[$field]};
|
||||||
@ -608,7 +634,9 @@ if ($id)
|
|||||||
|
|
||||||
$class = 'tddict';
|
$class = 'tddict';
|
||||||
// Show value for field
|
// Show value for field
|
||||||
if ($showfield) print '<!-- '.$fieldlist[$field].' --><td class="'.$class.'">'.$valuetoshow.'</td>';
|
if ($showfield) {
|
||||||
|
print '<!-- '.$fieldlist[$field].' --><td class="'.$class.'">'.$valuetoshow.'</td>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -630,27 +658,38 @@ if ($id)
|
|||||||
$canbemodified = $iserasable;
|
$canbemodified = $iserasable;
|
||||||
|
|
||||||
$url = $_SERVER["PHP_SELF"].'?'.($page ? 'page='.$page.'&' : '').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.(!empty($obj->rowid) ? $obj->rowid : (!empty($obj->code) ? $obj->code : '')).'&code='.(!empty($obj->code) ?urlencode($obj->code) : '');
|
$url = $_SERVER["PHP_SELF"].'?'.($page ? 'page='.$page.'&' : '').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.(!empty($obj->rowid) ? $obj->rowid : (!empty($obj->code) ? $obj->code : '')).'&code='.(!empty($obj->code) ?urlencode($obj->code) : '');
|
||||||
if ($param) $url .= '&'.$param;
|
if ($param) {
|
||||||
|
$url .= '&'.$param;
|
||||||
|
}
|
||||||
$url .= '&';
|
$url .= '&';
|
||||||
|
|
||||||
// Active
|
// Active
|
||||||
print '<td class="nowrap center">';
|
print '<td class="nowrap center">';
|
||||||
if ($canbedisabled) print '<a href="'.$url.'action='.$acts[$obj->active].'&token='.newToken().'">'.$actl[$obj->active].'</a>';
|
if ($canbedisabled) {
|
||||||
else print $langs->trans("AlwaysActive");
|
print '<a href="'.$url.'action='.$acts[$obj->active].'&token='.newToken().'">'.$actl[$obj->active].'</a>';
|
||||||
|
} else {
|
||||||
|
print $langs->trans("AlwaysActive");
|
||||||
|
}
|
||||||
print "</td>";
|
print "</td>";
|
||||||
|
|
||||||
// Modify link
|
// Modify link
|
||||||
if ($canbemodified) print '<td class="center"><a class="reposition editfielda" href="'.$url.'action=edit&token='.newToken().'">'.img_edit().'</a></td>';
|
if ($canbemodified) {
|
||||||
else print '<td> </td>';
|
print '<td class="center"><a class="reposition editfielda" href="'.$url.'action=edit&token='.newToken().'">'.img_edit().'</a></td>';
|
||||||
|
} else {
|
||||||
|
print '<td> </td>';
|
||||||
|
}
|
||||||
|
|
||||||
// Delete link
|
// Delete link
|
||||||
if ($iserasable)
|
if ($iserasable) {
|
||||||
{
|
|
||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
if ($user->admin) print '<a href="'.$url.'action=delete&token='.newToken().'">'.img_delete().'</a>';
|
if ($user->admin) {
|
||||||
|
print '<a href="'.$url.'action=delete&token='.newToken().'">'.img_delete().'</a>';
|
||||||
|
}
|
||||||
//else print '<a href="#">'.img_delete().'</a>'; // Some dictionary can be edited by other profile than admin
|
//else print '<a href="#">'.img_delete().'</a>'; // Some dictionary can be edited by other profile than admin
|
||||||
print '</td>';
|
print '</td>';
|
||||||
} else print '<td> </td>';
|
} else {
|
||||||
|
print '<td> </td>';
|
||||||
|
}
|
||||||
|
|
||||||
print '<td></td>';
|
print '<td></td>';
|
||||||
|
|
||||||
@ -698,10 +737,8 @@ function fieldListJournal($fieldlist, $obj = '', $tabname = '', $context = '')
|
|||||||
$formadmin = new FormAdmin($db);
|
$formadmin = new FormAdmin($db);
|
||||||
$formcompany = new FormCompany($db);
|
$formcompany = new FormCompany($db);
|
||||||
|
|
||||||
foreach ($fieldlist as $field => $value)
|
foreach ($fieldlist as $field => $value) {
|
||||||
{
|
if ($fieldlist[$field] == 'nature') {
|
||||||
if ($fieldlist[$field] == 'nature')
|
|
||||||
{
|
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print $form->selectarray('nature', $sourceList, (!empty($obj->{$fieldlist[$field]}) ? $obj->{$fieldlist[$field]}:''));
|
print $form->selectarray('nature', $sourceList, (!empty($obj->{$fieldlist[$field]}) ? $obj->{$fieldlist[$field]}:''));
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -710,9 +747,15 @@ function fieldListJournal($fieldlist, $obj = '', $tabname = '', $context = '')
|
|||||||
} else {
|
} else {
|
||||||
print '<td>';
|
print '<td>';
|
||||||
$size = ''; $class = '';
|
$size = ''; $class = '';
|
||||||
if ($fieldlist[$field] == 'code') $class = 'maxwidth100';
|
if ($fieldlist[$field] == 'code') {
|
||||||
if ($fieldlist[$field] == 'label') $class = 'quatrevingtpercent';
|
$class = 'maxwidth100';
|
||||||
if ($fieldlist[$field] == 'sortorder' || $fieldlist[$field] == 'sens' || $fieldlist[$field] == 'category_type') $size = 'size="2" ';
|
}
|
||||||
|
if ($fieldlist[$field] == 'label') {
|
||||||
|
$class = 'quatrevingtpercent';
|
||||||
|
}
|
||||||
|
if ($fieldlist[$field] == 'sortorder' || $fieldlist[$field] == 'sens' || $fieldlist[$field] == 'category_type') {
|
||||||
|
$size = 'size="2" ';
|
||||||
|
}
|
||||||
print '<input type="text" '.$size.'class="flat'.($class ? ' '.$class : '').'" value="'.(isset($obj->{$fieldlist[$field]}) ? $obj->{$fieldlist[$field]}:'').'" name="'.$fieldlist[$field].'">';
|
print '<input type="text" '.$size.'class="flat'.($class ? ' '.$class : '').'" value="'.(isset($obj->{$fieldlist[$field]}) ? $obj->{$fieldlist[$field]}:'').'" name="'.$fieldlist[$field].'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -41,8 +41,9 @@ $langs->loadLangs(array("companies", "compta", "accountancy", "products"));
|
|||||||
if (empty($conf->accounting->enabled)) {
|
if (empty($conf->accounting->enabled)) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
}
|
}
|
||||||
if (!$user->rights->accounting->bind->write)
|
if (!$user->rights->accounting->bind->write) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
// search & action GETPOST
|
// search & action GETPOST
|
||||||
$action = GETPOST('action', 'aZ09');
|
$action = GETPOST('action', 'aZ09');
|
||||||
@ -60,7 +61,9 @@ $search_desc = GETPOST('search_desc', 'alpha');
|
|||||||
$search_vat = GETPOST('search_vat', 'alpha');
|
$search_vat = GETPOST('search_vat', 'alpha');
|
||||||
$search_current_account = GETPOST('search_current_account', 'alpha');
|
$search_current_account = GETPOST('search_current_account', 'alpha');
|
||||||
$search_current_account_valid = GETPOST('search_current_account_valid', 'alpha');
|
$search_current_account_valid = GETPOST('search_current_account_valid', 'alpha');
|
||||||
if ($search_current_account_valid == '') $search_current_account_valid = 'withoutvalidaccount';
|
if ($search_current_account_valid == '') {
|
||||||
|
$search_current_account_valid = 'withoutvalidaccount';
|
||||||
|
}
|
||||||
$search_onsell = GETPOST('search_onsell', 'alpha');
|
$search_onsell = GETPOST('search_onsell', 'alpha');
|
||||||
$search_onpurchase = GETPOST('search_onpurchase', 'alpha');
|
$search_onpurchase = GETPOST('search_onpurchase', 'alpha');
|
||||||
|
|
||||||
@ -68,20 +71,30 @@ $accounting_product_mode = GETPOST('accounting_product_mode', 'alpha');
|
|||||||
$btn_changeaccount = GETPOST('changeaccount', 'alpha');
|
$btn_changeaccount = GETPOST('changeaccount', 'alpha');
|
||||||
$btn_changetype = GETPOST('changetype', 'alpha');
|
$btn_changetype = GETPOST('changetype', 'alpha');
|
||||||
|
|
||||||
if (empty($accounting_product_mode)) $accounting_product_mode = 'ACCOUNTANCY_SELL';
|
if (empty($accounting_product_mode)) {
|
||||||
|
$accounting_product_mode = 'ACCOUNTANCY_SELL';
|
||||||
|
}
|
||||||
|
|
||||||
$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : (empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION) ? $conf->liste_limit : $conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION);
|
$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : (empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION) ? $conf->liste_limit : $conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION);
|
||||||
$sortfield = GETPOST("sortfield", 'alpha');
|
$sortfield = GETPOST("sortfield", 'alpha');
|
||||||
$sortorder = GETPOST("sortorder", 'alpha');
|
$sortorder = GETPOST("sortorder", 'alpha');
|
||||||
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
||||||
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1
|
if (empty($page) || $page == -1) {
|
||||||
|
$page = 0;
|
||||||
|
} // If $page is not defined, or '' or -1
|
||||||
$offset = $limit * $page;
|
$offset = $limit * $page;
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
if (!$sortfield) $sortfield = "p.ref";
|
if (!$sortfield) {
|
||||||
if (!$sortorder) $sortorder = "ASC";
|
$sortfield = "p.ref";
|
||||||
|
}
|
||||||
|
if (!$sortorder) {
|
||||||
|
$sortorder = "ASC";
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($action)) $action = 'list';
|
if (empty($action)) {
|
||||||
|
$action = 'list';
|
||||||
|
}
|
||||||
|
|
||||||
$arrayfields = array();
|
$arrayfields = array();
|
||||||
|
|
||||||
@ -90,16 +103,21 @@ $arrayfields = array();
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (GETPOST('cancel', 'alpha')) { $action = 'list'; $massaction = ''; }
|
if (GETPOST('cancel', 'alpha')) {
|
||||||
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; }
|
$action = 'list'; $massaction = '';
|
||||||
|
}
|
||||||
|
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') {
|
||||||
|
$massaction = '';
|
||||||
|
}
|
||||||
|
|
||||||
$parameters = array();
|
$parameters = array();
|
||||||
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
||||||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
if ($reshook < 0) {
|
||||||
|
setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||||
|
}
|
||||||
|
|
||||||
// Purge search criteria
|
// Purge search criteria
|
||||||
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // All test are required to be compatible with all browsers
|
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All test are required to be compatible with all browsers
|
||||||
{
|
|
||||||
$search_ref = '';
|
$search_ref = '';
|
||||||
$search_label = '';
|
$search_label = '';
|
||||||
$search_desc = '';
|
$search_desc = '';
|
||||||
@ -142,13 +160,11 @@ if ($action == 'update') {
|
|||||||
$arrayofdifferentselectedvalues = array();
|
$arrayofdifferentselectedvalues = array();
|
||||||
|
|
||||||
$cpt = 0; $ok = 0; $ko = 0;
|
$cpt = 0; $ok = 0; $ko = 0;
|
||||||
foreach ($chk_prod as $productid)
|
foreach ($chk_prod as $productid) {
|
||||||
{
|
|
||||||
$accounting_account_id = GETPOST('codeventil_'.$productid);
|
$accounting_account_id = GETPOST('codeventil_'.$productid);
|
||||||
|
|
||||||
$result = 0;
|
$result = 0;
|
||||||
if ($accounting_account_id > 0)
|
if ($accounting_account_id > 0) {
|
||||||
{
|
|
||||||
$arrayofdifferentselectedvalues[$accounting_account_id] = $accounting_account_id;
|
$arrayofdifferentselectedvalues[$accounting_account_id] = $accounting_account_id;
|
||||||
$result = $accounting->fetch($accounting_account_id, null, 1);
|
$result = $accounting->fetch($accounting_account_id, null, 1);
|
||||||
}
|
}
|
||||||
@ -181,8 +197,7 @@ if ($action == 'update') {
|
|||||||
$sql .= " WHERE rowid = ".((int) $productid);
|
$sql .= " WHERE rowid = ".((int) $productid);
|
||||||
|
|
||||||
dol_syslog("/accountancy/admin/productaccount.php sql=".$sql, LOG_DEBUG);
|
dol_syslog("/accountancy/admin/productaccount.php sql=".$sql, LOG_DEBUG);
|
||||||
if ($db->query($sql))
|
if ($db->query($sql)) {
|
||||||
{
|
|
||||||
$ok++;
|
$ok++;
|
||||||
$db->commit();
|
$db->commit();
|
||||||
} else {
|
} else {
|
||||||
@ -195,8 +210,12 @@ if ($action == 'update') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($ko) setEventMessages($langs->trans("XLineFailedToBeBinded", $ko), null, 'errors');
|
if ($ko) {
|
||||||
if ($ok) setEventMessages($langs->trans("XLineSuccessfullyBinded", $ok), null, 'mesgs');
|
setEventMessages($langs->trans("XLineFailedToBeBinded", $ko), null, 'errors');
|
||||||
|
}
|
||||||
|
if ($ok) {
|
||||||
|
setEventMessages($langs->trans("XLineSuccessfullyBinded", $ok), null, 'mesgs');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -243,7 +262,9 @@ llxHeader('', $langs->trans("ProductsBinding"));
|
|||||||
|
|
||||||
$pcgverid = $conf->global->CHARTOFACCOUNTS;
|
$pcgverid = $conf->global->CHARTOFACCOUNTS;
|
||||||
$pcgvercode = dol_getIdFromCode($db, $pcgverid, 'accounting_system', 'rowid', 'pcg_version');
|
$pcgvercode = dol_getIdFromCode($db, $pcgverid, 'accounting_system', 'rowid', 'pcg_version');
|
||||||
if (empty($pcgvercode)) $pcgvercode = $pcgverid;
|
if (empty($pcgvercode)) {
|
||||||
|
$pcgvercode = $pcgverid;
|
||||||
|
}
|
||||||
|
|
||||||
$sql = "SELECT p.rowid, p.ref, p.label, p.description, p.tosell, p.tobuy, p.tva_tx,";
|
$sql = "SELECT p.rowid, p.ref, p.label, p.description, p.tosell, p.tobuy, p.tva_tx,";
|
||||||
$sql .= " p.accountancy_code_sell, p.accountancy_code_sell_intra, p.accountancy_code_sell_export,";
|
$sql .= " p.accountancy_code_sell, p.accountancy_code_sell_intra, p.accountancy_code_sell_export,";
|
||||||
@ -254,17 +275,13 @@ $sql .= " FROM ".MAIN_DB_PREFIX."product as p";
|
|||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa ON";
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as aa ON";
|
||||||
if ($accounting_product_mode == 'ACCOUNTANCY_BUY') {
|
if ($accounting_product_mode == 'ACCOUNTANCY_BUY') {
|
||||||
$sql .= " p.accountancy_code_buy = aa.account_number AND aa.fk_pcg_version = '".$db->escape($pcgvercode)."'";
|
$sql .= " p.accountancy_code_buy = aa.account_number AND aa.fk_pcg_version = '".$db->escape($pcgvercode)."'";
|
||||||
} elseif ($accounting_product_mode == 'ACCOUNTANCY_BUY_INTRA')
|
} elseif ($accounting_product_mode == 'ACCOUNTANCY_BUY_INTRA') {
|
||||||
{
|
|
||||||
$sql .= " p.accountancy_code_buy_intra = aa.account_number AND aa.fk_pcg_version = '".$db->escape($pcgvercode)."'";
|
$sql .= " p.accountancy_code_buy_intra = aa.account_number AND aa.fk_pcg_version = '".$db->escape($pcgvercode)."'";
|
||||||
} elseif ($accounting_product_mode == 'ACCOUNTANCY_BUY_EXPORT')
|
} elseif ($accounting_product_mode == 'ACCOUNTANCY_BUY_EXPORT') {
|
||||||
{
|
|
||||||
$sql .= " p.accountancy_code_buy_export = aa.account_number AND aa.fk_pcg_version = '".$db->escape($pcgvercode)."'";
|
$sql .= " p.accountancy_code_buy_export = aa.account_number AND aa.fk_pcg_version = '".$db->escape($pcgvercode)."'";
|
||||||
} elseif ($accounting_product_mode == 'ACCOUNTANCY_SELL')
|
} elseif ($accounting_product_mode == 'ACCOUNTANCY_SELL') {
|
||||||
{
|
|
||||||
$sql .= " p.accountancy_code_sell = aa.account_number AND aa.fk_pcg_version = '".$db->escape($pcgvercode)."'";
|
$sql .= " p.accountancy_code_sell = aa.account_number AND aa.fk_pcg_version = '".$db->escape($pcgvercode)."'";
|
||||||
} elseif ($accounting_product_mode == 'ACCOUNTANCY_SELL_INTRA')
|
} elseif ($accounting_product_mode == 'ACCOUNTANCY_SELL_INTRA') {
|
||||||
{
|
|
||||||
$sql .= " p.accountancy_code_sell_intra = aa.account_number AND aa.fk_pcg_version = '".$db->escape($pcgvercode)."'";
|
$sql .= " p.accountancy_code_sell_intra = aa.account_number AND aa.fk_pcg_version = '".$db->escape($pcgvercode)."'";
|
||||||
} else {
|
} else {
|
||||||
$sql .= " p.accountancy_code_sell_export = aa.account_number AND aa.fk_pcg_version = '".$db->escape($pcgvercode)."'";
|
$sql .= " p.accountancy_code_sell_export = aa.account_number AND aa.fk_pcg_version = '".$db->escape($pcgvercode)."'";
|
||||||
@ -295,12 +312,10 @@ if ($accounting_product_mode == 'ACCOUNTANCY_BUY') {
|
|||||||
$sql .= natural_search("p.accountancy_code_sell_export", $search_current_account);
|
$sql .= natural_search("p.accountancy_code_sell_export", $search_current_account);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($search_current_account_valid == 'withoutvalidaccount')
|
if ($search_current_account_valid == 'withoutvalidaccount') {
|
||||||
{
|
|
||||||
$sql .= " AND aa.account_number IS NULL";
|
$sql .= " AND aa.account_number IS NULL";
|
||||||
}
|
}
|
||||||
if ($search_current_account_valid == 'withvalidaccount')
|
if ($search_current_account_valid == 'withvalidaccount') {
|
||||||
{
|
|
||||||
$sql .= " AND aa.account_number IS NOT NULL";
|
$sql .= " AND aa.account_number IS NOT NULL";
|
||||||
}
|
}
|
||||||
// Add search filter like
|
// Add search filter like
|
||||||
@ -316,18 +331,20 @@ if (strlen(trim($search_desc))) {
|
|||||||
if (strlen(trim($search_vat))) {
|
if (strlen(trim($search_vat))) {
|
||||||
$sql .= natural_search("p.tva_tx", price2num($search_vat), 1);
|
$sql .= natural_search("p.tva_tx", price2num($search_vat), 1);
|
||||||
}
|
}
|
||||||
if ($search_onsell != '' && $search_onsell != '-1') $sql .= natural_search('p.tosell', $search_onsell, 1);
|
if ($search_onsell != '' && $search_onsell != '-1') {
|
||||||
if ($search_onpurchase != '' && $search_onpurchase != '-1') $sql .= natural_search('p.tobuy', $search_onpurchase, 1);
|
$sql .= natural_search('p.tosell', $search_onsell, 1);
|
||||||
|
}
|
||||||
|
if ($search_onpurchase != '' && $search_onpurchase != '-1') {
|
||||||
|
$sql .= natural_search('p.tobuy', $search_onpurchase, 1);
|
||||||
|
}
|
||||||
|
|
||||||
$sql .= $db->order($sortfield, $sortorder);
|
$sql .= $db->order($sortfield, $sortorder);
|
||||||
|
|
||||||
$nbtotalofrecords = '';
|
$nbtotalofrecords = '';
|
||||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||||
{
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
$nbtotalofrecords = $db->num_rows($result);
|
$nbtotalofrecords = $db->num_rows($result);
|
||||||
if (($page * $limit) > $nbtotalofrecords) // if total resultset is smaller then paging size (filtering), goto and load page 0
|
if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0
|
||||||
{
|
|
||||||
$page = 0;
|
$page = 0;
|
||||||
$offset = 0;
|
$offset = 0;
|
||||||
}
|
}
|
||||||
@ -337,24 +354,43 @@ $sql .= $db->plimit($limit + 1, $offset);
|
|||||||
|
|
||||||
dol_syslog("/accountancy/admin/productaccount.php:: sql=".$sql, LOG_DEBUG);
|
dol_syslog("/accountancy/admin/productaccount.php:: sql=".$sql, LOG_DEBUG);
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if ($result)
|
if ($result) {
|
||||||
{
|
|
||||||
$num = $db->num_rows($result);
|
$num = $db->num_rows($result);
|
||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
$param = '';
|
$param = '';
|
||||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
$param .= '&contextpage='.urlencode($contextpage);
|
||||||
if ($search_ref > 0) $param .= "&search_desc=".urlencode($search_ref);
|
}
|
||||||
if ($search_label > 0) $param .= "&search_desc=".urlencode($search_label);
|
if ($limit > 0 && $limit != $conf->liste_limit) {
|
||||||
if ($search_desc > 0) $param .= "&search_desc=".urlencode($search_desc);
|
$param .= '&limit='.urlencode($limit);
|
||||||
if ($search_vat > 0) $param .= '&search_vat='.urlencode($search_vat);
|
}
|
||||||
if ($search_current_account > 0) $param .= "&search_current_account=".urlencode($search_current_account);
|
if ($search_ref > 0) {
|
||||||
if ($search_current_account_valid && $search_current_account_valid != '-1') $param .= "&search_current_account_valid=".urlencode($search_current_account_valid);
|
$param .= "&search_desc=".urlencode($search_ref);
|
||||||
if ($accounting_product_mode) $param .= '&accounting_product_mode='.urlencode($accounting_product_mode);
|
}
|
||||||
|
if ($search_label > 0) {
|
||||||
|
$param .= "&search_desc=".urlencode($search_label);
|
||||||
|
}
|
||||||
|
if ($search_desc > 0) {
|
||||||
|
$param .= "&search_desc=".urlencode($search_desc);
|
||||||
|
}
|
||||||
|
if ($search_vat > 0) {
|
||||||
|
$param .= '&search_vat='.urlencode($search_vat);
|
||||||
|
}
|
||||||
|
if ($search_current_account > 0) {
|
||||||
|
$param .= "&search_current_account=".urlencode($search_current_account);
|
||||||
|
}
|
||||||
|
if ($search_current_account_valid && $search_current_account_valid != '-1') {
|
||||||
|
$param .= "&search_current_account_valid=".urlencode($search_current_account_valid);
|
||||||
|
}
|
||||||
|
if ($accounting_product_mode) {
|
||||||
|
$param .= '&accounting_product_mode='.urlencode($accounting_product_mode);
|
||||||
|
}
|
||||||
|
|
||||||
print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
|
print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') {
|
||||||
|
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
}
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
||||||
print '<input type="hidden" name="action" value="update">';
|
print '<input type="hidden" name="action" value="update">';
|
||||||
@ -375,8 +411,7 @@ if ($result)
|
|||||||
print '<tr class="oddeven"><td><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_SELL"'.($accounting_product_mode == 'ACCOUNTANCY_SELL' ? ' checked' : '').'> '.$langs->trans('OptionModeProductSell').'</td>';
|
print '<tr class="oddeven"><td><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_SELL"'.($accounting_product_mode == 'ACCOUNTANCY_SELL' ? ' checked' : '').'> '.$langs->trans('OptionModeProductSell').'</td>';
|
||||||
print '<td>'.$langs->trans('OptionModeProductSellDesc');
|
print '<td>'.$langs->trans('OptionModeProductSellDesc');
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
if ($mysoc->isInEEC())
|
if ($mysoc->isInEEC()) {
|
||||||
{
|
|
||||||
print '<tr class="oddeven"><td><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_SELL_INTRA"'.($accounting_product_mode == 'ACCOUNTANCY_SELL_INTRA' ? ' checked' : '').'> '.$langs->trans('OptionModeProductSellIntra').'</td>';
|
print '<tr class="oddeven"><td><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_SELL_INTRA"'.($accounting_product_mode == 'ACCOUNTANCY_SELL_INTRA' ? ' checked' : '').'> '.$langs->trans('OptionModeProductSellIntra').'</td>';
|
||||||
print '<td>'.$langs->trans('OptionModeProductSellIntraDesc');
|
print '<td>'.$langs->trans('OptionModeProductSellIntraDesc');
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
@ -386,8 +421,7 @@ if ($result)
|
|||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
print '<tr class="oddeven"><td><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_BUY"'.($accounting_product_mode == 'ACCOUNTANCY_BUY' ? ' checked' : '').'> '.$langs->trans('OptionModeProductBuy').'</td>';
|
print '<tr class="oddeven"><td><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_BUY"'.($accounting_product_mode == 'ACCOUNTANCY_BUY' ? ' checked' : '').'> '.$langs->trans('OptionModeProductBuy').'</td>';
|
||||||
print '<td>'.$langs->trans('OptionModeProductBuyDesc')."</td></tr>\n";
|
print '<td>'.$langs->trans('OptionModeProductBuyDesc')."</td></tr>\n";
|
||||||
if ($mysoc->isInEEC())
|
if ($mysoc->isInEEC()) {
|
||||||
{
|
|
||||||
print '<tr class="oddeven"><td><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_BUY_INTRA"'.($accounting_product_mode == 'ACCOUNTANCY_BUY_INTRA' ? ' checked' : '').'> '.$langs->trans('OptionModeProductBuyIntra').'</td>';
|
print '<tr class="oddeven"><td><input type="radio" name="accounting_product_mode" value="ACCOUNTANCY_BUY_INTRA"'.($accounting_product_mode == 'ACCOUNTANCY_BUY_INTRA' ? ' checked' : '').'> '.$langs->trans('OptionModeProductBuyIntra').'</td>';
|
||||||
print '<td>'.$langs->trans('OptionModeProductBuyDesc')."</td></tr>\n";
|
print '<td>'.$langs->trans('OptionModeProductBuyDesc')."</td></tr>\n";
|
||||||
}
|
}
|
||||||
@ -419,13 +453,14 @@ if ($result)
|
|||||||
print '<td class="liste_titre"><input type="text" class="flat" size="10" name="search_label" value="'.dol_escape_htmltag($search_label).'"></td>';
|
print '<td class="liste_titre"><input type="text" class="flat" size="10" name="search_label" value="'.dol_escape_htmltag($search_label).'"></td>';
|
||||||
print '<td class="liste_titre right"><input type="text" class="flat maxwidth50 right" size="5" name="search_vat" placeholder="%" value="'.dol_escape_htmltag($search_vat).'"></td>';
|
print '<td class="liste_titre right"><input type="text" class="flat maxwidth50 right" size="5" name="search_vat" placeholder="%" value="'.dol_escape_htmltag($search_vat).'"></td>';
|
||||||
|
|
||||||
if (!empty($conf->global->ACCOUNTANCY_SHOW_PROD_DESC)) print '<td class="liste_titre"><input type="text" class="flat" size="20" name="search_desc" value="'.dol_escape_htmltag($search_desc).'"></td>';
|
if (!empty($conf->global->ACCOUNTANCY_SHOW_PROD_DESC)) {
|
||||||
|
print '<td class="liste_titre"><input type="text" class="flat" size="20" name="search_desc" value="'.dol_escape_htmltag($search_desc).'"></td>';
|
||||||
|
}
|
||||||
// On sell
|
// On sell
|
||||||
if ($accounting_product_mode == 'ACCOUNTANCY_SELL' || $accounting_product_mode == 'ACCOUNTANCY_SELL_INTRA' || $accounting_product_mode == 'ACCOUNTANCY_SELL_EXPORT') {
|
if ($accounting_product_mode == 'ACCOUNTANCY_SELL' || $accounting_product_mode == 'ACCOUNTANCY_SELL_INTRA' || $accounting_product_mode == 'ACCOUNTANCY_SELL_EXPORT') {
|
||||||
print '<td class="liste_titre center">'.$form->selectyesno('search_onsell', $search_onsell, 1, false, 1).'</td>';
|
print '<td class="liste_titre center">'.$form->selectyesno('search_onsell', $search_onsell, 1, false, 1).'</td>';
|
||||||
}
|
} elseif ($accounting_product_mode == 'ACCOUNTANCY_BUY' || $accounting_product_mode == 'ACCOUNTANCY_BUY_INTRA' || $accounting_product_mode == 'ACCOUNTANCY_BUY_EXPORT') {
|
||||||
// On buy
|
// On buy
|
||||||
elseif ($accounting_product_mode == 'ACCOUNTANCY_BUY' || $accounting_product_mode == 'ACCOUNTANCY_BUY_INTRA' || $accounting_product_mode == 'ACCOUNTANCY_BUY_EXPORT') {
|
|
||||||
print '<td class="liste_titre center">'.$form->selectyesno('search_onpurchase', $search_onpurchase, 1, false, 1).'</td>';
|
print '<td class="liste_titre center">'.$form->selectyesno('search_onpurchase', $search_onpurchase, 1, false, 1).'</td>';
|
||||||
}
|
}
|
||||||
// Current account
|
// Current account
|
||||||
@ -444,7 +479,9 @@ if ($result)
|
|||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder);
|
print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder);
|
||||||
print_liste_field_titre("Label", $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder);
|
print_liste_field_titre("Label", $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder);
|
||||||
if (!empty($conf->global->ACCOUNTANCY_SHOW_PROD_DESC)) print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "p.description", "", $param, '', $sortfield, $sortorder);
|
if (!empty($conf->global->ACCOUNTANCY_SHOW_PROD_DESC)) {
|
||||||
|
print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "p.description", "", $param, '', $sortfield, $sortorder);
|
||||||
|
}
|
||||||
print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], "p.tva_tx", "", $param, '', $sortfield, $sortorder, 'right ');
|
print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], "p.tva_tx", "", $param, '', $sortfield, $sortorder, 'right ');
|
||||||
// On sell / On purchase
|
// On sell / On purchase
|
||||||
if ($accounting_product_mode == 'ACCOUNTANCY_SELL') {
|
if ($accounting_product_mode == 'ACCOUNTANCY_SELL') {
|
||||||
@ -475,8 +512,7 @@ if ($result)
|
|||||||
$product_static = new Product($db);
|
$product_static = new Product($db);
|
||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
while ($i < min($num, $limit))
|
while ($i < min($num, $limit)) {
|
||||||
{
|
|
||||||
$obj = $db->fetch_object($result);
|
$obj = $db->fetch_object($result);
|
||||||
|
|
||||||
// Ref produit as link
|
// Ref produit as link
|
||||||
@ -558,8 +594,7 @@ if ($result)
|
|||||||
|
|
||||||
print '<td class="left">'.$obj->label.'</td>';
|
print '<td class="left">'.$obj->label.'</td>';
|
||||||
|
|
||||||
if (!empty($conf->global->ACCOUNTANCY_SHOW_PROD_DESC))
|
if (!empty($conf->global->ACCOUNTANCY_SHOW_PROD_DESC)) {
|
||||||
{
|
|
||||||
// TODO ADJUST DESCRIPTION SIZE
|
// TODO ADJUST DESCRIPTION SIZE
|
||||||
// print '<td class="left">' . $obj->description . '</td>';
|
// print '<td class="left">' . $obj->description . '</td>';
|
||||||
// TODO: we should set a user defined value to adjust user square / wide screen size
|
// TODO: we should set a user defined value to adjust user square / wide screen size
|
||||||
@ -572,32 +607,46 @@ if ($result)
|
|||||||
print vatrate($obj->tva_tx);
|
print vatrate($obj->tva_tx);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
if ($accounting_product_mode == 'ACCOUNTANCY_SELL' || $accounting_product_mode == 'ACCOUNTANCY_SELL_INTRA' || $accounting_product_mode == 'ACCOUNTANCY_SELL_EXPORT')
|
if ($accounting_product_mode == 'ACCOUNTANCY_SELL' || $accounting_product_mode == 'ACCOUNTANCY_SELL_INTRA' || $accounting_product_mode == 'ACCOUNTANCY_SELL_EXPORT') {
|
||||||
print '<td class="center">'.$product_static->getLibStatut(3, 0).'</td>';
|
print '<td class="center">'.$product_static->getLibStatut(3, 0).'</td>';
|
||||||
|
}
|
||||||
|
|
||||||
if ($accounting_product_mode == 'ACCOUNTANCY_BUY' || $accounting_product_mode == 'ACCOUNTANCY_BUY_INTRA' || $accounting_product_mode == 'ACCOUNTANCY_BUY_EXPORT')
|
if ($accounting_product_mode == 'ACCOUNTANCY_BUY' || $accounting_product_mode == 'ACCOUNTANCY_BUY_INTRA' || $accounting_product_mode == 'ACCOUNTANCY_BUY_EXPORT') {
|
||||||
print '<td class="center">'.$product_static->getLibStatut(3, 1).'</td>';
|
print '<td class="center">'.$product_static->getLibStatut(3, 1).'</td>';
|
||||||
|
}
|
||||||
|
|
||||||
// Current accounting account
|
// Current accounting account
|
||||||
print '<td class="left">';
|
print '<td class="left">';
|
||||||
if ($accounting_product_mode == 'ACCOUNTANCY_BUY') {
|
if ($accounting_product_mode == 'ACCOUNTANCY_BUY') {
|
||||||
print length_accountg($obj->accountancy_code_buy);
|
print length_accountg($obj->accountancy_code_buy);
|
||||||
if ($obj->accountancy_code_buy && empty($obj->aaid)) print ' '.img_warning($langs->trans("ValueNotIntoChartOfAccount"));
|
if ($obj->accountancy_code_buy && empty($obj->aaid)) {
|
||||||
|
print ' '.img_warning($langs->trans("ValueNotIntoChartOfAccount"));
|
||||||
|
}
|
||||||
} elseif ($accounting_product_mode == 'ACCOUNTANCY_BUY_INTRA') {
|
} elseif ($accounting_product_mode == 'ACCOUNTANCY_BUY_INTRA') {
|
||||||
print length_accountg($obj->accountancy_code_buy_intra);
|
print length_accountg($obj->accountancy_code_buy_intra);
|
||||||
if ($obj->accountancy_code_buy_intra && empty($obj->aaid)) print ' '.img_warning($langs->trans("ValueNotIntoChartOfAccount"));
|
if ($obj->accountancy_code_buy_intra && empty($obj->aaid)) {
|
||||||
|
print ' '.img_warning($langs->trans("ValueNotIntoChartOfAccount"));
|
||||||
|
}
|
||||||
} elseif ($accounting_product_mode == 'ACCOUNTANCY_BUY_EXPORT') {
|
} elseif ($accounting_product_mode == 'ACCOUNTANCY_BUY_EXPORT') {
|
||||||
print length_accountg($obj->accountancy_code_buy_export);
|
print length_accountg($obj->accountancy_code_buy_export);
|
||||||
if ($obj->accountancy_code_buy_export && empty($obj->aaid)) print ' '.img_warning($langs->trans("ValueNotIntoChartOfAccount"));
|
if ($obj->accountancy_code_buy_export && empty($obj->aaid)) {
|
||||||
|
print ' '.img_warning($langs->trans("ValueNotIntoChartOfAccount"));
|
||||||
|
}
|
||||||
} elseif ($accounting_product_mode == 'ACCOUNTANCY_SELL') {
|
} elseif ($accounting_product_mode == 'ACCOUNTANCY_SELL') {
|
||||||
print length_accountg($obj->accountancy_code_sell);
|
print length_accountg($obj->accountancy_code_sell);
|
||||||
if ($obj->accountancy_code_sell && empty($obj->aaid)) print ' '.img_warning($langs->trans("ValueNotIntoChartOfAccount"));
|
if ($obj->accountancy_code_sell && empty($obj->aaid)) {
|
||||||
|
print ' '.img_warning($langs->trans("ValueNotIntoChartOfAccount"));
|
||||||
|
}
|
||||||
} elseif ($accounting_product_mode == 'ACCOUNTANCY_SELL_INTRA') {
|
} elseif ($accounting_product_mode == 'ACCOUNTANCY_SELL_INTRA') {
|
||||||
print length_accountg($obj->accountancy_code_sell_intra);
|
print length_accountg($obj->accountancy_code_sell_intra);
|
||||||
if ($obj->accountancy_code_sell_intra && empty($obj->aaid)) print ' '.img_warning($langs->trans("ValueNotIntoChartOfAccount"));
|
if ($obj->accountancy_code_sell_intra && empty($obj->aaid)) {
|
||||||
|
print ' '.img_warning($langs->trans("ValueNotIntoChartOfAccount"));
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
print length_accountg($obj->accountancy_code_sell_export);
|
print length_accountg($obj->accountancy_code_sell_export);
|
||||||
if ($obj->accountancy_code_sell_export && empty($obj->aaid)) print ' '.img_warning($langs->trans("ValueNotIntoChartOfAccount"));
|
if ($obj->accountancy_code_sell_export && empty($obj->aaid)) {
|
||||||
|
print ' '.img_warning($langs->trans("ValueNotIntoChartOfAccount"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
@ -607,58 +656,82 @@ if ($result)
|
|||||||
// Accounting account buy
|
// Accounting account buy
|
||||||
print '<td class="left">';
|
print '<td class="left">';
|
||||||
//$defaultvalue=GETPOST('codeventil_' . $product_static->id,'alpha'); This is id and we need a code
|
//$defaultvalue=GETPOST('codeventil_' . $product_static->id,'alpha'); This is id and we need a code
|
||||||
if (empty($defaultvalue)) $defaultvalue = $compta_prodbuy;
|
if (empty($defaultvalue)) {
|
||||||
|
$defaultvalue = $compta_prodbuy;
|
||||||
|
}
|
||||||
$codesell = length_accountg($obj->accountancy_code_buy);
|
$codesell = length_accountg($obj->accountancy_code_buy);
|
||||||
if (!empty($obj->aaid)) $defaultvalue = ''; // Do not suggest default new value is code is already valid
|
if (!empty($obj->aaid)) {
|
||||||
|
$defaultvalue = ''; // Do not suggest default new value is code is already valid
|
||||||
|
}
|
||||||
print $form->select_account($defaultvalue, 'codeventil_'.$product_static->id, 1, array(), 1, 0, 'maxwidth300 maxwidthonsmartphone productforselect');
|
print $form->select_account($defaultvalue, 'codeventil_'.$product_static->id, 1, array(), 1, 0, 'maxwidth300 maxwidthonsmartphone productforselect');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
} elseif ($accounting_product_mode == 'ACCOUNTANCY_BUY_INTRA') {
|
} elseif ($accounting_product_mode == 'ACCOUNTANCY_BUY_INTRA') {
|
||||||
// Accounting account buy intra (In EEC)
|
// Accounting account buy intra (In EEC)
|
||||||
print '<td class="left">';
|
print '<td class="left">';
|
||||||
//$defaultvalue=GETPOST('codeventil_' . $product_static->id,'alpha'); This is id and we need a code
|
//$defaultvalue=GETPOST('codeventil_' . $product_static->id,'alpha'); This is id and we need a code
|
||||||
if (empty($defaultvalue)) $defaultvalue = $compta_prodbuy;
|
if (empty($defaultvalue)) {
|
||||||
|
$defaultvalue = $compta_prodbuy;
|
||||||
|
}
|
||||||
$codesell = length_accountg($obj->accountancy_code_buy_intra);
|
$codesell = length_accountg($obj->accountancy_code_buy_intra);
|
||||||
//var_dump($defaultvalue.' - '.$codesell.' - '.$compta_prodsell);
|
//var_dump($defaultvalue.' - '.$codesell.' - '.$compta_prodsell);
|
||||||
if (!empty($obj->aaid)) $defaultvalue = ''; // Do not suggest default new value is code is already valid
|
if (!empty($obj->aaid)) {
|
||||||
|
$defaultvalue = ''; // Do not suggest default new value is code is already valid
|
||||||
|
}
|
||||||
print $form->select_account($defaultvalue, 'codeventil_'.$product_static->id, 1, array(), 1, 0, 'maxwidth300 maxwidthonsmartphone productforselect');
|
print $form->select_account($defaultvalue, 'codeventil_'.$product_static->id, 1, array(), 1, 0, 'maxwidth300 maxwidthonsmartphone productforselect');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
} elseif ($accounting_product_mode == 'ACCOUNTANCY_BUY_EXPORT') {
|
} elseif ($accounting_product_mode == 'ACCOUNTANCY_BUY_EXPORT') {
|
||||||
// Accounting account buy export (Out of EEC)
|
// Accounting account buy export (Out of EEC)
|
||||||
print '<td class="left">';
|
print '<td class="left">';
|
||||||
//$defaultvalue=GETPOST('codeventil_' . $product_static->id,'alpha'); This is id and we need a code
|
//$defaultvalue=GETPOST('codeventil_' . $product_static->id,'alpha'); This is id and we need a code
|
||||||
if (empty($defaultvalue)) $defaultvalue = $compta_prodbuy;
|
if (empty($defaultvalue)) {
|
||||||
|
$defaultvalue = $compta_prodbuy;
|
||||||
|
}
|
||||||
$codesell = length_accountg($obj->accountancy_code_buy_export);
|
$codesell = length_accountg($obj->accountancy_code_buy_export);
|
||||||
//var_dump($defaultvalue.' - '.$codesell.' - '.$compta_prodsell);
|
//var_dump($defaultvalue.' - '.$codesell.' - '.$compta_prodsell);
|
||||||
if (!empty($obj->aaid)) $defaultvalue = ''; // Do not suggest default new value is code is already valid
|
if (!empty($obj->aaid)) {
|
||||||
|
$defaultvalue = ''; // Do not suggest default new value is code is already valid
|
||||||
|
}
|
||||||
print $form->select_account($defaultvalue, 'codeventil_'.$product_static->id, 1, array(), 1, 0, 'maxwidth300 maxwidthonsmartphone productforselect');
|
print $form->select_account($defaultvalue, 'codeventil_'.$product_static->id, 1, array(), 1, 0, 'maxwidth300 maxwidthonsmartphone productforselect');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
} elseif ($accounting_product_mode == 'ACCOUNTANCY_SELL') {
|
} elseif ($accounting_product_mode == 'ACCOUNTANCY_SELL') {
|
||||||
// Accounting account sell
|
// Accounting account sell
|
||||||
print '<td class="left">';
|
print '<td class="left">';
|
||||||
//$defaultvalue=GETPOST('codeventil_' . $product_static->id,'alpha'); This is id and we need a code
|
//$defaultvalue=GETPOST('codeventil_' . $product_static->id,'alpha'); This is id and we need a code
|
||||||
if (empty($defaultvalue)) $defaultvalue = $compta_prodsell;
|
if (empty($defaultvalue)) {
|
||||||
|
$defaultvalue = $compta_prodsell;
|
||||||
|
}
|
||||||
$codesell = length_accountg($obj->accountancy_code_sell);
|
$codesell = length_accountg($obj->accountancy_code_sell);
|
||||||
//var_dump($defaultvalue.' - '.$codesell.' - '.$compta_prodsell);
|
//var_dump($defaultvalue.' - '.$codesell.' - '.$compta_prodsell);
|
||||||
if (!empty($obj->aaid)) $defaultvalue = ''; // Do not suggest default new value is code is already valid
|
if (!empty($obj->aaid)) {
|
||||||
|
$defaultvalue = ''; // Do not suggest default new value is code is already valid
|
||||||
|
}
|
||||||
print $form->select_account($defaultvalue, 'codeventil_'.$product_static->id, 1, array(), 1, 0, 'maxwidth300 maxwidthonsmartphone productforselect');
|
print $form->select_account($defaultvalue, 'codeventil_'.$product_static->id, 1, array(), 1, 0, 'maxwidth300 maxwidthonsmartphone productforselect');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
} elseif ($accounting_product_mode == 'ACCOUNTANCY_SELL_INTRA') {
|
} elseif ($accounting_product_mode == 'ACCOUNTANCY_SELL_INTRA') {
|
||||||
// Accounting account sell intra (In EEC)
|
// Accounting account sell intra (In EEC)
|
||||||
print '<td class="left">';
|
print '<td class="left">';
|
||||||
//$defaultvalue=GETPOST('codeventil_' . $product_static->id,'alpha'); This is id and we need a code
|
//$defaultvalue=GETPOST('codeventil_' . $product_static->id,'alpha'); This is id and we need a code
|
||||||
if (empty($defaultvalue)) $defaultvalue = $compta_prodsell;
|
if (empty($defaultvalue)) {
|
||||||
|
$defaultvalue = $compta_prodsell;
|
||||||
|
}
|
||||||
$codesell = length_accountg($obj->accountancy_code_sell_intra);
|
$codesell = length_accountg($obj->accountancy_code_sell_intra);
|
||||||
//var_dump($defaultvalue.' - '.$codesell.' - '.$compta_prodsell);
|
//var_dump($defaultvalue.' - '.$codesell.' - '.$compta_prodsell);
|
||||||
if (!empty($obj->aaid)) $defaultvalue = ''; // Do not suggest default new value is code is already valid
|
if (!empty($obj->aaid)) {
|
||||||
|
$defaultvalue = ''; // Do not suggest default new value is code is already valid
|
||||||
|
}
|
||||||
print $form->select_account($defaultvalue, 'codeventil_'.$product_static->id, 1, array(), 1, 0, 'maxwidth300 maxwidthonsmartphone productforselect');
|
print $form->select_account($defaultvalue, 'codeventil_'.$product_static->id, 1, array(), 1, 0, 'maxwidth300 maxwidthonsmartphone productforselect');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
} else {
|
} else {
|
||||||
// Accounting account sell export (Out of EEC)
|
// Accounting account sell export (Out of EEC)
|
||||||
print '<td class="left">';
|
print '<td class="left">';
|
||||||
//$defaultvalue=GETPOST('codeventil_' . $product_static->id,'alpha'); This is id and we need a code
|
//$defaultvalue=GETPOST('codeventil_' . $product_static->id,'alpha'); This is id and we need a code
|
||||||
if (empty($defaultvalue)) $defaultvalue = $compta_prodsell;
|
if (empty($defaultvalue)) {
|
||||||
|
$defaultvalue = $compta_prodsell;
|
||||||
|
}
|
||||||
$codesell = length_accountg($obj->accountancy_code_sell_export);
|
$codesell = length_accountg($obj->accountancy_code_sell_export);
|
||||||
if (!empty($obj->aaid)) $defaultvalue = ''; // Do not suggest default new value is code is already valid
|
if (!empty($obj->aaid)) {
|
||||||
|
$defaultvalue = ''; // Do not suggest default new value is code is already valid
|
||||||
|
}
|
||||||
print $form->select_account($defaultvalue, 'codeventil_'.$product_static->id, 1, array(), 1, 0, 'maxwidth300 maxwidthonsmartphone productforselect');
|
print $form->select_account($defaultvalue, 'codeventil_'.$product_static->id, 1, array(), 1, 0, 'maxwidth300 maxwidthonsmartphone productforselect');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -43,20 +43,30 @@ $search_label = GETPOST('search_label', 'alpha');
|
|||||||
$search_type = GETPOST('search_type', 'int');
|
$search_type = GETPOST('search_type', 'int');
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->socid > 0) accessforbidden();
|
if ($user->socid > 0) {
|
||||||
if (!$user->rights->accounting->chartofaccount) accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
if (!$user->rights->accounting->chartofaccount) {
|
||||||
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
// Load variable for pagination
|
// Load variable for pagination
|
||||||
$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
|
$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
|
||||||
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
||||||
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
||||||
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
||||||
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1
|
if (empty($page) || $page == -1) {
|
||||||
|
$page = 0;
|
||||||
|
} // If $page is not defined, or '' or -1
|
||||||
$offset = $limit * $page;
|
$offset = $limit * $page;
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
if (!$sortfield) $sortfield = "label";
|
if (!$sortfield) {
|
||||||
if (!$sortorder) $sortorder = "ASC";
|
$sortfield = "label";
|
||||||
|
}
|
||||||
|
if (!$sortorder) {
|
||||||
|
$sortorder = "ASC";
|
||||||
|
}
|
||||||
|
|
||||||
$arrayfields = array(
|
$arrayfields = array(
|
||||||
'subaccount'=>array('label'=>$langs->trans("AccountNumber"), 'checked'=>1),
|
'subaccount'=>array('label'=>$langs->trans("AccountNumber"), 'checked'=>1),
|
||||||
@ -65,27 +75,35 @@ $arrayfields = array(
|
|||||||
'reconcilable'=>array('label'=>$langs->trans("Reconcilable"), 'checked'=>1)
|
'reconcilable'=>array('label'=>$langs->trans("Reconcilable"), 'checked'=>1)
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($conf->global->MAIN_FEATURES_LEVEL < 2) unset($arrayfields['reconcilable']);
|
if ($conf->global->MAIN_FEATURES_LEVEL < 2) {
|
||||||
|
unset($arrayfields['reconcilable']);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (GETPOST('cancel', 'alpha')) { $action = 'list'; $massaction = ''; }
|
if (GETPOST('cancel', 'alpha')) {
|
||||||
if (!GETPOST('confirmmassaction', 'alpha')) { $massaction = ''; }
|
$action = 'list'; $massaction = '';
|
||||||
|
}
|
||||||
|
if (!GETPOST('confirmmassaction', 'alpha')) {
|
||||||
|
$massaction = '';
|
||||||
|
}
|
||||||
|
|
||||||
$parameters = array();
|
$parameters = array();
|
||||||
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
||||||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
if ($reshook < 0) {
|
||||||
|
setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($reshook))
|
if (empty($reshook)) {
|
||||||
{
|
if (!empty($cancel)) {
|
||||||
if (!empty($cancel)) $action = '';
|
$action = '';
|
||||||
|
}
|
||||||
|
|
||||||
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
||||||
|
|
||||||
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // All test are required to be compatible with all browsers
|
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All test are required to be compatible with all browsers
|
||||||
{
|
|
||||||
$search_subaccount = "";
|
$search_subaccount = "";
|
||||||
$search_label = "";
|
$search_label = "";
|
||||||
$search_type = "";
|
$search_type = "";
|
||||||
@ -100,9 +118,10 @@ if (empty($reshook))
|
|||||||
|
|
||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
|
|
||||||
|
$help_url = '';
|
||||||
$title = $langs->trans('ChartOfIndividualAccountsOfSubsidiaryLedger');
|
$title = $langs->trans('ChartOfIndividualAccountsOfSubsidiaryLedger');
|
||||||
|
|
||||||
llxHeader('', $title);
|
llxHeader('', $title, $help_url);
|
||||||
|
|
||||||
// Customer
|
// Customer
|
||||||
$sql = "SELECT sa.rowid, sa.nom as label, sa.code_compta as subaccount, '1' as type, sa.entity";
|
$sql = "SELECT sa.rowid, sa.nom as label, sa.code_compta as subaccount, '1' as type, sa.entity";
|
||||||
@ -132,19 +151,24 @@ if (strlen(trim($search_subaccount))) {
|
|||||||
$search_subaccount_tmp_clean = $search_subaccount_tmp;
|
$search_subaccount_tmp_clean = $search_subaccount_tmp;
|
||||||
$search_subaccount_clean = $search_subaccount;
|
$search_subaccount_clean = $search_subaccount;
|
||||||
$startchar = '%';
|
$startchar = '%';
|
||||||
if (strpos($search_subaccount_tmp, '^') === 0)
|
if (strpos($search_subaccount_tmp, '^') === 0) {
|
||||||
{
|
|
||||||
$startchar = '';
|
$startchar = '';
|
||||||
$search_subaccount_tmp_clean = preg_replace('/^\^/', '', $search_subaccount_tmp);
|
$search_subaccount_tmp_clean = preg_replace('/^\^/', '', $search_subaccount_tmp);
|
||||||
$search_subaccount_clean = preg_replace('/^\^/', '', $search_subaccount);
|
$search_subaccount_clean = preg_replace('/^\^/', '', $search_subaccount);
|
||||||
}
|
}
|
||||||
$sql .= " AND (sa.code_compta LIKE '".$db->escape($startchar.$search_subaccount_tmp_clean)."'";
|
$sql .= " AND (sa.code_compta LIKE '".$db->escape($startchar.$search_subaccount_tmp_clean)."'";
|
||||||
$sql .= " OR sa.code_compta LIKE '".$db->escape($startchar.$search_subaccount_clean)."%')";
|
$sql .= " OR sa.code_compta LIKE '".$db->escape($startchar.$search_subaccount_clean)."%')";
|
||||||
} else $sql .= natural_search("sa.code_compta", $search_subaccount_tmp);
|
} else {
|
||||||
|
$sql .= natural_search("sa.code_compta", $search_subaccount_tmp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (strlen(trim($search_label))) $sql .= natural_search("sa.nom", $search_label);
|
if (strlen(trim($search_label))) {
|
||||||
if (!empty($search_type) && $search_type >= 0) $sql .= " HAVING type LIKE '".$db->escape($search_type)."'";
|
$sql .= natural_search("sa.nom", $search_label);
|
||||||
|
}
|
||||||
|
if (!empty($search_type) && $search_type >= 0) {
|
||||||
|
$sql .= " HAVING type LIKE '".$db->escape($search_type)."'";
|
||||||
|
}
|
||||||
|
|
||||||
// Supplier
|
// Supplier
|
||||||
$sql .= " UNION ";
|
$sql .= " UNION ";
|
||||||
@ -174,19 +198,24 @@ if (strlen(trim($search_subaccount))) {
|
|||||||
$search_subaccount_tmp_clean = $search_subaccount_tmp;
|
$search_subaccount_tmp_clean = $search_subaccount_tmp;
|
||||||
$search_subaccount_clean = $search_subaccount;
|
$search_subaccount_clean = $search_subaccount;
|
||||||
$startchar = '%';
|
$startchar = '%';
|
||||||
if (strpos($search_subaccount_tmp, '^') === 0)
|
if (strpos($search_subaccount_tmp, '^') === 0) {
|
||||||
{
|
|
||||||
$startchar = '';
|
$startchar = '';
|
||||||
$search_subaccount_tmp_clean = preg_replace('/^\^/', '', $search_subaccount_tmp);
|
$search_subaccount_tmp_clean = preg_replace('/^\^/', '', $search_subaccount_tmp);
|
||||||
$search_subaccount_clean = preg_replace('/^\^/', '', $search_subaccount);
|
$search_subaccount_clean = preg_replace('/^\^/', '', $search_subaccount);
|
||||||
}
|
}
|
||||||
$sql .= " AND (sa.code_compta_fournisseur LIKE '".$db->escape($startchar.$search_subaccount_tmp_clean)."'";
|
$sql .= " AND (sa.code_compta_fournisseur LIKE '".$db->escape($startchar.$search_subaccount_tmp_clean)."'";
|
||||||
$sql .= " OR sa.code_compta_fournisseur LIKE '".$db->escape($startchar.$search_subaccount_clean)."%')";
|
$sql .= " OR sa.code_compta_fournisseur LIKE '".$db->escape($startchar.$search_subaccount_clean)."%')";
|
||||||
} else $sql .= natural_search("sa.code_compta_fournisseur", $search_subaccount_tmp);
|
} else {
|
||||||
|
$sql .= natural_search("sa.code_compta_fournisseur", $search_subaccount_tmp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (strlen(trim($search_label))) $sql .= natural_search("sa.nom", $search_label);
|
if (strlen(trim($search_label))) {
|
||||||
if (!empty($search_type) && $search_type >= 0) $sql .= " HAVING type LIKE '".$db->escape($search_type)."'";
|
$sql .= natural_search("sa.nom", $search_label);
|
||||||
|
}
|
||||||
|
if (!empty($search_type) && $search_type >= 0) {
|
||||||
|
$sql .= " HAVING type LIKE '".$db->escape($search_type)."'";
|
||||||
|
}
|
||||||
|
|
||||||
// User
|
// User
|
||||||
$sql .= " UNION ";
|
$sql .= " UNION ";
|
||||||
@ -216,30 +245,33 @@ if (strlen(trim($search_subaccount))) {
|
|||||||
$search_subaccount_tmp_clean = $search_subaccount_tmp;
|
$search_subaccount_tmp_clean = $search_subaccount_tmp;
|
||||||
$search_subaccount_clean = $search_subaccount;
|
$search_subaccount_clean = $search_subaccount;
|
||||||
$startchar = '%';
|
$startchar = '%';
|
||||||
if (strpos($search_subaccount_tmp, '^') === 0)
|
if (strpos($search_subaccount_tmp, '^') === 0) {
|
||||||
{
|
|
||||||
$startchar = '';
|
$startchar = '';
|
||||||
$search_subaccount_tmp_clean = preg_replace('/^\^/', '', $search_subaccount_tmp);
|
$search_subaccount_tmp_clean = preg_replace('/^\^/', '', $search_subaccount_tmp);
|
||||||
$search_subaccount_clean = preg_replace('/^\^/', '', $search_subaccount);
|
$search_subaccount_clean = preg_replace('/^\^/', '', $search_subaccount);
|
||||||
}
|
}
|
||||||
$sql .= " AND (u.accountancy_code LIKE '".$db->escape($startchar.$search_subaccount_tmp_clean)."'";
|
$sql .= " AND (u.accountancy_code LIKE '".$db->escape($startchar.$search_subaccount_tmp_clean)."'";
|
||||||
$sql .= " OR u.accountancy_code LIKE '".$db->escape($startchar.$search_subaccount_clean)."%')";
|
$sql .= " OR u.accountancy_code LIKE '".$db->escape($startchar.$search_subaccount_clean)."%')";
|
||||||
} else $sql .= natural_search("u.accountancy_code", $search_subaccount_tmp);
|
} else {
|
||||||
|
$sql .= natural_search("u.accountancy_code", $search_subaccount_tmp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (strlen(trim($search_label))) $sql .= natural_search("u.lastname", $search_label);
|
if (strlen(trim($search_label))) {
|
||||||
if (!empty($search_type) && $search_type >= 0) $sql .= " HAVING type LIKE '".$db->escape($search_type)."'";
|
$sql .= natural_search("u.lastname", $search_label);
|
||||||
|
}
|
||||||
|
if (!empty($search_type) && $search_type >= 0) {
|
||||||
|
$sql .= " HAVING type LIKE '".$db->escape($search_type)."'";
|
||||||
|
}
|
||||||
|
|
||||||
$sql .= $db->order($sortfield, $sortorder);
|
$sql .= $db->order($sortfield, $sortorder);
|
||||||
|
|
||||||
// Count total nb of records
|
// Count total nb of records
|
||||||
$nbtotalofrecords = '';
|
$nbtotalofrecords = '';
|
||||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||||
{
|
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
$nbtotalofrecords = $db->num_rows($resql);
|
$nbtotalofrecords = $db->num_rows($resql);
|
||||||
if (($page * $limit) > $nbtotalofrecords) // if total resultset is smaller then paging size (filtering), goto and load page 0
|
if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0
|
||||||
{
|
|
||||||
$page = 0;
|
$page = 0;
|
||||||
$offset = 0;
|
$offset = 0;
|
||||||
}
|
}
|
||||||
@ -250,19 +282,30 @@ $sql .= $db->plimit($limit + 1, $offset);
|
|||||||
dol_syslog('accountancy/admin/subaccount.php:: $sql='.$sql);
|
dol_syslog('accountancy/admin/subaccount.php:: $sql='.$sql);
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
|
|
||||||
if ($resql)
|
if ($resql) {
|
||||||
{
|
|
||||||
$num = $db->num_rows($resql);
|
$num = $db->num_rows($resql);
|
||||||
|
|
||||||
$param = '';
|
$param = '';
|
||||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
$param .= '&contextpage='.urlencode($contextpage);
|
||||||
if ($search_subaccount) $param .= '&search_subaccount='.urlencode($search_subaccount);
|
}
|
||||||
if ($search_label) $param .= '&search_label='.urlencode($search_label);
|
if ($limit > 0 && $limit != $conf->liste_limit) {
|
||||||
if ($optioncss != '') $param .= '&optioncss='.urlencode($optioncss);
|
$param .= '&limit='.urlencode($limit);
|
||||||
|
}
|
||||||
|
if ($search_subaccount) {
|
||||||
|
$param .= '&search_subaccount='.urlencode($search_subaccount);
|
||||||
|
}
|
||||||
|
if ($search_label) {
|
||||||
|
$param .= '&search_label='.urlencode($search_label);
|
||||||
|
}
|
||||||
|
if ($optioncss != '') {
|
||||||
|
$param .= '&optioncss='.urlencode($optioncss);
|
||||||
|
}
|
||||||
|
|
||||||
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
|
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') {
|
||||||
|
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
}
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
||||||
print '<input type="hidden" name="action" value="list">';
|
print '<input type="hidden" name="action" value="list">';
|
||||||
@ -272,7 +315,7 @@ if ($resql)
|
|||||||
|
|
||||||
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_accountancy', 0, '', '', $limit, 0, 0, 1);
|
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_accountancy', 0, '', '', $limit, 0, 0, 1);
|
||||||
|
|
||||||
print '<div class="warning">'.$langs->trans("WarningCreateSubAccounts").'</div>';
|
print '<div class="info">'.$langs->trans("WarningCreateSubAccounts").'</div>';
|
||||||
|
|
||||||
$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage;
|
$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage;
|
||||||
$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
|
$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
|
||||||
@ -285,10 +328,20 @@ if ($resql)
|
|||||||
|
|
||||||
// Line for search fields
|
// Line for search fields
|
||||||
print '<tr class="liste_titre_filter">';
|
print '<tr class="liste_titre_filter">';
|
||||||
if (!empty($arrayfields['subaccount']['checked'])) print '<td class="liste_titre"><input type="text" class="flat" size="10" name="search_subaccount" value="'.$search_subaccount.'"></td>';
|
if (!empty($arrayfields['subaccount']['checked'])) {
|
||||||
if (!empty($arrayfields['label']['checked'])) 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="10" name="search_subaccount" value="'.$search_subaccount.'"></td>';
|
||||||
if (!empty($arrayfields['type']['checked'])) print '<td class="liste_titre center">'.$form->selectarray('search_type', array('1'=>$langs->trans('Customer'), '2'=>$langs->trans('Supplier'), '3'=>$langs->trans('Employee')), $search_type, 1).'</td>';
|
}
|
||||||
if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { if (!empty($arrayfields['reconcilable']['checked'])) print '<td class="liste_titre"> </td>'; }
|
if (!empty($arrayfields['label']['checked'])) {
|
||||||
|
print '<td class="liste_titre"><input type="text" class="flat" size="20" name="search_label" value="'.$search_label.'"></td>';
|
||||||
|
}
|
||||||
|
if (!empty($arrayfields['type']['checked'])) {
|
||||||
|
print '<td class="liste_titre center">'.$form->selectarray('search_type', array('1'=>$langs->trans('Customer'), '2'=>$langs->trans('Supplier'), '3'=>$langs->trans('Employee')), $search_type, 1).'</td>';
|
||||||
|
}
|
||||||
|
if ($conf->global->MAIN_FEATURES_LEVEL >= 2) {
|
||||||
|
if (!empty($arrayfields['reconcilable']['checked'])) {
|
||||||
|
print '<td class="liste_titre"> </td>';
|
||||||
|
}
|
||||||
|
}
|
||||||
print '<td class="liste_titre maxwidthsearch">';
|
print '<td class="liste_titre maxwidthsearch">';
|
||||||
$searchpicto = $form->showFilterAndCheckAddButtons($massactionbutton ? 1 : 0, 'checkforselect', 1);
|
$searchpicto = $form->showFilterAndCheckAddButtons($massactionbutton ? 1 : 0, 'checkforselect', 1);
|
||||||
print $searchpicto;
|
print $searchpicto;
|
||||||
@ -296,62 +349,69 @@ if ($resql)
|
|||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
if (!empty($arrayfields['subaccount']['checked'])) print_liste_field_titre($arrayfields['subaccount']['label'], $_SERVER["PHP_SELF"], "subaccount", "", $param, '', $sortfield, $sortorder);
|
if (!empty($arrayfields['subaccount']['checked'])) {
|
||||||
if (!empty($arrayfields['label']['checked'])) print_liste_field_titre($arrayfields['label']['label'], $_SERVER["PHP_SELF"], "label", "", $param, '', $sortfield, $sortorder);
|
print_liste_field_titre($arrayfields['subaccount']['label'], $_SERVER["PHP_SELF"], "subaccount", "", $param, '', $sortfield, $sortorder);
|
||||||
if (!empty($arrayfields['type']['checked'])) print_liste_field_titre($arrayfields['type']['label'], $_SERVER["PHP_SELF"], "type", "", $param, '', $sortfield, $sortorder, 'center ');
|
}
|
||||||
if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { if (!empty($arrayfields['reconcilable']['checked'])) print_liste_field_titre($arrayfields['reconcilable']['label'], $_SERVER["PHP_SELF"], 'reconcilable', '', $param, '', $sortfield, $sortorder, 'center '); }
|
if (!empty($arrayfields['label']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['label']['label'], $_SERVER["PHP_SELF"], "label", "", $param, '', $sortfield, $sortorder);
|
||||||
|
}
|
||||||
|
if (!empty($arrayfields['type']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['type']['label'], $_SERVER["PHP_SELF"], "type", "", $param, '', $sortfield, $sortorder, 'center ');
|
||||||
|
}
|
||||||
|
if ($conf->global->MAIN_FEATURES_LEVEL >= 2) {
|
||||||
|
if (!empty($arrayfields['reconcilable']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['reconcilable']['label'], $_SERVER["PHP_SELF"], 'reconcilable', '', $param, '', $sortfield, $sortorder, 'center ');
|
||||||
|
}
|
||||||
|
}
|
||||||
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ');
|
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ');
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
$totalarray = array();
|
$totalarray = array();
|
||||||
$i = 0;
|
$i = 0;
|
||||||
while ($i < min($num, $limit))
|
while ($i < min($num, $limit)) {
|
||||||
{
|
|
||||||
$obj = $db->fetch_object($resql);
|
$obj = $db->fetch_object($resql);
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
// Account number
|
// Account number
|
||||||
if (!empty($arrayfields['subaccount']['checked']))
|
if (!empty($arrayfields['subaccount']['checked'])) {
|
||||||
{
|
|
||||||
print "<td>";
|
print "<td>";
|
||||||
print length_accounta($obj->subaccount);
|
print length_accounta($obj->subaccount);
|
||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Subaccount label
|
// Subaccount label
|
||||||
if (!empty($arrayfields['label']['checked']))
|
if (!empty($arrayfields['label']['checked'])) {
|
||||||
{
|
|
||||||
print "<td>";
|
print "<td>";
|
||||||
print $obj->label;
|
print $obj->label;
|
||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Type
|
// Type
|
||||||
if (!empty($arrayfields['type']['checked']))
|
if (!empty($arrayfields['type']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
$s = '';
|
$s = '';
|
||||||
// Customer
|
// Customer
|
||||||
if ($obj->type == 1)
|
if ($obj->type == 1) {
|
||||||
{
|
|
||||||
$s .= '<a class="customer-back" style="padding-left: 6px; padding-right: 6px" title="'.$langs->trans("Customer").'" href="'.DOL_URL_ROOT.'/comm/card.php?socid='.$obj->rowid.'">'.$langs->trans("Customer").'</a>';
|
$s .= '<a class="customer-back" style="padding-left: 6px; padding-right: 6px" title="'.$langs->trans("Customer").'" href="'.DOL_URL_ROOT.'/comm/card.php?socid='.$obj->rowid.'">'.$langs->trans("Customer").'</a>';
|
||||||
}
|
} elseif ($obj->type == 2) {
|
||||||
// Supplier
|
// Supplier
|
||||||
elseif ($obj->type == 2)
|
|
||||||
{
|
|
||||||
$s .= '<a class="vendor-back" style="padding-left: 6px; padding-right: 6px" title="'.$langs->trans("Supplier").'" href="'.DOL_URL_ROOT.'/fourn/card.php?socid='.$obj->rowid.'">'.$langs->trans("Supplier").'</a>';
|
$s .= '<a class="vendor-back" style="padding-left: 6px; padding-right: 6px" title="'.$langs->trans("Supplier").'" href="'.DOL_URL_ROOT.'/fourn/card.php?socid='.$obj->rowid.'">'.$langs->trans("Supplier").'</a>';
|
||||||
}
|
} elseif ($obj->type == 3) {
|
||||||
// User
|
// User
|
||||||
elseif ($obj->type == 3)
|
|
||||||
{
|
|
||||||
$s .= '<a class="user-back" style="padding-left: 6px; padding-right: 6px" title="'.$langs->trans("Employee").'" href="'.DOL_URL_ROOT.'/user/card.php?id='.$obj->id.'">'.$langs->trans("Employee").'</a>';
|
$s .= '<a class="user-back" style="padding-left: 6px; padding-right: 6px" title="'.$langs->trans("Employee").'" href="'.DOL_URL_ROOT.'/user/card.php?id='.$obj->id.'">'.$langs->trans("Employee").'</a>';
|
||||||
}
|
}
|
||||||
print $s;
|
print $s;
|
||||||
print '</td>';
|
print '</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($conf->global->MAIN_FEATURES_LEVEL >= 2) {
|
if ($conf->global->MAIN_FEATURES_LEVEL >= 2) {
|
||||||
@ -378,23 +438,20 @@ if ($resql)
|
|||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
$e = '';
|
$e = '';
|
||||||
// Customer
|
// Customer
|
||||||
if ($obj->type == 1)
|
if ($obj->type == 1) {
|
||||||
{
|
|
||||||
$e .= '<a class="editfielda" title="'.$langs->trans("Customer").'" href="'.DOL_URL_ROOT.'/societe/card.php?action=edit&socid='.$obj->rowid.'&backtopage='.urlencode($_SERVER["PHP_SELF"]).'">'.img_edit().'</a>';
|
$e .= '<a class="editfielda" title="'.$langs->trans("Customer").'" href="'.DOL_URL_ROOT.'/societe/card.php?action=edit&socid='.$obj->rowid.'&backtopage='.urlencode($_SERVER["PHP_SELF"]).'">'.img_edit().'</a>';
|
||||||
}
|
} elseif ($obj->type == 2) {
|
||||||
// Supplier
|
// Supplier
|
||||||
elseif ($obj->type == 2)
|
|
||||||
{
|
|
||||||
$e .= '<a class="editfielda" title="'.$langs->trans("Supplier").'" href="'.DOL_URL_ROOT.'/societe/card.php?action=edit&socid='.$obj->rowid.'&backtopage='.urlencode($_SERVER["PHP_SELF"]).'">'.img_edit().'</a>';
|
$e .= '<a class="editfielda" title="'.$langs->trans("Supplier").'" href="'.DOL_URL_ROOT.'/societe/card.php?action=edit&socid='.$obj->rowid.'&backtopage='.urlencode($_SERVER["PHP_SELF"]).'">'.img_edit().'</a>';
|
||||||
}
|
} elseif ($obj->type == 3) {
|
||||||
// User
|
// User
|
||||||
elseif ($obj->type == 3)
|
|
||||||
{
|
|
||||||
$e .= '<a class="editfielda" title="'.$langs->trans("Employee").'" href="'.DOL_URL_ROOT.'/user/card.php?action=edit&id='.$obj->rowid.'&backtopage='.urlencode($_SERVER["PHP_SELF"]).'">'.img_edit().'</a>';
|
$e .= '<a class="editfielda" title="'.$langs->trans("Employee").'" href="'.DOL_URL_ROOT.'/user/card.php?action=edit&id='.$obj->rowid.'&backtopage='.urlencode($_SERVER["PHP_SELF"]).'">'.img_edit().'</a>';
|
||||||
}
|
}
|
||||||
print $e;
|
print $e;
|
||||||
print '</td>'."\n";
|
print '</td>'."\n";
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
|
|
||||||
print '</tr>'."\n";
|
print '</tr>'."\n";
|
||||||
$i++;
|
$i++;
|
||||||
|
|||||||
@ -48,7 +48,9 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
|
|||||||
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
||||||
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
||||||
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
||||||
if (empty($page) || $page == -1 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha') || (empty($toselect) && $massaction === '0')) { $page = 0; } // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action
|
if (empty($page) || $page == -1 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha') || (empty($toselect) && $massaction === '0')) {
|
||||||
|
$page = 0;
|
||||||
|
} // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action
|
||||||
$offset = $limit * $page;
|
$offset = $limit * $page;
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
@ -74,8 +76,7 @@ $formaccounting = new FormAccounting($db);
|
|||||||
$formother = new FormOther($db);
|
$formother = new FormOther($db);
|
||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
|
|
||||||
if (empty($search_date_start) && !GETPOSTISSET('formfilteraction'))
|
if (empty($search_date_start) && !GETPOSTISSET('formfilteraction')) {
|
||||||
{
|
|
||||||
$sql = "SELECT date_start, date_end from ".MAIN_DB_PREFIX."accounting_fiscalyear ";
|
$sql = "SELECT date_start, date_end from ".MAIN_DB_PREFIX."accounting_fiscalyear ";
|
||||||
$sql .= " WHERE date_start < '".$db->idate(dol_now())."' AND date_end > '".$db->idate(dol_now())."'";
|
$sql .= " WHERE date_start < '".$db->idate(dol_now())."' AND date_end > '".$db->idate(dol_now())."'";
|
||||||
$sql .= $db->plimit(1);
|
$sql .= $db->plimit(1);
|
||||||
@ -87,11 +88,12 @@ if (empty($search_date_start) && !GETPOSTISSET('formfilteraction'))
|
|||||||
} else {
|
} else {
|
||||||
$month_start = ($conf->global->SOCIETE_FISCAL_MONTH_START ? ($conf->global->SOCIETE_FISCAL_MONTH_START) : 1);
|
$month_start = ($conf->global->SOCIETE_FISCAL_MONTH_START ? ($conf->global->SOCIETE_FISCAL_MONTH_START) : 1);
|
||||||
$year_start = dol_print_date(dol_now(), '%Y');
|
$year_start = dol_print_date(dol_now(), '%Y');
|
||||||
if (dol_print_date(dol_now(), '%m') < $month_start) $year_start--; // If current month is lower that starting fiscal month, we start last year
|
if (dol_print_date(dol_now(), '%m') < $month_start) {
|
||||||
|
$year_start--; // If current month is lower that starting fiscal month, we start last year
|
||||||
|
}
|
||||||
$year_end = $year_start + 1;
|
$year_end = $year_start + 1;
|
||||||
$month_end = $month_start - 1;
|
$month_end = $month_start - 1;
|
||||||
if ($month_end < 1)
|
if ($month_end < 1) {
|
||||||
{
|
|
||||||
$month_end = 12;
|
$month_end = 12;
|
||||||
$year_end--;
|
$year_end--;
|
||||||
}
|
}
|
||||||
@ -99,13 +101,21 @@ if (empty($search_date_start) && !GETPOSTISSET('formfilteraction'))
|
|||||||
$search_date_end = dol_get_last_day($year_end, $month_end);
|
$search_date_end = dol_get_last_day($year_end, $month_end);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($sortorder == "") $sortorder = "ASC";
|
if ($sortorder == "") {
|
||||||
if ($sortfield == "") $sortfield = "t.numero_compte";
|
$sortorder = "ASC";
|
||||||
|
}
|
||||||
|
if ($sortfield == "") {
|
||||||
|
$sortfield = "t.numero_compte";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$param = '';
|
$param = '';
|
||||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
$param .= '&contextpage='.urlencode($contextpage);
|
||||||
|
}
|
||||||
|
if ($limit > 0 && $limit != $conf->liste_limit) {
|
||||||
|
$param .= '&limit='.urlencode($limit);
|
||||||
|
}
|
||||||
|
|
||||||
$filter = array();
|
$filter = array();
|
||||||
if (!empty($search_date_start)) {
|
if (!empty($search_date_start)) {
|
||||||
@ -129,8 +139,7 @@ if (!empty($search_accountancy_code_end)) {
|
|||||||
* Action
|
* Action
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // All tests are required to be compatible with all browsers
|
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All tests are required to be compatible with all browsers
|
||||||
{
|
|
||||||
$show_subgroup = '';
|
$show_subgroup = '';
|
||||||
$search_date_start = '';
|
$search_date_start = '';
|
||||||
$search_date_end = '';
|
$search_date_end = '';
|
||||||
@ -144,8 +153,7 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x'
|
|||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($action == 'export_csv')
|
if ($action == 'export_csv') {
|
||||||
{
|
|
||||||
$sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV;
|
$sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV;
|
||||||
|
|
||||||
$filename = 'balance';
|
$filename = 'balance';
|
||||||
@ -157,8 +165,7 @@ if ($action == 'export_csv')
|
|||||||
setEventMessages($object->error, $object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($object->lines as $line)
|
foreach ($object->lines as $line) {
|
||||||
{
|
|
||||||
print length_accountg($line->numero_compte).$sep;
|
print length_accountg($line->numero_compte).$sep;
|
||||||
print $object->get_compte_desc($line->numero_compte).$sep;
|
print $object->get_compte_desc($line->numero_compte).$sep;
|
||||||
print price($line->debit).$sep;
|
print price($line->debit).$sep;
|
||||||
@ -176,12 +183,10 @@ $title_page = $langs->trans("AccountBalance");
|
|||||||
llxHeader('', $title_page);
|
llxHeader('', $title_page);
|
||||||
|
|
||||||
|
|
||||||
if ($action != 'export_csv')
|
if ($action != 'export_csv') {
|
||||||
{
|
|
||||||
// List
|
// List
|
||||||
$nbtotalofrecords = '';
|
$nbtotalofrecords = '';
|
||||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||||
{
|
|
||||||
$nbtotalofrecords = $object->fetchAllBalance($sortorder, $sortfield, 0, 0, $filter);
|
$nbtotalofrecords = $object->fetchAllBalance($sortorder, $sortfield, 0, 0, $filter);
|
||||||
if ($nbtotalofrecords < 0) {
|
if ($nbtotalofrecords < 0) {
|
||||||
setEventMessages($object->error, $object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
@ -194,7 +199,9 @@ if ($action != 'export_csv')
|
|||||||
}
|
}
|
||||||
|
|
||||||
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
|
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') {
|
||||||
|
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
}
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
||||||
print '<input type="hidden" name="action" id="action" value="list">';
|
print '<input type="hidden" name="action" id="action" value="list">';
|
||||||
@ -263,7 +270,9 @@ if ($action != 'export_csv')
|
|||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print_liste_field_titre("AccountAccounting", $_SERVER['PHP_SELF'], "t.numero_compte", "", $param, "", $sortfield, $sortorder);
|
print_liste_field_titre("AccountAccounting", $_SERVER['PHP_SELF'], "t.numero_compte", "", $param, "", $sortfield, $sortorder);
|
||||||
if (!empty($conf->global->ACCOUNTANCY_SHOW_OPENING_BALANCE)) print_liste_field_titre("OpeningBalance", $_SERVER['PHP_SELF'], "", $param, "", 'class="right"', $sortfield, $sortorder);
|
if (!empty($conf->global->ACCOUNTANCY_SHOW_OPENING_BALANCE)) {
|
||||||
|
print_liste_field_titre("OpeningBalance", $_SERVER['PHP_SELF'], "", $param, "", 'class="right"', $sortfield, $sortorder);
|
||||||
|
}
|
||||||
print_liste_field_titre("Debit", $_SERVER['PHP_SELF'], "t.debit", "", $param, 'class="right"', $sortfield, $sortorder);
|
print_liste_field_titre("Debit", $_SERVER['PHP_SELF'], "t.debit", "", $param, 'class="right"', $sortfield, $sortorder);
|
||||||
print_liste_field_titre("Credit", $_SERVER['PHP_SELF'], "t.credit", "", $param, 'class="right"', $sortfield, $sortorder);
|
print_liste_field_titre("Credit", $_SERVER['PHP_SELF'], "t.credit", "", $param, 'class="right"', $sortfield, $sortorder);
|
||||||
print_liste_field_titre("Balance", $_SERVER["PHP_SELF"], "", $param, "", 'class="right"', $sortfield, $sortorder);
|
print_liste_field_titre("Balance", $_SERVER["PHP_SELF"], "", $param, "", 'class="right"', $sortfield, $sortorder);
|
||||||
@ -298,8 +307,7 @@ if ($action != 'export_csv')
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($object->lines as $line)
|
foreach ($object->lines as $line) {
|
||||||
{
|
|
||||||
// reset before the fetch (in case of the fetch fails)
|
// reset before the fetch (in case of the fetch fails)
|
||||||
$accountingaccountstatic->id = 0;
|
$accountingaccountstatic->id = 0;
|
||||||
$accountingaccountstatic->account_number = '';
|
$accountingaccountstatic->account_number = '';
|
||||||
@ -336,15 +344,16 @@ if ($action != 'export_csv')
|
|||||||
//$link = '<a href="' . DOL_URL_ROOT . '/accountancy/admin/card.php?action=create&token=' . newToken() . '&accountingaccount=' . length_accountg($line->numero_compte) . '">' . img_edit_add() . '</a>';
|
//$link = '<a href="' . DOL_URL_ROOT . '/accountancy/admin/card.php?action=create&token=' . newToken() . '&accountingaccount=' . length_accountg($line->numero_compte) . '">' . img_edit_add() . '</a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($show_subgroup))
|
if (!empty($show_subgroup)) {
|
||||||
{
|
|
||||||
// Show accounting account
|
// Show accounting account
|
||||||
if (empty($displayed_account) || $root_account_number != $displayed_account) {
|
if (empty($displayed_account) || $root_account_number != $displayed_account) {
|
||||||
// Show subtotal per accounting account
|
// Show subtotal per accounting account
|
||||||
if ($displayed_account != "") {
|
if ($displayed_account != "") {
|
||||||
print '<tr class="liste_total">';
|
print '<tr class="liste_total">';
|
||||||
print '<td class="right">'.$langs->trans("SubTotal").':</td>';
|
print '<td class="right">'.$langs->trans("SubTotal").':</td>';
|
||||||
if (!empty($conf->global->ACCOUNTANCY_SHOW_OPENING_BALANCE)) print '<td class="nowrap right">'.price($sous_total_opening_balance).'</td>';
|
if (!empty($conf->global->ACCOUNTANCY_SHOW_OPENING_BALANCE)) {
|
||||||
|
print '<td class="nowrap right">'.price($sous_total_opening_balance).'</td>';
|
||||||
|
}
|
||||||
print '<td class="nowrap right">'.price($sous_total_debit).'</td>';
|
print '<td class="nowrap right">'.price($sous_total_debit).'</td>';
|
||||||
print '<td class="nowrap right">'.price($sous_total_credit).'</td>';
|
print '<td class="nowrap right">'.price($sous_total_credit).'</td>';
|
||||||
if (!empty($conf->global->ACCOUNTANCY_SHOW_OPENING_BALANCE)) {
|
if (!empty($conf->global->ACCOUNTANCY_SHOW_OPENING_BALANCE)) {
|
||||||
@ -370,7 +379,9 @@ if ($action != 'export_csv')
|
|||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$accounting_account.'</td>';
|
print '<td>'.$accounting_account.'</td>';
|
||||||
if (!empty($conf->global->ACCOUNTANCY_SHOW_OPENING_BALANCE)) print '<td class="nowraponall right">'.price($opening_balance).'</td>';
|
if (!empty($conf->global->ACCOUNTANCY_SHOW_OPENING_BALANCE)) {
|
||||||
|
print '<td class="nowraponall right">'.price($opening_balance).'</td>';
|
||||||
|
}
|
||||||
|
|
||||||
$urlzoom = '';
|
$urlzoom = '';
|
||||||
if ($line->numero_compte) {
|
if ($line->numero_compte) {
|
||||||
@ -402,10 +413,11 @@ if ($action != 'export_csv')
|
|||||||
$sous_total_opening_balance += $opening_balance;
|
$sous_total_opening_balance += $opening_balance;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($show_subgroup))
|
if (!empty($show_subgroup)) {
|
||||||
{
|
|
||||||
print '<tr class="liste_total"><td class="right">'.$langs->trans("SubTotal").':</td>';
|
print '<tr class="liste_total"><td class="right">'.$langs->trans("SubTotal").':</td>';
|
||||||
if (!empty($conf->global->ACCOUNTANCY_SHOW_OPENING_BALANCE)) print '<td class="nowrap right">'.price($sous_total_opening_balance).'</td>';
|
if (!empty($conf->global->ACCOUNTANCY_SHOW_OPENING_BALANCE)) {
|
||||||
|
print '<td class="nowrap right">'.price($sous_total_opening_balance).'</td>';
|
||||||
|
}
|
||||||
print '<td class="nowrap right">'.price($sous_total_debit).'</td>';
|
print '<td class="nowrap right">'.price($sous_total_debit).'</td>';
|
||||||
print '<td class="nowrap right">'.price($sous_total_credit).'</td>';
|
print '<td class="nowrap right">'.price($sous_total_credit).'</td>';
|
||||||
if (!empty($conf->global->ACCOUNTANCY_SHOW_OPENING_BALANCE)) {
|
if (!empty($conf->global->ACCOUNTANCY_SHOW_OPENING_BALANCE)) {
|
||||||
@ -418,7 +430,9 @@ if ($action != 'export_csv')
|
|||||||
}
|
}
|
||||||
|
|
||||||
print '<tr class="liste_total"><td class="right">'.$langs->trans("AccountBalance").':</td>';
|
print '<tr class="liste_total"><td class="right">'.$langs->trans("AccountBalance").':</td>';
|
||||||
if (!empty($conf->global->ACCOUNTANCY_SHOW_OPENING_BALANCE)) print '<td class="nowrap right">'.price($total_opening_balance).'</td>';
|
if (!empty($conf->global->ACCOUNTANCY_SHOW_OPENING_BALANCE)) {
|
||||||
|
print '<td class="nowrap right">'.price($total_opening_balance).'</td>';
|
||||||
|
}
|
||||||
print '<td class="nowrap right">'.price($total_debit).'</td>';
|
print '<td class="nowrap right">'.price($total_debit).'</td>';
|
||||||
print '<td class="nowrap right">'.price($total_credit).'</td>';
|
print '<td class="nowrap right">'.price($total_credit).'</td>';
|
||||||
if (!empty($conf->global->ACCOUNTANCY_SHOW_OPENING_BALANCE)) {
|
if (!empty($conf->global->ACCOUNTANCY_SHOW_OPENING_BALANCE)) {
|
||||||
|
|||||||
@ -1,136 +0,0 @@
|
|||||||
<?php
|
|
||||||
/* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
|
|
||||||
* Copyright (C) 2013-2014 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
|
||||||
* Copyright (C) 2014 Florian Henry <florian.henry@open-concept.pro>
|
|
||||||
* 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 <https://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \file htdocs/accountancy/bookkeeping/balancebymonth.php
|
|
||||||
* \ingroup Accountancy (Double entries)
|
|
||||||
* \brief Balance by month
|
|
||||||
*/
|
|
||||||
require '../../main.inc.php';
|
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
|
|
||||||
|
|
||||||
// Load translation files required by the page
|
|
||||||
$langs->loadLangs(array("bills", "compta", "accountancy", "other"));
|
|
||||||
|
|
||||||
// Filter
|
|
||||||
$year = GETPOST("year", 'int');
|
|
||||||
if ($year == 0) {
|
|
||||||
$year_current = strftime("%Y", time());
|
|
||||||
$year_start = $year_current;
|
|
||||||
} else {
|
|
||||||
$year_current = $year;
|
|
||||||
$year_start = $year;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* View
|
|
||||||
*/
|
|
||||||
|
|
||||||
llxHeader('', $langs->trans("Bookkeeping"));
|
|
||||||
|
|
||||||
$textprevyear = '<a href="'.$_SERVER["PHP_SELF"].'?year='.($year_current - 1).'">'.img_previous().'</a>';
|
|
||||||
$textnextyear = ' <a href="'.$_SERVER["PHP_SELF"].'?year='.($year_current + 1).'">'.img_next().'</a>';
|
|
||||||
|
|
||||||
print load_fiche_titre($langs->trans("AccountBalanceByMonth").' '.$textprevyear.' '.$langs->trans("Year").' '.$year_start.' '.$textnextyear);
|
|
||||||
|
|
||||||
$sql = "SELECT count(*) FROM ".MAIN_DB_PREFIX."facturedet as fd";
|
|
||||||
$sql .= " , ".MAIN_DB_PREFIX."facture as f";
|
|
||||||
$sql .= " WHERE fd.fk_code_ventilation = 0";
|
|
||||||
$sql .= " AND f.rowid = fd.fk_facture AND f.fk_statut = 1;";
|
|
||||||
|
|
||||||
dol_syslog('accountancy/bookkeeping/balancebymonth.php:: $sql='.$sql);
|
|
||||||
$result = $db->query($sql);
|
|
||||||
if ($result) {
|
|
||||||
$row = $db->fetch_row($result);
|
|
||||||
$nbfac = $row[0];
|
|
||||||
|
|
||||||
$db->free($result);
|
|
||||||
}
|
|
||||||
|
|
||||||
$y = $year_current;
|
|
||||||
|
|
||||||
print '<table class="noborder centpercent">';
|
|
||||||
print '<tr class="liste_titre">';
|
|
||||||
print '<td width=150>'.$langs->trans("Label").'</td>';
|
|
||||||
for ($i = 1; $i <= 12; $i++)
|
|
||||||
{
|
|
||||||
print '<td class="right">'.$langs->trans("MonthShort".sprintf("%02s", $i)).'</td>';
|
|
||||||
}
|
|
||||||
print '<td class="center"><strong>'.$langs->trans("Total").'</strong></td>';
|
|
||||||
print '</tr>';
|
|
||||||
|
|
||||||
$sql = "SELECT bk.numero_compte AS 'compte',";
|
|
||||||
$sql .= " ROUND(SUM(IF(MONTH(bk.doc_date)=1,bk.montant,0)),2) AS 'Janvier',";
|
|
||||||
$sql .= " ROUND(SUM(IF(MONTH(bk.doc_date)=2,bk.montant,0)),2) AS 'Fevrier',";
|
|
||||||
$sql .= " ROUND(SUM(IF(MONTH(bk.doc_date)=3,bk.montant,0)),2) AS 'Mars',";
|
|
||||||
$sql .= " ROUND(SUM(IF(MONTH(bk.doc_date)=4,bk.montant,0)),2) AS 'Avril',";
|
|
||||||
$sql .= " ROUND(SUM(IF(MONTH(bk.doc_date)=5,bk.montant,0)),2) AS 'Mai',";
|
|
||||||
$sql .= " ROUND(SUM(IF(MONTH(bk.doc_date)=6,bk.montant,0)),2) AS 'Juin',";
|
|
||||||
$sql .= " ROUND(SUM(IF(MONTH(bk.doc_date)=7,bk.montant,0)),2) AS 'Juillet',";
|
|
||||||
$sql .= " ROUND(SUM(IF(MONTH(bk.doc_date)=8,bk.montant,0)),2) AS 'Aout',";
|
|
||||||
$sql .= " ROUND(SUM(IF(MONTH(bk.doc_date)=9,bk.montant,0)),2) AS 'Septembre',";
|
|
||||||
$sql .= " ROUND(SUM(IF(MONTH(bk.doc_date)=10,bk.montant,0)),2) AS 'Octobre',";
|
|
||||||
$sql .= " ROUND(SUM(IF(MONTH(bk.doc_date)=11,bk.montant,0)),2) AS 'Novembre',";
|
|
||||||
$sql .= " ROUND(SUM(IF(MONTH(bk.doc_date)=12,bk.montant,0)),2) AS 'Decembre',";
|
|
||||||
$sql .= " ROUND(SUM(bk.montant),2) as 'Total'";
|
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as bk";
|
|
||||||
$sql .= " WHERE bk.doc_date >= '".$db->idate(dol_get_first_day($y, 1, false))."'";
|
|
||||||
$sql .= " AND bk.doc_date <= '".$db->idate(dol_get_last_day($y, 12, false))."'";
|
|
||||||
$sql .= " GROUP BY bk.numero_compte";
|
|
||||||
|
|
||||||
$resql = $db->query($sql);
|
|
||||||
if ($resql) {
|
|
||||||
$i = 0;
|
|
||||||
$num = $db->num_rows($resql);
|
|
||||||
|
|
||||||
while ($i < $num) {
|
|
||||||
$row = $db->fetch_row($resql);
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td width="14%">'.length_accountg($row[0]).'</td>';
|
|
||||||
print '<td class="right" width="6.5%">'.price($row[1]).'</td>';
|
|
||||||
print '<td class="right" width="6.5%">'.price($row[2]).'</td>';
|
|
||||||
print '<td class="right" width="6.5%">'.price($row[3]).'</td>';
|
|
||||||
print '<td class="right" width="6.5%">'.price($row[4]).'</td>';
|
|
||||||
print '<td class="right" width="6.5%">'.price($row[5]).'</td>';
|
|
||||||
print '<td class="right" width="6.5%">'.price($row[6]).'</td>';
|
|
||||||
print '<td class="right" width="6.5%">'.price($row[7]).'</td>';
|
|
||||||
print '<td class="right" width="6.5%">'.price($row[8]).'</td>';
|
|
||||||
print '<td class="right" width="6.5%">'.price($row[9]).'</td>';
|
|
||||||
print '<td class="right" width="6.5%">'.price($row[10]).'</td>';
|
|
||||||
print '<td class="right" width="6.5%">'.price($row[11]).'</td>';
|
|
||||||
print '<td class="right" width="6.5%">'.price($row[12]).'</td>';
|
|
||||||
print '<td class="right" width="8%"><strong>'.price($row[13]).'</strong></td>';
|
|
||||||
print '</tr>';
|
|
||||||
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
$db->free($resql);
|
|
||||||
} else {
|
|
||||||
print $db->lasterror();
|
|
||||||
}
|
|
||||||
print "</table>\n";
|
|
||||||
|
|
||||||
// End of page
|
|
||||||
llxFooter();
|
|
||||||
$db->close();
|
|
||||||
@ -73,9 +73,13 @@ $debit = price2num(GETPOST('debit', 'alpha'));
|
|||||||
$credit = price2num(GETPOST('credit', 'alpha'));
|
$credit = price2num(GETPOST('credit', 'alpha'));
|
||||||
|
|
||||||
$save = GETPOST('save', 'alpha');
|
$save = GETPOST('save', 'alpha');
|
||||||
if (!empty($save)) $action = 'add';
|
if (!empty($save)) {
|
||||||
|
$action = 'add';
|
||||||
|
}
|
||||||
$update = GETPOST('update', 'alpha');
|
$update = GETPOST('update', 'alpha');
|
||||||
if (!empty($update)) $action = 'confirm_update';
|
if (!empty($update)) {
|
||||||
|
$action = 'confirm_update';
|
||||||
|
}
|
||||||
|
|
||||||
$object = new BookKeeping($db);
|
$object = new BookKeeping($db);
|
||||||
|
|
||||||
@ -92,15 +96,13 @@ if ($action == "confirm_update") {
|
|||||||
setEventMessages($langs->trans('ErrorDebitCredit'), null, 'errors');
|
setEventMessages($langs->trans('ErrorDebitCredit'), null, 'errors');
|
||||||
$action = 'update';
|
$action = 'update';
|
||||||
}
|
}
|
||||||
if (empty($accountingaccount_number) || $accountingaccount_number == '-1')
|
if (empty($accountingaccount_number) || $accountingaccount_number == '-1') {
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("AccountAccountingShort")), null, 'errors');
|
setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("AccountAccountingShort")), null, 'errors');
|
||||||
$action = 'update';
|
$action = 'update';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$error)
|
if (!$error) {
|
||||||
{
|
|
||||||
$object = new BookKeeping($db);
|
$object = new BookKeeping($db);
|
||||||
|
|
||||||
$result = $object->fetch($id, null, $mode);
|
$result = $object->fetch($id, null, $mode);
|
||||||
@ -145,14 +147,12 @@ if ($action == "confirm_update") {
|
|||||||
} elseif ($action == "add") {
|
} elseif ($action == "add") {
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
if ((floatval($debit) != 0.0) && (floatval($credit) != 0.0))
|
if ((floatval($debit) != 0.0) && (floatval($credit) != 0.0)) {
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
setEventMessages($langs->trans('ErrorDebitCredit'), null, 'errors');
|
setEventMessages($langs->trans('ErrorDebitCredit'), null, 'errors');
|
||||||
$action = '';
|
$action = '';
|
||||||
}
|
}
|
||||||
if (empty($accountingaccount_number) || $accountingaccount_number == '-1')
|
if (empty($accountingaccount_number) || $accountingaccount_number == '-1') {
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("AccountAccountingShort")), null, 'errors');
|
setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("AccountAccountingShort")), null, 'errors');
|
||||||
$action = '';
|
$action = '';
|
||||||
@ -228,15 +228,13 @@ if ($action == "confirm_update") {
|
|||||||
$action = 'create';
|
$action = 'create';
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
if (!GETPOST('doc_ref', 'alpha'))
|
if (!GETPOST('doc_ref', 'alpha')) {
|
||||||
{
|
|
||||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Piece")), null, 'errors');
|
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Piece")), null, 'errors');
|
||||||
$action = 'create';
|
$action = 'create';
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$error)
|
if (!$error) {
|
||||||
{
|
|
||||||
$object->label_compte = '';
|
$object->label_compte = '';
|
||||||
$object->debit = 0;
|
$object->debit = 0;
|
||||||
$object->credit = 0;
|
$object->credit = 0;
|
||||||
@ -255,8 +253,7 @@ if ($action == "confirm_update") {
|
|||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessages($object->error, $object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
} else {
|
} else {
|
||||||
if ($mode != '_tmp')
|
if ($mode != '_tmp') {
|
||||||
{
|
|
||||||
setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
|
setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
|
||||||
}
|
}
|
||||||
$action = 'update';
|
$action = 'update';
|
||||||
@ -272,8 +269,7 @@ if ($action == 'setdate') {
|
|||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessages($object->error, $object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
} else {
|
} else {
|
||||||
if ($mode != '_tmp')
|
if ($mode != '_tmp') {
|
||||||
{
|
|
||||||
setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
|
setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
|
||||||
}
|
}
|
||||||
$action = '';
|
$action = '';
|
||||||
@ -286,8 +282,7 @@ if ($action == 'setjournal') {
|
|||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessages($object->error, $object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
} else {
|
} else {
|
||||||
if ($mode != '_tmp')
|
if ($mode != '_tmp') {
|
||||||
{
|
|
||||||
setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
|
setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
|
||||||
}
|
}
|
||||||
$action = '';
|
$action = '';
|
||||||
@ -300,8 +295,7 @@ if ($action == 'setdocref') {
|
|||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessages($object->error, $object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
} else {
|
} else {
|
||||||
if ($mode != '_tmp')
|
if ($mode != '_tmp') {
|
||||||
{
|
|
||||||
setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
|
setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
|
||||||
}
|
}
|
||||||
$action = '';
|
$action = '';
|
||||||
@ -335,20 +329,20 @@ if ($action == 'delete') {
|
|||||||
print $formconfirm;
|
print $formconfirm;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'create')
|
if ($action == 'create') {
|
||||||
{
|
|
||||||
print load_fiche_titre($langs->trans("CreateMvts"));
|
print load_fiche_titre($langs->trans("CreateMvts"));
|
||||||
|
|
||||||
$object = new BookKeeping($db);
|
$object = new BookKeeping($db);
|
||||||
$next_num_mvt = $object->getNextNumMvt('_tmp');
|
$next_num_mvt = $object->getNextNumMvt('_tmp');
|
||||||
|
|
||||||
if (empty($next_num_mvt))
|
if (empty($next_num_mvt)) {
|
||||||
{
|
|
||||||
dol_print_error('', 'Failed to get next piece number');
|
dol_print_error('', 'Failed to get next piece number');
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<form action="'.$_SERVER["PHP_SELF"].'" name="create_mvt" method="POST">';
|
print '<form action="'.$_SERVER["PHP_SELF"].'" name="create_mvt" method="POST">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') {
|
||||||
|
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
}
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="action" value="confirm_create">'."\n";
|
print '<input type="hidden" name="action" value="confirm_create">'."\n";
|
||||||
print '<input type="hidden" name="next_num_mvt" value="'.$next_num_mvt.'">'."\n";
|
print '<input type="hidden" name="next_num_mvt" value="'.$next_num_mvt.'">'."\n";
|
||||||
@ -405,8 +399,7 @@ if ($action == 'create')
|
|||||||
setEventMessages($object->error, $object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($object->piece_num))
|
if (!empty($object->piece_num)) {
|
||||||
{
|
|
||||||
$backlink = '<a href="'.DOL_URL_ROOT.'/accountancy/bookkeeping/list.php?restore_lastsearch_values=1">'.$langs->trans('BackToList').'</a>';
|
$backlink = '<a href="'.DOL_URL_ROOT.'/accountancy/bookkeeping/list.php?restore_lastsearch_values=1">'.$langs->trans('BackToList').'</a>';
|
||||||
|
|
||||||
print load_fiche_titre($langs->trans("UpdateMvts"), $backlink);
|
print load_fiche_titre($langs->trans("UpdateMvts"), $backlink);
|
||||||
@ -439,13 +432,16 @@ if ($action == 'create')
|
|||||||
print '<table class="nobordernopadding" width="100%"><tr><td>';
|
print '<table class="nobordernopadding" width="100%"><tr><td>';
|
||||||
print $langs->trans('Docdate');
|
print $langs->trans('Docdate');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
if ($action != 'editdate')
|
if ($action != 'editdate') {
|
||||||
print '<td class="right"><a class="editfielda reposition" href="'.$_SERVER["PHP_SELF"].'?action=editdate&piece_num='.$object->piece_num.'&mode='.$mode.'">'.img_edit($langs->transnoentitiesnoconv('SetDate'), 1).'</a></td>';
|
print '<td class="right"><a class="editfielda reposition" href="'.$_SERVER["PHP_SELF"].'?action=editdate&piece_num='.$object->piece_num.'&mode='.$mode.'">'.img_edit($langs->transnoentitiesnoconv('SetDate'), 1).'</a></td>';
|
||||||
|
}
|
||||||
print '</tr></table>';
|
print '</tr></table>';
|
||||||
print '</td><td colspan="3">';
|
print '</td><td colspan="3">';
|
||||||
if ($action == 'editdate') {
|
if ($action == 'editdate') {
|
||||||
print '<form name="setdate" action="'.$_SERVER["PHP_SELF"].'?piece_num='.$object->piece_num.'" method="post">';
|
print '<form name="setdate" action="'.$_SERVER["PHP_SELF"].'?piece_num='.$object->piece_num.'" method="post">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') {
|
||||||
|
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
}
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="action" value="setdate">';
|
print '<input type="hidden" name="action" value="setdate">';
|
||||||
print '<input type="hidden" name="mode" value="'.$mode.'">';
|
print '<input type="hidden" name="mode" value="'.$mode.'">';
|
||||||
@ -463,13 +459,16 @@ if ($action == 'create')
|
|||||||
print '<table class="nobordernopadding" width="100%"><tr><td>';
|
print '<table class="nobordernopadding" width="100%"><tr><td>';
|
||||||
print $langs->trans('Codejournal');
|
print $langs->trans('Codejournal');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
if ($action != 'editjournal')
|
if ($action != 'editjournal') {
|
||||||
print '<td class="right"><a class="editfielda reposition" href="'.$_SERVER["PHP_SELF"].'?action=editjournal&piece_num='.$object->piece_num.'&mode='.$mode.'">'.img_edit($langs->transnoentitiesnoconv('Edit'), 1).'</a></td>';
|
print '<td class="right"><a class="editfielda reposition" href="'.$_SERVER["PHP_SELF"].'?action=editjournal&piece_num='.$object->piece_num.'&mode='.$mode.'">'.img_edit($langs->transnoentitiesnoconv('Edit'), 1).'</a></td>';
|
||||||
|
}
|
||||||
print '</tr></table>';
|
print '</tr></table>';
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
if ($action == 'editjournal') {
|
if ($action == 'editjournal') {
|
||||||
print '<form name="setjournal" action="'.$_SERVER["PHP_SELF"].'?piece_num='.$object->piece_num.'" method="post">';
|
print '<form name="setjournal" action="'.$_SERVER["PHP_SELF"].'?piece_num='.$object->piece_num.'" method="post">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') {
|
||||||
|
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
}
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="action" value="setjournal">';
|
print '<input type="hidden" name="action" value="setjournal">';
|
||||||
print '<input type="hidden" name="mode" value="'.$mode.'">';
|
print '<input type="hidden" name="mode" value="'.$mode.'">';
|
||||||
@ -487,13 +486,16 @@ if ($action == 'create')
|
|||||||
print '<table class="nobordernopadding" width="100%"><tr><td>';
|
print '<table class="nobordernopadding" width="100%"><tr><td>';
|
||||||
print $langs->trans('Piece');
|
print $langs->trans('Piece');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
if ($action != 'editdocref')
|
if ($action != 'editdocref') {
|
||||||
print '<td class="right"><a class="editfielda reposition" href="'.$_SERVER["PHP_SELF"].'?action=editdocref&piece_num='.$object->piece_num.'&mode='.$mode.'">'.img_edit($langs->transnoentitiesnoconv('Edit'), 1).'</a></td>';
|
print '<td class="right"><a class="editfielda reposition" href="'.$_SERVER["PHP_SELF"].'?action=editdocref&piece_num='.$object->piece_num.'&mode='.$mode.'">'.img_edit($langs->transnoentitiesnoconv('Edit'), 1).'</a></td>';
|
||||||
|
}
|
||||||
print '</tr></table>';
|
print '</tr></table>';
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
if ($action == 'editdocref') {
|
if ($action == 'editdocref') {
|
||||||
print '<form name="setdocref" action="'.$_SERVER["PHP_SELF"].'?piece_num='.$object->piece_num.'" method="post">';
|
print '<form name="setdocref" action="'.$_SERVER["PHP_SELF"].'?piece_num='.$object->piece_num.'" method="post">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') {
|
||||||
|
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
}
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="action" value="setdocref">';
|
print '<input type="hidden" name="action" value="setdocref">';
|
||||||
print '<input type="hidden" name="mode" value="'.$mode.'">';
|
print '<input type="hidden" name="mode" value="'.$mode.'">';
|
||||||
@ -516,8 +518,7 @@ if ($action == 'create')
|
|||||||
print '<table class="border tableforfield" width="100%">';
|
print '<table class="border tableforfield" width="100%">';
|
||||||
|
|
||||||
// Doc type
|
// Doc type
|
||||||
if (!empty($object->doc_type))
|
if (!empty($object->doc_type)) {
|
||||||
{
|
|
||||||
print '<tr>';
|
print '<tr>';
|
||||||
print '<td class="titlefield">'.$langs->trans("Doctype").'</td>';
|
print '<td class="titlefield">'.$langs->trans("Doctype").'</td>';
|
||||||
print '<td>'.$object->doc_type.'</td>';
|
print '<td>'.$object->doc_type.'</td>';
|
||||||
@ -589,7 +590,9 @@ if ($action == 'create')
|
|||||||
print load_fiche_titre($langs->trans("ListeMvts"), '', '');
|
print load_fiche_titre($langs->trans("ListeMvts"), '', '');
|
||||||
|
|
||||||
print '<form action="'.$_SERVER["PHP_SELF"].'?piece_num='.$object->piece_num.'" method="post">';
|
print '<form action="'.$_SERVER["PHP_SELF"].'?piece_num='.$object->piece_num.'" method="post">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') {
|
||||||
|
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
}
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="doc_date" value="'.$object->doc_date.'">'."\n";
|
print '<input type="hidden" name="doc_date" value="'.$object->doc_date.'">'."\n";
|
||||||
print '<input type="hidden" name="doc_type" value="'.$object->doc_type.'">'."\n";
|
print '<input type="hidden" name="doc_type" value="'.$object->doc_type.'">'."\n";
|
||||||
@ -664,7 +667,9 @@ if ($action == 'create')
|
|||||||
print '</a> ';
|
print '</a> ';
|
||||||
|
|
||||||
$actiontodelete = 'delete';
|
$actiontodelete = 'delete';
|
||||||
if ($mode == '_tmp' || $action != 'delmouv') $actiontodelete = 'confirm_delete';
|
if ($mode == '_tmp' || $action != 'delmouv') {
|
||||||
|
$actiontodelete = 'confirm_delete';
|
||||||
|
}
|
||||||
|
|
||||||
print '<a href="'.$_SERVER["PHP_SELF"].'?action='.$actiontodelete.'&id='.$line->id.'&piece_num='.urlencode($line->piece_num).'&mode='.urlencode($mode).'&token='.urlencode(newToken()).'">';
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action='.$actiontodelete.'&id='.$line->id.'&piece_num='.urlencode($line->piece_num).'&mode='.urlencode($mode).'&token='.urlencode(newToken()).'">';
|
||||||
print img_delete();
|
print img_delete();
|
||||||
@ -678,8 +683,7 @@ if ($action == 'create')
|
|||||||
$total_debit = price2num($total_debit, 'MT');
|
$total_debit = price2num($total_debit, 'MT');
|
||||||
$total_credit = price2num($total_credit, 'MT');
|
$total_credit = price2num($total_credit, 'MT');
|
||||||
|
|
||||||
if ($total_debit != $total_credit)
|
if ($total_debit != $total_credit) {
|
||||||
{
|
|
||||||
setEventMessages(null, array($langs->trans('MvtNotCorrectlyBalanced', $total_debit, $total_credit)), 'warnings');
|
setEventMessages(null, array($langs->trans('MvtNotCorrectlyBalanced', $total_debit, $total_credit)), 'warnings');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -710,12 +714,10 @@ if ($action == 'create')
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
|
|
||||||
if ($mode == '_tmp' && $action == '')
|
if ($mode == '_tmp' && $action == '') {
|
||||||
{
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
if ($total_debit == $total_credit)
|
if ($total_debit == $total_credit) {
|
||||||
{
|
|
||||||
print '<a class="button" href="'.$_SERVER["PHP_SELF"].'?piece_num='.$object->piece_num.'&action=valid">'.$langs->trans("ValidTransaction").'</a>';
|
print '<a class="button" href="'.$_SERVER["PHP_SELF"].'?piece_num='.$object->piece_num.'&action=valid">'.$langs->trans("ValidTransaction").'</a>';
|
||||||
} else {
|
} else {
|
||||||
print '<input type="submit" class="button" disabled="disabled" href="#" title="'.dol_escape_htmltag($langs->trans("MvtNotCorrectlyBalanced", $debit, $credit)).'" value="'.dol_escape_htmltag($langs->trans("ValidTransaction")).'">';
|
print '<input type="submit" class="button" disabled="disabled" href="#" title="'.dol_escape_htmltag($langs->trans("MvtNotCorrectlyBalanced", $debit, $credit)).'" value="'.dol_escape_htmltag($langs->trans("ValidTransaction")).'">';
|
||||||
|
|||||||
@ -94,12 +94,18 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : (empty($conf->global
|
|||||||
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
||||||
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
||||||
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
||||||
if (empty($page) || $page < 0) { $page = 0; }
|
if (empty($page) || $page < 0) {
|
||||||
|
$page = 0;
|
||||||
|
}
|
||||||
$offset = $limit * $page;
|
$offset = $limit * $page;
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
if ($sortorder == "") $sortorder = "ASC";
|
if ($sortorder == "") {
|
||||||
if ($sortfield == "") $sortfield = "t.piece_num,t.rowid";
|
$sortorder = "ASC";
|
||||||
|
}
|
||||||
|
if ($sortfield == "") {
|
||||||
|
$sortfield = "t.piece_num,t.rowid";
|
||||||
|
}
|
||||||
|
|
||||||
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
|
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
|
||||||
$object = new BookKeeping($db);
|
$object = new BookKeeping($db);
|
||||||
@ -108,10 +114,8 @@ $hookmanager->initHooks(array('bookkeepinglist'));
|
|||||||
$formaccounting = new FormAccounting($db);
|
$formaccounting = new FormAccounting($db);
|
||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
|
|
||||||
if (!in_array($action, array('export_file', 'delmouv', 'delmouvconfirm')) && !GETPOSTISSET('begin') && !GETPOSTISSET('formfilteraction') && GETPOST('page', 'int') == '' && !GETPOST('noreset', 'int') && $user->rights->accounting->mouvements->export)
|
if (!in_array($action, array('export_file', 'delmouv', 'delmouvconfirm')) && !GETPOSTISSET('begin') && !GETPOSTISSET('formfilteraction') && GETPOST('page', 'int') == '' && !GETPOST('noreset', 'int') && $user->rights->accounting->mouvements->export) {
|
||||||
{
|
if (empty($search_date_start) && empty($search_date_end) && !GETPOSTISSET('restore_lastsearch_values') && !GETPOST('search_accountancy_code_start')) {
|
||||||
if (empty($search_date_start) && empty($search_date_end) && !GETPOSTISSET('restore_lastsearch_values'))
|
|
||||||
{
|
|
||||||
$query = "SELECT date_start, date_end from ".MAIN_DB_PREFIX."accounting_fiscalyear ";
|
$query = "SELECT date_start, date_end from ".MAIN_DB_PREFIX."accounting_fiscalyear ";
|
||||||
$query .= " where date_start < '".$db->idate(dol_now())."' and date_end > '".$db->idate(dol_now())."' limit 1";
|
$query .= " where date_start < '".$db->idate(dol_now())."' and date_end > '".$db->idate(dol_now())."' limit 1";
|
||||||
$res = $db->query($query);
|
$res = $db->query($query);
|
||||||
@ -123,11 +127,12 @@ if (!in_array($action, array('export_file', 'delmouv', 'delmouvconfirm')) && !GE
|
|||||||
} else {
|
} else {
|
||||||
$month_start = ($conf->global->SOCIETE_FISCAL_MONTH_START ? ($conf->global->SOCIETE_FISCAL_MONTH_START) : 1);
|
$month_start = ($conf->global->SOCIETE_FISCAL_MONTH_START ? ($conf->global->SOCIETE_FISCAL_MONTH_START) : 1);
|
||||||
$year_start = dol_print_date(dol_now(), '%Y');
|
$year_start = dol_print_date(dol_now(), '%Y');
|
||||||
if (dol_print_date(dol_now(), '%m') < $month_start) $year_start--; // If current month is lower that starting fiscal month, we start last year
|
if (dol_print_date(dol_now(), '%m') < $month_start) {
|
||||||
|
$year_start--; // If current month is lower that starting fiscal month, we start last year
|
||||||
|
}
|
||||||
$year_end = $year_start + 1;
|
$year_end = $year_start + 1;
|
||||||
$month_end = $month_start - 1;
|
$month_end = $month_start - 1;
|
||||||
if ($month_end < 1)
|
if ($month_end < 1) {
|
||||||
{
|
|
||||||
$month_end = 12;
|
$month_end = 12;
|
||||||
$year_end--;
|
$year_end--;
|
||||||
}
|
}
|
||||||
@ -154,11 +159,15 @@ $arrayfields = array(
|
|||||||
't.date_export'=>array('label'=>$langs->trans("DateExport"), 'checked'=>1),
|
't.date_export'=>array('label'=>$langs->trans("DateExport"), 'checked'=>1),
|
||||||
);
|
);
|
||||||
|
|
||||||
if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) unset($arrayfields['t.lettering_code']);
|
if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) {
|
||||||
|
unset($arrayfields['t.lettering_code']);
|
||||||
|
}
|
||||||
|
|
||||||
$listofformat = AccountancyExport::getType();
|
$listofformat = AccountancyExport::getType();
|
||||||
$formatexportset = $conf->global->ACCOUNTING_EXPORT_MODELCSV;
|
$formatexportset = $conf->global->ACCOUNTING_EXPORT_MODELCSV;
|
||||||
if (empty($listofformat[$formatexportset])) $formatexportset = 1;
|
if (empty($listofformat[$formatexportset])) {
|
||||||
|
$formatexportset = 1;
|
||||||
|
}
|
||||||
|
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
@ -167,19 +176,23 @@ $error = 0;
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (GETPOST('cancel', 'alpha')) { $action = 'list'; $massaction = ''; }
|
if (GETPOST('cancel', 'alpha')) {
|
||||||
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; }
|
$action = 'list'; $massaction = '';
|
||||||
|
}
|
||||||
|
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') {
|
||||||
|
$massaction = '';
|
||||||
|
}
|
||||||
|
|
||||||
$parameters = array('socid'=>$socid);
|
$parameters = array('socid'=>$socid);
|
||||||
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
||||||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
if ($reshook < 0) {
|
||||||
|
setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($reshook))
|
if (empty($reshook)) {
|
||||||
{
|
|
||||||
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
||||||
|
|
||||||
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // All tests are required to be compatible with all browsers
|
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All tests are required to be compatible with all browsers
|
||||||
{
|
|
||||||
$search_mvt_num = '';
|
$search_mvt_num = '';
|
||||||
$search_doc_type = '';
|
$search_doc_type = '';
|
||||||
$search_doc_ref = '';
|
$search_doc_ref = '';
|
||||||
@ -348,8 +361,7 @@ if ($action == 'delbookkeepingyearconfirm' && $user->rights->accounting->mouveme
|
|||||||
$deljournal = 0;
|
$deljournal = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($delmonth) || !empty($delyear) || !empty($deljournal))
|
if (!empty($delmonth) || !empty($delyear) || !empty($deljournal)) {
|
||||||
{
|
|
||||||
$result = $object->deleteByYearAndJournal($delyear, $deljournal, '', ($delmonth > 0 ? $delmonth : 0));
|
$result = $object->deleteByYearAndJournal($delyear, $deljournal, '', ($delmonth > 0 ? $delmonth : 0));
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessages($object->error, $object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
@ -381,7 +393,9 @@ if ($action == 'delmouvconfirm' && $user->rights->accounting->mouvements->suppri
|
|||||||
}
|
}
|
||||||
if ($action == 'setreexport') {
|
if ($action == 'setreexport') {
|
||||||
$setreexport = GETPOST('value', 'int');
|
$setreexport = GETPOST('value', 'int');
|
||||||
if (!dolibarr_set_const($db, "ACCOUNTING_REEXPORT", $setreexport, 'yesno', 0, '', $conf->entity)) $error++;
|
if (!dolibarr_set_const($db, "ACCOUNTING_REEXPORT", $setreexport, 'yesno', 0, '', $conf->entity)) {
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
if ($conf->global->ACCOUNTING_REEXPORT == 1) {
|
if ($conf->global->ACCOUNTING_REEXPORT == 1) {
|
||||||
@ -475,26 +489,22 @@ if ($action == 'export_fileconfirm' && $user->rights->accounting->mouvements->ex
|
|||||||
// TODO Replace the fetchAll + ->export later that consume too much memory on large export with the query($sql) and loop on each line to export them.
|
// TODO Replace the fetchAll + ->export later that consume too much memory on large export with the query($sql) and loop on each line to export them.
|
||||||
$result = $object->fetchAll($sortorder, $sortfield, 0, 0, $filter, 'AND', $conf->global->ACCOUNTING_REEXPORT);
|
$result = $object->fetchAll($sortorder, $sortfield, 0, 0, $filter, 'AND', $conf->global->ACCOUNTING_REEXPORT);
|
||||||
|
|
||||||
if ($result < 0)
|
if ($result < 0) {
|
||||||
{
|
|
||||||
setEventMessages($object->error, $object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
} else {
|
} else {
|
||||||
// Export files
|
// Export files
|
||||||
$accountancyexport = new AccountancyExport($db);
|
$accountancyexport = new AccountancyExport($db);
|
||||||
$accountancyexport->export($object->lines, $formatexportset);
|
$accountancyexport->export($object->lines, $formatexportset);
|
||||||
|
|
||||||
if (!empty($accountancyexport->errors))
|
if (!empty($accountancyexport->errors)) {
|
||||||
{
|
|
||||||
setEventMessages('', $accountancyexport->errors, 'errors');
|
setEventMessages('', $accountancyexport->errors, 'errors');
|
||||||
} else {
|
} else {
|
||||||
// Specify as export : update field date_export
|
// Specify as export : update field date_export
|
||||||
$error = 0;
|
$error = 0;
|
||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
if (is_array($object->lines))
|
if (is_array($object->lines)) {
|
||||||
{
|
foreach ($object->lines as $movement) {
|
||||||
foreach ($object->lines as $movement)
|
|
||||||
{
|
|
||||||
$now = dol_now();
|
$now = dol_now();
|
||||||
|
|
||||||
$sql = " UPDATE ".MAIN_DB_PREFIX."accounting_bookkeeping";
|
$sql = " UPDATE ".MAIN_DB_PREFIX."accounting_bookkeeping";
|
||||||
@ -504,16 +514,14 @@ if ($action == 'export_fileconfirm' && $user->rights->accounting->mouvements->ex
|
|||||||
|
|
||||||
dol_syslog("/accountancy/bookeeping/list.php Function export_file Specify movements as exported sql=".$sql, LOG_DEBUG);
|
dol_syslog("/accountancy/bookeeping/list.php Function export_file Specify movements as exported sql=".$sql, LOG_DEBUG);
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$error)
|
if (!$error) {
|
||||||
{
|
|
||||||
$db->commit();
|
$db->commit();
|
||||||
// setEventMessages($langs->trans("AllExportedMovementsWereRecordedAsExported"), null, 'mesgs');
|
// setEventMessages($langs->trans("AllExportedMovementsWereRecordedAsExported"), null, 'mesgs');
|
||||||
} else {
|
} else {
|
||||||
@ -538,26 +546,22 @@ $title_page = $langs->trans("Operations").' - '.$langs->trans("Journals");
|
|||||||
|
|
||||||
// Count total nb of records
|
// Count total nb of records
|
||||||
$nbtotalofrecords = '';
|
$nbtotalofrecords = '';
|
||||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||||
{
|
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
$nbtotalofrecords = $db->num_rows($resql);
|
$nbtotalofrecords = $db->num_rows($resql);
|
||||||
if (($page * $limit) > $nbtotalofrecords) // if total of record found is smaller than page * limit, goto and load page 0
|
if (($page * $limit) > $nbtotalofrecords) { // if total of record found is smaller than page * limit, goto and load page 0
|
||||||
{
|
|
||||||
$page = 0;
|
$page = 0;
|
||||||
$offset = 0;
|
$offset = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// if total of record found is smaller than limit, no need to do paging and to restart another select with limits set.
|
// if total of record found is smaller than limit, no need to do paging and to restart another select with limits set.
|
||||||
if (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords)
|
if (is_numeric($nbtotalofrecords) && $limit > $nbtotalofrecords) {
|
||||||
{
|
|
||||||
$num = $nbtotalofrecords;
|
$num = $nbtotalofrecords;
|
||||||
} else {
|
} else {
|
||||||
$sql .= $db->plimit($limit + 1, $offset);
|
$sql .= $db->plimit($limit + 1, $offset);
|
||||||
|
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if (!$resql)
|
if (!$resql) {
|
||||||
{
|
|
||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
@ -636,19 +640,28 @@ if ($action == 'delbookkeepingyear') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//$param=''; param started before
|
//$param=''; param started before
|
||||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
$param .= '&contextpage='.urlencode($contextpage);
|
||||||
|
}
|
||||||
|
if ($limit > 0 && $limit != $conf->liste_limit) {
|
||||||
|
$param .= '&limit='.urlencode($limit);
|
||||||
|
}
|
||||||
|
|
||||||
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
|
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="action" value="list">';
|
print '<input type="hidden" name="action" value="list">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.urlencode($optioncss).'">';
|
if ($optioncss != '') {
|
||||||
|
print '<input type="hidden" name="optioncss" value="'.urlencode($optioncss).'">';
|
||||||
|
}
|
||||||
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
||||||
print '<input type="hidden" name="sortfield" value="'.urlencode($sortfield).'">';
|
print '<input type="hidden" name="sortfield" value="'.urlencode($sortfield).'">';
|
||||||
print '<input type="hidden" name="sortorder" value="'.urlencode($sortorder).'">';
|
print '<input type="hidden" name="sortorder" value="'.urlencode($sortorder).'">';
|
||||||
|
|
||||||
if (count($filter)) $buttonLabel = $langs->trans("ExportFilteredList");
|
if (count($filter)) {
|
||||||
else $buttonLabel = $langs->trans("ExportList");
|
$buttonLabel = $langs->trans("ExportFilteredList");
|
||||||
|
} else {
|
||||||
|
$buttonLabel = $langs->trans("ExportList");
|
||||||
|
}
|
||||||
|
|
||||||
$parameters = array();
|
$parameters = array();
|
||||||
$reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
|
$reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
|
||||||
@ -661,14 +674,18 @@ if (empty($reshook)) {
|
|||||||
}
|
}
|
||||||
$newcardbutton .= '<span class="valignmiddle marginrightonly">'.$langs->trans("IncludeDocsAlreadyExported").'</span>';
|
$newcardbutton .= '<span class="valignmiddle marginrightonly">'.$langs->trans("IncludeDocsAlreadyExported").'</span>';
|
||||||
|
|
||||||
if (!empty($user->rights->accounting->mouvements->export)) $newcardbutton .= dolGetButtonTitle($buttonLabel, $langs->trans("ExportFilteredList").' ('.$listofformat[$formatexportset].')', 'fa fa-file-export paddingleft', $_SERVER["PHP_SELF"].'?action=export_file'.($param ? '&'.$param : ''), $user->rights->accounting->mouvements->export);
|
if (!empty($user->rights->accounting->mouvements->export)) {
|
||||||
|
$newcardbutton .= dolGetButtonTitle($buttonLabel, $langs->trans("ExportFilteredList").' ('.$listofformat[$formatexportset].')', 'fa fa-file-export paddingleft', $_SERVER["PHP_SELF"].'?action=export_file'.($param ? '&'.$param : ''), $user->rights->accounting->mouvements->export);
|
||||||
|
}
|
||||||
|
|
||||||
$newcardbutton .= dolGetButtonTitle($langs->trans('ViewFlatList'), '', 'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/list.php?'.$param, '', 1, array('morecss' => 'marginleftonly btnTitleSelected'));
|
$newcardbutton .= dolGetButtonTitle($langs->trans('ViewFlatList'), '', 'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/list.php?'.$param, '', 1, array('morecss' => 'marginleftonly btnTitleSelected'));
|
||||||
$newcardbutton .= dolGetButtonTitle($langs->trans('GroupByAccountAccounting'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/listbyaccount.php?'.$param, '', 1, array('morecss' => 'marginleftonly'));
|
$newcardbutton .= dolGetButtonTitle($langs->trans('GroupByAccountAccounting'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/listbyaccount.php?'.$param, '', 1, array('morecss' => 'marginleftonly'));
|
||||||
$newcardbutton .= dolGetButtonTitle($langs->trans('GroupBySubAccountAccounting'), '', 'fa fa-align-left vmirror paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/listbysubaccount.php?'.$param, '', 1, array('morecss' => 'marginleftonly'));
|
$newcardbutton .= dolGetButtonTitle($langs->trans('GroupBySubAccountAccounting'), '', 'fa fa-align-left vmirror paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/listbysubaccount.php?'.$param, '', 1, array('morecss' => 'marginleftonly'));
|
||||||
|
|
||||||
$url = './card.php?action=create';
|
$url = './card.php?action=create';
|
||||||
if (!empty($socid)) $url .= '&socid='.$socid;
|
if (!empty($socid)) {
|
||||||
|
$url .= '&socid='.$socid;
|
||||||
|
}
|
||||||
$newcardbutton .= dolGetButtonTitle($langs->trans('NewAccountingMvt'), '', 'fa fa-plus-circle paddingleft', $url, '', $user->rights->accounting->mouvements->creer);
|
$newcardbutton .= dolGetButtonTitle($langs->trans('NewAccountingMvt'), '', 'fa fa-plus-circle paddingleft', $url, '', $user->rights->accounting->mouvements->creer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -676,12 +693,17 @@ print_barre_liste($title_page, $page, $_SERVER["PHP_SELF"], $param, $sortfield,
|
|||||||
|
|
||||||
$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage;
|
$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage;
|
||||||
$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
|
$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
|
||||||
if ($massactionbutton) $selectedfields .= $form->showCheckAddButtons('checkforselect', 1);
|
if ($massactionbutton) {
|
||||||
|
$selectedfields .= $form->showCheckAddButtons('checkforselect', 1);
|
||||||
|
}
|
||||||
|
|
||||||
$parameters = array();
|
$parameters = array();
|
||||||
$reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook
|
$reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook
|
||||||
if (empty($reshook)) $moreforfilter .= $hookmanager->resPrint;
|
if (empty($reshook)) {
|
||||||
else $moreforfilter = $hookmanager->resPrint;
|
$moreforfilter .= $hookmanager->resPrint;
|
||||||
|
} else {
|
||||||
|
$moreforfilter = $hookmanager->resPrint;
|
||||||
|
}
|
||||||
|
|
||||||
print '<div class="div-table-responsive">';
|
print '<div class="div-table-responsive">';
|
||||||
print '<table class="tagtable liste centpercent">';
|
print '<table class="tagtable liste centpercent">';
|
||||||
@ -690,18 +712,15 @@ print '<table class="tagtable liste centpercent">';
|
|||||||
print '<tr class="liste_titre_filter">';
|
print '<tr class="liste_titre_filter">';
|
||||||
|
|
||||||
// Movement number
|
// Movement number
|
||||||
if (!empty($arrayfields['t.piece_num']['checked']))
|
if (!empty($arrayfields['t.piece_num']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="liste_titre"><input type="text" name="search_mvt_num" size="6" value="'.dol_escape_htmltag($search_mvt_num).'"></td>';
|
print '<td class="liste_titre"><input type="text" name="search_mvt_num" size="6" value="'.dol_escape_htmltag($search_mvt_num).'"></td>';
|
||||||
}
|
}
|
||||||
// Code journal
|
// Code journal
|
||||||
if (!empty($arrayfields['t.code_journal']['checked']))
|
if (!empty($arrayfields['t.code_journal']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="liste_titre center"><input type="text" name="search_ledger_code" size="3" value="'.(is_array($search_ledger_code) ? join('|', $search_ledger_code) : $search_ledger_code).'"></td>';
|
print '<td class="liste_titre center"><input type="text" name="search_ledger_code" size="3" value="'.(is_array($search_ledger_code) ? join('|', $search_ledger_code) : $search_ledger_code).'"></td>';
|
||||||
}
|
}
|
||||||
// Date document
|
// Date document
|
||||||
if (!empty($arrayfields['t.doc_date']['checked']))
|
if (!empty($arrayfields['t.doc_date']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="liste_titre center">';
|
print '<td class="liste_titre center">';
|
||||||
print '<div class="nowrap">';
|
print '<div class="nowrap">';
|
||||||
print $form->selectDate($search_date_start ? $search_date_start : -1, 'search_date_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("From"));
|
print $form->selectDate($search_date_start ? $search_date_start : -1, 'search_date_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("From"));
|
||||||
@ -712,13 +731,11 @@ if (!empty($arrayfields['t.doc_date']['checked']))
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
// Ref document
|
// Ref document
|
||||||
if (!empty($arrayfields['t.doc_ref']['checked']))
|
if (!empty($arrayfields['t.doc_ref']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="liste_titre"><input type="text" name="search_doc_ref" size="8" value="'.dol_escape_htmltag($search_doc_ref).'"></td>';
|
print '<td class="liste_titre"><input type="text" name="search_doc_ref" size="8" value="'.dol_escape_htmltag($search_doc_ref).'"></td>';
|
||||||
}
|
}
|
||||||
// Accountancy account
|
// Accountancy account
|
||||||
if (!empty($arrayfields['t.numero_compte']['checked']))
|
if (!empty($arrayfields['t.numero_compte']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="liste_titre">';
|
print '<td class="liste_titre">';
|
||||||
print '<div class="nowrap">';
|
print '<div class="nowrap">';
|
||||||
print $langs->trans('From').' ';
|
print $langs->trans('From').' ';
|
||||||
@ -731,14 +748,12 @@ if (!empty($arrayfields['t.numero_compte']['checked']))
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
// Subledger account
|
// Subledger account
|
||||||
if (!empty($arrayfields['t.subledger_account']['checked']))
|
if (!empty($arrayfields['t.subledger_account']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="liste_titre">';
|
print '<td class="liste_titre">';
|
||||||
print '<div class="nowrap">';
|
print '<div class="nowrap">';
|
||||||
// TODO For the moment we keep a free input text instead of a combo. The select_auxaccount has problem because it does not
|
// TODO For the moment we keep a free input text instead of a combo. The select_auxaccount has problem because it does not
|
||||||
// use setup of keypress to select thirdparty and this hang browser on large database.
|
// use setup of keypress to select thirdparty and this hang browser on large database.
|
||||||
if (!empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX))
|
if (!empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) {
|
||||||
{
|
|
||||||
print $langs->trans('From').' ';
|
print $langs->trans('From').' ';
|
||||||
print $formaccounting->select_auxaccount($search_accountancy_aux_code_start, 'search_accountancy_aux_code_start', 1);
|
print $formaccounting->select_auxaccount($search_accountancy_aux_code_start, 'search_accountancy_aux_code_start', 1);
|
||||||
} else {
|
} else {
|
||||||
@ -748,8 +763,7 @@ if (!empty($arrayfields['t.subledger_account']['checked']))
|
|||||||
print '<div class="nowrap">';
|
print '<div class="nowrap">';
|
||||||
// TODO For the moment we keep a free input text instead of a combo. The select_auxaccount has problem because it does not
|
// TODO For the moment we keep a free input text instead of a combo. The select_auxaccount has problem because it does not
|
||||||
// use setup of keypress to select thirdparty and this hang browser on large database.
|
// use setup of keypress to select thirdparty and this hang browser on large database.
|
||||||
if (!empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX))
|
if (!empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) {
|
||||||
{
|
|
||||||
print $langs->trans('to').' ';
|
print $langs->trans('to').' ';
|
||||||
print $formaccounting->select_auxaccount($search_accountancy_aux_code_end, 'search_accountancy_aux_code_end', 1);
|
print $formaccounting->select_auxaccount($search_accountancy_aux_code_end, 'search_accountancy_aux_code_end', 1);
|
||||||
} else {
|
} else {
|
||||||
@ -759,29 +773,25 @@ if (!empty($arrayfields['t.subledger_account']['checked']))
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
// Label operation
|
// Label operation
|
||||||
if (!empty($arrayfields['t.label_operation']['checked']))
|
if (!empty($arrayfields['t.label_operation']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="liste_titre">';
|
print '<td class="liste_titre">';
|
||||||
print '<input type="text" size="7" class="flat" name="search_mvt_label" value="'.$search_mvt_label.'"/>';
|
print '<input type="text" size="7" class="flat" name="search_mvt_label" value="'.$search_mvt_label.'"/>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
// Debit
|
// Debit
|
||||||
if (!empty($arrayfields['t.debit']['checked']))
|
if (!empty($arrayfields['t.debit']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="liste_titre right">';
|
print '<td class="liste_titre right">';
|
||||||
print '<input type="text" class="flat" name="search_debit" size="4" value="'.dol_escape_htmltag($search_debit).'">';
|
print '<input type="text" class="flat" name="search_debit" size="4" value="'.dol_escape_htmltag($search_debit).'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
// Credit
|
// Credit
|
||||||
if (!empty($arrayfields['t.credit']['checked']))
|
if (!empty($arrayfields['t.credit']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="liste_titre right">';
|
print '<td class="liste_titre right">';
|
||||||
print '<input type="text" class="flat" name="search_credit" size="4" value="'.dol_escape_htmltag($search_credit).'">';
|
print '<input type="text" class="flat" name="search_credit" size="4" value="'.dol_escape_htmltag($search_credit).'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
// Lettering code
|
// Lettering code
|
||||||
if (!empty($arrayfields['t.lettering_code']['checked']))
|
if (!empty($arrayfields['t.lettering_code']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="liste_titre center">';
|
print '<td class="liste_titre center">';
|
||||||
print '<input type="text" size="3" class="flat" name="search_lettering_code" value="'.$search_lettering_code.'"/>';
|
print '<input type="text" size="3" class="flat" name="search_lettering_code" value="'.$search_lettering_code.'"/>';
|
||||||
print '<br><span class="nowrap"><input type="checkbox" name="search_not_reconciled" value="notreconciled"'.($search_not_reconciled == 'notreconciled' ? ' checked' : '').'>'.$langs->trans("NotReconciled").'</span>';
|
print '<br><span class="nowrap"><input type="checkbox" name="search_not_reconciled" value="notreconciled"'.($search_not_reconciled == 'notreconciled' ? ' checked' : '').'>'.$langs->trans("NotReconciled").'</span>';
|
||||||
@ -794,8 +804,7 @@ $reshook = $hookmanager->executeHooks('printFieldListOption', $parameters); // N
|
|||||||
print $hookmanager->resPrint;
|
print $hookmanager->resPrint;
|
||||||
|
|
||||||
// Date creation
|
// Date creation
|
||||||
if (!empty($arrayfields['t.date_creation']['checked']))
|
if (!empty($arrayfields['t.date_creation']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="liste_titre center">';
|
print '<td class="liste_titre center">';
|
||||||
print '<div class="nowrap">';
|
print '<div class="nowrap">';
|
||||||
print $form->selectDate($search_date_creation_start, 'date_creation_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("From"));
|
print $form->selectDate($search_date_creation_start, 'date_creation_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("From"));
|
||||||
@ -806,8 +815,7 @@ if (!empty($arrayfields['t.date_creation']['checked']))
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
// Date modification
|
// Date modification
|
||||||
if (!empty($arrayfields['t.tms']['checked']))
|
if (!empty($arrayfields['t.tms']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="liste_titre center">';
|
print '<td class="liste_titre center">';
|
||||||
print '<div class="nowrap">';
|
print '<div class="nowrap">';
|
||||||
print $form->selectDate($search_date_modification_start, 'date_modification_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("From"));
|
print $form->selectDate($search_date_modification_start, 'date_modification_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("From"));
|
||||||
@ -818,8 +826,7 @@ if (!empty($arrayfields['t.tms']['checked']))
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
// Date export
|
// Date export
|
||||||
if (!empty($arrayfields['t.date_export']['checked']))
|
if (!empty($arrayfields['t.date_export']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="liste_titre center">';
|
print '<td class="liste_titre center">';
|
||||||
print '<div class="nowrap">';
|
print '<div class="nowrap">';
|
||||||
print $form->selectDate($search_date_export_start, 'date_export_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("From"));
|
print $form->selectDate($search_date_export_start, 'date_export_start', 0, 0, 1, '', 1, 0, 0, '', '', '', '', 1, '', $langs->trans("From"));
|
||||||
@ -837,23 +844,49 @@ print '</td>';
|
|||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
if (!empty($arrayfields['t.piece_num']['checked'])) print_liste_field_titre($arrayfields['t.piece_num']['label'], $_SERVER['PHP_SELF'], "t.piece_num", "", $param, "", $sortfield, $sortorder);
|
if (!empty($arrayfields['t.piece_num']['checked'])) {
|
||||||
if (!empty($arrayfields['t.code_journal']['checked'])) print_liste_field_titre($arrayfields['t.code_journal']['label'], $_SERVER['PHP_SELF'], "t.code_journal", "", $param, '', $sortfield, $sortorder, 'center ');
|
print_liste_field_titre($arrayfields['t.piece_num']['label'], $_SERVER['PHP_SELF'], "t.piece_num", "", $param, "", $sortfield, $sortorder);
|
||||||
if (!empty($arrayfields['t.doc_date']['checked'])) print_liste_field_titre($arrayfields['t.doc_date']['label'], $_SERVER['PHP_SELF'], "t.doc_date", "", $param, '', $sortfield, $sortorder, 'center ');
|
}
|
||||||
if (!empty($arrayfields['t.doc_ref']['checked'])) print_liste_field_titre($arrayfields['t.doc_ref']['label'], $_SERVER['PHP_SELF'], "t.doc_ref", "", $param, "", $sortfield, $sortorder);
|
if (!empty($arrayfields['t.code_journal']['checked'])) {
|
||||||
if (!empty($arrayfields['t.numero_compte']['checked'])) print_liste_field_titre($arrayfields['t.numero_compte']['label'], $_SERVER['PHP_SELF'], "t.numero_compte", "", $param, "", $sortfield, $sortorder);
|
print_liste_field_titre($arrayfields['t.code_journal']['label'], $_SERVER['PHP_SELF'], "t.code_journal", "", $param, '', $sortfield, $sortorder, 'center ');
|
||||||
if (!empty($arrayfields['t.subledger_account']['checked'])) print_liste_field_titre($arrayfields['t.subledger_account']['label'], $_SERVER['PHP_SELF'], "t.subledger_account", "", $param, "", $sortfield, $sortorder);
|
}
|
||||||
if (!empty($arrayfields['t.label_operation']['checked'])) print_liste_field_titre($arrayfields['t.label_operation']['label'], $_SERVER['PHP_SELF'], "t.label_operation", "", $param, "", $sortfield, $sortorder);
|
if (!empty($arrayfields['t.doc_date']['checked'])) {
|
||||||
if (!empty($arrayfields['t.debit']['checked'])) print_liste_field_titre($arrayfields['t.debit']['label'], $_SERVER['PHP_SELF'], "t.debit", "", $param, '', $sortfield, $sortorder, 'right ');
|
print_liste_field_titre($arrayfields['t.doc_date']['label'], $_SERVER['PHP_SELF'], "t.doc_date", "", $param, '', $sortfield, $sortorder, 'center ');
|
||||||
if (!empty($arrayfields['t.credit']['checked'])) print_liste_field_titre($arrayfields['t.credit']['label'], $_SERVER['PHP_SELF'], "t.credit", "", $param, '', $sortfield, $sortorder, 'right ');
|
}
|
||||||
if (!empty($arrayfields['t.lettering_code']['checked'])) print_liste_field_titre($arrayfields['t.lettering_code']['label'], $_SERVER['PHP_SELF'], "t.lettering_code", "", $param, '', $sortfield, $sortorder, 'center ');
|
if (!empty($arrayfields['t.doc_ref']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['t.doc_ref']['label'], $_SERVER['PHP_SELF'], "t.doc_ref", "", $param, "", $sortfield, $sortorder);
|
||||||
|
}
|
||||||
|
if (!empty($arrayfields['t.numero_compte']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['t.numero_compte']['label'], $_SERVER['PHP_SELF'], "t.numero_compte", "", $param, "", $sortfield, $sortorder);
|
||||||
|
}
|
||||||
|
if (!empty($arrayfields['t.subledger_account']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['t.subledger_account']['label'], $_SERVER['PHP_SELF'], "t.subledger_account", "", $param, "", $sortfield, $sortorder);
|
||||||
|
}
|
||||||
|
if (!empty($arrayfields['t.label_operation']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['t.label_operation']['label'], $_SERVER['PHP_SELF'], "t.label_operation", "", $param, "", $sortfield, $sortorder);
|
||||||
|
}
|
||||||
|
if (!empty($arrayfields['t.debit']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['t.debit']['label'], $_SERVER['PHP_SELF'], "t.debit", "", $param, '', $sortfield, $sortorder, 'right ');
|
||||||
|
}
|
||||||
|
if (!empty($arrayfields['t.credit']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['t.credit']['label'], $_SERVER['PHP_SELF'], "t.credit", "", $param, '', $sortfield, $sortorder, 'right ');
|
||||||
|
}
|
||||||
|
if (!empty($arrayfields['t.lettering_code']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['t.lettering_code']['label'], $_SERVER['PHP_SELF'], "t.lettering_code", "", $param, '', $sortfield, $sortorder, 'center ');
|
||||||
|
}
|
||||||
// Hook fields
|
// Hook fields
|
||||||
$parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder);
|
$parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder);
|
||||||
$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;
|
||||||
if (!empty($arrayfields['t.date_creation']['checked'])) print_liste_field_titre($arrayfields['t.date_creation']['label'], $_SERVER['PHP_SELF'], "t.date_creation", "", $param, '', $sortfield, $sortorder, 'center ');
|
if (!empty($arrayfields['t.date_creation']['checked'])) {
|
||||||
if (!empty($arrayfields['t.tms']['checked'])) print_liste_field_titre($arrayfields['t.tms']['label'], $_SERVER['PHP_SELF'], "t.tms", "", $param, '', $sortfield, $sortorder, 'center ');
|
print_liste_field_titre($arrayfields['t.date_creation']['label'], $_SERVER['PHP_SELF'], "t.date_creation", "", $param, '', $sortfield, $sortorder, 'center ');
|
||||||
if (!empty($arrayfields['t.date_export']['checked'])) print_liste_field_titre($arrayfields['t.date_export']['label'], $_SERVER['PHP_SELF'], "t.date_export", "", $param, '', $sortfield, $sortorder, 'center ');
|
}
|
||||||
|
if (!empty($arrayfields['t.tms']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['t.tms']['label'], $_SERVER['PHP_SELF'], "t.tms", "", $param, '', $sortfield, $sortorder, 'center ');
|
||||||
|
}
|
||||||
|
if (!empty($arrayfields['t.date_export']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['t.date_export']['label'], $_SERVER['PHP_SELF'], "t.date_export", "", $param, '', $sortfield, $sortorder, 'center ');
|
||||||
|
}
|
||||||
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ');
|
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ');
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
@ -864,10 +897,11 @@ $line = new BookKeepingLine();
|
|||||||
// --------------------------------------------------------------------
|
// --------------------------------------------------------------------
|
||||||
$i = 0;
|
$i = 0;
|
||||||
$totalarray = array();
|
$totalarray = array();
|
||||||
while ($i < min($num, $limit))
|
while ($i < min($num, $limit)) {
|
||||||
{
|
|
||||||
$obj = $db->fetch_object($resql);
|
$obj = $db->fetch_object($resql);
|
||||||
if (empty($obj)) break; // Should not happen
|
if (empty($obj)) {
|
||||||
|
break; // Should not happen
|
||||||
|
}
|
||||||
|
|
||||||
$line->id = $obj->rowid;
|
$line->id = $obj->rowid;
|
||||||
$line->doc_date = $db->jdate($obj->doc_date);
|
$line->doc_date = $db->jdate($obj->doc_date);
|
||||||
@ -902,38 +936,39 @@ while ($i < min($num, $limit))
|
|||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
// Piece number
|
// Piece number
|
||||||
if (!empty($arrayfields['t.piece_num']['checked']))
|
if (!empty($arrayfields['t.piece_num']['checked'])) {
|
||||||
{
|
|
||||||
print '<td>';
|
print '<td>';
|
||||||
$object->id = $line->id;
|
$object->id = $line->id;
|
||||||
$object->piece_num = $line->piece_num;
|
$object->piece_num = $line->piece_num;
|
||||||
print $object->getNomUrl(1, '', 0, '', 1);
|
print $object->getNomUrl(1, '', 0, '', 1);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Journal code
|
// Journal code
|
||||||
if (!empty($arrayfields['t.code_journal']['checked']))
|
if (!empty($arrayfields['t.code_journal']['checked'])) {
|
||||||
{
|
|
||||||
$accountingjournal = new AccountingJournal($db);
|
$accountingjournal = new AccountingJournal($db);
|
||||||
$result = $accountingjournal->fetch('', $line->code_journal);
|
$result = $accountingjournal->fetch('', $line->code_journal);
|
||||||
$journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0, '', 0) : $line->code_journal);
|
$journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0, '', 0) : $line->code_journal);
|
||||||
print '<td class="center">'.$journaltoshow.'</td>';
|
print '<td class="center">'.$journaltoshow.'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Document date
|
// Document date
|
||||||
if (!empty($arrayfields['t.doc_date']['checked']))
|
if (!empty($arrayfields['t.doc_date']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="center">'.dol_print_date($line->doc_date, 'day').'</td>';
|
print '<td class="center">'.dol_print_date($line->doc_date, 'day').'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Document ref
|
// Document ref
|
||||||
if (!empty($arrayfields['t.doc_ref']['checked']))
|
if (!empty($arrayfields['t.doc_ref']['checked'])) {
|
||||||
{
|
if ($line->doc_type == 'customer_invoice') {
|
||||||
if ($line->doc_type == 'customer_invoice')
|
|
||||||
{
|
|
||||||
$langs->loadLangs(array('bills'));
|
$langs->loadLangs(array('bills'));
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
||||||
@ -945,8 +980,7 @@ while ($i < min($num, $limit))
|
|||||||
$filedir = $conf->facture->dir_output.'/'.dol_sanitizeFileName($line->doc_ref);
|
$filedir = $conf->facture->dir_output.'/'.dol_sanitizeFileName($line->doc_ref);
|
||||||
$urlsource = $_SERVER['PHP_SELF'].'?id='.$objectstatic->id;
|
$urlsource = $_SERVER['PHP_SELF'].'?id='.$objectstatic->id;
|
||||||
$documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
|
$documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
|
||||||
} elseif ($line->doc_type == 'supplier_invoice')
|
} elseif ($line->doc_type == 'supplier_invoice') {
|
||||||
{
|
|
||||||
$langs->loadLangs(array('bills'));
|
$langs->loadLangs(array('bills'));
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
|
||||||
@ -958,8 +992,7 @@ while ($i < min($num, $limit))
|
|||||||
$filedir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($line->fk_doc, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
|
$filedir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($line->fk_doc, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
|
||||||
$subdir = get_exdir($objectstatic->id, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
|
$subdir = get_exdir($objectstatic->id, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
|
||||||
$documentlink = $formfile->getDocumentsLink($objectstatic->element, $subdir, $filedir);
|
$documentlink = $formfile->getDocumentsLink($objectstatic->element, $subdir, $filedir);
|
||||||
} elseif ($line->doc_type == 'expense_report')
|
} elseif ($line->doc_type == 'expense_report') {
|
||||||
{
|
|
||||||
$langs->loadLangs(array('trips'));
|
$langs->loadLangs(array('trips'));
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php';
|
||||||
@ -971,8 +1004,7 @@ while ($i < min($num, $limit))
|
|||||||
$filedir = $conf->expensereport->dir_output.'/'.dol_sanitizeFileName($line->doc_ref);
|
$filedir = $conf->expensereport->dir_output.'/'.dol_sanitizeFileName($line->doc_ref);
|
||||||
$urlsource = $_SERVER['PHP_SELF'].'?id='.$objectstatic->id;
|
$urlsource = $_SERVER['PHP_SELF'].'?id='.$objectstatic->id;
|
||||||
$documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
|
$documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
|
||||||
} elseif ($line->doc_type == 'bank')
|
} elseif ($line->doc_type == 'bank') {
|
||||||
{
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
||||||
$objectstatic = new AccountLine($db);
|
$objectstatic = new AccountLine($db);
|
||||||
$objectstatic->fetch($line->fk_doc);
|
$objectstatic->fetch($line->fk_doc);
|
||||||
@ -986,8 +1018,7 @@ while ($i < min($num, $limit))
|
|||||||
// Picto + Ref
|
// Picto + Ref
|
||||||
print '<td class="nobordernopadding nowrap">';
|
print '<td class="nobordernopadding nowrap">';
|
||||||
|
|
||||||
if ($line->doc_type == 'customer_invoice' || $line->doc_type == 'supplier_invoice' || $line->doc_type == 'expense_report')
|
if ($line->doc_type == 'customer_invoice' || $line->doc_type == 'supplier_invoice' || $line->doc_type == 'expense_report') {
|
||||||
{
|
|
||||||
print $objectstatic->getNomUrl(1, '', 0, 0, '', 0, -1, 1);
|
print $objectstatic->getNomUrl(1, '', 0, 0, '', 0, -1, 1);
|
||||||
print $documentlink;
|
print $documentlink;
|
||||||
} elseif ($line->doc_type == 'bank') {
|
} elseif ($line->doc_type == 'bank') {
|
||||||
@ -1000,53 +1031,65 @@ while ($i < min($num, $limit))
|
|||||||
print '</td></tr></table>';
|
print '</td></tr></table>';
|
||||||
|
|
||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Account number
|
// Account number
|
||||||
if (!empty($arrayfields['t.numero_compte']['checked']))
|
if (!empty($arrayfields['t.numero_compte']['checked'])) {
|
||||||
{
|
|
||||||
print '<td>'.length_accountg($line->numero_compte).'</td>';
|
print '<td>'.length_accountg($line->numero_compte).'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Subledger account
|
// Subledger account
|
||||||
if (!empty($arrayfields['t.subledger_account']['checked']))
|
if (!empty($arrayfields['t.subledger_account']['checked'])) {
|
||||||
{
|
|
||||||
print '<td>'.length_accounta($line->subledger_account).'</td>';
|
print '<td>'.length_accounta($line->subledger_account).'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Label operation
|
// Label operation
|
||||||
if (!empty($arrayfields['t.label_operation']['checked']))
|
if (!empty($arrayfields['t.label_operation']['checked'])) {
|
||||||
{
|
|
||||||
print '<td>'.$line->label_operation.'</td>';
|
print '<td>'.$line->label_operation.'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Amount debit
|
// Amount debit
|
||||||
if (!empty($arrayfields['t.debit']['checked']))
|
if (!empty($arrayfields['t.debit']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="nowrap right">'.($line->debit != 0 ? price($line->debit) : '').'</td>';
|
print '<td class="nowrap right">'.($line->debit != 0 ? price($line->debit) : '').'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
if (!$i) $totalarray['pos'][$totalarray['nbfield']] = 'totaldebit';
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
|
if (!$i) {
|
||||||
|
$totalarray['pos'][$totalarray['nbfield']] = 'totaldebit';
|
||||||
|
}
|
||||||
$totalarray['val']['totaldebit'] += $line->debit;
|
$totalarray['val']['totaldebit'] += $line->debit;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Amount credit
|
// Amount credit
|
||||||
if (!empty($arrayfields['t.credit']['checked']))
|
if (!empty($arrayfields['t.credit']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="nowrap right">'.($line->credit != 0 ? price($line->credit) : '').'</td>';
|
print '<td class="nowrap right">'.($line->credit != 0 ? price($line->credit) : '').'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
if (!$i) $totalarray['pos'][$totalarray['nbfield']] = 'totalcredit';
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
|
if (!$i) {
|
||||||
|
$totalarray['pos'][$totalarray['nbfield']] = 'totalcredit';
|
||||||
|
}
|
||||||
$totalarray['val']['totalcredit'] += $line->credit;
|
$totalarray['val']['totalcredit'] += $line->credit;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Lettering code
|
// Lettering code
|
||||||
if (!empty($arrayfields['t.lettering_code']['checked']))
|
if (!empty($arrayfields['t.lettering_code']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="center">'.$line->lettering_code.'</td>';
|
print '<td class="center">'.$line->lettering_code.'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fields from hook
|
// Fields from hook
|
||||||
@ -1055,24 +1098,27 @@ while ($i < min($num, $limit))
|
|||||||
print $hookmanager->resPrint;
|
print $hookmanager->resPrint;
|
||||||
|
|
||||||
// Creation operation date
|
// Creation operation date
|
||||||
if (!empty($arrayfields['t.date_creation']['checked']))
|
if (!empty($arrayfields['t.date_creation']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="center">'.dol_print_date($line->date_creation, 'dayhour').'</td>';
|
print '<td class="center">'.dol_print_date($line->date_creation, 'dayhour').'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Modification operation date
|
// Modification operation date
|
||||||
if (!empty($arrayfields['t.tms']['checked']))
|
if (!empty($arrayfields['t.tms']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="center">'.dol_print_date($line->date_modification, 'dayhour').'</td>';
|
print '<td class="center">'.dol_print_date($line->date_modification, 'dayhour').'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Exported operation date
|
// Exported operation date
|
||||||
if (!empty($arrayfields['t.date_export']['checked']))
|
if (!empty($arrayfields['t.date_export']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="center">'.dol_print_date($line->date_export, 'dayhour').'</td>';
|
print '<td class="center">'.dol_print_date($line->date_export, 'dayhour').'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Action column
|
// Action column
|
||||||
@ -1087,7 +1133,9 @@ while ($i < min($num, $limit))
|
|||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
|
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
|
|||||||
@ -85,12 +85,18 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : (empty($conf->global
|
|||||||
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
||||||
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
||||||
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
||||||
if (empty($page) || $page < 0) { $page = 0; }
|
if (empty($page) || $page < 0) {
|
||||||
|
$page = 0;
|
||||||
|
}
|
||||||
$offset = $limit * $page;
|
$offset = $limit * $page;
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
if ($sortorder == "") $sortorder = "ASC";
|
if ($sortorder == "") {
|
||||||
if ($sortfield == "") $sortfield = "t.doc_date,t.rowid";
|
$sortorder = "ASC";
|
||||||
|
}
|
||||||
|
if ($sortfield == "") {
|
||||||
|
$sortfield = "t.doc_date,t.rowid";
|
||||||
|
}
|
||||||
|
|
||||||
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
|
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
|
||||||
$object = new BookKeeping($db);
|
$object = new BookKeeping($db);
|
||||||
@ -113,11 +119,12 @@ if (empty($search_date_start) && empty($search_date_end) && !GETPOSTISSET('searc
|
|||||||
} else {
|
} else {
|
||||||
$month_start = ($conf->global->SOCIETE_FISCAL_MONTH_START ? ($conf->global->SOCIETE_FISCAL_MONTH_START) : 1);
|
$month_start = ($conf->global->SOCIETE_FISCAL_MONTH_START ? ($conf->global->SOCIETE_FISCAL_MONTH_START) : 1);
|
||||||
$year_start = dol_print_date(dol_now(), '%Y');
|
$year_start = dol_print_date(dol_now(), '%Y');
|
||||||
if (dol_print_date(dol_now(), '%m') < $month_start) $year_start--; // If current month is lower that starting fiscal month, we start last year
|
if (dol_print_date(dol_now(), '%m') < $month_start) {
|
||||||
|
$year_start--; // If current month is lower that starting fiscal month, we start last year
|
||||||
|
}
|
||||||
$year_end = $year_start + 1;
|
$year_end = $year_start + 1;
|
||||||
$month_end = $month_start - 1;
|
$month_end = $month_start - 1;
|
||||||
if ($month_end < 1)
|
if ($month_end < 1) {
|
||||||
{
|
|
||||||
$month_end = 12;
|
$month_end = 12;
|
||||||
$year_end--;
|
$year_end--;
|
||||||
}
|
}
|
||||||
@ -139,7 +146,9 @@ $arrayfields = array(
|
|||||||
't.date_export'=>array('label'=>$langs->trans("DateExport"), 'checked'=>1),
|
't.date_export'=>array('label'=>$langs->trans("DateExport"), 'checked'=>1),
|
||||||
);
|
);
|
||||||
|
|
||||||
if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) unset($arrayfields['t.lettering_code']);
|
if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) {
|
||||||
|
unset($arrayfields['t.lettering_code']);
|
||||||
|
}
|
||||||
|
|
||||||
if ($search_date_start && empty($search_date_startyear)) {
|
if ($search_date_start && empty($search_date_startyear)) {
|
||||||
$tmparray = dol_getdate($search_date_start);
|
$tmparray = dol_getdate($search_date_start);
|
||||||
@ -159,19 +168,23 @@ if ($search_date_end && empty($search_date_endyear)) {
|
|||||||
* Action
|
* Action
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (GETPOST('cancel', 'alpha')) { $action = 'list'; $massaction = ''; }
|
if (GETPOST('cancel', 'alpha')) {
|
||||||
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; }
|
$action = 'list'; $massaction = '';
|
||||||
|
}
|
||||||
|
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') {
|
||||||
|
$massaction = '';
|
||||||
|
}
|
||||||
|
|
||||||
$parameters = array('socid'=>$socid);
|
$parameters = array('socid'=>$socid);
|
||||||
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
||||||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
if ($reshook < 0) {
|
||||||
|
setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($reshook))
|
if (empty($reshook)) {
|
||||||
{
|
|
||||||
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
|
||||||
|
|
||||||
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // All tests are required to be compatible with all browsers
|
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All tests are required to be compatible with all browsers
|
||||||
{
|
|
||||||
$search_doc_date = '';
|
$search_doc_date = '';
|
||||||
$search_accountancy_code = '';
|
$search_accountancy_code = '';
|
||||||
$search_accountancy_code_start = '';
|
$search_accountancy_code_start = '';
|
||||||
@ -305,8 +318,7 @@ if ($action == 'delbookkeepingyearconfirm' && $user->rights->accounting->mouveme
|
|||||||
$deljournal = 0;
|
$deljournal = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($delmonth) || !empty($delyear) || !empty($deljournal))
|
if (!empty($delmonth) || !empty($delyear) || !empty($deljournal)) {
|
||||||
{
|
|
||||||
$result = $object->deleteByYearAndJournal($delyear, $deljournal, '', ($delmonth > 0 ? $delmonth : 0));
|
$result = $object->deleteByYearAndJournal($delyear, $deljournal, '', ($delmonth > 0 ? $delmonth : 0));
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessages($object->error, $object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
@ -418,7 +430,9 @@ if ($action == 'delbookkeepingyear') {
|
|||||||
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
|
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="action" value="list">';
|
print '<input type="hidden" name="action" value="list">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') {
|
||||||
|
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
}
|
||||||
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
||||||
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.'">';
|
||||||
@ -432,18 +446,27 @@ if (empty($reshook)) {
|
|||||||
$newcardbutton .= dolGetButtonTitle($langs->trans('NewAccountingMvt'), '', 'fa fa-plus-circle paddingleft', DOL_URL_ROOT.'/accountancy/bookkeeping/card.php?action=create');
|
$newcardbutton .= dolGetButtonTitle($langs->trans('NewAccountingMvt'), '', 'fa fa-plus-circle paddingleft', DOL_URL_ROOT.'/accountancy/bookkeeping/card.php?action=create');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
$param .= '&contextpage='.urlencode($contextpage);
|
||||||
|
}
|
||||||
|
if ($limit > 0 && $limit != $conf->liste_limit) {
|
||||||
|
$param .= '&limit='.urlencode($limit);
|
||||||
|
}
|
||||||
|
|
||||||
print_barre_liste($title_page, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $result, $nbtotalofrecords, 'title_accountancy', 0, $newcardbutton, '', $limit, 0, 0, 1);
|
print_barre_liste($title_page, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $result, $nbtotalofrecords, 'title_accountancy', 0, $newcardbutton, '', $limit, 0, 0, 1);
|
||||||
|
|
||||||
$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage;
|
$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage;
|
||||||
$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
|
$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
|
||||||
if ($massactionbutton) $selectedfields .= $form->showCheckAddButtons('checkforselect', 1);
|
if ($massactionbutton) {
|
||||||
|
$selectedfields .= $form->showCheckAddButtons('checkforselect', 1);
|
||||||
|
}
|
||||||
|
|
||||||
// Reverse sort order
|
// Reverse sort order
|
||||||
if (preg_match('/^asc/i', $sortorder)) $sortorder = "asc";
|
if (preg_match('/^asc/i', $sortorder)) {
|
||||||
else $sortorder = "desc";
|
$sortorder = "asc";
|
||||||
|
} else {
|
||||||
|
$sortorder = "desc";
|
||||||
|
}
|
||||||
|
|
||||||
$moreforfilter = '';
|
$moreforfilter = '';
|
||||||
|
|
||||||
@ -460,8 +483,11 @@ $moreforfilter .= '</div>';
|
|||||||
|
|
||||||
$parameters = array();
|
$parameters = array();
|
||||||
$reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook
|
$reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook
|
||||||
if (empty($reshook)) $moreforfilter .= $hookmanager->resPrint;
|
if (empty($reshook)) {
|
||||||
else $moreforfilter = $hookmanager->resPrint;
|
$moreforfilter .= $hookmanager->resPrint;
|
||||||
|
} else {
|
||||||
|
$moreforfilter = $hookmanager->resPrint;
|
||||||
|
}
|
||||||
|
|
||||||
print '<div class="liste_titre liste_titre_bydiv centpercent">';
|
print '<div class="liste_titre liste_titre_bydiv centpercent">';
|
||||||
print $moreforfilter;
|
print $moreforfilter;
|
||||||
@ -474,8 +500,7 @@ print '<table class="tagtable liste centpercent">';
|
|||||||
print '<tr class="liste_titre_filter">';
|
print '<tr class="liste_titre_filter">';
|
||||||
|
|
||||||
// Movement number
|
// Movement number
|
||||||
if (!empty($arrayfields['t.piece_num']['checked']))
|
if (!empty($arrayfields['t.piece_num']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="liste_titre"><input type="text" name="search_mvt_num" size="6" value="'.dol_escape_htmltag($search_mvt_num).'"></td>';
|
print '<td class="liste_titre"><input type="text" name="search_mvt_num" size="6" value="'.dol_escape_htmltag($search_mvt_num).'"></td>';
|
||||||
}
|
}
|
||||||
// Code journal
|
// Code journal
|
||||||
@ -512,8 +537,7 @@ if (!empty($arrayfields['t.credit']['checked'])) {
|
|||||||
print '<td class="liste_titre right"><input type="text" class="flat" name="search_credit" size="4" value="'.dol_escape_htmltag($search_credit).'"></td>';
|
print '<td class="liste_titre right"><input type="text" class="flat" name="search_credit" size="4" value="'.dol_escape_htmltag($search_credit).'"></td>';
|
||||||
}
|
}
|
||||||
// Lettering code
|
// Lettering code
|
||||||
if (!empty($arrayfields['t.lettering_code']['checked']))
|
if (!empty($arrayfields['t.lettering_code']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="liste_titre center">';
|
print '<td class="liste_titre center">';
|
||||||
print '<input type="text" size="3" class="flat" name="search_lettering_code" value="'.$search_lettering_code.'"/>';
|
print '<input type="text" size="3" class="flat" name="search_lettering_code" value="'.$search_lettering_code.'"/>';
|
||||||
print '<br><span class="nowrap"><input type="checkbox" name="search_not_reconciled" value="notreconciled"'.($search_not_reconciled == 'notreconciled' ? ' checked' : '').'>'.$langs->trans("NotReconciled").'</span>';
|
print '<br><span class="nowrap"><input type="checkbox" name="search_not_reconciled" value="notreconciled"'.($search_not_reconciled == 'notreconciled' ? ' checked' : '').'>'.$langs->trans("NotReconciled").'</span>';
|
||||||
@ -544,15 +568,33 @@ print '</td>';
|
|||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
if (!empty($arrayfields['t.piece_num']['checked'])) print_liste_field_titre($arrayfields['t.piece_num']['label'], $_SERVER['PHP_SELF'], "t.piece_num", "", $param, '', $sortfield, $sortorder);
|
if (!empty($arrayfields['t.piece_num']['checked'])) {
|
||||||
if (!empty($arrayfields['t.code_journal']['checked'])) print_liste_field_titre($arrayfields['t.code_journal']['label'], $_SERVER['PHP_SELF'], "t.code_journal", "", $param, '', $sortfield, $sortorder, 'center ');
|
print_liste_field_titre($arrayfields['t.piece_num']['label'], $_SERVER['PHP_SELF'], "t.piece_num", "", $param, '', $sortfield, $sortorder);
|
||||||
if (!empty($arrayfields['t.doc_date']['checked'])) print_liste_field_titre($arrayfields['t.doc_date']['label'], $_SERVER['PHP_SELF'], "t.doc_date", "", $param, '', $sortfield, $sortorder, 'center ');
|
}
|
||||||
if (!empty($arrayfields['t.doc_ref']['checked'])) print_liste_field_titre($arrayfields['t.doc_ref']['label'], $_SERVER['PHP_SELF'], "t.doc_ref", "", $param, "", $sortfield, $sortorder);
|
if (!empty($arrayfields['t.code_journal']['checked'])) {
|
||||||
if (!empty($arrayfields['t.label_operation']['checked'])) print_liste_field_titre($arrayfields['t.label_operation']['label'], $_SERVER['PHP_SELF'], "t.label_operation", "", $param, "", $sortfield, $sortorder);
|
print_liste_field_titre($arrayfields['t.code_journal']['label'], $_SERVER['PHP_SELF'], "t.code_journal", "", $param, '', $sortfield, $sortorder, 'center ');
|
||||||
if (!empty($arrayfields['t.debit']['checked'])) print_liste_field_titre($arrayfields['t.debit']['label'], $_SERVER['PHP_SELF'], "t.debit", "", $param, '', $sortfield, $sortorder, 'right ');
|
}
|
||||||
if (!empty($arrayfields['t.credit']['checked'])) print_liste_field_titre($arrayfields['t.credit']['label'], $_SERVER['PHP_SELF'], "t.credit", "", $param, '', $sortfield, $sortorder, 'right ');
|
if (!empty($arrayfields['t.doc_date']['checked'])) {
|
||||||
if (!empty($arrayfields['t.lettering_code']['checked'])) print_liste_field_titre($arrayfields['t.lettering_code']['label'], $_SERVER['PHP_SELF'], "t.lettering_code", "", $param, '', $sortfield, $sortorder, 'center ');
|
print_liste_field_titre($arrayfields['t.doc_date']['label'], $_SERVER['PHP_SELF'], "t.doc_date", "", $param, '', $sortfield, $sortorder, 'center ');
|
||||||
if (!empty($arrayfields['t.date_export']['checked'])) print_liste_field_titre($arrayfields['t.date_export']['label'], $_SERVER['PHP_SELF'], "t.date_export", "", $param, '', $sortfield, $sortorder, 'center ');
|
}
|
||||||
|
if (!empty($arrayfields['t.doc_ref']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['t.doc_ref']['label'], $_SERVER['PHP_SELF'], "t.doc_ref", "", $param, "", $sortfield, $sortorder);
|
||||||
|
}
|
||||||
|
if (!empty($arrayfields['t.label_operation']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['t.label_operation']['label'], $_SERVER['PHP_SELF'], "t.label_operation", "", $param, "", $sortfield, $sortorder);
|
||||||
|
}
|
||||||
|
if (!empty($arrayfields['t.debit']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['t.debit']['label'], $_SERVER['PHP_SELF'], "t.debit", "", $param, '', $sortfield, $sortorder, 'right ');
|
||||||
|
}
|
||||||
|
if (!empty($arrayfields['t.credit']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['t.credit']['label'], $_SERVER['PHP_SELF'], "t.credit", "", $param, '', $sortfield, $sortorder, 'right ');
|
||||||
|
}
|
||||||
|
if (!empty($arrayfields['t.lettering_code']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['t.lettering_code']['label'], $_SERVER['PHP_SELF'], "t.lettering_code", "", $param, '', $sortfield, $sortorder, 'center ');
|
||||||
|
}
|
||||||
|
if (!empty($arrayfields['t.date_export']['checked'])) {
|
||||||
|
print_liste_field_titre($arrayfields['t.date_export']['label'], $_SERVER['PHP_SELF'], "t.date_export", "", $param, '', $sortfield, $sortorder, 'center ');
|
||||||
|
}
|
||||||
// Hook fields
|
// Hook fields
|
||||||
$parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder);
|
$parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder);
|
||||||
$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
|
||||||
@ -571,8 +613,7 @@ $displayed_account_number = null; // Start with undefined to be able to distingu
|
|||||||
// --------------------------------------------------------------------
|
// --------------------------------------------------------------------
|
||||||
$i = 0;
|
$i = 0;
|
||||||
$totalarray = array();
|
$totalarray = array();
|
||||||
while ($i < min($num, $limit))
|
while ($i < min($num, $limit)) {
|
||||||
{
|
|
||||||
$line = $object->lines[$i];
|
$line = $object->lines[$i];
|
||||||
|
|
||||||
$total_debit += $line->debit;
|
$total_debit += $line->debit;
|
||||||
@ -586,8 +627,12 @@ while ($i < min($num, $limit))
|
|||||||
$colnumber = 5;
|
$colnumber = 5;
|
||||||
$colnumberend = 7;
|
$colnumberend = 7;
|
||||||
|
|
||||||
if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING) || empty($arrayfields['t.lettering_code']['checked'])) $colnumber--;
|
if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING) || empty($arrayfields['t.lettering_code']['checked'])) {
|
||||||
if (empty($arrayfields['t.date_export']['checked'])) $colnumber--;
|
$colnumber--;
|
||||||
|
}
|
||||||
|
if (empty($arrayfields['t.date_export']['checked'])) {
|
||||||
|
$colnumber--;
|
||||||
|
}
|
||||||
|
|
||||||
$colspan = $totalarray['nbfield'] - $colnumber;
|
$colspan = $totalarray['nbfield'] - $colnumber;
|
||||||
$colspanend = $totalarray['nbfield'] - $colnumberend;
|
$colspanend = $totalarray['nbfield'] - $colnumberend;
|
||||||
@ -603,8 +648,7 @@ while ($i < min($num, $limit))
|
|||||||
$balance = $sous_total_debit - $sous_total_credit;
|
$balance = $sous_total_debit - $sous_total_credit;
|
||||||
print '<tr class="liste_total">';
|
print '<tr class="liste_total">';
|
||||||
print '<td class="right" colspan="'.$colspan.'">'.$langs->trans("Balance").':</td>';
|
print '<td class="right" colspan="'.$colspan.'">'.$langs->trans("Balance").':</td>';
|
||||||
if ($balance > 0)
|
if ($balance > 0) {
|
||||||
{
|
|
||||||
print '<td class="nowraponall right">';
|
print '<td class="nowraponall right">';
|
||||||
print price($sous_total_debit - $sous_total_credit);
|
print price($sous_total_debit - $sous_total_credit);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -622,8 +666,11 @@ while ($i < min($num, $limit))
|
|||||||
// Show the break account
|
// Show the break account
|
||||||
print "<tr>";
|
print "<tr>";
|
||||||
print '<td colspan="'.($totalarray['nbfield'] ? $totalarray['nbfield'] : 10).'" style="font-weight:bold; border-bottom: 1pt solid black;">';
|
print '<td colspan="'.($totalarray['nbfield'] ? $totalarray['nbfield'] : 10).'" style="font-weight:bold; border-bottom: 1pt solid black;">';
|
||||||
if ($line->numero_compte != "" && $line->numero_compte != '-1') print length_accountg($line->numero_compte).' : '.$object->get_compte_desc($line->numero_compte);
|
if ($line->numero_compte != "" && $line->numero_compte != '-1') {
|
||||||
else print '<span class="error">'.$langs->trans("Unknown").'</span>';
|
print length_accountg($line->numero_compte).' : '.$object->get_compte_desc($line->numero_compte);
|
||||||
|
} else {
|
||||||
|
print '<span class="error">'.$langs->trans("Unknown").'</span>';
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
@ -638,38 +685,39 @@ while ($i < min($num, $limit))
|
|||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
// Piece number
|
// Piece number
|
||||||
if (!empty($arrayfields['t.piece_num']['checked']))
|
if (!empty($arrayfields['t.piece_num']['checked'])) {
|
||||||
{
|
|
||||||
print '<td>';
|
print '<td>';
|
||||||
$object->id = $line->id;
|
$object->id = $line->id;
|
||||||
$object->piece_num = $line->piece_num;
|
$object->piece_num = $line->piece_num;
|
||||||
print $object->getNomUrl(1, '', 0, '', 1);
|
print $object->getNomUrl(1, '', 0, '', 1);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Journal code
|
// Journal code
|
||||||
if (!empty($arrayfields['t.code_journal']['checked']))
|
if (!empty($arrayfields['t.code_journal']['checked'])) {
|
||||||
{
|
|
||||||
$accountingjournal = new AccountingJournal($db);
|
$accountingjournal = new AccountingJournal($db);
|
||||||
$result = $accountingjournal->fetch('', $line->code_journal);
|
$result = $accountingjournal->fetch('', $line->code_journal);
|
||||||
$journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0, '', 0) : $line->code_journal);
|
$journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0, '', 0) : $line->code_journal);
|
||||||
print '<td class="center">'.$journaltoshow.'</td>';
|
print '<td class="center">'.$journaltoshow.'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Document date
|
// Document date
|
||||||
if (!empty($arrayfields['t.doc_date']['checked']))
|
if (!empty($arrayfields['t.doc_date']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="center">'.dol_print_date($line->doc_date, 'day').'</td>';
|
print '<td class="center">'.dol_print_date($line->doc_date, 'day').'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Document ref
|
// Document ref
|
||||||
if (!empty($arrayfields['t.doc_ref']['checked']))
|
if (!empty($arrayfields['t.doc_ref']['checked'])) {
|
||||||
{
|
if ($line->doc_type == 'customer_invoice') {
|
||||||
if ($line->doc_type == 'customer_invoice')
|
|
||||||
{
|
|
||||||
$langs->loadLangs(array('bills'));
|
$langs->loadLangs(array('bills'));
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
||||||
@ -681,8 +729,7 @@ while ($i < min($num, $limit))
|
|||||||
$filedir = $conf->facture->dir_output.'/'.dol_sanitizeFileName($line->doc_ref);
|
$filedir = $conf->facture->dir_output.'/'.dol_sanitizeFileName($line->doc_ref);
|
||||||
$urlsource = $_SERVER['PHP_SELF'].'?id='.$objectstatic->id;
|
$urlsource = $_SERVER['PHP_SELF'].'?id='.$objectstatic->id;
|
||||||
$documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
|
$documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
|
||||||
} elseif ($line->doc_type == 'supplier_invoice')
|
} elseif ($line->doc_type == 'supplier_invoice') {
|
||||||
{
|
|
||||||
$langs->loadLangs(array('bills'));
|
$langs->loadLangs(array('bills'));
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
|
||||||
@ -694,8 +741,7 @@ while ($i < min($num, $limit))
|
|||||||
$filedir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($line->fk_doc, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
|
$filedir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($line->fk_doc, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
|
||||||
$subdir = get_exdir($objectstatic->id, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
|
$subdir = get_exdir($objectstatic->id, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
|
||||||
$documentlink = $formfile->getDocumentsLink($objectstatic->element, $subdir, $filedir);
|
$documentlink = $formfile->getDocumentsLink($objectstatic->element, $subdir, $filedir);
|
||||||
} elseif ($line->doc_type == 'expense_report')
|
} elseif ($line->doc_type == 'expense_report') {
|
||||||
{
|
|
||||||
$langs->loadLangs(array('trips'));
|
$langs->loadLangs(array('trips'));
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php';
|
||||||
@ -707,8 +753,7 @@ while ($i < min($num, $limit))
|
|||||||
$filedir = $conf->expensereport->dir_output.'/'.dol_sanitizeFileName($line->doc_ref);
|
$filedir = $conf->expensereport->dir_output.'/'.dol_sanitizeFileName($line->doc_ref);
|
||||||
$urlsource = $_SERVER['PHP_SELF'].'?id='.$objectstatic->id;
|
$urlsource = $_SERVER['PHP_SELF'].'?id='.$objectstatic->id;
|
||||||
$documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
|
$documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
|
||||||
} elseif ($line->doc_type == 'bank')
|
} elseif ($line->doc_type == 'bank') {
|
||||||
{
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
||||||
$objectstatic = new AccountLine($db);
|
$objectstatic = new AccountLine($db);
|
||||||
$objectstatic->fetch($line->fk_doc);
|
$objectstatic->fetch($line->fk_doc);
|
||||||
@ -722,8 +767,7 @@ while ($i < min($num, $limit))
|
|||||||
// Picto + Ref
|
// Picto + Ref
|
||||||
print '<td class="nobordernopadding">';
|
print '<td class="nobordernopadding">';
|
||||||
|
|
||||||
if ($line->doc_type == 'customer_invoice' || $line->doc_type == 'supplier_invoice' || $line->doc_type == 'expense_report')
|
if ($line->doc_type == 'customer_invoice' || $line->doc_type == 'supplier_invoice' || $line->doc_type == 'expense_report') {
|
||||||
{
|
|
||||||
print $objectstatic->getNomUrl(1, '', 0, 0, '', 0, -1, 1);
|
print $objectstatic->getNomUrl(1, '', 0, 0, '', 0, -1, 1);
|
||||||
print $documentlink;
|
print $documentlink;
|
||||||
} elseif ($line->doc_type == 'bank') {
|
} elseif ($line->doc_type == 'bank') {
|
||||||
@ -736,7 +780,9 @@ while ($i < min($num, $limit))
|
|||||||
print '</td></tr></table>';
|
print '</td></tr></table>';
|
||||||
|
|
||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Label operation
|
// Label operation
|
||||||
@ -744,38 +790,49 @@ while ($i < min($num, $limit))
|
|||||||
// Affiche un lien vers la facture client/fournisseur
|
// Affiche un lien vers la facture client/fournisseur
|
||||||
$doc_ref = preg_replace('/\(.*\)/', '', $line->doc_ref);
|
$doc_ref = preg_replace('/\(.*\)/', '', $line->doc_ref);
|
||||||
print strlen(length_accounta($line->subledger_account)) == 0 ? '<td>'.$line->label_operation.'</td>' : '<td>'.$line->label_operation.'<br><span style="font-size:0.8em">('.length_accounta($line->subledger_account).')</span></td>';
|
print strlen(length_accounta($line->subledger_account)) == 0 ? '<td>'.$line->label_operation.'</td>' : '<td>'.$line->label_operation.'<br><span style="font-size:0.8em">('.length_accounta($line->subledger_account).')</span></td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Amount debit
|
// Amount debit
|
||||||
if (!empty($arrayfields['t.debit']['checked']))
|
if (!empty($arrayfields['t.debit']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="nowrap right">'.($line->debit ? price($line->debit) : '').'</td>';
|
print '<td class="nowrap right">'.($line->debit ? price($line->debit) : '').'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
if (!$i) $totalarray['pos'][$totalarray['nbfield']] = 'totaldebit';
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
|
if (!$i) {
|
||||||
|
$totalarray['pos'][$totalarray['nbfield']] = 'totaldebit';
|
||||||
|
}
|
||||||
$totalarray['val']['totaldebit'] += $line->debit;
|
$totalarray['val']['totaldebit'] += $line->debit;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Amount credit
|
// Amount credit
|
||||||
if (!empty($arrayfields['t.credit']['checked'])) {
|
if (!empty($arrayfields['t.credit']['checked'])) {
|
||||||
print '<td class="nowrap right">'.($line->credit ? price($line->credit) : '').'</td>';
|
print '<td class="nowrap right">'.($line->credit ? price($line->credit) : '').'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
if (!$i) $totalarray['pos'][$totalarray['nbfield']] = 'totalcredit';
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
|
if (!$i) {
|
||||||
|
$totalarray['pos'][$totalarray['nbfield']] = 'totalcredit';
|
||||||
|
}
|
||||||
$totalarray['val']['totalcredit'] += $line->credit;
|
$totalarray['val']['totalcredit'] += $line->credit;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Lettering code
|
// Lettering code
|
||||||
if (!empty($arrayfields['t.lettering_code']['checked']))
|
if (!empty($arrayfields['t.lettering_code']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="center">'.$line->lettering_code.'</td>';
|
print '<td class="center">'.$line->lettering_code.'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Exported operation date
|
// Exported operation date
|
||||||
if (!empty($arrayfields['t.date_export']['checked']))
|
if (!empty($arrayfields['t.date_export']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="center">'.dol_print_date($line->date_export, 'dayhour').'</td>';
|
print '<td class="center">'.dol_print_date($line->date_export, 'dayhour').'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fields from hook
|
// Fields from hook
|
||||||
@ -794,7 +851,9 @@ while ($i < min($num, $limit))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
|
|
||||||
// Comptabilise le sous-total
|
// Comptabilise le sous-total
|
||||||
$sous_total_debit += $line->debit;
|
$sous_total_debit += $line->debit;
|
||||||
@ -818,8 +877,7 @@ if ($num > 0) {
|
|||||||
$balance = $sous_total_debit - $sous_total_credit;
|
$balance = $sous_total_debit - $sous_total_credit;
|
||||||
print '<tr class="liste_total">';
|
print '<tr class="liste_total">';
|
||||||
print '<td class="right" colspan="'.$colspan.'">'.$langs->trans("Balance").':</td>';
|
print '<td class="right" colspan="'.$colspan.'">'.$langs->trans("Balance").':</td>';
|
||||||
if ($balance > 0)
|
if ($balance > 0) {
|
||||||
{
|
|
||||||
print '<td class="nowraponall right">';
|
print '<td class="nowraponall right">';
|
||||||
print price($sous_total_debit - $sous_total_credit);
|
print price($sous_total_debit - $sous_total_credit);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|||||||
@ -503,8 +503,7 @@ print '<table class="tagtable liste centpercent">';
|
|||||||
print '<tr class="liste_titre_filter">';
|
print '<tr class="liste_titre_filter">';
|
||||||
|
|
||||||
// Movement number
|
// Movement number
|
||||||
if (!empty($arrayfields['t.piece_num']['checked']))
|
if (!empty($arrayfields['t.piece_num']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="liste_titre"><input type="text" name="search_mvt_num" size="6" value="'.dol_escape_htmltag($search_mvt_num).'"></td>';
|
print '<td class="liste_titre"><input type="text" name="search_mvt_num" size="6" value="'.dol_escape_htmltag($search_mvt_num).'"></td>';
|
||||||
}
|
}
|
||||||
// Code journal
|
// Code journal
|
||||||
@ -631,8 +630,12 @@ while ($i < min($num, $limit)) {
|
|||||||
$colnumber = 5;
|
$colnumber = 5;
|
||||||
$colnumberend = 7;
|
$colnumberend = 7;
|
||||||
|
|
||||||
if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING) || empty($arrayfields['t.lettering_code']['checked'])) $colnumber--;
|
if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING) || empty($arrayfields['t.lettering_code']['checked'])) {
|
||||||
if (empty($arrayfields['t.date_export']['checked'])) $colnumber--;
|
$colnumber--;
|
||||||
|
}
|
||||||
|
if (empty($arrayfields['t.date_export']['checked'])) {
|
||||||
|
$colnumber--;
|
||||||
|
}
|
||||||
|
|
||||||
$colspan = $totalarray['nbfield'] - $colnumber;
|
$colspan = $totalarray['nbfield'] - $colnumber;
|
||||||
$colspanend = $totalarray['nbfield'] - $colnumberend;
|
$colspanend = $totalarray['nbfield'] - $colnumberend;
|
||||||
@ -838,10 +841,11 @@ while ($i < min($num, $limit)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Exported operation date
|
// Exported operation date
|
||||||
if (!empty($arrayfields['t.date_export']['checked']))
|
if (!empty($arrayfields['t.date_export']['checked'])) {
|
||||||
{
|
|
||||||
print '<td class="center">'.dol_print_date($line->date_export, 'dayhour').'</td>';
|
print '<td class="center">'.dol_print_date($line->date_export, 'dayhour').'</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) {
|
||||||
|
$totalarray['nbfield']++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fields from hook
|
// Fields from hook
|
||||||
|
|||||||
@ -145,7 +145,7 @@ print dol_get_fiche_end();
|
|||||||
|
|
||||||
$sql = "SELECT bk.rowid, bk.doc_date, bk.doc_type, bk.doc_ref, ";
|
$sql = "SELECT bk.rowid, bk.doc_date, bk.doc_type, bk.doc_ref, ";
|
||||||
$sql .= " bk.subledger_account, bk.numero_compte , bk.label_compte, bk.debit, ";
|
$sql .= " bk.subledger_account, bk.numero_compte , bk.label_compte, bk.debit, ";
|
||||||
$sql .= " bk.credit, bk.montant , bk.sens , bk.code_journal , bk.piece_num, bk.lettering_code ";
|
$sql .= " bk.credit, bk.montant, bk.sens, bk.code_journal, bk.piece_num, bk.lettering_code";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as bk";
|
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as bk";
|
||||||
$sql .= " WHERE (bk.subledger_account = '".$db->escape($object->code_compta)."' AND bk.numero_compte = '".$db->escape($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER)."' )";
|
$sql .= " WHERE (bk.subledger_account = '".$db->escape($object->code_compta)."' AND bk.numero_compte = '".$db->escape($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER)."' )";
|
||||||
|
|
||||||
@ -225,7 +225,6 @@ if ($resql) {
|
|||||||
|
|
||||||
// Piece
|
// Piece
|
||||||
print '<td><input type="text" name="search_doc_ref" value="' . $search_doc_ref . '"></td>';
|
print '<td><input type="text" name="search_doc_ref" value="' . $search_doc_ref . '"></td>';
|
||||||
|
|
||||||
print '<td colspan="6"> </td>';
|
print '<td colspan="6"> </td>';
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
$searchpicto = $form->showFilterButtons();
|
$searchpicto = $form->showFilterButtons();
|
||||||
|
|||||||
@ -144,7 +144,7 @@ print dol_get_fiche_end();
|
|||||||
|
|
||||||
$sql = "SELECT bk.rowid, bk.doc_date, bk.doc_type, bk.doc_ref, ";
|
$sql = "SELECT bk.rowid, bk.doc_date, bk.doc_type, bk.doc_ref, ";
|
||||||
$sql .= " bk.subledger_account, bk.numero_compte , bk.label_compte, bk.debit, ";
|
$sql .= " bk.subledger_account, bk.numero_compte , bk.label_compte, bk.debit, ";
|
||||||
$sql .= " bk.credit, bk.montant , bk.sens , bk.code_journal , bk.piece_num, bk.lettering_code, bk.date_validated ";
|
$sql .= " bk.credit, bk.montant, bk.sens, bk.code_journal, bk.piece_num, bk.lettering_code, bk.date_validated ";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as bk";
|
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as bk";
|
||||||
$sql .= " WHERE (bk.subledger_account = '".$db->escape($object->code_compta_fournisseur)."' AND bk.numero_compte = '".$db->escape($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER)."' )";
|
$sql .= " WHERE (bk.subledger_account = '".$db->escape($object->code_compta_fournisseur)."' AND bk.numero_compte = '".$db->escape($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER)."' )";
|
||||||
if (dol_strlen($search_date_start) || dol_strlen($search_date_end)) {
|
if (dol_strlen($search_date_start) || dol_strlen($search_date_end)) {
|
||||||
@ -222,7 +222,6 @@ if ($resql) {
|
|||||||
|
|
||||||
// Piece
|
// Piece
|
||||||
print '<td><input type="text" name="search_doc_ref" value="' . $search_doc_ref . '"></td>';
|
print '<td><input type="text" name="search_doc_ref" value="' . $search_doc_ref . '"></td>';
|
||||||
|
|
||||||
print '<td colspan="6"> </td>';
|
print '<td colspan="6"> </td>';
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
$searchpicto = $form->showFilterButtons();
|
$searchpicto = $form->showFilterButtons();
|
||||||
|
|||||||
@ -153,22 +153,42 @@ class AccountancyCategory // extends CommonObject
|
|||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
// Clean parameters
|
// Clean parameters
|
||||||
if (isset($this->code)) $this->code = trim($this->code);
|
if (isset($this->code)) {
|
||||||
if (isset($this->label)) $this->label = trim($this->label);
|
$this->code = trim($this->code);
|
||||||
if (isset($this->range_account)) $this->range_account = trim($this->range_account);
|
}
|
||||||
if (isset($this->sens)) $this->sens = (int) $this->sens;
|
if (isset($this->label)) {
|
||||||
if (isset($this->category_type)) $this->category_type = (int) $this->category_type;
|
$this->label = trim($this->label);
|
||||||
if (isset($this->formula)) $this->formula = trim($this->formula);
|
}
|
||||||
if (isset($this->position)) $this->position = (int) $this->position;
|
if (isset($this->range_account)) {
|
||||||
if (isset($this->fk_country)) $this->fk_country = (int) $this->fk_country;
|
$this->range_account = trim($this->range_account);
|
||||||
if (isset($this->active)) $this->active = (int) $this->active;
|
}
|
||||||
|
if (isset($this->sens)) {
|
||||||
|
$this->sens = (int) $this->sens;
|
||||||
|
}
|
||||||
|
if (isset($this->category_type)) {
|
||||||
|
$this->category_type = (int) $this->category_type;
|
||||||
|
}
|
||||||
|
if (isset($this->formula)) {
|
||||||
|
$this->formula = trim($this->formula);
|
||||||
|
}
|
||||||
|
if (isset($this->position)) {
|
||||||
|
$this->position = (int) $this->position;
|
||||||
|
}
|
||||||
|
if (isset($this->fk_country)) {
|
||||||
|
$this->fk_country = (int) $this->fk_country;
|
||||||
|
}
|
||||||
|
if (isset($this->active)) {
|
||||||
|
$this->active = (int) $this->active;
|
||||||
|
}
|
||||||
|
|
||||||
// Check parameters
|
// Check parameters
|
||||||
// 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."c_accounting_category(";
|
$sql = "INSERT INTO ".MAIN_DB_PREFIX."c_accounting_category(";
|
||||||
if ($this->rowid > 0) $sql .= "rowid, ";
|
if ($this->rowid > 0) {
|
||||||
|
$sql .= "rowid, ";
|
||||||
|
}
|
||||||
$sql .= "code, ";
|
$sql .= "code, ";
|
||||||
$sql .= "label, ";
|
$sql .= "label, ";
|
||||||
$sql .= "range_account, ";
|
$sql .= "range_account, ";
|
||||||
@ -180,7 +200,9 @@ class AccountancyCategory // extends CommonObject
|
|||||||
$sql .= "active, ";
|
$sql .= "active, ";
|
||||||
$sql .= "entity";
|
$sql .= "entity";
|
||||||
$sql .= ") VALUES (";
|
$sql .= ") VALUES (";
|
||||||
if ($this->rowid > 0) $sql .= " ".$this->rowid.",";
|
if ($this->rowid > 0) {
|
||||||
|
$sql .= " ".$this->rowid.",";
|
||||||
|
}
|
||||||
$sql .= " ".(!isset($this->code) ? 'NULL' : "'".$this->db->escape($this->code)."'").",";
|
$sql .= " ".(!isset($this->code) ? 'NULL' : "'".$this->db->escape($this->code)."'").",";
|
||||||
$sql .= " ".(!isset($this->label) ? 'NULL' : "'".$this->db->escape($this->label)."'").",";
|
$sql .= " ".(!isset($this->label) ? 'NULL' : "'".$this->db->escape($this->label)."'").",";
|
||||||
$sql .= " ".(!isset($this->range_account) ? 'NULL' : "'".$this->db->escape($this->range_account)."'").",";
|
$sql .= " ".(!isset($this->range_account) ? 'NULL' : "'".$this->db->escape($this->range_account)."'").",";
|
||||||
@ -197,13 +219,13 @@ class AccountancyCategory // extends CommonObject
|
|||||||
|
|
||||||
dol_syslog(get_class($this)."::create", LOG_DEBUG);
|
dol_syslog(get_class($this)."::create", LOG_DEBUG);
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
if (!$resql) { $error++; $this->errors[] = "Error ".$this->db->lasterror(); }
|
if (!$resql) {
|
||||||
|
$error++; $this->errors[] = "Error ".$this->db->lasterror();
|
||||||
|
}
|
||||||
|
|
||||||
// Commit or rollback
|
// Commit or rollback
|
||||||
if ($error)
|
if ($error) {
|
||||||
{
|
foreach ($this->errors as $errmsg) {
|
||||||
foreach ($this->errors as $errmsg)
|
|
||||||
{
|
|
||||||
dol_syslog(get_class($this)."::create ".$errmsg, LOG_ERR);
|
dol_syslog(get_class($this)."::create ".$errmsg, LOG_ERR);
|
||||||
$this->error .= ($this->error ? ', '.$errmsg : $errmsg);
|
$this->error .= ($this->error ? ', '.$errmsg : $errmsg);
|
||||||
}
|
}
|
||||||
@ -238,19 +260,21 @@ class AccountancyCategory // extends CommonObject
|
|||||||
$sql .= " t.fk_country,";
|
$sql .= " t.fk_country,";
|
||||||
$sql .= " t.active";
|
$sql .= " t.active";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."c_accounting_category as t";
|
$sql .= " FROM ".MAIN_DB_PREFIX."c_accounting_category as t";
|
||||||
if ($id) $sql .= " WHERE t.rowid = ".$id;
|
if ($id) {
|
||||||
else {
|
$sql .= " WHERE t.rowid = ".$id;
|
||||||
|
} else {
|
||||||
$sql .= " WHERE t.entity IN (".getEntity('c_accounting_category').")"; // Dont't use entity if you use rowid
|
$sql .= " WHERE t.entity IN (".getEntity('c_accounting_category').")"; // Dont't use entity if you use rowid
|
||||||
if ($code) $sql .= " AND t.code = '".$this->db->escape($code)."'";
|
if ($code) {
|
||||||
elseif ($label) $sql .= " AND t.label = '".$this->db->escape($label)."'";
|
$sql .= " AND t.code = '".$this->db->escape($code)."'";
|
||||||
|
} elseif ($label) {
|
||||||
|
$sql .= " AND t.label = '".$this->db->escape($label)."'";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
|
dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
if ($resql)
|
if ($resql) {
|
||||||
{
|
if ($this->db->num_rows($resql)) {
|
||||||
if ($this->db->num_rows($resql))
|
|
||||||
{
|
|
||||||
$obj = $this->db->fetch_object($resql);
|
$obj = $this->db->fetch_object($resql);
|
||||||
|
|
||||||
$this->id = $obj->rowid;
|
$this->id = $obj->rowid;
|
||||||
@ -287,15 +311,33 @@ class AccountancyCategory // extends CommonObject
|
|||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
// Clean parameters
|
// Clean parameters
|
||||||
if (isset($this->code)) $this->code = trim($this->code);
|
if (isset($this->code)) {
|
||||||
if (isset($this->label)) $this->label = trim($this->label);
|
$this->code = trim($this->code);
|
||||||
if (isset($this->range_account)) $this->range_account = trim($this->range_account);
|
}
|
||||||
if (isset($this->sens)) $this->sens = (int) $this->sens;
|
if (isset($this->label)) {
|
||||||
if (isset($this->category_type)) $this->category_type = (int) $this->category_type;
|
$this->label = trim($this->label);
|
||||||
if (isset($this->formula)) $this->formula = trim($this->formula);
|
}
|
||||||
if (isset($this->position)) $this->position = (int) $this->position;
|
if (isset($this->range_account)) {
|
||||||
if (isset($this->fk_country)) $this->fk_country = (int) $this->fk_country;
|
$this->range_account = trim($this->range_account);
|
||||||
if (isset($this->active)) $this->active = (int) $this->active;
|
}
|
||||||
|
if (isset($this->sens)) {
|
||||||
|
$this->sens = (int) $this->sens;
|
||||||
|
}
|
||||||
|
if (isset($this->category_type)) {
|
||||||
|
$this->category_type = (int) $this->category_type;
|
||||||
|
}
|
||||||
|
if (isset($this->formula)) {
|
||||||
|
$this->formula = trim($this->formula);
|
||||||
|
}
|
||||||
|
if (isset($this->position)) {
|
||||||
|
$this->position = (int) $this->position;
|
||||||
|
}
|
||||||
|
if (isset($this->fk_country)) {
|
||||||
|
$this->fk_country = (int) $this->fk_country;
|
||||||
|
}
|
||||||
|
if (isset($this->active)) {
|
||||||
|
$this->active = (int) $this->active;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Check parameters
|
// Check parameters
|
||||||
@ -318,13 +360,13 @@ class AccountancyCategory // extends CommonObject
|
|||||||
|
|
||||||
dol_syslog(get_class($this)."::update", LOG_DEBUG);
|
dol_syslog(get_class($this)."::update", LOG_DEBUG);
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
if (!$resql) { $error++; $this->errors[] = "Error ".$this->db->lasterror(); }
|
if (!$resql) {
|
||||||
|
$error++; $this->errors[] = "Error ".$this->db->lasterror();
|
||||||
|
}
|
||||||
|
|
||||||
// Commit or rollback
|
// Commit or rollback
|
||||||
if ($error)
|
if ($error) {
|
||||||
{
|
foreach ($this->errors as $errmsg) {
|
||||||
foreach ($this->errors as $errmsg)
|
|
||||||
{
|
|
||||||
dol_syslog(get_class($this)."::update ".$errmsg, LOG_ERR);
|
dol_syslog(get_class($this)."::update ".$errmsg, LOG_ERR);
|
||||||
$this->error .= ($this->error ? ', '.$errmsg : $errmsg);
|
$this->error .= ($this->error ? ', '.$errmsg : $errmsg);
|
||||||
}
|
}
|
||||||
@ -356,13 +398,13 @@ class AccountancyCategory // extends CommonObject
|
|||||||
|
|
||||||
dol_syslog(get_class($this)."::delete", LOG_DEBUG);
|
dol_syslog(get_class($this)."::delete", LOG_DEBUG);
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
if (!$resql) { $error++; $this->errors[] = "Error ".$this->db->lasterror(); }
|
if (!$resql) {
|
||||||
|
$error++; $this->errors[] = "Error ".$this->db->lasterror();
|
||||||
|
}
|
||||||
|
|
||||||
// Commit or rollback
|
// Commit or rollback
|
||||||
if ($error)
|
if ($error) {
|
||||||
{
|
foreach ($this->errors as $errmsg) {
|
||||||
foreach ($this->errors as $errmsg)
|
|
||||||
{
|
|
||||||
dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR);
|
dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR);
|
||||||
$this->error .= ($this->error ? ', '.$errmsg : $errmsg);
|
$this->error .= ($this->error ? ', '.$errmsg : $errmsg);
|
||||||
}
|
}
|
||||||
@ -537,13 +579,13 @@ class AccountancyCategory // extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
$accountincptsadded = array();
|
$accountincptsadded = array();
|
||||||
while ($obj = $this->db->fetch_object($resql))
|
while ($obj = $this->db->fetch_object($resql)) {
|
||||||
{
|
|
||||||
$account_number_formated = length_accountg($obj->account_number);
|
$account_number_formated = length_accountg($obj->account_number);
|
||||||
if (!empty($accountincptsadded[$account_number_formated])) continue;
|
if (!empty($accountincptsadded[$account_number_formated])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (array_key_exists($account_number_formated, $cpts))
|
if (array_key_exists($account_number_formated, $cpts)) {
|
||||||
{
|
|
||||||
$accountincptsadded[$account_number_formated] = 1;
|
$accountincptsadded[$account_number_formated] = 1;
|
||||||
// We found an account number that is in list $cpts of account to add
|
// We found an account number that is in list $cpts of account to add
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."accounting_account";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."accounting_account";
|
||||||
@ -687,48 +729,49 @@ class AccountancyCategory // extends CommonObject
|
|||||||
$this->sdcpermonth = array();
|
$this->sdcpermonth = array();
|
||||||
|
|
||||||
$sql = "SELECT SUM(t.debit) as debit, SUM(t.credit) as credit";
|
$sql = "SELECT SUM(t.debit) as debit, SUM(t.credit) as credit";
|
||||||
if (is_array($cpt)) $sql .= ", t.numero_compte as accountancy_account";
|
if (is_array($cpt)) {
|
||||||
|
$sql .= ", t.numero_compte as accountancy_account";
|
||||||
|
}
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as t";
|
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as t";
|
||||||
//if (in_array($this->db->type, array('mysql', 'mysqli'))) $sql.=' USE INDEX idx_accounting_bookkeeping_doc_date';
|
//if (in_array($this->db->type, array('mysql', 'mysqli'))) $sql.=' USE INDEX idx_accounting_bookkeeping_doc_date';
|
||||||
$sql .= " WHERE t.entity = ".$conf->entity;
|
$sql .= " WHERE t.entity = ".$conf->entity;
|
||||||
if (is_array($cpt))
|
if (is_array($cpt)) {
|
||||||
{
|
|
||||||
$listofaccount = '';
|
$listofaccount = '';
|
||||||
foreach ($cpt as $cptcursor)
|
foreach ($cpt as $cptcursor) {
|
||||||
{
|
if ($listofaccount) {
|
||||||
if ($listofaccount) $listofaccount .= ",";
|
$listofaccount .= ",";
|
||||||
|
}
|
||||||
$listofaccount .= "'".$cptcursor."'";
|
$listofaccount .= "'".$cptcursor."'";
|
||||||
}
|
}
|
||||||
$sql .= " AND t.numero_compte IN (".$listofaccount.")";
|
$sql .= " AND t.numero_compte IN (".$listofaccount.")";
|
||||||
} else {
|
} else {
|
||||||
$sql .= " AND t.numero_compte = '".$this->db->escape($cpt)."'";
|
$sql .= " AND t.numero_compte = '".$this->db->escape($cpt)."'";
|
||||||
}
|
}
|
||||||
if (!empty($date_start) && !empty($date_end) && (empty($month) || empty($year))) // If month/year provided, it is stronger than filter date_start/date_end
|
if (!empty($date_start) && !empty($date_end) && (empty($month) || empty($year))) { // If month/year provided, it is stronger than filter date_start/date_end
|
||||||
$sql .= " AND (t.doc_date BETWEEN '".$this->db->idate($date_start)."' AND '".$this->db->idate($date_end)."')";
|
$sql .= " AND (t.doc_date BETWEEN '".$this->db->idate($date_start)."' AND '".$this->db->idate($date_end)."')";
|
||||||
|
}
|
||||||
if (!empty($month) && !empty($year)) {
|
if (!empty($month) && !empty($year)) {
|
||||||
$sql .= " AND (t.doc_date BETWEEN '".$this->db->idate(dol_get_first_day($year, $month))."' AND '".$this->db->idate(dol_get_last_day($year, $month))."')";
|
$sql .= " AND (t.doc_date BETWEEN '".$this->db->idate(dol_get_first_day($year, $month))."' AND '".$this->db->idate(dol_get_last_day($year, $month))."')";
|
||||||
}
|
}
|
||||||
if ($thirdparty_code != 'nofilter')
|
if ($thirdparty_code != 'nofilter') {
|
||||||
{
|
|
||||||
$sql .= " AND t.thirdparty_code = '".$this->db->escape($thirdparty_code)."'";
|
$sql .= " AND t.thirdparty_code = '".$this->db->escape($thirdparty_code)."'";
|
||||||
}
|
}
|
||||||
if (is_array($cpt)) $sql .= " GROUP BY t.numero_compte";
|
if (is_array($cpt)) {
|
||||||
|
$sql .= " GROUP BY t.numero_compte";
|
||||||
|
}
|
||||||
//print $sql;
|
//print $sql;
|
||||||
|
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
if ($resql)
|
if ($resql) {
|
||||||
{
|
|
||||||
$num = $this->db->num_rows($resql);
|
$num = $this->db->num_rows($resql);
|
||||||
if ($num)
|
if ($num) {
|
||||||
{
|
|
||||||
$obj = $this->db->fetch_object($resql);
|
$obj = $this->db->fetch_object($resql);
|
||||||
if ($sens == 1) {
|
if ($sens == 1) {
|
||||||
$this->sdc = $obj->debit - $obj->credit;
|
$this->sdc = $obj->debit - $obj->credit;
|
||||||
} else {
|
} else {
|
||||||
$this->sdc = $obj->credit - $obj->debit;
|
$this->sdc = $obj->credit - $obj->debit;
|
||||||
}
|
}
|
||||||
if (is_array($cpt))
|
if (is_array($cpt)) {
|
||||||
{
|
|
||||||
$this->sdcperaccount[$obj->accountancy_account] = $this->sdc;
|
$this->sdcperaccount[$obj->accountancy_account] = $this->sdc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -760,7 +803,9 @@ class AccountancyCategory // extends CommonObject
|
|||||||
$sql .= " FROM ".MAIN_DB_PREFIX."c_accounting_category as c";
|
$sql .= " FROM ".MAIN_DB_PREFIX."c_accounting_category as c";
|
||||||
$sql .= " WHERE c.active = 1";
|
$sql .= " WHERE c.active = 1";
|
||||||
$sql .= " AND c.entity = ".$conf->entity;
|
$sql .= " AND c.entity = ".$conf->entity;
|
||||||
if ($categorytype >= 0) $sql .= " AND c.category_type = 1";
|
if ($categorytype >= 0) {
|
||||||
|
$sql .= " AND c.category_type = 1";
|
||||||
|
}
|
||||||
$sql .= " AND (c.fk_country = ".$mysoc->country_id." OR c.fk_country = 0)";
|
$sql .= " AND (c.fk_country = ".$mysoc->country_id." OR c.fk_country = 0)";
|
||||||
$sql .= " ORDER BY c.position ASC";
|
$sql .= " ORDER BY c.position ASC";
|
||||||
|
|
||||||
@ -815,8 +860,7 @@ class AccountancyCategory // extends CommonObject
|
|||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($cat_id))
|
if (!empty($cat_id)) {
|
||||||
{
|
|
||||||
$sql = "SELECT t.rowid, t.account_number, t.label as account_label";
|
$sql = "SELECT t.rowid, t.account_number, t.label as account_label";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as t";
|
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as t";
|
||||||
$sql .= " WHERE t.fk_accounting_category = ".$cat_id;
|
$sql .= " WHERE t.fk_accounting_category = ".$cat_id;
|
||||||
@ -838,8 +882,7 @@ class AccountancyCategory // extends CommonObject
|
|||||||
$num = $this->db->num_rows($resql);
|
$num = $this->db->num_rows($resql);
|
||||||
$data = array();
|
$data = array();
|
||||||
if ($num) {
|
if ($num) {
|
||||||
while ($obj = $this->db->fetch_object($resql))
|
while ($obj = $this->db->fetch_object($resql)) {
|
||||||
{
|
|
||||||
$data[] = array(
|
$data[] = array(
|
||||||
'id' => $obj->rowid,
|
'id' => $obj->rowid,
|
||||||
'account_number' => $obj->account_number,
|
'account_number' => $obj->account_number,
|
||||||
|
|||||||
@ -277,61 +277,61 @@ class AccountancyExport
|
|||||||
|
|
||||||
|
|
||||||
switch ($formatexportset) {
|
switch ($formatexportset) {
|
||||||
case self::$EXPORT_TYPE_CONFIGURABLE :
|
case self::$EXPORT_TYPE_CONFIGURABLE:
|
||||||
$this->exportConfigurable($TData);
|
$this->exportConfigurable($TData);
|
||||||
break;
|
break;
|
||||||
case self::$EXPORT_TYPE_CEGID :
|
case self::$EXPORT_TYPE_CEGID:
|
||||||
$this->exportCegid($TData);
|
$this->exportCegid($TData);
|
||||||
break;
|
break;
|
||||||
case self::$EXPORT_TYPE_COALA :
|
case self::$EXPORT_TYPE_COALA:
|
||||||
$this->exportCoala($TData);
|
$this->exportCoala($TData);
|
||||||
break;
|
break;
|
||||||
case self::$EXPORT_TYPE_BOB50 :
|
case self::$EXPORT_TYPE_BOB50:
|
||||||
$this->exportBob50($TData);
|
$this->exportBob50($TData);
|
||||||
break;
|
break;
|
||||||
case self::$EXPORT_TYPE_CIEL :
|
case self::$EXPORT_TYPE_CIEL:
|
||||||
$this->exportCiel($TData);
|
$this->exportCiel($TData);
|
||||||
break;
|
break;
|
||||||
case self::$EXPORT_TYPE_QUADRATUS :
|
case self::$EXPORT_TYPE_QUADRATUS:
|
||||||
$this->exportQuadratus($TData);
|
$this->exportQuadratus($TData);
|
||||||
break;
|
break;
|
||||||
case self::$EXPORT_TYPE_WINFIC :
|
case self::$EXPORT_TYPE_WINFIC:
|
||||||
$this->exportWinfic($TData);
|
$this->exportWinfic($TData);
|
||||||
break;
|
break;
|
||||||
case self::$EXPORT_TYPE_EBP :
|
case self::$EXPORT_TYPE_EBP:
|
||||||
$this->exportEbp($TData);
|
$this->exportEbp($TData);
|
||||||
break;
|
break;
|
||||||
case self::$EXPORT_TYPE_COGILOG :
|
case self::$EXPORT_TYPE_COGILOG:
|
||||||
$this->exportCogilog($TData);
|
$this->exportCogilog($TData);
|
||||||
break;
|
break;
|
||||||
case self::$EXPORT_TYPE_AGIRIS :
|
case self::$EXPORT_TYPE_AGIRIS:
|
||||||
$this->exportAgiris($TData);
|
$this->exportAgiris($TData);
|
||||||
break;
|
break;
|
||||||
case self::$EXPORT_TYPE_OPENCONCERTO :
|
case self::$EXPORT_TYPE_OPENCONCERTO:
|
||||||
$this->exportOpenConcerto($TData);
|
$this->exportOpenConcerto($TData);
|
||||||
break;
|
break;
|
||||||
case self::$EXPORT_TYPE_SAGE50_SWISS :
|
case self::$EXPORT_TYPE_SAGE50_SWISS:
|
||||||
$this->exportSAGE50SWISS($TData);
|
$this->exportSAGE50SWISS($TData);
|
||||||
break;
|
break;
|
||||||
case self::$EXPORT_TYPE_CHARLEMAGNE :
|
case self::$EXPORT_TYPE_CHARLEMAGNE:
|
||||||
$this->exportCharlemagne($TData);
|
$this->exportCharlemagne($TData);
|
||||||
break;
|
break;
|
||||||
case self::$EXPORT_TYPE_LDCOMPTA :
|
case self::$EXPORT_TYPE_LDCOMPTA:
|
||||||
$this->exportLDCompta($TData);
|
$this->exportLDCompta($TData);
|
||||||
break;
|
break;
|
||||||
case self::$EXPORT_TYPE_LDCOMPTA10 :
|
case self::$EXPORT_TYPE_LDCOMPTA10:
|
||||||
$this->exportLDCompta10($TData);
|
$this->exportLDCompta10($TData);
|
||||||
break;
|
break;
|
||||||
case self::$EXPORT_TYPE_GESTIMUMV3 :
|
case self::$EXPORT_TYPE_GESTIMUMV3:
|
||||||
$this->exportGestimumV3($TData);
|
$this->exportGestimumV3($TData);
|
||||||
break;
|
break;
|
||||||
case self::$EXPORT_TYPE_GESTIMUMV5 :
|
case self::$EXPORT_TYPE_GESTIMUMV5:
|
||||||
$this->exportGestimumV5($TData);
|
$this->exportGestimumV5($TData);
|
||||||
break;
|
break;
|
||||||
case self::$EXPORT_TYPE_FEC :
|
case self::$EXPORT_TYPE_FEC:
|
||||||
$this->exportFEC($TData);
|
$this->exportFEC($TData);
|
||||||
break;
|
break;
|
||||||
case self::$EXPORT_TYPE_FEC2 :
|
case self::$EXPORT_TYPE_FEC2:
|
||||||
$this->exportFEC2($TData);
|
$this->exportFEC2($TData);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -359,9 +359,9 @@ class AccountancyExport
|
|||||||
print length_accountg($line->numero_compte).$separator;
|
print length_accountg($line->numero_compte).$separator;
|
||||||
print length_accounta($line->subledger_account).$separator;
|
print length_accounta($line->subledger_account).$separator;
|
||||||
print $line->sens.$separator;
|
print $line->sens.$separator;
|
||||||
print price($line->montant).$separator;
|
print price2fec(abs($line->debit - $line->credit)).$separator;
|
||||||
print $line->label_operation.$separator;
|
print dol_string_unaccent($line->label_operation).$separator;
|
||||||
print $line->doc_ref;
|
print dol_string_unaccent($line->doc_ref);
|
||||||
print $end_line;
|
print $end_line;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -387,11 +387,11 @@ class AccountancyExport
|
|||||||
print $line->label_operation.$separator;
|
print $line->label_operation.$separator;
|
||||||
print $date.$separator;
|
print $date.$separator;
|
||||||
if ($line->sens == 'D') {
|
if ($line->sens == 'D') {
|
||||||
print price($line->montant).$separator;
|
print price($line->debit).$separator;
|
||||||
print ''.$separator;
|
print ''.$separator;
|
||||||
} elseif ($line->sens == 'C') {
|
} elseif ($line->sens == 'C') {
|
||||||
print ''.$separator;
|
print ''.$separator;
|
||||||
print price($line->montant).$separator;
|
print price($line->credit).$separator;
|
||||||
}
|
}
|
||||||
print $line->doc_ref.$separator;
|
print $line->doc_ref.$separator;
|
||||||
print $line->label_operation.$separator;
|
print $line->label_operation.$separator;
|
||||||
@ -481,8 +481,9 @@ class AccountancyExport
|
|||||||
$date_ecriture = dol_print_date(dol_now(), $conf->global->ACCOUNTING_EXPORT_DATE); // format must be yyyymmdd
|
$date_ecriture = dol_print_date(dol_now(), $conf->global->ACCOUNTING_EXPORT_DATE); // format must be yyyymmdd
|
||||||
foreach ($TData as $data) {
|
foreach ($TData as $data) {
|
||||||
$code_compta = $data->numero_compte;
|
$code_compta = $data->numero_compte;
|
||||||
if (!empty($data->subledger_account))
|
if (!empty($data->subledger_account)) {
|
||||||
$code_compta = $data->subledger_account;
|
$code_compta = $data->subledger_account;
|
||||||
|
}
|
||||||
|
|
||||||
$Tab = array();
|
$Tab = array();
|
||||||
$Tab['num_ecriture'] = str_pad($i, 5);
|
$Tab['num_ecriture'] = str_pad($i, 5);
|
||||||
@ -492,7 +493,7 @@ class AccountancyExport
|
|||||||
$Tab['num_piece'] = str_pad(self::trunc($data->piece_num, 12), 12);
|
$Tab['num_piece'] = str_pad(self::trunc($data->piece_num, 12), 12);
|
||||||
$Tab['num_compte'] = str_pad(self::trunc($code_compta, 11), 11);
|
$Tab['num_compte'] = str_pad(self::trunc($code_compta, 11), 11);
|
||||||
$Tab['libelle_ecriture'] = str_pad(self::trunc(dol_string_unaccent($data->doc_ref).dol_string_unaccent($data->label_operation), 25), 25);
|
$Tab['libelle_ecriture'] = str_pad(self::trunc(dol_string_unaccent($data->doc_ref).dol_string_unaccent($data->label_operation), 25), 25);
|
||||||
$Tab['montant'] = str_pad(abs($data->montant), 13, ' ', STR_PAD_LEFT);
|
$Tab['montant'] = str_pad(abs($data->debit - $data->credit), 13, ' ', STR_PAD_LEFT);
|
||||||
$Tab['type_montant'] = str_pad($data->sens, 1);
|
$Tab['type_montant'] = str_pad($data->sens, 1);
|
||||||
$Tab['vide'] = str_repeat(' ', 18);
|
$Tab['vide'] = str_repeat(' ', 18);
|
||||||
$Tab['intitule_compte'] = str_pad(self::trunc(dol_string_unaccent($data->label_operation), 34), 34);
|
$Tab['intitule_compte'] = str_pad(self::trunc(dol_string_unaccent($data->label_operation), 34), 34);
|
||||||
@ -522,8 +523,9 @@ class AccountancyExport
|
|||||||
// $date_ecriture = dol_print_date(time(), $conf->global->ACCOUNTING_EXPORT_DATE); // format must be ddmmyy
|
// $date_ecriture = dol_print_date(time(), $conf->global->ACCOUNTING_EXPORT_DATE); // format must be ddmmyy
|
||||||
foreach ($TData as $data) {
|
foreach ($TData as $data) {
|
||||||
$code_compta = $data->numero_compte;
|
$code_compta = $data->numero_compte;
|
||||||
if (!empty($data->subledger_account))
|
if (!empty($data->subledger_account)) {
|
||||||
$code_compta = $data->subledger_account;
|
$code_compta = $data->subledger_account;
|
||||||
|
}
|
||||||
|
|
||||||
$Tab = array();
|
$Tab = array();
|
||||||
$Tab['type_ligne'] = 'M';
|
$Tab['type_ligne'] = 'M';
|
||||||
@ -539,6 +541,7 @@ class AccountancyExport
|
|||||||
$Tab['libelle_ecriture'] = str_pad(self::trunc(dol_string_unaccent($data->doc_ref).' '.dol_string_unaccent($data->label_operation), 20), 20);
|
$Tab['libelle_ecriture'] = str_pad(self::trunc(dol_string_unaccent($data->doc_ref).' '.dol_string_unaccent($data->label_operation), 20), 20);
|
||||||
|
|
||||||
// Credit invoice - invert sens
|
// Credit invoice - invert sens
|
||||||
|
/*
|
||||||
if ($data->montant < 0) {
|
if ($data->montant < 0) {
|
||||||
if ($data->sens == 'C') {
|
if ($data->sens == 'C') {
|
||||||
$Tab['sens'] = 'D';
|
$Tab['sens'] = 'D';
|
||||||
@ -549,10 +552,12 @@ class AccountancyExport
|
|||||||
} else {
|
} else {
|
||||||
$Tab['sens'] = $data->sens; // C or D
|
$Tab['sens'] = $data->sens; // C or D
|
||||||
$Tab['signe_montant'] = '+';
|
$Tab['signe_montant'] = '+';
|
||||||
}
|
}*/
|
||||||
|
$Tab['sens'] = $data->sens; // C or D
|
||||||
|
$Tab['signe_montant'] = '+';
|
||||||
|
|
||||||
// The amount must be in centimes without decimal points.
|
// The amount must be in centimes without decimal points.
|
||||||
$Tab['montant'] = str_pad(abs($data->montant * 100), 12, '0', STR_PAD_LEFT);
|
$Tab['montant'] = str_pad(abs(($data->debit - $abs->credit) * 100), 12, '0', STR_PAD_LEFT);
|
||||||
$Tab['contrepartie'] = str_repeat(' ', 8);
|
$Tab['contrepartie'] = str_repeat(' ', 8);
|
||||||
|
|
||||||
// Force date format : %d%m%y
|
// Force date format : %d%m%y
|
||||||
@ -616,8 +621,9 @@ class AccountancyExport
|
|||||||
//$date_ecriture = dol_print_date(time(), $conf->global->ACCOUNTING_EXPORT_DATE); // format must be ddmmyy
|
//$date_ecriture = dol_print_date(time(), $conf->global->ACCOUNTING_EXPORT_DATE); // format must be ddmmyy
|
||||||
foreach ($TData as $data) {
|
foreach ($TData as $data) {
|
||||||
$code_compta = $data->numero_compte;
|
$code_compta = $data->numero_compte;
|
||||||
if (!empty($data->subledger_account))
|
if (!empty($data->subledger_account)) {
|
||||||
$code_compta = $data->subledger_account;
|
$code_compta = $data->subledger_account;
|
||||||
|
}
|
||||||
|
|
||||||
$Tab = array();
|
$Tab = array();
|
||||||
//$Tab['type_ligne'] = 'M';
|
//$Tab['type_ligne'] = 'M';
|
||||||
@ -637,13 +643,13 @@ class AccountancyExport
|
|||||||
$Tab['num_compte'] = str_pad(self::trunc($code_compta, 6), 6, '0');
|
$Tab['num_compte'] = str_pad(self::trunc($code_compta, 6), 6, '0');
|
||||||
|
|
||||||
if ($data->sens == 'D') {
|
if ($data->sens == 'D') {
|
||||||
$Tab['montant_debit'] = str_pad(number_format(abs($data->montant), 2, ',', ''), 13, ' ', STR_PAD_LEFT);
|
$Tab['montant_debit'] = str_pad(number_format($data->debit, 2, ',', ''), 13, ' ', STR_PAD_LEFT);
|
||||||
|
|
||||||
$Tab['montant_crebit'] = str_pad(number_format(0, 2, ',', ''), 13, ' ', STR_PAD_LEFT);
|
$Tab['montant_crebit'] = str_pad(number_format(0, 2, ',', ''), 13, ' ', STR_PAD_LEFT);
|
||||||
} else {
|
} else {
|
||||||
$Tab['montant_debit'] = str_pad(number_format(0, 2, ',', ''), 13, ' ', STR_PAD_LEFT);
|
$Tab['montant_debit'] = str_pad(number_format(0, 2, ',', ''), 13, ' ', STR_PAD_LEFT);
|
||||||
|
|
||||||
$Tab['montant_crebit'] = str_pad(number_format(abs($data->montant), 2, ',', ''), 13, ' ', STR_PAD_LEFT);
|
$Tab['montant_crebit'] = str_pad(number_format($data->credit, 2, ',', ''), 13, ' ', STR_PAD_LEFT);
|
||||||
}
|
}
|
||||||
|
|
||||||
$Tab['libelle_ecriture'] = str_pad(self::trunc(dol_string_unaccent($data->doc_ref).' '.dol_string_unaccent($data->label_operation), 30), 30);
|
$Tab['libelle_ecriture'] = str_pad(self::trunc(dol_string_unaccent($data->doc_ref).' '.dol_string_unaccent($data->label_operation), 30), 30);
|
||||||
@ -704,7 +710,7 @@ class AccountancyExport
|
|||||||
//print substr(length_accountg($line->numero_compte), 0, 2) . $separator;
|
//print substr(length_accountg($line->numero_compte), 0, 2) . $separator;
|
||||||
print '"'.dol_trunc($line->label_operation, 40, 'right', 'UTF-8', 1).'"'.$separator;
|
print '"'.dol_trunc($line->label_operation, 40, 'right', 'UTF-8', 1).'"'.$separator;
|
||||||
print '"'.dol_trunc($line->piece_num, 15, 'right', 'UTF-8', 1).'"'.$separator;
|
print '"'.dol_trunc($line->piece_num, 15, 'right', 'UTF-8', 1).'"'.$separator;
|
||||||
print price2num(abs($line->montant)).$separator;
|
print price2num(abs($line->debit - $line->credit)).$separator;
|
||||||
print $line->sens.$separator;
|
print $line->sens.$separator;
|
||||||
print $date.$separator;
|
print $date.$separator;
|
||||||
//print 'EUR';
|
//print 'EUR';
|
||||||
@ -744,7 +750,7 @@ class AccountancyExport
|
|||||||
print self::toAnsi($line->doc_ref).$separator;
|
print self::toAnsi($line->doc_ref).$separator;
|
||||||
print price($line->debit).$separator;
|
print price($line->debit).$separator;
|
||||||
print price($line->credit).$separator;
|
print price($line->credit).$separator;
|
||||||
print price($line->montant).$separator;
|
print price(abs($line->debit - $line->credit)).$separator;
|
||||||
print $line->sens.$separator;
|
print $line->sens.$separator;
|
||||||
print $line->lettering_code.$separator;
|
print $line->lettering_code.$separator;
|
||||||
print $line->code_journal;
|
print $line->code_journal;
|
||||||
@ -807,7 +813,7 @@ class AccountancyExport
|
|||||||
$tab[] = length_accounta($line->subledger_account);
|
$tab[] = length_accounta($line->subledger_account);
|
||||||
$tab[] = price2num($line->debit);
|
$tab[] = price2num($line->debit);
|
||||||
$tab[] = price2num($line->credit);
|
$tab[] = price2num($line->credit);
|
||||||
$tab[] = price2num($line->montant);
|
$tab[] = price2num($line->debit - $line->credit);
|
||||||
$tab[] = $line->code_journal;
|
$tab[] = $line->code_journal;
|
||||||
|
|
||||||
print implode($separator, $tab).$this->end_line;
|
print implode($separator, $tab).$this->end_line;
|
||||||
@ -850,7 +856,7 @@ class AccountancyExport
|
|||||||
|
|
||||||
foreach ($objectLines as $line) {
|
foreach ($objectLines as $line) {
|
||||||
if ($line->debit == 0 && $line->credit == 0) {
|
if ($line->debit == 0 && $line->credit == 0) {
|
||||||
unset($array[$line]);
|
//unset($array[$line]);
|
||||||
} else {
|
} else {
|
||||||
$date_creation = dol_print_date($line->date_creation, '%Y%m%d');
|
$date_creation = dol_print_date($line->date_creation, '%Y%m%d');
|
||||||
$date_document = dol_print_date($line->doc_date, '%Y%m%d');
|
$date_document = dol_print_date($line->doc_date, '%Y%m%d');
|
||||||
@ -956,7 +962,7 @@ class AccountancyExport
|
|||||||
|
|
||||||
foreach ($objectLines as $line) {
|
foreach ($objectLines as $line) {
|
||||||
if ($line->debit == 0 && $line->credit == 0) {
|
if ($line->debit == 0 && $line->credit == 0) {
|
||||||
unset($array[$line]);
|
//unset($array[$line]);
|
||||||
} else {
|
} else {
|
||||||
$date_creation = dol_print_date($line->date_creation, '%Y%m%d');
|
$date_creation = dol_print_date($line->date_creation, '%Y%m%d');
|
||||||
$date_document = dol_print_date($line->doc_date, '%Y%m%d');
|
$date_document = dol_print_date($line->doc_date, '%Y%m%d');
|
||||||
@ -1048,21 +1054,17 @@ class AccountancyExport
|
|||||||
$thisPieceNum = "";
|
$thisPieceNum = "";
|
||||||
$thisPieceAccountNr = "";
|
$thisPieceAccountNr = "";
|
||||||
$aSize = count($objectLines);
|
$aSize = count($objectLines);
|
||||||
foreach ($objectLines as $aIndex=>$line)
|
foreach ($objectLines as $aIndex => $line) {
|
||||||
{
|
|
||||||
$sammelBuchung = false;
|
$sammelBuchung = false;
|
||||||
if ($aIndex - 2 >= 0 && $objectLines[$aIndex - 2]->piece_num == $line->piece_num)
|
if ($aIndex - 2 >= 0 && $objectLines[$aIndex - 2]->piece_num == $line->piece_num) {
|
||||||
{
|
|
||||||
$sammelBuchung = true;
|
$sammelBuchung = true;
|
||||||
} elseif ($aIndex + 2 < $aSize && $objectLines[$aIndex + 2]->piece_num == $line->piece_num)
|
} elseif ($aIndex + 2 < $aSize && $objectLines[$aIndex + 2]->piece_num == $line->piece_num) {
|
||||||
{
|
|
||||||
$sammelBuchung = true;
|
$sammelBuchung = true;
|
||||||
} elseif ($aIndex + 1 < $aSize
|
} elseif ($aIndex + 1 < $aSize
|
||||||
&& $objectLines[$aIndex + 1]->piece_num == $line->piece_num
|
&& $objectLines[$aIndex + 1]->piece_num == $line->piece_num
|
||||||
&& $aIndex - 1 < $aSize
|
&& $aIndex - 1 < $aSize
|
||||||
&& $objectLines[$aIndex - 1]->piece_num == $line->piece_num
|
&& $objectLines[$aIndex - 1]->piece_num == $line->piece_num
|
||||||
)
|
) {
|
||||||
{
|
|
||||||
$sammelBuchung = true;
|
$sammelBuchung = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1076,8 +1078,7 @@ class AccountancyExport
|
|||||||
// Kto
|
// Kto
|
||||||
print length_accountg($line->numero_compte).$this->separator;
|
print length_accountg($line->numero_compte).$this->separator;
|
||||||
// S/H
|
// S/H
|
||||||
if ($line->sens == 'D')
|
if ($line->sens == 'D') {
|
||||||
{
|
|
||||||
print 'S'.$this->separator;
|
print 'S'.$this->separator;
|
||||||
} else {
|
} else {
|
||||||
print 'H'.$this->separator;
|
print 'H'.$this->separator;
|
||||||
@ -1085,10 +1086,8 @@ class AccountancyExport
|
|||||||
//Grp
|
//Grp
|
||||||
print self::trunc($line->code_journal, 1).$this->separator;
|
print self::trunc($line->code_journal, 1).$this->separator;
|
||||||
// GKto
|
// GKto
|
||||||
if (empty($line->code_tiers))
|
if (empty($line->code_tiers)) {
|
||||||
{
|
if ($line->piece_num == $thisPieceNum) {
|
||||||
if ($line->piece_num == $thisPieceNum)
|
|
||||||
{
|
|
||||||
print length_accounta($thisPieceAccountNr).$this->separator;
|
print length_accounta($thisPieceAccountNr).$this->separator;
|
||||||
} else {
|
} else {
|
||||||
print "div".$this->separator;
|
print "div".$this->separator;
|
||||||
@ -1106,8 +1105,7 @@ class AccountancyExport
|
|||||||
print "0".$this->separator;
|
print "0".$this->separator;
|
||||||
|
|
||||||
//MTyp 1=Fibu Einzelbuchung 2=Sammebuchung
|
//MTyp 1=Fibu Einzelbuchung 2=Sammebuchung
|
||||||
if ($sammelBuchung)
|
if ($sammelBuchung) {
|
||||||
{
|
|
||||||
print "2".$this->separator;
|
print "2".$this->separator;
|
||||||
} else {
|
} else {
|
||||||
print "1".$this->separator;
|
print "1".$this->separator;
|
||||||
@ -1115,30 +1113,22 @@ class AccountancyExport
|
|||||||
// Code
|
// Code
|
||||||
print '""'.$this->separator;
|
print '""'.$this->separator;
|
||||||
// Netto
|
// Netto
|
||||||
if ($line->montant >= 0)
|
print abs($line->debit - $line->credit).$this->separator;
|
||||||
{
|
|
||||||
print $line->montant.$this->separator;
|
|
||||||
} else {
|
|
||||||
print ($line->montant * -1).$this->separator;
|
|
||||||
}
|
|
||||||
// Steuer
|
// Steuer
|
||||||
print "0.00".$this->separator;
|
print "0.00".$this->separator;
|
||||||
// FW-Betrag
|
// FW-Betrag
|
||||||
print "0.00".$this->separator;
|
print "0.00".$this->separator;
|
||||||
// Tx1
|
// Tx1
|
||||||
$line1 = self::toAnsi($line->label_compte, 29);
|
$line1 = self::toAnsi($line->label_compte, 29);
|
||||||
if ($line1 == "LIQ" || $line1 == "LIQ Beleg ok" || strlen($line1) <= 3)
|
if ($line1 == "LIQ" || $line1 == "LIQ Beleg ok" || strlen($line1) <= 3) {
|
||||||
{
|
|
||||||
$line1 = "";
|
$line1 = "";
|
||||||
}
|
}
|
||||||
$line2 = self::toAnsi($line->doc_ref, 29);
|
$line2 = self::toAnsi($line->doc_ref, 29);
|
||||||
if (strlen($line1) == 0)
|
if (strlen($line1) == 0) {
|
||||||
{
|
|
||||||
$line1 = $line2;
|
$line1 = $line2;
|
||||||
$line2 = "";
|
$line2 = "";
|
||||||
}
|
}
|
||||||
if (strlen($line1) > 0 && strlen($line2) > 0 && (strlen($line1) + strlen($line2)) < 27)
|
if (strlen($line1) > 0 && strlen($line2) > 0 && (strlen($line1) + strlen($line2)) < 27) {
|
||||||
{
|
|
||||||
$line1 = $line1.' / '.$line2;
|
$line1 = $line1.' / '.$line2;
|
||||||
$line2 = "";
|
$line2 = "";
|
||||||
}
|
}
|
||||||
@ -1156,8 +1146,7 @@ class AccountancyExport
|
|||||||
|
|
||||||
print $this->end_line;
|
print $this->end_line;
|
||||||
|
|
||||||
if ($line->piece_num !== $thisPieceNum)
|
if ($line->piece_num !== $thisPieceNum) {
|
||||||
{
|
|
||||||
$thisPieceNum = $line->piece_num;
|
$thisPieceNum = $line->piece_num;
|
||||||
$thisPieceAccountNr = $line->numero_compte;
|
$thisPieceAccountNr = $line->numero_compte;
|
||||||
}
|
}
|
||||||
@ -1200,13 +1189,13 @@ class AccountancyExport
|
|||||||
print $date_lim_reglement.$separator;
|
print $date_lim_reglement.$separator;
|
||||||
// CNPI
|
// CNPI
|
||||||
if ($line->doc_type == 'supplier_invoice') {
|
if ($line->doc_type == 'supplier_invoice') {
|
||||||
if ($line->montant < 0) {
|
if (($line->debit - $line->credit) > 0) {
|
||||||
$nature_piece = 'AF';
|
$nature_piece = 'AF';
|
||||||
} else {
|
} else {
|
||||||
$nature_piece = 'FF';
|
$nature_piece = 'FF';
|
||||||
}
|
}
|
||||||
} elseif ($line->doc_type == 'customer_invoice') {
|
} elseif ($line->doc_type == 'customer_invoice') {
|
||||||
if ($line->montant < 0) {
|
if (($line->debit - $line->credit) < 0) {
|
||||||
$nature_piece = 'AC';
|
$nature_piece = 'AC';
|
||||||
} else {
|
} else {
|
||||||
$nature_piece = 'FC';
|
$nature_piece = 'FC';
|
||||||
@ -1230,7 +1219,7 @@ class AccountancyExport
|
|||||||
|
|
||||||
print $racine_subledger_account.$separator; // deprecated CPTG & CPTA use instead
|
print $racine_subledger_account.$separator; // deprecated CPTG & CPTA use instead
|
||||||
// MONT
|
// MONT
|
||||||
print price(abs($line->montant), 0, '', 1, 2, 2).$separator;
|
print price(abs($line->debit - $line->credit), 0, '', 1, 2, 2).$separator;
|
||||||
// CODC
|
// CODC
|
||||||
print $line->sens.$separator;
|
print $line->sens.$separator;
|
||||||
// CPTG
|
// CPTG
|
||||||
@ -1320,15 +1309,14 @@ class AccountancyExport
|
|||||||
$sql .= " WHERE code_client = '".$this->db->escape($line->thirdparty_code)."'";
|
$sql .= " WHERE code_client = '".$this->db->escape($line->thirdparty_code)."'";
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
|
|
||||||
if ($resql && $this->db->num_rows($resql) > 0)
|
if ($resql && $this->db->num_rows($resql) > 0) {
|
||||||
{
|
|
||||||
$soc = $this->db->fetch_object($resql);
|
$soc = $this->db->fetch_object($resql);
|
||||||
|
|
||||||
$address = array('', '', '');
|
$address = array('', '', '');
|
||||||
if (strpos($soc->address, "\n") !== false) {
|
if (strpos($soc->address, "\n") !== false) {
|
||||||
$address = explode("\n", $soc->address);
|
$address = explode("\n", $soc->address);
|
||||||
if (is_array($address) && count($address) > 0) {
|
if (is_array($address) && count($address) > 0) {
|
||||||
foreach ($address as $key=>$data) {
|
foreach ($address as $key => $data) {
|
||||||
$address[$key] = str_replace(array("\t", "\n", "\r"), "", $data);
|
$address[$key] = str_replace(array("\t", "\n", "\r"), "", $data);
|
||||||
$address[$key] = dol_trunc($address[$key], 40, 'right', 'UTF-8', 1);
|
$address[$key] = dol_trunc($address[$key], 40, 'right', 'UTF-8', 1);
|
||||||
}
|
}
|
||||||
@ -1462,13 +1450,13 @@ class AccountancyExport
|
|||||||
print $date_lim_reglement.$separator;
|
print $date_lim_reglement.$separator;
|
||||||
// CNPI
|
// CNPI
|
||||||
if ($line->doc_type == 'supplier_invoice') {
|
if ($line->doc_type == 'supplier_invoice') {
|
||||||
if ($line->montant < 0) {
|
if (($line->debit - $line->credit) > 0) {
|
||||||
$nature_piece = 'AF';
|
$nature_piece = 'AF';
|
||||||
} else {
|
} else {
|
||||||
$nature_piece = 'FF';
|
$nature_piece = 'FF';
|
||||||
}
|
}
|
||||||
} elseif ($line->doc_type == 'customer_invoice') {
|
} elseif ($line->doc_type == 'customer_invoice') {
|
||||||
if ($line->montant < 0) {
|
if (($line->debit - $line->credit) < 0) {
|
||||||
$nature_piece = 'AC';
|
$nature_piece = 'AC';
|
||||||
} else {
|
} else {
|
||||||
$nature_piece = 'FC';
|
$nature_piece = 'FC';
|
||||||
@ -1492,7 +1480,7 @@ class AccountancyExport
|
|||||||
|
|
||||||
print $racine_subledger_account.$separator; // deprecated CPTG & CPTA use instead
|
print $racine_subledger_account.$separator; // deprecated CPTG & CPTA use instead
|
||||||
// MONT
|
// MONT
|
||||||
print price(abs($line->montant), 0, '', 1, 2).$separator;
|
print price(abs($line->debit - $line->credit), 0, '', 1, 2).$separator;
|
||||||
// CODC
|
// CODC
|
||||||
print $line->sens.$separator;
|
print $line->sens.$separator;
|
||||||
// CPTG
|
// CPTG
|
||||||
@ -1603,8 +1591,9 @@ class AccountancyExport
|
|||||||
|
|
||||||
print self::trunc($line->code_journal, 6).$separator; //Journal code
|
print self::trunc($line->code_journal, 6).$separator; //Journal code
|
||||||
|
|
||||||
if (!empty($line->subledger_account)) $account = $line->subledger_account;
|
if (!empty($line->subledger_account)) {
|
||||||
else {
|
$account = $line->subledger_account;
|
||||||
|
} else {
|
||||||
$account = $line->numero_compte;
|
$account = $line->numero_compte;
|
||||||
}
|
}
|
||||||
print self::trunc($account, 15).$separator; //Account number
|
print self::trunc($account, 15).$separator; //Account number
|
||||||
@ -1612,7 +1601,7 @@ class AccountancyExport
|
|||||||
print self::trunc($line->label_compte, 60).$separator; //Account label
|
print self::trunc($line->label_compte, 60).$separator; //Account label
|
||||||
print self::trunc($line->doc_ref, 20).$separator; //Piece
|
print self::trunc($line->doc_ref, 20).$separator; //Piece
|
||||||
print self::trunc($line->label_operation, 60).$separator; //Operation label
|
print self::trunc($line->label_operation, 60).$separator; //Operation label
|
||||||
print price(abs($line->montant)).$separator; //Amount
|
print price(abs($line->debit - $line->credit)).$separator; //Amount
|
||||||
print $line->sens.$separator; //Direction
|
print $line->sens.$separator; //Direction
|
||||||
print $separator; //Analytic
|
print $separator; //Analytic
|
||||||
print $separator; //Analytic
|
print $separator; //Analytic
|
||||||
@ -1641,7 +1630,7 @@ class AccountancyExport
|
|||||||
$supplier_invoices_infos = array();
|
$supplier_invoices_infos = array();
|
||||||
foreach ($objectLines as $line) {
|
foreach ($objectLines as $line) {
|
||||||
if ($line->debit == 0 && $line->credit == 0) {
|
if ($line->debit == 0 && $line->credit == 0) {
|
||||||
unset($array[$line]);
|
//unset($array[$line]);
|
||||||
} else {
|
} else {
|
||||||
$date = dol_print_date($line->doc_date, '%d/%m/%Y');
|
$date = dol_print_date($line->doc_date, '%d/%m/%Y');
|
||||||
|
|
||||||
@ -1709,8 +1698,8 @@ class AccountancyExport
|
|||||||
print dol_trunc(str_replace('"', '', $line->piece_num), 10, 'right', 'UTF-8', 1) . $this->separator;
|
print dol_trunc(str_replace('"', '', $line->piece_num), 10, 'right', 'UTF-8', 1) . $this->separator;
|
||||||
//Devise
|
//Devise
|
||||||
print 'EUR' . $this->separator;
|
print 'EUR' . $this->separator;
|
||||||
//Montant
|
//Amount
|
||||||
print price2num(abs($line->montant)) . $this->separator;
|
print price2num(abs($line->debit - $line->credit)) . $this->separator;
|
||||||
//Sens
|
//Sens
|
||||||
print $line->sens . $this->separator;
|
print $line->sens . $this->separator;
|
||||||
//Code lettrage
|
//Code lettrage
|
||||||
@ -1736,14 +1725,14 @@ class AccountancyExport
|
|||||||
|
|
||||||
foreach ($objectLines as $line) {
|
foreach ($objectLines as $line) {
|
||||||
if ($line->debit == 0 && $line->credit == 0) {
|
if ($line->debit == 0 && $line->credit == 0) {
|
||||||
unset($array[$line]);
|
//unset($array[$line]);
|
||||||
} else {
|
} else {
|
||||||
$date = dol_print_date($line->doc_date, '%d%m%Y');
|
$date = dol_print_date($line->doc_date, '%d%m%Y');
|
||||||
|
|
||||||
print $line->id . $this->separator;
|
print $line->id . $this->separator;
|
||||||
print $date . $this->separator;
|
print $date . $this->separator;
|
||||||
print substr($line->code_journal, 0, 4) . $this->separator;
|
print substr($line->code_journal, 0, 4) . $this->separator;
|
||||||
if ((substr($line->numero_compte, 0, 3) == '411') || (substr($line->numero_compte, 0, 3) == '401')) {
|
if ((substr($line->numero_compte, 0, 3) == '411') || (substr($line->numero_compte, 0, 3) == '401')) { // TODO No hard code value
|
||||||
print length_accountg($line->subledger_account) . $this->separator;
|
print length_accountg($line->subledger_account) . $this->separator;
|
||||||
} else {
|
} else {
|
||||||
print substr(length_accountg($line->numero_compte), 0, 15) . $this->separator;
|
print substr(length_accountg($line->numero_compte), 0, 15) . $this->separator;
|
||||||
@ -1752,7 +1741,7 @@ class AccountancyExport
|
|||||||
//print '"'.dol_trunc(str_replace('"', '', $line->label_operation),40,'right','UTF-8',1).'"' . $this->separator;
|
//print '"'.dol_trunc(str_replace('"', '', $line->label_operation),40,'right','UTF-8',1).'"' . $this->separator;
|
||||||
print '"' . dol_trunc(str_replace('"', '', $line->doc_ref), 40, 'right', 'UTF-8', 1) . '"' . $this->separator;
|
print '"' . dol_trunc(str_replace('"', '', $line->doc_ref), 40, 'right', 'UTF-8', 1) . '"' . $this->separator;
|
||||||
print '"' . dol_trunc(str_replace('"', '', $line->piece_num), 10, 'right', 'UTF-8', 1) . '"' . $this->separator;
|
print '"' . dol_trunc(str_replace('"', '', $line->piece_num), 10, 'right', 'UTF-8', 1) . '"' . $this->separator;
|
||||||
print price2num($line->montant) . $this->separator;
|
print price2num(abs($line->debit - $line->credit)) . $this->separator;
|
||||||
print $line->sens . $this->separator;
|
print $line->sens . $this->separator;
|
||||||
print $date . $this->separator;
|
print $date . $this->separator;
|
||||||
print $this->separator;
|
print $this->separator;
|
||||||
@ -1785,8 +1774,7 @@ class AccountancyExport
|
|||||||
public static function toAnsi($str, $size = -1)
|
public static function toAnsi($str, $size = -1)
|
||||||
{
|
{
|
||||||
$retVal = dol_string_nohtmltag($str, 1, 'Windows-1251');
|
$retVal = dol_string_nohtmltag($str, 1, 'Windows-1251');
|
||||||
if ($retVal >= 0 && $size >= 0)
|
if ($retVal >= 0 && $size >= 0) {
|
||||||
{
|
|
||||||
$retVal = mb_substr($retVal, 0, $size, 'Windows-1251');
|
$retVal = mb_substr($retVal, 0, $size, 'Windows-1251');
|
||||||
}
|
}
|
||||||
return $retVal;
|
return $retVal;
|
||||||
|
|||||||
@ -95,8 +95,7 @@ class AccountancySystem
|
|||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
if ($rowid > 0 || $ref)
|
if ($rowid > 0 || $ref) {
|
||||||
{
|
|
||||||
$sql = "SELECT a.rowid, a.pcg_version, a.label, a.active";
|
$sql = "SELECT a.rowid, a.pcg_version, a.label, a.active";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_system as a";
|
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_system as a";
|
||||||
$sql .= " WHERE";
|
$sql .= " WHERE";
|
||||||
|
|||||||
@ -236,19 +236,23 @@ class AccountingAccount extends CommonObject
|
|||||||
$now = dol_now();
|
$now = dol_now();
|
||||||
|
|
||||||
// Clean parameters
|
// Clean parameters
|
||||||
if (isset($this->fk_pcg_version))
|
if (isset($this->fk_pcg_version)) {
|
||||||
$this->fk_pcg_version = trim($this->fk_pcg_version);
|
$this->fk_pcg_version = trim($this->fk_pcg_version);
|
||||||
if (isset($this->pcg_type))
|
}
|
||||||
|
if (isset($this->pcg_type)) {
|
||||||
$this->pcg_type = trim($this->pcg_type);
|
$this->pcg_type = trim($this->pcg_type);
|
||||||
if (isset($this->account_number))
|
}
|
||||||
|
if (isset($this->account_number)) {
|
||||||
$this->account_number = trim($this->account_number);
|
$this->account_number = trim($this->account_number);
|
||||||
if (isset($this->label))
|
}
|
||||||
|
if (isset($this->label)) {
|
||||||
$this->label = trim($this->label);
|
$this->label = trim($this->label);
|
||||||
if (isset($this->labelshort))
|
}
|
||||||
|
if (isset($this->labelshort)) {
|
||||||
$this->labelshort = trim($this->labelshort);
|
$this->labelshort = trim($this->labelshort);
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($this->pcg_type) || $this->pcg_type == '-1')
|
if (empty($this->pcg_type) || $this->pcg_type == '-1') {
|
||||||
{
|
|
||||||
$this->pcg_type = 'XXXXXX';
|
$this->pcg_type = 'XXXXXX';
|
||||||
}
|
}
|
||||||
// Check parameters
|
// Check parameters
|
||||||
@ -329,8 +333,7 @@ class AccountingAccount extends CommonObject
|
|||||||
public function update($user)
|
public function update($user)
|
||||||
{
|
{
|
||||||
// Check parameters
|
// Check parameters
|
||||||
if (empty($this->pcg_type) || $this->pcg_type == '-1')
|
if (empty($this->pcg_type) || $this->pcg_type == '-1') {
|
||||||
{
|
|
||||||
$this->pcg_type = 'XXXXXX';
|
$this->pcg_type = 'XXXXXX';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -456,7 +459,9 @@ class AccountingAccount extends CommonObject
|
|||||||
global $langs, $conf;
|
global $langs, $conf;
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
|
||||||
|
|
||||||
if (!empty($conf->dol_no_mouse_hover)) $notooltip = 1; // Force disable tooltips
|
if (!empty($conf->dol_no_mouse_hover)) {
|
||||||
|
$notooltip = 1; // Force disable tooltips
|
||||||
|
}
|
||||||
|
|
||||||
$result = '';
|
$result = '';
|
||||||
|
|
||||||
@ -474,31 +479,36 @@ class AccountingAccount extends CommonObject
|
|||||||
|
|
||||||
// Add param to save lastsearch_values or not
|
// Add param to save lastsearch_values or not
|
||||||
$add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0);
|
$add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0);
|
||||||
if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) $add_save_lastsearch_values = 1;
|
if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) {
|
||||||
if ($add_save_lastsearch_values) $url .= '&save_lastsearch_values=1';
|
$add_save_lastsearch_values = 1;
|
||||||
|
}
|
||||||
|
if ($add_save_lastsearch_values) {
|
||||||
|
$url .= '&save_lastsearch_values=1';
|
||||||
|
}
|
||||||
|
|
||||||
$picto = 'billr';
|
$picto = 'billr';
|
||||||
$label = '';
|
$label = '';
|
||||||
|
|
||||||
if (empty($this->labelshort) || $withcompletelabel == 1)
|
if (empty($this->labelshort) || $withcompletelabel == 1) {
|
||||||
{
|
|
||||||
$labeltoshow = $this->label;
|
$labeltoshow = $this->label;
|
||||||
} else {
|
} else {
|
||||||
$labeltoshow = $this->labelshort;
|
$labeltoshow = $this->labelshort;
|
||||||
}
|
}
|
||||||
|
|
||||||
$label = '<u>'.$labelurl.'</u>';
|
$label = '<u>'.$labelurl.'</u>';
|
||||||
if (!empty($this->account_number))
|
if (!empty($this->account_number)) {
|
||||||
$label .= '<br><b>'.$langs->trans('AccountAccounting').':</b> '.length_accountg($this->account_number);
|
$label .= '<br><b>'.$langs->trans('AccountAccounting').':</b> '.length_accountg($this->account_number);
|
||||||
if (!empty($labeltoshow))
|
}
|
||||||
|
if (!empty($labeltoshow)) {
|
||||||
$label .= '<br><b>'.$langs->trans('Label').':</b> '.$labeltoshow;
|
$label .= '<br><b>'.$langs->trans('Label').':</b> '.$labeltoshow;
|
||||||
if ($moretitle) $label .= ' - '.$moretitle;
|
}
|
||||||
|
if ($moretitle) {
|
||||||
|
$label .= ' - '.$moretitle;
|
||||||
|
}
|
||||||
|
|
||||||
$linkclose = '';
|
$linkclose = '';
|
||||||
if (empty($notooltip))
|
if (empty($notooltip)) {
|
||||||
{
|
if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) {
|
||||||
if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))
|
|
||||||
{
|
|
||||||
$label = $labelurl;
|
$label = $labelurl;
|
||||||
$linkclose .= ' alt="'.dol_escape_htmltag($label, 1).'"';
|
$linkclose .= ' alt="'.dol_escape_htmltag($label, 1).'"';
|
||||||
}
|
}
|
||||||
@ -510,19 +520,26 @@ class AccountingAccount extends CommonObject
|
|||||||
$linkstart .= $linkclose.'>';
|
$linkstart .= $linkclose.'>';
|
||||||
$linkend = '</a>';
|
$linkend = '</a>';
|
||||||
|
|
||||||
if ($nourl)
|
if ($nourl) {
|
||||||
{
|
|
||||||
$linkstart = '';
|
$linkstart = '';
|
||||||
$linkclose = '';
|
$linkclose = '';
|
||||||
$linkend = '';
|
$linkend = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
$label_link = length_accountg($this->account_number);
|
$label_link = length_accountg($this->account_number);
|
||||||
if ($withlabel) $label_link .= ' - '.($nourl ? '<span class="opacitymedium">' : '').$labeltoshow.($nourl ? '</span>' : '');
|
if ($withlabel) {
|
||||||
|
$label_link .= ' - '.($nourl ? '<span class="opacitymedium">' : '').$labeltoshow.($nourl ? '</span>' : '');
|
||||||
|
}
|
||||||
|
|
||||||
if ($withpicto) $result .= ($linkstart.img_object(($notooltip ? '' : $label), $picto, ($notooltip ? '' : 'class="classfortooltip"'), 0, 0, $notooltip ? 0 : 1).$linkend);
|
if ($withpicto) {
|
||||||
if ($withpicto && $withpicto != 2) $result .= ' ';
|
$result .= ($linkstart.img_object(($notooltip ? '' : $label), $picto, ($notooltip ? '' : 'class="classfortooltip"'), 0, 0, $notooltip ? 0 : 1).$linkend);
|
||||||
if ($withpicto != 2) $result .= $linkstart.$label_link.$linkend;
|
}
|
||||||
|
if ($withpicto && $withpicto != 2) {
|
||||||
|
$result .= ' ';
|
||||||
|
}
|
||||||
|
if ($withpicto != 2) {
|
||||||
|
$result .= $linkstart.$label_link.$linkend;
|
||||||
|
}
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -576,8 +593,7 @@ class AccountingAccount extends CommonObject
|
|||||||
$result = $this->checkUsage();
|
$result = $this->checkUsage();
|
||||||
|
|
||||||
$fieldtouse = 'active';
|
$fieldtouse = 'active';
|
||||||
if ($mode == 1)
|
if ($mode == 1) {
|
||||||
{
|
|
||||||
$fieldtouse = 'reconcilable';
|
$fieldtouse = 'reconcilable';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -664,30 +680,42 @@ class AccountingAccount extends CommonObject
|
|||||||
global $langs;
|
global $langs;
|
||||||
$langs->loadLangs(array("users"));
|
$langs->loadLangs(array("users"));
|
||||||
|
|
||||||
if ($mode == 0)
|
if ($mode == 0) {
|
||||||
{
|
if ($status == 1) {
|
||||||
if ($status == 1) return $langs->trans('Enabled');
|
return $langs->trans('Enabled');
|
||||||
elseif ($status == 0) return $langs->trans('Disabled');
|
} elseif ($status == 0) {
|
||||||
} elseif ($mode == 1)
|
return $langs->trans('Disabled');
|
||||||
{
|
}
|
||||||
if ($status == 1) return $langs->trans('Enabled');
|
} elseif ($mode == 1) {
|
||||||
elseif ($status == 0) return $langs->trans('Disabled');
|
if ($status == 1) {
|
||||||
} elseif ($mode == 2)
|
return $langs->trans('Enabled');
|
||||||
{
|
} elseif ($status == 0) {
|
||||||
if ($status == 1) return img_picto($langs->trans('Enabled'), 'statut4').' '.$langs->trans('Enabled');
|
return $langs->trans('Disabled');
|
||||||
elseif ($status == 0) return img_picto($langs->trans('Disabled'), 'statut5').' '.$langs->trans('Disabled');
|
}
|
||||||
} elseif ($mode == 3)
|
} elseif ($mode == 2) {
|
||||||
{
|
if ($status == 1) {
|
||||||
if ($status == 1) return img_picto($langs->trans('Enabled'), 'statut4');
|
return img_picto($langs->trans('Enabled'), 'statut4').' '.$langs->trans('Enabled');
|
||||||
elseif ($status == 0) return img_picto($langs->trans('Disabled'), 'statut5');
|
} elseif ($status == 0) {
|
||||||
} elseif ($mode == 4)
|
return img_picto($langs->trans('Disabled'), 'statut5').' '.$langs->trans('Disabled');
|
||||||
{
|
}
|
||||||
if ($status == 1) return img_picto($langs->trans('Enabled'), 'statut4').' '.$langs->trans('Enabled');
|
} elseif ($mode == 3) {
|
||||||
elseif ($status == 0) return img_picto($langs->trans('Disabled'), 'statut5').' '.$langs->trans('Disabled');
|
if ($status == 1) {
|
||||||
} elseif ($mode == 5)
|
return img_picto($langs->trans('Enabled'), 'statut4');
|
||||||
{
|
} elseif ($status == 0) {
|
||||||
if ($status == 1) return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'), 'statut4');
|
return img_picto($langs->trans('Disabled'), 'statut5');
|
||||||
elseif ($status == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'), 'statut5');
|
}
|
||||||
|
} elseif ($mode == 4) {
|
||||||
|
if ($status == 1) {
|
||||||
|
return img_picto($langs->trans('Enabled'), 'statut4').' '.$langs->trans('Enabled');
|
||||||
|
} elseif ($status == 0) {
|
||||||
|
return img_picto($langs->trans('Disabled'), 'statut5').' '.$langs->trans('Disabled');
|
||||||
|
}
|
||||||
|
} elseif ($mode == 5) {
|
||||||
|
if ($status == 1) {
|
||||||
|
return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'), 'statut4');
|
||||||
|
} elseif ($status == 0) {
|
||||||
|
return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'), 'statut5');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -102,23 +102,20 @@ class AccountingJournal extends CommonObject
|
|||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
if ($rowid || $journal_code)
|
if ($rowid || $journal_code) {
|
||||||
{
|
|
||||||
$sql = "SELECT rowid, code, label, nature, active";
|
$sql = "SELECT rowid, code, label, nature, active";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_journal";
|
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_journal";
|
||||||
$sql .= " WHERE";
|
$sql .= " WHERE";
|
||||||
if ($rowid) {
|
if ($rowid) {
|
||||||
$sql .= " rowid = ".((int) $rowid);
|
$sql .= " rowid = ".((int) $rowid);
|
||||||
} elseif ($journal_code)
|
} elseif ($journal_code) {
|
||||||
{
|
|
||||||
$sql .= " code = '".$this->db->escape($journal_code)."'";
|
$sql .= " code = '".$this->db->escape($journal_code)."'";
|
||||||
$sql .= " AND entity = ".$conf->entity;
|
$sql .= " AND entity = ".$conf->entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::fetch sql=".$sql, LOG_DEBUG);
|
dol_syslog(get_class($this)."::fetch sql=".$sql, LOG_DEBUG);
|
||||||
$result = $this->db->query($sql);
|
$result = $this->db->query($sql);
|
||||||
if ($result)
|
if ($result) {
|
||||||
{
|
|
||||||
$obj = $this->db->fetch_object($result);
|
$obj = $this->db->fetch_object($result);
|
||||||
|
|
||||||
if ($obj) {
|
if ($obj) {
|
||||||
@ -226,24 +223,28 @@ class AccountingJournal extends CommonObject
|
|||||||
{
|
{
|
||||||
global $langs, $conf, $user;
|
global $langs, $conf, $user;
|
||||||
|
|
||||||
if (!empty($conf->dol_no_mouse_hover)) $notooltip = 1; // Force disable tooltips
|
if (!empty($conf->dol_no_mouse_hover)) {
|
||||||
|
$notooltip = 1; // Force disable tooltips
|
||||||
|
}
|
||||||
|
|
||||||
$result = '';
|
$result = '';
|
||||||
|
|
||||||
$url = DOL_URL_ROOT.'/accountancy/admin/journals_list.php?id=35';
|
$url = DOL_URL_ROOT.'/accountancy/admin/journals_list.php?id=35';
|
||||||
|
|
||||||
$label = '<u>'.$langs->trans("ShowAccountingJournal").'</u>';
|
$label = '<u>'.$langs->trans("ShowAccountingJournal").'</u>';
|
||||||
if (!empty($this->code))
|
if (!empty($this->code)) {
|
||||||
$label .= '<br><b>'.$langs->trans('Code').':</b> '.$this->code;
|
$label .= '<br><b>'.$langs->trans('Code').':</b> '.$this->code;
|
||||||
if (!empty($this->label))
|
}
|
||||||
|
if (!empty($this->label)) {
|
||||||
$label .= '<br><b>'.$langs->trans('Label').':</b> '.$langs->transnoentities($this->label);
|
$label .= '<br><b>'.$langs->trans('Label').':</b> '.$langs->transnoentities($this->label);
|
||||||
if ($moretitle) $label .= ' - '.$moretitle;
|
}
|
||||||
|
if ($moretitle) {
|
||||||
|
$label .= ' - '.$moretitle;
|
||||||
|
}
|
||||||
|
|
||||||
$linkclose = '';
|
$linkclose = '';
|
||||||
if (empty($notooltip))
|
if (empty($notooltip)) {
|
||||||
{
|
if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) {
|
||||||
if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))
|
|
||||||
{
|
|
||||||
$label = $langs->trans("ShowAccountingJournal");
|
$label = $langs->trans("ShowAccountingJournal");
|
||||||
$linkclose .= ' alt="'.dol_escape_htmltag($label, 1).'"';
|
$linkclose .= ' alt="'.dol_escape_htmltag($label, 1).'"';
|
||||||
}
|
}
|
||||||
@ -255,19 +256,24 @@ class AccountingJournal extends CommonObject
|
|||||||
$linkstart .= $linkclose.'>';
|
$linkstart .= $linkclose.'>';
|
||||||
$linkend = '</a>';
|
$linkend = '</a>';
|
||||||
|
|
||||||
if ($nourl)
|
if ($nourl) {
|
||||||
{
|
|
||||||
$linkstart = '';
|
$linkstart = '';
|
||||||
$linkclose = '';
|
$linkclose = '';
|
||||||
$linkend = '';
|
$linkend = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
$label_link = $this->code;
|
$label_link = $this->code;
|
||||||
if ($withlabel) $label_link .= ' - '.($nourl ? '<span class="opacitymedium">' : '').$langs->transnoentities($this->label).($nourl ? '</span>' : '');
|
if ($withlabel) {
|
||||||
|
$label_link .= ' - '.($nourl ? '<span class="opacitymedium">' : '').$langs->transnoentities($this->label).($nourl ? '</span>' : '');
|
||||||
|
}
|
||||||
|
|
||||||
$result .= $linkstart;
|
$result .= $linkstart;
|
||||||
if ($withpicto) $result .= img_object(($notooltip ? '' : $label), ($this->picto ? $this->picto : 'generic'), ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1);
|
if ($withpicto) {
|
||||||
if ($withpicto != 2) $result .= $label_link;
|
$result .= img_object(($notooltip ? '' : $label), ($this->picto ? $this->picto : 'generic'), ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1);
|
||||||
|
}
|
||||||
|
if ($withpicto != 2) {
|
||||||
|
$result .= $label_link;
|
||||||
|
}
|
||||||
$result .= $linkend;
|
$result .= $linkend;
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
@ -299,23 +305,35 @@ class AccountingJournal extends CommonObject
|
|||||||
|
|
||||||
$langs->loadLangs(array("accountancy"));
|
$langs->loadLangs(array("accountancy"));
|
||||||
|
|
||||||
if ($mode == 0)
|
if ($mode == 0) {
|
||||||
{
|
|
||||||
$prefix = '';
|
$prefix = '';
|
||||||
if ($nature == 9) return $langs->trans('AccountingJournalType9');
|
if ($nature == 9) {
|
||||||
elseif ($nature == 5) return $langs->trans('AccountingJournalType5');
|
return $langs->trans('AccountingJournalType9');
|
||||||
elseif ($nature == 4) return $langs->trans('AccountingJournalType4');
|
} elseif ($nature == 5) {
|
||||||
elseif ($nature == 3) return $langs->trans('AccountingJournalType3');
|
return $langs->trans('AccountingJournalType5');
|
||||||
elseif ($nature == 2) return $langs->trans('AccountingJournalType2');
|
} elseif ($nature == 4) {
|
||||||
elseif ($nature == 1) return $langs->trans('AccountingJournalType1');
|
return $langs->trans('AccountingJournalType4');
|
||||||
} elseif ($mode == 1)
|
} elseif ($nature == 3) {
|
||||||
{
|
return $langs->trans('AccountingJournalType3');
|
||||||
if ($nature == 9) return $langs->trans('AccountingJournalType9');
|
} elseif ($nature == 2) {
|
||||||
elseif ($nature == 5) return $langs->trans('AccountingJournalType5');
|
return $langs->trans('AccountingJournalType2');
|
||||||
elseif ($nature == 4) return $langs->trans('AccountingJournalType4');
|
} elseif ($nature == 1) {
|
||||||
elseif ($nature == 3) return $langs->trans('AccountingJournalType3');
|
return $langs->trans('AccountingJournalType1');
|
||||||
elseif ($nature == 2) return $langs->trans('AccountingJournalType2');
|
}
|
||||||
elseif ($nature == 1) return $langs->trans('AccountingJournalType1');
|
} elseif ($mode == 1) {
|
||||||
|
if ($nature == 9) {
|
||||||
|
return $langs->trans('AccountingJournalType9');
|
||||||
|
} elseif ($nature == 5) {
|
||||||
|
return $langs->trans('AccountingJournalType5');
|
||||||
|
} elseif ($nature == 4) {
|
||||||
|
return $langs->trans('AccountingJournalType4');
|
||||||
|
} elseif ($nature == 3) {
|
||||||
|
return $langs->trans('AccountingJournalType3');
|
||||||
|
} elseif ($nature == 2) {
|
||||||
|
return $langs->trans('AccountingJournalType2');
|
||||||
|
} elseif ($nature == 1) {
|
||||||
|
return $langs->trans('AccountingJournalType1');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -135,6 +135,7 @@ class BookKeeping extends CommonObject
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @var float FEC:Amount (Not necessary)
|
* @var float FEC:Amount (Not necessary)
|
||||||
|
* @deprecated No more used
|
||||||
*/
|
*/
|
||||||
public $amount;
|
public $amount;
|
||||||
|
|
||||||
@ -239,6 +240,9 @@ class BookKeeping extends CommonObject
|
|||||||
if (isset($this->montant)) {
|
if (isset($this->montant)) {
|
||||||
$this->montant = (float) $this->montant;
|
$this->montant = (float) $this->montant;
|
||||||
}
|
}
|
||||||
|
if (isset($this->amount)) {
|
||||||
|
$this->amount = (float) $this->amount;
|
||||||
|
}
|
||||||
if (isset($this->sens)) {
|
if (isset($this->sens)) {
|
||||||
$this->sens = trim($this->sens);
|
$this->sens = trim($this->sens);
|
||||||
}
|
}
|
||||||
@ -254,21 +258,22 @@ class BookKeeping extends CommonObject
|
|||||||
if (isset($this->piece_num)) {
|
if (isset($this->piece_num)) {
|
||||||
$this->piece_num = trim($this->piece_num);
|
$this->piece_num = trim($this->piece_num);
|
||||||
}
|
}
|
||||||
if (empty($this->debit)) $this->debit = 0.0;
|
if (empty($this->debit)) {
|
||||||
if (empty($this->credit)) $this->credit = 0.0;
|
$this->debit = 0.0;
|
||||||
|
}
|
||||||
|
if (empty($this->credit)) {
|
||||||
|
$this->credit = 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
// Check parameters
|
// Check parameters
|
||||||
if (($this->numero_compte == "") || $this->numero_compte == '-1' || $this->numero_compte == 'NotDefined')
|
if (($this->numero_compte == "") || $this->numero_compte == '-1' || $this->numero_compte == 'NotDefined') {
|
||||||
{
|
|
||||||
$langs->loadLangs(array("errors"));
|
$langs->loadLangs(array("errors"));
|
||||||
if (in_array($this->doc_type, array('bank', 'expense_report')))
|
if (in_array($this->doc_type, array('bank', 'expense_report'))) {
|
||||||
{
|
|
||||||
$this->errors[] = $langs->trans('ErrorFieldAccountNotDefinedForBankLine', $this->fk_docdet, $this->doc_type);
|
$this->errors[] = $langs->trans('ErrorFieldAccountNotDefinedForBankLine', $this->fk_docdet, $this->doc_type);
|
||||||
} else {
|
} else {
|
||||||
//$this->errors[]=$langs->trans('ErrorFieldAccountNotDefinedForInvoiceLine', $this->doc_ref, $this->label_compte);
|
//$this->errors[]=$langs->trans('ErrorFieldAccountNotDefinedForInvoiceLine', $this->doc_ref, $this->label_compte);
|
||||||
$mesg = $this->doc_ref.', '.$langs->trans("AccountAccounting").': '.$this->numero_compte;
|
$mesg = $this->doc_ref.', '.$langs->trans("AccountAccounting").': '.$this->numero_compte;
|
||||||
if ($this->subledger_account && $this->subledger_account != $this->numero_compte)
|
if ($this->subledger_account && $this->subledger_account != $this->numero_compte) {
|
||||||
{
|
|
||||||
$mesg .= ', '.$langs->trans("SubledgerAccount").': '.$this->subledger_account;
|
$mesg .= ', '.$langs->trans("SubledgerAccount").': '.$this->subledger_account;
|
||||||
}
|
}
|
||||||
$this->errors[] = $langs->trans('ErrorFieldAccountNotDefinedForLine', $mesg);
|
$this->errors[] = $langs->trans('ErrorFieldAccountNotDefinedForLine', $mesg);
|
||||||
@ -299,8 +304,7 @@ class BookKeeping extends CommonObject
|
|||||||
|
|
||||||
if ($resql) {
|
if ($resql) {
|
||||||
$row = $this->db->fetch_object($resql);
|
$row = $this->db->fetch_object($resql);
|
||||||
if ($row->nb == 0)
|
if ($row->nb == 0) {
|
||||||
{
|
|
||||||
// Determine piece_num
|
// Determine piece_num
|
||||||
$sqlnum = "SELECT piece_num";
|
$sqlnum = "SELECT piece_num";
|
||||||
$sqlnum .= " FROM ".MAIN_DB_PREFIX.$this->table_element;
|
$sqlnum .= " FROM ".MAIN_DB_PREFIX.$this->table_element;
|
||||||
@ -452,7 +456,9 @@ class BookKeeping extends CommonObject
|
|||||||
global $dolibarr_main_authentication, $dolibarr_main_demo;
|
global $dolibarr_main_authentication, $dolibarr_main_demo;
|
||||||
global $menumanager;
|
global $menumanager;
|
||||||
|
|
||||||
if (!empty($conf->dol_no_mouse_hover)) $notooltip = 1; // Force disable tooltips
|
if (!empty($conf->dol_no_mouse_hover)) {
|
||||||
|
$notooltip = 1; // Force disable tooltips
|
||||||
|
}
|
||||||
|
|
||||||
$result = '';
|
$result = '';
|
||||||
$companylink = '';
|
$companylink = '';
|
||||||
@ -463,33 +469,40 @@ class BookKeeping extends CommonObject
|
|||||||
|
|
||||||
$url = DOL_URL_ROOT.'/accountancy/bookkeeping/card.php?piece_num='.$this->piece_num;
|
$url = DOL_URL_ROOT.'/accountancy/bookkeeping/card.php?piece_num='.$this->piece_num;
|
||||||
|
|
||||||
if ($option != 'nolink')
|
if ($option != 'nolink') {
|
||||||
{
|
|
||||||
// Add param to save lastsearch_values or not
|
// Add param to save lastsearch_values or not
|
||||||
$add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0);
|
$add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0);
|
||||||
if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) $add_save_lastsearch_values = 1;
|
if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) {
|
||||||
if ($add_save_lastsearch_values) $url .= '&save_lastsearch_values=1';
|
$add_save_lastsearch_values = 1;
|
||||||
|
}
|
||||||
|
if ($add_save_lastsearch_values) {
|
||||||
|
$url .= '&save_lastsearch_values=1';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$linkclose = '';
|
$linkclose = '';
|
||||||
if (empty($notooltip))
|
if (empty($notooltip)) {
|
||||||
{
|
if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) {
|
||||||
if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER))
|
|
||||||
{
|
|
||||||
$label = $langs->trans("ShowTransaction");
|
$label = $langs->trans("ShowTransaction");
|
||||||
$linkclose .= ' alt="'.dol_escape_htmltag($label, 1).'"';
|
$linkclose .= ' alt="'.dol_escape_htmltag($label, 1).'"';
|
||||||
}
|
}
|
||||||
$linkclose .= ' title="'.dol_escape_htmltag($label, 1).'"';
|
$linkclose .= ' title="'.dol_escape_htmltag($label, 1).'"';
|
||||||
$linkclose .= ' class="classfortooltip'.($morecss ? ' '.$morecss : '').'"';
|
$linkclose .= ' class="classfortooltip'.($morecss ? ' '.$morecss : '').'"';
|
||||||
} else $linkclose = ($morecss ? ' class="'.$morecss.'"' : '');
|
} else {
|
||||||
|
$linkclose = ($morecss ? ' class="'.$morecss.'"' : '');
|
||||||
|
}
|
||||||
|
|
||||||
$linkstart = '<a href="'.$url.'"';
|
$linkstart = '<a href="'.$url.'"';
|
||||||
$linkstart .= $linkclose.'>';
|
$linkstart .= $linkclose.'>';
|
||||||
$linkend = '</a>';
|
$linkend = '</a>';
|
||||||
|
|
||||||
$result .= $linkstart;
|
$result .= $linkstart;
|
||||||
if ($withpicto) $result .= img_object(($notooltip ? '' : $label), ($this->picto ? $this->picto : 'generic'), ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1);
|
if ($withpicto) {
|
||||||
if ($withpicto != 2) $result .= $this->piece_num;
|
$result .= img_object(($notooltip ? '' : $label), ($this->picto ? $this->picto : 'generic'), ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1);
|
||||||
|
}
|
||||||
|
if ($withpicto != 2) {
|
||||||
|
$result .= $this->piece_num;
|
||||||
|
}
|
||||||
$result .= $linkend;
|
$result .= $linkend;
|
||||||
//if ($withpicto != 2) $result.=(($addlabel && $this->label) ? $sep . dol_trunc($this->label, ($addlabel > 1 ? $addlabel : 0)) : '');
|
//if ($withpicto != 2) $result.=(($addlabel && $this->label) ? $sep . dol_trunc($this->label, ($addlabel > 1 ? $addlabel : 0)) : '');
|
||||||
|
|
||||||
@ -554,6 +567,9 @@ class BookKeeping extends CommonObject
|
|||||||
if (isset($this->montant)) {
|
if (isset($this->montant)) {
|
||||||
$this->montant = trim($this->montant);
|
$this->montant = trim($this->montant);
|
||||||
}
|
}
|
||||||
|
if (isset($this->amount)) {
|
||||||
|
$this->amount = trim($this->amount);
|
||||||
|
}
|
||||||
if (isset($this->sens)) {
|
if (isset($this->sens)) {
|
||||||
$this->sens = trim($this->sens);
|
$this->sens = trim($this->sens);
|
||||||
}
|
}
|
||||||
@ -569,8 +585,12 @@ class BookKeeping extends CommonObject
|
|||||||
if (isset($this->piece_num)) {
|
if (isset($this->piece_num)) {
|
||||||
$this->piece_num = trim($this->piece_num);
|
$this->piece_num = trim($this->piece_num);
|
||||||
}
|
}
|
||||||
if (empty($this->debit)) $this->debit = 0;
|
if (empty($this->debit)) {
|
||||||
if (empty($this->credit)) $this->credit = 0;
|
$this->debit = 0;
|
||||||
|
}
|
||||||
|
if (empty($this->credit)) {
|
||||||
|
$this->credit = 0;
|
||||||
|
}
|
||||||
|
|
||||||
$this->debit = price2num($this->debit, 'MT');
|
$this->debit = price2num($this->debit, 'MT');
|
||||||
$this->credit = price2num($this->credit, 'MT');
|
$this->credit = price2num($this->credit, 'MT');
|
||||||
@ -695,7 +715,7 @@ class BookKeeping extends CommonObject
|
|||||||
$sql .= " t.label_operation,";
|
$sql .= " t.label_operation,";
|
||||||
$sql .= " t.debit,";
|
$sql .= " t.debit,";
|
||||||
$sql .= " t.credit,";
|
$sql .= " t.credit,";
|
||||||
$sql .= " t.montant,";
|
$sql .= " t.montant as amount,";
|
||||||
$sql .= " t.sens,";
|
$sql .= " t.sens,";
|
||||||
$sql .= " t.fk_user_author,";
|
$sql .= " t.fk_user_author,";
|
||||||
$sql .= " t.import_key,";
|
$sql .= " t.import_key,";
|
||||||
@ -734,7 +754,8 @@ class BookKeeping extends CommonObject
|
|||||||
$this->label_operation = $obj->label_operation;
|
$this->label_operation = $obj->label_operation;
|
||||||
$this->debit = $obj->debit;
|
$this->debit = $obj->debit;
|
||||||
$this->credit = $obj->credit;
|
$this->credit = $obj->credit;
|
||||||
$this->montant = $obj->montant;
|
$this->montant = $obj->amount;
|
||||||
|
$this->amount = $obj->amount;
|
||||||
$this->sens = $obj->sens;
|
$this->sens = $obj->sens;
|
||||||
$this->fk_user_author = $obj->fk_user_author;
|
$this->fk_user_author = $obj->fk_user_author;
|
||||||
$this->import_key = $obj->import_key;
|
$this->import_key = $obj->import_key;
|
||||||
@ -1009,8 +1030,7 @@ class BookKeeping extends CommonObject
|
|||||||
$num = $this->db->num_rows($resql);
|
$num = $this->db->num_rows($resql);
|
||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
while (($obj = $this->db->fetch_object($resql)) && (empty($limit) || $i < min($limit, $num)))
|
while (($obj = $this->db->fetch_object($resql)) && (empty($limit) || $i < min($limit, $num))) {
|
||||||
{
|
|
||||||
$line = new BookKeepingLine();
|
$line = new BookKeepingLine();
|
||||||
|
|
||||||
$line->id = $obj->rowid;
|
$line->id = $obj->rowid;
|
||||||
@ -1118,13 +1138,11 @@ class BookKeeping extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
if ($resql)
|
if ($resql) {
|
||||||
{
|
|
||||||
$num = $this->db->num_rows($resql);
|
$num = $this->db->num_rows($resql);
|
||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
while (($obj = $this->db->fetch_object($resql)) && (empty($limit) || $i < min($limit, $num)))
|
while (($obj = $this->db->fetch_object($resql)) && (empty($limit) || $i < min($limit, $num))) {
|
||||||
{
|
|
||||||
$line = new BookKeepingLine();
|
$line = new BookKeepingLine();
|
||||||
|
|
||||||
$line->numero_compte = $obj->numero_compte;
|
$line->numero_compte = $obj->numero_compte;
|
||||||
@ -1197,8 +1215,8 @@ class BookKeeping extends CommonObject
|
|||||||
if (isset($this->credit)) {
|
if (isset($this->credit)) {
|
||||||
$this->credit = trim($this->credit);
|
$this->credit = trim($this->credit);
|
||||||
}
|
}
|
||||||
if (isset($this->montant)) {
|
if (isset($this->amount)) {
|
||||||
$this->montant = trim($this->montant);
|
$this->amount = trim($this->amount);
|
||||||
}
|
}
|
||||||
if (isset($this->sens)) {
|
if (isset($this->sens)) {
|
||||||
$this->sens = trim($this->sens);
|
$this->sens = trim($this->sens);
|
||||||
@ -1404,13 +1422,11 @@ class BookKeeping extends CommonObject
|
|||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
|
|
||||||
if (empty($delyear) && empty($journal))
|
if (empty($delyear) && empty($journal)) {
|
||||||
{
|
|
||||||
$this->error = 'ErrorOneFieldRequired';
|
$this->error = 'ErrorOneFieldRequired';
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (!empty($delmonth) && empty($delyear))
|
if (!empty($delmonth) && empty($delyear)) {
|
||||||
{
|
|
||||||
$this->error = 'YearRequiredIfMonthDefined';
|
$this->error = 'YearRequiredIfMonthDefined';
|
||||||
return -2;
|
return -2;
|
||||||
}
|
}
|
||||||
@ -1422,7 +1438,9 @@ class BookKeeping extends CommonObject
|
|||||||
$sql .= " FROM ".MAIN_DB_PREFIX.$this->table_element.$mode;
|
$sql .= " FROM ".MAIN_DB_PREFIX.$this->table_element.$mode;
|
||||||
$sql .= " WHERE 1 = 1";
|
$sql .= " WHERE 1 = 1";
|
||||||
$sql .= dolSqlDateFilter('doc_date', 0, $delmonth, $delyear);
|
$sql .= dolSqlDateFilter('doc_date', 0, $delmonth, $delyear);
|
||||||
if (!empty($journal)) $sql .= " AND code_journal = '".$this->db->escape($journal)."'";
|
if (!empty($journal)) {
|
||||||
|
$sql .= " AND code_journal = '".$this->db->escape($journal)."'";
|
||||||
|
}
|
||||||
$sql .= " AND entity IN (".getEntity('accountancy').")";
|
$sql .= " AND entity IN (".getEntity('accountancy').")";
|
||||||
|
|
||||||
// TODO: In a future we must forbid deletion if record is inside a closed fiscal period.
|
// TODO: In a future we must forbid deletion if record is inside a closed fiscal period.
|
||||||
@ -1617,8 +1635,12 @@ class BookKeeping extends CommonObject
|
|||||||
|
|
||||||
if ($result) {
|
if ($result) {
|
||||||
$obj = $this->db->fetch_object($result);
|
$obj = $this->db->fetch_object($result);
|
||||||
if ($obj) $result = $obj->max;
|
if ($obj) {
|
||||||
if (empty($result)) $result = 1;
|
$result = $obj->max;
|
||||||
|
}
|
||||||
|
if (empty($result)) {
|
||||||
|
$result = 1;
|
||||||
|
}
|
||||||
return $result;
|
return $result;
|
||||||
} else {
|
} else {
|
||||||
$this->error = "Error ".$this->db->lasterror();
|
$this->error = "Error ".$this->db->lasterror();
|
||||||
@ -1641,7 +1663,7 @@ class BookKeeping extends CommonObject
|
|||||||
$sql = "SELECT rowid, doc_date, doc_type,";
|
$sql = "SELECT rowid, doc_date, doc_type,";
|
||||||
$sql .= " doc_ref, fk_doc, fk_docdet, thirdparty_code, subledger_account, subledger_label,";
|
$sql .= " doc_ref, fk_doc, fk_docdet, thirdparty_code, subledger_account, subledger_label,";
|
||||||
$sql .= " numero_compte, label_compte, label_operation, debit, credit,";
|
$sql .= " numero_compte, label_compte, label_operation, debit, credit,";
|
||||||
$sql .= " montant, sens, fk_user_author, import_key, code_journal, journal_label, piece_num, date_creation";
|
$sql .= " montant as amount, sens, fk_user_author, import_key, code_journal, journal_label, piece_num, date_creation";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX.$this->table_element.$mode;
|
$sql .= " FROM ".MAIN_DB_PREFIX.$this->table_element.$mode;
|
||||||
$sql .= " WHERE piece_num = ".$piecenum;
|
$sql .= " WHERE piece_num = ".$piecenum;
|
||||||
$sql .= " AND entity IN (".getEntity('accountancy').")";
|
$sql .= " AND entity IN (".getEntity('accountancy').")";
|
||||||
@ -1667,7 +1689,8 @@ class BookKeeping extends CommonObject
|
|||||||
$line->label_operation = $obj->label_operation;
|
$line->label_operation = $obj->label_operation;
|
||||||
$line->debit = $obj->debit;
|
$line->debit = $obj->debit;
|
||||||
$line->credit = $obj->credit;
|
$line->credit = $obj->credit;
|
||||||
$line->montant = $obj->montant;
|
$line->montant = $obj->amount;
|
||||||
|
$line->amount = $obj->amount;
|
||||||
$line->sens = $obj->sens;
|
$line->sens = $obj->sens;
|
||||||
$line->code_journal = $obj->code_journal;
|
$line->code_journal = $obj->code_journal;
|
||||||
$line->journal_label = $obj->journal_label;
|
$line->journal_label = $obj->journal_label;
|
||||||
@ -1700,7 +1723,7 @@ class BookKeeping extends CommonObject
|
|||||||
$sql = "SELECT rowid, doc_date, doc_type,";
|
$sql = "SELECT rowid, doc_date, doc_type,";
|
||||||
$sql .= " doc_ref, fk_doc, fk_docdet, thirdparty_code, subledger_account, subledger_label,";
|
$sql .= " doc_ref, fk_doc, fk_docdet, thirdparty_code, subledger_account, subledger_label,";
|
||||||
$sql .= " numero_compte, label_compte, label_operation, debit, credit,";
|
$sql .= " numero_compte, label_compte, label_operation, debit, credit,";
|
||||||
$sql .= " montant, sens, fk_user_author, import_key, code_journal, piece_num";
|
$sql .= " montant as amount, sens, fk_user_author, import_key, code_journal, piece_num";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX.$this->table_element;
|
$sql .= " FROM ".MAIN_DB_PREFIX.$this->table_element;
|
||||||
$sql .= " WHERE entity IN (".getEntity('accountancy').")";
|
$sql .= " WHERE entity IN (".getEntity('accountancy').")";
|
||||||
|
|
||||||
@ -1730,7 +1753,8 @@ class BookKeeping extends CommonObject
|
|||||||
$line->label_operation = $obj->label_operation;
|
$line->label_operation = $obj->label_operation;
|
||||||
$line->debit = $obj->debit;
|
$line->debit = $obj->debit;
|
||||||
$line->credit = $obj->credit;
|
$line->credit = $obj->credit;
|
||||||
$line->montant = $obj->montant;
|
$line->montant = $obj->amount;
|
||||||
|
$line->amount = $obj->amount;
|
||||||
$line->sens = $obj->sens;
|
$line->sens = $obj->sens;
|
||||||
$line->code_journal = $obj->code_journal;
|
$line->code_journal = $obj->code_journal;
|
||||||
$line->piece_num = $obj->piece_num;
|
$line->piece_num = $obj->piece_num;
|
||||||
@ -1760,8 +1784,7 @@ class BookKeeping extends CommonObject
|
|||||||
|
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
if ($direction == 0)
|
if ($direction == 0) {
|
||||||
{
|
|
||||||
$next_piecenum = $this->getNextNumMvt();
|
$next_piecenum = $this->getNextNumMvt();
|
||||||
$now = dol_now();
|
$now = dol_now();
|
||||||
|
|
||||||
|
|||||||
@ -67,12 +67,15 @@ class Lettering extends BookKeeping
|
|||||||
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as bk";
|
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as bk";
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."bank_url as bu ON(bk.fk_doc = bu.fk_bank AND bu.type IN ('payment', 'payment_supplier') ) ";
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."bank_url as bu ON(bk.fk_doc = bu.fk_bank AND bu.type IN ('payment', 'payment_supplier') ) ";
|
||||||
$sql .= " WHERE ( ";
|
$sql .= " WHERE ( ";
|
||||||
if ($object->code_compta != "")
|
if ($object->code_compta != "") {
|
||||||
$sql .= " bk.subledger_account = '".$this->db->escape($object->code_compta)."' ";
|
$sql .= " bk.subledger_account = '".$this->db->escape($object->code_compta)."' ";
|
||||||
if ($object->code_compta != "" && $object->code_compta_fournisseur != "")
|
}
|
||||||
|
if ($object->code_compta != "" && $object->code_compta_fournisseur != "") {
|
||||||
$sql .= " OR ";
|
$sql .= " OR ";
|
||||||
if ($object->code_compta_fournisseur != "")
|
}
|
||||||
|
if ($object->code_compta_fournisseur != "") {
|
||||||
$sql .= " bk.subledger_account = '".$this->db->escape($object->code_compta_fournisseur)."' ";
|
$sql .= " bk.subledger_account = '".$this->db->escape($object->code_compta_fournisseur)."' ";
|
||||||
|
}
|
||||||
|
|
||||||
$sql .= " ) AND (bk.date_lettering ='' OR bk.date_lettering IS NULL) ";
|
$sql .= " ) AND (bk.date_lettering ='' OR bk.date_lettering IS NULL) ";
|
||||||
$sql .= " AND (bk.lettering_code != '' OR bk.lettering_code IS NULL) ";
|
$sql .= " AND (bk.lettering_code != '' OR bk.lettering_code IS NULL) ";
|
||||||
@ -89,8 +92,7 @@ class Lettering extends BookKeeping
|
|||||||
$ids = array();
|
$ids = array();
|
||||||
$ids_fact = array();
|
$ids_fact = array();
|
||||||
|
|
||||||
if ($obj->type == 'payment_supplier')
|
if ($obj->type == 'payment_supplier') {
|
||||||
{
|
|
||||||
$sql = 'SELECT DISTINCT bk.rowid, facf.ref, facf.ref_supplier, payf.fk_bank, facf.rowid as fact_id';
|
$sql = 'SELECT DISTINCT bk.rowid, facf.ref, facf.ref_supplier, payf.fk_bank, facf.rowid as fact_id';
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."facture_fourn facf ";
|
$sql .= " FROM ".MAIN_DB_PREFIX."facture_fourn facf ";
|
||||||
$sql .= " INNER JOIN ".MAIN_DB_PREFIX."paiementfourn_facturefourn as payfacf ON payfacf.fk_facturefourn=facf.rowid";
|
$sql .= " INNER JOIN ".MAIN_DB_PREFIX."paiementfourn_facturefourn as payfacf ON payfacf.fk_facturefourn=facf.rowid";
|
||||||
@ -244,8 +246,9 @@ class Lettering extends BookKeeping
|
|||||||
if ($result) {
|
if ($result) {
|
||||||
$obj = $this->db->fetch_object($result);
|
$obj = $this->db->fetch_object($result);
|
||||||
$lettre = (empty($obj->lettering_code) ? 'AAA' : $obj->lettering_code);
|
$lettre = (empty($obj->lettering_code) ? 'AAA' : $obj->lettering_code);
|
||||||
if (!empty($obj->lettering_code))
|
if (!empty($obj->lettering_code)) {
|
||||||
$lettre++;
|
$lettre++;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$this->errors[] = 'Error'.$this->db->lasterror();
|
$this->errors[] = 'Error'.$this->db->lasterror();
|
||||||
$error++;
|
$error++;
|
||||||
@ -269,8 +272,7 @@ class Lettering extends BookKeeping
|
|||||||
|
|
||||||
$now = dol_now();
|
$now = dol_now();
|
||||||
|
|
||||||
if (!$error)
|
if (!$error) {
|
||||||
{
|
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."accounting_bookkeeping SET";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."accounting_bookkeeping SET";
|
||||||
$sql .= " lettering_code='".$this->db->escape($lettre)."'";
|
$sql .= " lettering_code='".$this->db->escape($lettre)."'";
|
||||||
$sql .= " , date_lettering = '".$this->db->idate($now)."'"; // todo correct date it's false
|
$sql .= " , date_lettering = '".$this->db->idate($now)."'"; // todo correct date it's false
|
||||||
|
|||||||
@ -39,23 +39,27 @@ $action = GETPOST('action', 'aZ09');
|
|||||||
if (empty($conf->accounting->enabled)) {
|
if (empty($conf->accounting->enabled)) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
}
|
}
|
||||||
if ($user->socid > 0)
|
if ($user->socid > 0) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
if (!$user->rights->accounting->fiscalyear->write)
|
}
|
||||||
|
if (!$user->rights->accounting->fiscalyear->write) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
$object = new BookKeeping($db);
|
$object = new BookKeeping($db);
|
||||||
|
|
||||||
$month_start = ($conf->global->SOCIETE_FISCAL_MONTH_START ? ($conf->global->SOCIETE_FISCAL_MONTH_START) : 1);
|
$month_start = ($conf->global->SOCIETE_FISCAL_MONTH_START ? ($conf->global->SOCIETE_FISCAL_MONTH_START) : 1);
|
||||||
if (GETPOST("year", 'int')) $year_start = GETPOST("year", 'int');
|
if (GETPOST("year", 'int')) {
|
||||||
else {
|
$year_start = GETPOST("year", 'int');
|
||||||
|
} else {
|
||||||
$year_start = dol_print_date(dol_now(), '%Y');
|
$year_start = dol_print_date(dol_now(), '%Y');
|
||||||
if (dol_print_date(dol_now(), '%m') < $month_start) $year_start--; // If current month is lower that starting fiscal month, we start last year
|
if (dol_print_date(dol_now(), '%m') < $month_start) {
|
||||||
|
$year_start--; // If current month is lower that starting fiscal month, we start last year
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$year_end = $year_start + 1;
|
$year_end = $year_start + 1;
|
||||||
$month_end = $month_start - 1;
|
$month_end = $month_start - 1;
|
||||||
if ($month_end < 1)
|
if ($month_end < 1) {
|
||||||
{
|
|
||||||
$month_end = 12;
|
$month_end = 12;
|
||||||
$year_end--;
|
$year_end--;
|
||||||
}
|
}
|
||||||
@ -69,8 +73,7 @@ $year_current = $year_start;
|
|||||||
if ($action == 'validate_movements_confirm' && $user->rights->accounting->fiscalyear->write) {
|
if ($action == 'validate_movements_confirm' && $user->rights->accounting->fiscalyear->write) {
|
||||||
$result = $object->fetchAll();
|
$result = $object->fetchAll();
|
||||||
|
|
||||||
if ($result < 0)
|
if ($result < 0) {
|
||||||
{
|
|
||||||
setEventMessages($object->error, $object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
} else {
|
} else {
|
||||||
// Specify as export : update field date_validated on selected month/year
|
// Specify as export : update field date_validated on selected month/year
|
||||||
@ -80,10 +83,8 @@ if ($action == 'validate_movements_confirm' && $user->rights->accounting->fiscal
|
|||||||
$date_start = dol_mktime(0, 0, 0, GETPOST('date_startmonth', 'int'), GETPOST('date_startday', 'int'), GETPOST('date_startyear', 'int'));
|
$date_start = dol_mktime(0, 0, 0, GETPOST('date_startmonth', 'int'), GETPOST('date_startday', 'int'), GETPOST('date_startyear', 'int'));
|
||||||
$date_end = dol_mktime(23, 59, 59, GETPOST('date_endmonth', 'int'), GETPOST('date_endday', 'int'), GETPOST('date_endyear', 'int'));
|
$date_end = dol_mktime(23, 59, 59, GETPOST('date_endmonth', 'int'), GETPOST('date_endday', 'int'), GETPOST('date_endyear', 'int'));
|
||||||
|
|
||||||
if (is_array($object->lines))
|
if (is_array($object->lines)) {
|
||||||
{
|
foreach ($object->lines as $movement) {
|
||||||
foreach ($object->lines as $movement)
|
|
||||||
{
|
|
||||||
$now = dol_now();
|
$now = dol_now();
|
||||||
|
|
||||||
$sql = " UPDATE ".MAIN_DB_PREFIX."accounting_bookkeeping";
|
$sql = " UPDATE ".MAIN_DB_PREFIX."accounting_bookkeeping";
|
||||||
@ -94,16 +95,14 @@ if ($action == 'validate_movements_confirm' && $user->rights->accounting->fiscal
|
|||||||
|
|
||||||
dol_syslog("/accountancy/closure/index.php :: Function validate_movement_confirm Specify movements as validated sql=".$sql, LOG_DEBUG);
|
dol_syslog("/accountancy/closure/index.php :: Function validate_movement_confirm Specify movements as validated sql=".$sql, LOG_DEBUG);
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if (!$result)
|
if (!$result) {
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$error)
|
if (!$error) {
|
||||||
{
|
|
||||||
$db->commit();
|
$db->commit();
|
||||||
setEventMessages($langs->trans("AllMovementsWereRecordedAsValidated"), null, 'mesgs');
|
setEventMessages($langs->trans("AllMovementsWereRecordedAsValidated"), null, 'mesgs');
|
||||||
} else {
|
} else {
|
||||||
@ -171,7 +170,9 @@ print '<div class="div-table-responsive-no-min">';
|
|||||||
print '<table class="noborder centpercent">';
|
print '<table class="noborder centpercent">';
|
||||||
for ($i = 1; $i <= 12; $i++) {
|
for ($i = 1; $i <= 12; $i++) {
|
||||||
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
||||||
if ($j > 12) $j -= 12;
|
if ($j > 12) {
|
||||||
|
$j -= 12;
|
||||||
|
}
|
||||||
print '<td width="60" class="right">'.$langs->trans('MonthShort'.str_pad($j, 2, '0', STR_PAD_LEFT)).'</td>';
|
print '<td width="60" class="right">'.$langs->trans('MonthShort'.str_pad($j, 2, '0', STR_PAD_LEFT)).'</td>';
|
||||||
}
|
}
|
||||||
print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>';
|
print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>';
|
||||||
@ -179,7 +180,9 @@ print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>'
|
|||||||
$sql = "SELECT COUNT(b.rowid) as detail,";
|
$sql = "SELECT COUNT(b.rowid) as detail,";
|
||||||
for ($i = 1; $i <= 12; $i++) {
|
for ($i = 1; $i <= 12; $i++) {
|
||||||
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
||||||
if ($j > 12) $j -= 12;
|
if ($j > 12) {
|
||||||
|
$j -= 12;
|
||||||
|
}
|
||||||
$sql .= " SUM(".$db->ifsql('MONTH(b.doc_date)='.$j, '1', '0').") AS month".str_pad($j, 2, '0', STR_PAD_LEFT).",";
|
$sql .= " SUM(".$db->ifsql('MONTH(b.doc_date)='.$j, '1', '0').") AS month".str_pad($j, 2, '0', STR_PAD_LEFT).",";
|
||||||
}
|
}
|
||||||
$sql .= " COUNT(b.rowid) as total";
|
$sql .= " COUNT(b.rowid) as total";
|
||||||
|
|||||||
@ -38,19 +38,20 @@ $codeventil = GETPOST('codeventil', 'int');
|
|||||||
$id = GETPOST('id', 'int');
|
$id = GETPOST('id', 'int');
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->socid > 0)
|
if ($user->socid > 0) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($action == 'ventil' && $user->rights->accounting->bind->write)
|
if ($action == 'ventil' && $user->rights->accounting->bind->write) {
|
||||||
{
|
if (!$cancel) {
|
||||||
if (!$cancel)
|
if ($codeventil < 0) {
|
||||||
{
|
$codeventil = 0;
|
||||||
if ($codeventil < 0) $codeventil = 0;
|
}
|
||||||
|
|
||||||
$sql = " UPDATE ".MAIN_DB_PREFIX."facturedet";
|
$sql = " UPDATE ".MAIN_DB_PREFIX."facturedet";
|
||||||
$sql .= " SET fk_code_ventilation = ".$codeventil;
|
$sql .= " SET fk_code_ventilation = ".$codeventil;
|
||||||
@ -61,8 +62,7 @@ if ($action == 'ventil' && $user->rights->accounting->bind->write)
|
|||||||
setEventMessages($db->lasterror(), null, 'errors');
|
setEventMessages($db->lasterror(), null, 'errors');
|
||||||
} else {
|
} else {
|
||||||
setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs');
|
setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs');
|
||||||
if ($backtopage)
|
if ($backtopage) {
|
||||||
{
|
|
||||||
header("Location: ".$backtopage);
|
header("Location: ".$backtopage);
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -39,22 +39,26 @@ $langs->loadLangs(array("compta", "bills", "other", "main", "accountancy"));
|
|||||||
if (empty($conf->accounting->enabled)) {
|
if (empty($conf->accounting->enabled)) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
}
|
}
|
||||||
if ($user->socid > 0)
|
if ($user->socid > 0) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
if (!$user->rights->accounting->bind->write)
|
}
|
||||||
|
if (!$user->rights->accounting->bind->write) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$month_start = ($conf->global->SOCIETE_FISCAL_MONTH_START ? ($conf->global->SOCIETE_FISCAL_MONTH_START) : 1);
|
$month_start = ($conf->global->SOCIETE_FISCAL_MONTH_START ? ($conf->global->SOCIETE_FISCAL_MONTH_START) : 1);
|
||||||
if (GETPOST("year", 'int')) $year_start = GETPOST("year", 'int');
|
if (GETPOST("year", 'int')) {
|
||||||
else {
|
$year_start = GETPOST("year", 'int');
|
||||||
|
} else {
|
||||||
$year_start = dol_print_date(dol_now(), '%Y');
|
$year_start = dol_print_date(dol_now(), '%Y');
|
||||||
if (dol_print_date(dol_now(), '%m') < $month_start) $year_start--; // If current month is lower that starting fiscal month, we start last year
|
if (dol_print_date(dol_now(), '%m') < $month_start) {
|
||||||
|
$year_start--; // If current month is lower that starting fiscal month, we start last year
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$year_end = $year_start + 1;
|
$year_end = $year_start + 1;
|
||||||
$month_end = $month_start - 1;
|
$month_end = $month_start - 1;
|
||||||
if ($month_end < 1)
|
if ($month_end < 1) {
|
||||||
{
|
|
||||||
$month_end = 12;
|
$month_end = 12;
|
||||||
$year_end--;
|
$year_end--;
|
||||||
}
|
}
|
||||||
@ -72,8 +76,7 @@ $chartaccountcode = dol_getIdFromCode($db, $conf->global->CHARTOFACCOUNTS, 'acco
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($action == 'clean' || $action == 'validatehistory')
|
if ($action == 'clean' || $action == 'validatehistory') {
|
||||||
{
|
|
||||||
// Clean database
|
// Clean database
|
||||||
$db->begin();
|
$db->begin();
|
||||||
$sql1 = "UPDATE ".MAIN_DB_PREFIX."facturedet as fd";
|
$sql1 = "UPDATE ".MAIN_DB_PREFIX."facturedet as fd";
|
||||||
@ -187,15 +190,13 @@ if ($action == 'validatehistory') {
|
|||||||
$suggestedaccountingaccountfor = '';
|
$suggestedaccountingaccountfor = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($objp->aarowid_suggest > 0)
|
if ($objp->aarowid_suggest > 0) {
|
||||||
{
|
|
||||||
$sqlupdate = "UPDATE ".MAIN_DB_PREFIX."facturedet";
|
$sqlupdate = "UPDATE ".MAIN_DB_PREFIX."facturedet";
|
||||||
$sqlupdate .= " SET fk_code_ventilation = ".$objp->aarowid_suggest;
|
$sqlupdate .= " SET fk_code_ventilation = ".$objp->aarowid_suggest;
|
||||||
$sqlupdate .= " WHERE fk_code_ventilation <= 0 AND product_type <= 2 AND rowid = ".$objp->rowid;
|
$sqlupdate .= " WHERE fk_code_ventilation <= 0 AND product_type <= 2 AND rowid = ".$objp->rowid;
|
||||||
|
|
||||||
$resqlupdate = $db->query($sqlupdate);
|
$resqlupdate = $db->query($sqlupdate);
|
||||||
if (!$resqlupdate)
|
if (!$resqlupdate) {
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
setEventMessages($db->lasterror(), null, 'errors');
|
setEventMessages($db->lasterror(), null, 'errors');
|
||||||
break;
|
break;
|
||||||
@ -206,8 +207,7 @@ if ($action == 'validatehistory') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($error)
|
if ($error) {
|
||||||
{
|
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
} else {
|
} else {
|
||||||
$db->commit();
|
$db->commit();
|
||||||
@ -246,7 +246,9 @@ print '<tr class="liste_titre"><td width="200">'.$langs->trans("Account").'</td>
|
|||||||
print '<td width="200" class="left">'.$langs->trans("Label").'</td>';
|
print '<td width="200" class="left">'.$langs->trans("Label").'</td>';
|
||||||
for ($i = 1; $i <= 12; $i++) {
|
for ($i = 1; $i <= 12; $i++) {
|
||||||
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
||||||
if ($j > 12) $j -= 12;
|
if ($j > 12) {
|
||||||
|
$j -= 12;
|
||||||
|
}
|
||||||
print '<td width="60" class="right">'.$langs->trans('MonthShort'.str_pad($j, 2, '0', STR_PAD_LEFT)).'</td>';
|
print '<td width="60" class="right">'.$langs->trans('MonthShort'.str_pad($j, 2, '0', STR_PAD_LEFT)).'</td>';
|
||||||
}
|
}
|
||||||
print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>';
|
print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>';
|
||||||
@ -255,7 +257,9 @@ $sql = "SELECT ".$db->ifsql('aa.account_number IS NULL', "'tobind'", 'aa.account
|
|||||||
$sql .= " ".$db->ifsql('aa.label IS NULL', "'tobind'", 'aa.label')." AS intitule,";
|
$sql .= " ".$db->ifsql('aa.label IS NULL', "'tobind'", 'aa.label')." AS intitule,";
|
||||||
for ($i = 1; $i <= 12; $i++) {
|
for ($i = 1; $i <= 12; $i++) {
|
||||||
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
||||||
if ($j > 12) $j -= 12;
|
if ($j > 12) {
|
||||||
|
$j -= 12;
|
||||||
|
}
|
||||||
$sql .= " SUM(".$db->ifsql('MONTH(f.datef)='.$j, 'fd.total_ht', '0').") AS month".str_pad($j, 2, '0', STR_PAD_LEFT).",";
|
$sql .= " SUM(".$db->ifsql('MONTH(f.datef)='.$j, 'fd.total_ht', '0').") AS month".str_pad($j, 2, '0', STR_PAD_LEFT).",";
|
||||||
}
|
}
|
||||||
$sql .= " SUM(fd.total_ht) as total";
|
$sql .= " SUM(fd.total_ht) as total";
|
||||||
@ -286,16 +290,18 @@ if ($resql) {
|
|||||||
|
|
||||||
while ($row = $db->fetch_row($resql)) {
|
while ($row = $db->fetch_row($resql)) {
|
||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
if ($row[0] == 'tobind')
|
if ($row[0] == 'tobind') {
|
||||||
{
|
|
||||||
print $langs->trans("Unknown");
|
print $langs->trans("Unknown");
|
||||||
} else print length_accountg($row[0]);
|
} else {
|
||||||
|
print length_accountg($row[0]);
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="left">';
|
print '<td class="left">';
|
||||||
if ($row[0] == 'tobind')
|
if ($row[0] == 'tobind') {
|
||||||
{
|
|
||||||
print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/customer/list.php?search_year='.$y, $langs->transnoentitiesnoconv("ToBind"));
|
print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/customer/list.php?search_year='.$y, $langs->transnoentitiesnoconv("ToBind"));
|
||||||
} else print $row[1];
|
} else {
|
||||||
|
print $row[1];
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
for ($i = 2; $i <= 12; $i++) {
|
for ($i = 2; $i <= 12; $i++) {
|
||||||
print '<td class="nowrap right">'.price($row[$i]).'</td>';
|
print '<td class="nowrap right">'.price($row[$i]).'</td>';
|
||||||
@ -324,7 +330,9 @@ print '<tr class="liste_titre"><td width="200">'.$langs->trans("Account").'</td>
|
|||||||
print '<td width="200" class="left">'.$langs->trans("Label").'</td>';
|
print '<td width="200" class="left">'.$langs->trans("Label").'</td>';
|
||||||
for ($i = 1; $i <= 12; $i++) {
|
for ($i = 1; $i <= 12; $i++) {
|
||||||
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
||||||
if ($j > 12) $j -= 12;
|
if ($j > 12) {
|
||||||
|
$j -= 12;
|
||||||
|
}
|
||||||
print '<td width="60" class="right">'.$langs->trans('MonthShort'.str_pad($j, 2, '0', STR_PAD_LEFT)).'</td>';
|
print '<td width="60" class="right">'.$langs->trans('MonthShort'.str_pad($j, 2, '0', STR_PAD_LEFT)).'</td>';
|
||||||
}
|
}
|
||||||
print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>';
|
print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>';
|
||||||
@ -333,7 +341,9 @@ $sql = "SELECT ".$db->ifsql('aa.account_number IS NULL', "'tobind'", 'aa.account
|
|||||||
$sql .= " ".$db->ifsql('aa.label IS NULL', "'tobind'", 'aa.label')." AS intitule,";
|
$sql .= " ".$db->ifsql('aa.label IS NULL', "'tobind'", 'aa.label')." AS intitule,";
|
||||||
for ($i = 1; $i <= 12; $i++) {
|
for ($i = 1; $i <= 12; $i++) {
|
||||||
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
||||||
if ($j > 12) $j -= 12;
|
if ($j > 12) {
|
||||||
|
$j -= 12;
|
||||||
|
}
|
||||||
$sql .= " SUM(".$db->ifsql('MONTH(f.datef)='.$j, 'fd.total_ht', '0').") AS month".str_pad($j, 2, '0', STR_PAD_LEFT).",";
|
$sql .= " SUM(".$db->ifsql('MONTH(f.datef)='.$j, 'fd.total_ht', '0').") AS month".str_pad($j, 2, '0', STR_PAD_LEFT).",";
|
||||||
}
|
}
|
||||||
$sql .= " SUM(fd.total_ht) as total";
|
$sql .= " SUM(fd.total_ht) as total";
|
||||||
@ -364,17 +374,19 @@ if ($resql) {
|
|||||||
|
|
||||||
while ($row = $db->fetch_row($resql)) {
|
while ($row = $db->fetch_row($resql)) {
|
||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
if ($row[0] == 'tobind')
|
if ($row[0] == 'tobind') {
|
||||||
{
|
|
||||||
print $langs->trans("Unknown");
|
print $langs->trans("Unknown");
|
||||||
} else print length_accountg($row[0]);
|
} else {
|
||||||
|
print length_accountg($row[0]);
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
print '<td class="left">';
|
print '<td class="left">';
|
||||||
if ($row[0] == 'tobind')
|
if ($row[0] == 'tobind') {
|
||||||
{
|
|
||||||
print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/customer/list.php?search_year='.$y, $langs->transnoentitiesnoconv("ToBind"));
|
print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/customer/list.php?search_year='.$y, $langs->transnoentitiesnoconv("ToBind"));
|
||||||
} else print $row[1];
|
} else {
|
||||||
|
print $row[1];
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
for ($i = 2; $i <= 12; $i++) {
|
for ($i = 2; $i <= 12; $i++) {
|
||||||
@ -392,8 +404,7 @@ print "</table>\n";
|
|||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
|
|
||||||
if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. Why showing a report that should rely on result of this step ?
|
if ($conf->global->MAIN_FEATURES_LEVEL > 0) { // This part of code looks strange. Why showing a report that should rely on result of this step ?
|
||||||
{
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
@ -405,7 +416,9 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
|
|||||||
print '<tr class="liste_titre"><td width="400" class="left">'.$langs->trans("TotalVente").'</td>';
|
print '<tr class="liste_titre"><td width="400" class="left">'.$langs->trans("TotalVente").'</td>';
|
||||||
for ($i = 1; $i <= 12; $i++) {
|
for ($i = 1; $i <= 12; $i++) {
|
||||||
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
||||||
if ($j > 12) $j -= 12;
|
if ($j > 12) {
|
||||||
|
$j -= 12;
|
||||||
|
}
|
||||||
print '<td width="60" class="right">'.$langs->trans('MonthShort'.str_pad($j, 2, '0', STR_PAD_LEFT)).'</td>';
|
print '<td width="60" class="right">'.$langs->trans('MonthShort'.str_pad($j, 2, '0', STR_PAD_LEFT)).'</td>';
|
||||||
}
|
}
|
||||||
print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>';
|
print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>';
|
||||||
@ -413,7 +426,9 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
|
|||||||
$sql = "SELECT '".$db->escape($langs->trans("TotalVente"))."' AS total,";
|
$sql = "SELECT '".$db->escape($langs->trans("TotalVente"))."' AS total,";
|
||||||
for ($i = 1; $i <= 12; $i++) {
|
for ($i = 1; $i <= 12; $i++) {
|
||||||
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
||||||
if ($j > 12) $j -= 12;
|
if ($j > 12) {
|
||||||
|
$j -= 12;
|
||||||
|
}
|
||||||
$sql .= " SUM(".$db->ifsql('MONTH(f.datef)='.$j, 'fd.total_ht', '0').") AS month".str_pad($j, 2, '0', STR_PAD_LEFT).",";
|
$sql .= " SUM(".$db->ifsql('MONTH(f.datef)='.$j, 'fd.total_ht', '0').") AS month".str_pad($j, 2, '0', STR_PAD_LEFT).",";
|
||||||
}
|
}
|
||||||
$sql .= " SUM(fd.total_ht) as total";
|
$sql .= " SUM(fd.total_ht) as total";
|
||||||
@ -462,7 +477,9 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
|
|||||||
print '<tr class="liste_titre"><td width="400">'.$langs->trans("TotalMarge").'</td>';
|
print '<tr class="liste_titre"><td width="400">'.$langs->trans("TotalMarge").'</td>';
|
||||||
for ($i = 1; $i <= 12; $i++) {
|
for ($i = 1; $i <= 12; $i++) {
|
||||||
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
||||||
if ($j > 12) $j -= 12;
|
if ($j > 12) {
|
||||||
|
$j -= 12;
|
||||||
|
}
|
||||||
print '<td width="60" class="right">'.$langs->trans('MonthShort'.str_pad($j, 2, '0', STR_PAD_LEFT)).'</td>';
|
print '<td width="60" class="right">'.$langs->trans('MonthShort'.str_pad($j, 2, '0', STR_PAD_LEFT)).'</td>';
|
||||||
}
|
}
|
||||||
print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>';
|
print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>';
|
||||||
@ -470,7 +487,9 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
|
|||||||
$sql = "SELECT '".$db->escape($langs->trans("Vide"))."' AS marge,";
|
$sql = "SELECT '".$db->escape($langs->trans("Vide"))."' AS marge,";
|
||||||
for ($i = 1; $i <= 12; $i++) {
|
for ($i = 1; $i <= 12; $i++) {
|
||||||
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
||||||
if ($j > 12) $j -= 12;
|
if ($j > 12) {
|
||||||
|
$j -= 12;
|
||||||
|
}
|
||||||
$sql .= " SUM(".$db->ifsql('MONTH(f.datef)='.$j, '(fd.total_ht-(fd.qty * fd.buy_price_ht))', '0').") AS month".str_pad($j, 2, '0', STR_PAD_LEFT).",";
|
$sql .= " SUM(".$db->ifsql('MONTH(f.datef)='.$j, '(fd.total_ht-(fd.qty * fd.buy_price_ht))', '0').") AS month".str_pad($j, 2, '0', STR_PAD_LEFT).",";
|
||||||
}
|
}
|
||||||
$sql .= " SUM((fd.total_ht-(fd.qty * fd.buy_price_ht))) as total";
|
$sql .= " SUM((fd.total_ht-(fd.qty * fd.buy_price_ht))) as total";
|
||||||
|
|||||||
@ -64,12 +64,15 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : (empty($conf->global
|
|||||||
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
||||||
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
||||||
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
||||||
if (empty($page) || $page < 0) $page = 0;
|
if (empty($page) || $page < 0) {
|
||||||
|
$page = 0;
|
||||||
|
}
|
||||||
$offset = $limit * $page;
|
$offset = $limit * $page;
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
if (!$sortfield)
|
if (!$sortfield) {
|
||||||
$sortfield = "f.datef, f.ref, fd.rowid";
|
$sortfield = "f.datef, f.ref, fd.rowid";
|
||||||
|
}
|
||||||
if (!$sortorder) {
|
if (!$sortorder) {
|
||||||
if ($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_DONE > 0) {
|
if ($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_DONE > 0) {
|
||||||
$sortorder = "DESC";
|
$sortorder = "DESC";
|
||||||
@ -77,10 +80,12 @@ if (!$sortorder) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->socid > 0)
|
if ($user->socid > 0) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
if (!$user->rights->accounting->bind->write)
|
}
|
||||||
|
if (!$user->rights->accounting->bind->write) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
$formaccounting = new FormAccounting($db);
|
$formaccounting = new FormAccounting($db);
|
||||||
|
|
||||||
@ -90,8 +95,7 @@ $formaccounting = new FormAccounting($db);
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// Purge search criteria
|
// Purge search criteria
|
||||||
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // All tests are required to be compatible with all browsers
|
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All tests are required to be compatible with all browsers
|
||||||
{
|
|
||||||
$search_societe = '';
|
$search_societe = '';
|
||||||
$search_lineid = '';
|
$search_lineid = '';
|
||||||
$search_ref = '';
|
$search_ref = '';
|
||||||
@ -111,14 +115,12 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x'
|
|||||||
if (is_array($changeaccount) && count($changeaccount) > 0) {
|
if (is_array($changeaccount) && count($changeaccount) > 0) {
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
if (!(GETPOST('account_parent', 'int') >= 0))
|
if (!(GETPOST('account_parent', 'int') >= 0)) {
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Account")), null, 'errors');
|
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Account")), null, 'errors');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$error)
|
if (!$error) {
|
||||||
{
|
|
||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
$sql1 = "UPDATE ".MAIN_DB_PREFIX."facturedet as l";
|
$sql1 = "UPDATE ".MAIN_DB_PREFIX."facturedet as l";
|
||||||
@ -231,16 +233,23 @@ $sql .= dolSqlDateFilter('f.datef', $search_day, $search_month, $search_year);
|
|||||||
if (strlen(trim($search_country))) {
|
if (strlen(trim($search_country))) {
|
||||||
$arrayofcode = getCountriesInEEC();
|
$arrayofcode = getCountriesInEEC();
|
||||||
$country_code_in_EEC = $country_code_in_EEC_without_me = '';
|
$country_code_in_EEC = $country_code_in_EEC_without_me = '';
|
||||||
foreach ($arrayofcode as $key => $value)
|
foreach ($arrayofcode as $key => $value) {
|
||||||
{
|
|
||||||
$country_code_in_EEC .= ($country_code_in_EEC ? "," : "")."'".$value."'";
|
$country_code_in_EEC .= ($country_code_in_EEC ? "," : "")."'".$value."'";
|
||||||
if ($value != $mysoc->country_code) $country_code_in_EEC_without_me .= ($country_code_in_EEC_without_me ? "," : "")."'".$value."'";
|
if ($value != $mysoc->country_code) {
|
||||||
|
$country_code_in_EEC_without_me .= ($country_code_in_EEC_without_me ? "," : "")."'".$value."'";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($search_country == 'special_allnotme') {
|
||||||
|
$sql .= " AND co.code <> '".$db->escape($mysoc->country_code)."'";
|
||||||
|
} elseif ($search_country == 'special_eec') {
|
||||||
|
$sql .= " AND co.code IN (".$country_code_in_EEC.")";
|
||||||
|
} elseif ($search_country == 'special_eecnotme') {
|
||||||
|
$sql .= " AND co.code IN (".$country_code_in_EEC_without_me.")";
|
||||||
|
} elseif ($search_country == 'special_noteec') {
|
||||||
|
$sql .= " AND co.code NOT IN (".$country_code_in_EEC.")";
|
||||||
|
} else {
|
||||||
|
$sql .= natural_search("co.code", $search_country);
|
||||||
}
|
}
|
||||||
if ($search_country == 'special_allnotme') $sql .= " AND co.code <> '".$db->escape($mysoc->country_code)."'";
|
|
||||||
elseif ($search_country == 'special_eec') $sql .= " AND co.code IN (".$country_code_in_EEC.")";
|
|
||||||
elseif ($search_country == 'special_eecnotme') $sql .= " AND co.code IN (".$country_code_in_EEC_without_me.")";
|
|
||||||
elseif ($search_country == 'special_noteec') $sql .= " AND co.code NOT IN (".$country_code_in_EEC.")";
|
|
||||||
else $sql .= natural_search("co.code", $search_country);
|
|
||||||
}
|
}
|
||||||
if (strlen(trim($search_tvaintra))) {
|
if (strlen(trim($search_tvaintra))) {
|
||||||
$sql .= natural_search("s.tva_intra", $search_tvaintra);
|
$sql .= natural_search("s.tva_intra", $search_tvaintra);
|
||||||
@ -250,12 +259,10 @@ $sql .= $db->order($sortfield, $sortorder);
|
|||||||
|
|
||||||
// Count total nb of records
|
// Count total nb of records
|
||||||
$nbtotalofrecords = '';
|
$nbtotalofrecords = '';
|
||||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||||
{
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
$nbtotalofrecords = $db->num_rows($result);
|
$nbtotalofrecords = $db->num_rows($result);
|
||||||
if (($page * $limit) > $nbtotalofrecords) // if total resultset is smaller then paging size (filtering), goto and load page 0
|
if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0
|
||||||
{
|
|
||||||
$page = 0;
|
$page = 0;
|
||||||
$offset = 0;
|
$offset = 0;
|
||||||
}
|
}
|
||||||
@ -270,24 +277,54 @@ if ($result) {
|
|||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
$param = '';
|
$param = '';
|
||||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
$param .= '&contextpage='.urlencode($contextpage);
|
||||||
if ($search_societe) $param .= "&search_societe=".urlencode($search_societe);
|
}
|
||||||
if ($search_invoice) $param .= "&search_invoice=".urlencode($search_invoice);
|
if ($limit > 0 && $limit != $conf->liste_limit) {
|
||||||
if ($search_ref) $param .= "&search_ref=".urlencode($search_ref);
|
$param .= '&limit='.urlencode($limit);
|
||||||
if ($search_label) $param .= "&search_label=".urlencode($search_label);
|
}
|
||||||
if ($search_desc) $param .= "&search_desc=".urlencode($search_desc);
|
if ($search_societe) {
|
||||||
if ($search_account) $param .= "&search_account=".urlencode($search_account);
|
$param .= "&search_societe=".urlencode($search_societe);
|
||||||
if ($search_vat) $param .= "&search_vat=".urlencode($search_vat);
|
}
|
||||||
if ($search_day) $param .= '&search_day='.urlencode($search_day);
|
if ($search_invoice) {
|
||||||
if ($search_month) $param .= '&search_month='.urlencode($search_month);
|
$param .= "&search_invoice=".urlencode($search_invoice);
|
||||||
if ($search_year) $param .= '&search_year='.urlencode($search_year);
|
}
|
||||||
if ($search_country) $param .= "&search_country=".urlencode($search_country);
|
if ($search_ref) {
|
||||||
if ($search_tvaintra) $param .= "&search_tvaintra=".urlencode($search_tvaintra);
|
$param .= "&search_ref=".urlencode($search_ref);
|
||||||
|
}
|
||||||
|
if ($search_label) {
|
||||||
|
$param .= "&search_label=".urlencode($search_label);
|
||||||
|
}
|
||||||
|
if ($search_desc) {
|
||||||
|
$param .= "&search_desc=".urlencode($search_desc);
|
||||||
|
}
|
||||||
|
if ($search_account) {
|
||||||
|
$param .= "&search_account=".urlencode($search_account);
|
||||||
|
}
|
||||||
|
if ($search_vat) {
|
||||||
|
$param .= "&search_vat=".urlencode($search_vat);
|
||||||
|
}
|
||||||
|
if ($search_day) {
|
||||||
|
$param .= '&search_day='.urlencode($search_day);
|
||||||
|
}
|
||||||
|
if ($search_month) {
|
||||||
|
$param .= '&search_month='.urlencode($search_month);
|
||||||
|
}
|
||||||
|
if ($search_year) {
|
||||||
|
$param .= '&search_year='.urlencode($search_year);
|
||||||
|
}
|
||||||
|
if ($search_country) {
|
||||||
|
$param .= "&search_country=".urlencode($search_country);
|
||||||
|
}
|
||||||
|
if ($search_tvaintra) {
|
||||||
|
$param .= "&search_tvaintra=".urlencode($search_tvaintra);
|
||||||
|
}
|
||||||
|
|
||||||
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">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') {
|
||||||
|
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
}
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
||||||
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
@ -402,9 +439,15 @@ if ($result) {
|
|||||||
|
|
||||||
// Ref Product
|
// Ref Product
|
||||||
print '<td class="tdoverflowmax100">';
|
print '<td class="tdoverflowmax100">';
|
||||||
if ($productstatic->id > 0) print $productstatic->getNomUrl(1);
|
if ($productstatic->id > 0) {
|
||||||
if ($productstatic->id > 0 && $objp->product_label) print '<br>';
|
print $productstatic->getNomUrl(1);
|
||||||
if ($objp->product_label) print '<span class="opacitymedium">'.$objp->product_label.'</span>';
|
}
|
||||||
|
if ($productstatic->id > 0 && $objp->product_label) {
|
||||||
|
print '<br>';
|
||||||
|
}
|
||||||
|
if ($objp->product_label) {
|
||||||
|
print '<span class="opacitymedium">'.$objp->product_label.'</span>';
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
print '<td class="tdoverflowonsmartphone">';
|
print '<td class="tdoverflowonsmartphone">';
|
||||||
@ -422,8 +465,7 @@ if ($result) {
|
|||||||
|
|
||||||
// Country
|
// Country
|
||||||
print '<td>';
|
print '<td>';
|
||||||
if ($objp->country_code)
|
if ($objp->country_code) {
|
||||||
{
|
|
||||||
print $langs->trans("Country".$objp->country_code).' ('.$objp->country_code.')';
|
print $langs->trans("Country".$objp->country_code).' ('.$objp->country_code.')';
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|||||||
@ -72,12 +72,15 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : (empty($conf->global
|
|||||||
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
||||||
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
||||||
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
||||||
if (empty($page) || $page < 0) { $page = 0; }
|
if (empty($page) || $page < 0) {
|
||||||
|
$page = 0;
|
||||||
|
}
|
||||||
$offset = $limit * $page;
|
$offset = $limit * $page;
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
if (!$sortfield)
|
if (!$sortfield) {
|
||||||
$sortfield = "f.datef, f.ref, l.rowid";
|
$sortfield = "f.datef, f.ref, l.rowid";
|
||||||
|
}
|
||||||
if (!$sortorder) {
|
if (!$sortorder) {
|
||||||
if ($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_TODO > 0) {
|
if ($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_TODO > 0) {
|
||||||
$sortorder = "DESC";
|
$sortorder = "DESC";
|
||||||
@ -85,10 +88,12 @@ if (!$sortorder) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->socid > 0)
|
if ($user->socid > 0) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
if (!$user->rights->accounting->bind->write)
|
}
|
||||||
|
if (!$user->rights->accounting->bind->write) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
|
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
|
||||||
$hookmanager->initHooks(array('accountancycustomerlist'));
|
$hookmanager->initHooks(array('accountancycustomerlist'));
|
||||||
@ -102,18 +107,22 @@ $chartaccountcode = dol_getIdFromCode($db, $conf->global->CHARTOFACCOUNTS, 'acco
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (GETPOST('cancel', 'alpha')) { $action = 'list'; $massaction = ''; }
|
if (GETPOST('cancel', 'alpha')) {
|
||||||
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; }
|
$action = 'list'; $massaction = '';
|
||||||
|
}
|
||||||
|
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') {
|
||||||
|
$massaction = '';
|
||||||
|
}
|
||||||
|
|
||||||
$parameters = array();
|
$parameters = array();
|
||||||
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
||||||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
if ($reshook < 0) {
|
||||||
|
setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($reshook))
|
if (empty($reshook)) {
|
||||||
{
|
|
||||||
// Purge search criteria
|
// Purge search criteria
|
||||||
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // All test are required to be compatible with all browsers
|
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All test are required to be compatible with all browsers
|
||||||
{
|
|
||||||
$search_societe = '';
|
$search_societe = '';
|
||||||
$search_lineid = '';
|
$search_lineid = '';
|
||||||
$search_ref = '';
|
$search_ref = '';
|
||||||
@ -155,8 +164,7 @@ if ($massaction == 'ventil') {
|
|||||||
$monId = $maLigneCourante[0];
|
$monId = $maLigneCourante[0];
|
||||||
$monCompte = GETPOST('codeventil'.$monId);
|
$monCompte = GETPOST('codeventil'.$monId);
|
||||||
|
|
||||||
if ($monCompte <= 0)
|
if ($monCompte <= 0) {
|
||||||
{
|
|
||||||
$msg .= '<div><span style="color:red">'.$langs->trans("Lineofinvoice", $monId).' - '.$langs->trans("NoAccountSelected").'</span></div>';
|
$msg .= '<div><span style="color:red">'.$langs->trans("Lineofinvoice", $monId).' - '.$langs->trans("NoAccountSelected").'</span></div>';
|
||||||
$ko++;
|
$ko++;
|
||||||
} else {
|
} else {
|
||||||
@ -195,8 +203,7 @@ $formother = new FormOther($db);
|
|||||||
|
|
||||||
llxHeader('', $langs->trans("Ventilation"));
|
llxHeader('', $langs->trans("Ventilation"));
|
||||||
|
|
||||||
if (empty($chartaccountcode))
|
if (empty($chartaccountcode)) {
|
||||||
{
|
|
||||||
print $langs->trans("ErrorChartOfAccountSystemNotSelected");
|
print $langs->trans("ErrorChartOfAccountSystemNotSelected");
|
||||||
// End of page
|
// End of page
|
||||||
llxFooter();
|
llxFooter();
|
||||||
@ -264,16 +271,23 @@ $sql .= dolSqlDateFilter('f.datef', $search_day, $search_month, $search_year);
|
|||||||
if (strlen(trim($search_country))) {
|
if (strlen(trim($search_country))) {
|
||||||
$arrayofcode = getCountriesInEEC();
|
$arrayofcode = getCountriesInEEC();
|
||||||
$country_code_in_EEC = $country_code_in_EEC_without_me = '';
|
$country_code_in_EEC = $country_code_in_EEC_without_me = '';
|
||||||
foreach ($arrayofcode as $key => $value)
|
foreach ($arrayofcode as $key => $value) {
|
||||||
{
|
|
||||||
$country_code_in_EEC .= ($country_code_in_EEC ? "," : "")."'".$value."'";
|
$country_code_in_EEC .= ($country_code_in_EEC ? "," : "")."'".$value."'";
|
||||||
if ($value != $mysoc->country_code) $country_code_in_EEC_without_me .= ($country_code_in_EEC_without_me ? "," : "")."'".$value."'";
|
if ($value != $mysoc->country_code) {
|
||||||
|
$country_code_in_EEC_without_me .= ($country_code_in_EEC_without_me ? "," : "")."'".$value."'";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($search_country == 'special_allnotme') {
|
||||||
|
$sql .= " AND co.code <> '".$db->escape($mysoc->country_code)."'";
|
||||||
|
} elseif ($search_country == 'special_eec') {
|
||||||
|
$sql .= " AND co.code IN (".$country_code_in_EEC.")";
|
||||||
|
} elseif ($search_country == 'special_eecnotme') {
|
||||||
|
$sql .= " AND co.code IN (".$country_code_in_EEC_without_me.")";
|
||||||
|
} elseif ($search_country == 'special_noteec') {
|
||||||
|
$sql .= " AND co.code NOT IN (".$country_code_in_EEC.")";
|
||||||
|
} else {
|
||||||
|
$sql .= natural_search("co.code", $search_country);
|
||||||
}
|
}
|
||||||
if ($search_country == 'special_allnotme') $sql .= " AND co.code <> '".$db->escape($mysoc->country_code)."'";
|
|
||||||
elseif ($search_country == 'special_eec') $sql .= " AND co.code IN (".$country_code_in_EEC.")";
|
|
||||||
elseif ($search_country == 'special_eecnotme') $sql .= " AND co.code IN (".$country_code_in_EEC_without_me.")";
|
|
||||||
elseif ($search_country == 'special_noteec') $sql .= " AND co.code NOT IN (".$country_code_in_EEC.")";
|
|
||||||
else $sql .= natural_search("co.code", $search_country);
|
|
||||||
}
|
}
|
||||||
if (strlen(trim($search_tvaintra))) {
|
if (strlen(trim($search_tvaintra))) {
|
||||||
$sql .= natural_search("s.tva_intra", $search_tvaintra);
|
$sql .= natural_search("s.tva_intra", $search_tvaintra);
|
||||||
@ -294,12 +308,10 @@ $sql .= $db->order($sortfield, $sortorder);
|
|||||||
|
|
||||||
// Count total nb of records
|
// Count total nb of records
|
||||||
$nbtotalofrecords = '';
|
$nbtotalofrecords = '';
|
||||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||||
{
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
$nbtotalofrecords = $db->num_rows($result);
|
$nbtotalofrecords = $db->num_rows($result);
|
||||||
if (($page * $limit) > $nbtotalofrecords) // if total resultset is smaller then paging size (filtering), goto and load page 0
|
if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0
|
||||||
{
|
|
||||||
$page = 0;
|
$page = 0;
|
||||||
$offset = 0;
|
$offset = 0;
|
||||||
}
|
}
|
||||||
@ -321,20 +333,48 @@ if ($result) {
|
|||||||
$arrayofselected = is_array($toselect) ? $toselect : array();
|
$arrayofselected = is_array($toselect) ? $toselect : array();
|
||||||
|
|
||||||
$param = '';
|
$param = '';
|
||||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
$param .= '&contextpage='.urlencode($contextpage);
|
||||||
if ($search_societe) $param .= '&search_societe='.urlencode($search_societe);
|
}
|
||||||
if ($search_lineid) $param .= '&search_lineid='.urlencode($search_lineid);
|
if ($limit > 0 && $limit != $conf->liste_limit) {
|
||||||
if ($search_day) $param .= '&search_day='.urlencode($search_day);
|
$param .= '&limit='.urlencode($limit);
|
||||||
if ($search_month) $param .= '&search_month='.urlencode($search_month);
|
}
|
||||||
if ($search_year) $param .= '&search_year='.urlencode($search_year);
|
if ($search_societe) {
|
||||||
if ($search_invoice) $param .= '&search_invoice='.urlencode($search_invoice);
|
$param .= '&search_societe='.urlencode($search_societe);
|
||||||
if ($search_ref) $param .= '&search_ref='.urlencode($search_ref);
|
}
|
||||||
if ($search_desc) $param .= '&search_desc='.urlencode($search_desc);
|
if ($search_lineid) {
|
||||||
if ($search_amount) $param .= '&search_amount='.urlencode($search_amount);
|
$param .= '&search_lineid='.urlencode($search_lineid);
|
||||||
if ($search_vat) $param .= '&search_vat='.urlencode($search_vat);
|
}
|
||||||
if ($search_country) $param .= "&search_country=".urlencode($search_country);
|
if ($search_day) {
|
||||||
if ($search_tvaintra) $param .= "&search_tvaintra=".urlencode($search_tvaintra);
|
$param .= '&search_day='.urlencode($search_day);
|
||||||
|
}
|
||||||
|
if ($search_month) {
|
||||||
|
$param .= '&search_month='.urlencode($search_month);
|
||||||
|
}
|
||||||
|
if ($search_year) {
|
||||||
|
$param .= '&search_year='.urlencode($search_year);
|
||||||
|
}
|
||||||
|
if ($search_invoice) {
|
||||||
|
$param .= '&search_invoice='.urlencode($search_invoice);
|
||||||
|
}
|
||||||
|
if ($search_ref) {
|
||||||
|
$param .= '&search_ref='.urlencode($search_ref);
|
||||||
|
}
|
||||||
|
if ($search_desc) {
|
||||||
|
$param .= '&search_desc='.urlencode($search_desc);
|
||||||
|
}
|
||||||
|
if ($search_amount) {
|
||||||
|
$param .= '&search_amount='.urlencode($search_amount);
|
||||||
|
}
|
||||||
|
if ($search_vat) {
|
||||||
|
$param .= '&search_vat='.urlencode($search_vat);
|
||||||
|
}
|
||||||
|
if ($search_country) {
|
||||||
|
$param .= "&search_country=".urlencode($search_country);
|
||||||
|
}
|
||||||
|
if ($search_tvaintra) {
|
||||||
|
$param .= "&search_tvaintra=".urlencode($search_tvaintra);
|
||||||
|
}
|
||||||
|
|
||||||
$arrayofmassactions = array(
|
$arrayofmassactions = array(
|
||||||
'ventil'=>$langs->trans("Ventilate")
|
'ventil'=>$langs->trans("Ventilate")
|
||||||
@ -347,7 +387,9 @@ if ($result) {
|
|||||||
|
|
||||||
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">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') {
|
||||||
|
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
}
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
||||||
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
@ -358,7 +400,9 @@ if ($result) {
|
|||||||
|
|
||||||
print '<span class="opacitymedium">'.$langs->trans("DescVentilTodoCustomer").'</span></br><br>';
|
print '<span class="opacitymedium">'.$langs->trans("DescVentilTodoCustomer").'</span></br><br>';
|
||||||
|
|
||||||
if ($msg) print $msg.'<br>';
|
if ($msg) {
|
||||||
|
print $msg.'<br>';
|
||||||
|
}
|
||||||
|
|
||||||
$moreforfilter = '';
|
$moreforfilter = '';
|
||||||
|
|
||||||
@ -410,7 +454,9 @@ if ($result) {
|
|||||||
print_liste_field_titre("AccountAccountingSuggest", '', '', '', '', '', '', '', 'nowraponall ');
|
print_liste_field_titre("AccountAccountingSuggest", '', '', '', '', '', '', '', 'nowraponall ');
|
||||||
print_liste_field_titre("IntoAccount", '', '', '', '', '', '', '', 'center ');
|
print_liste_field_titre("IntoAccount", '', '', '', '', '', '', '', 'center ');
|
||||||
$checkpicto = '';
|
$checkpicto = '';
|
||||||
if ($massactionbutton) $checkpicto = $form->showCheckAddButtons('checkforselect', 1);
|
if ($massactionbutton) {
|
||||||
|
$checkpicto = $form->showCheckAddButtons('checkforselect', 1);
|
||||||
|
}
|
||||||
print_liste_field_titre($checkpicto, '', '', '', '', '', '', '', 'center ');
|
print_liste_field_titre($checkpicto, '', '', '', '', '', '', '', 'center ');
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
@ -503,7 +549,9 @@ if ($result) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($objp->code_sell_l == -1) $objp->code_sell_l = '';
|
if ($objp->code_sell_l == -1) {
|
||||||
|
$objp->code_sell_l = '';
|
||||||
|
}
|
||||||
|
|
||||||
// Level 2: Search suggested account for product/service (similar code exists in page index.php to make automatic binding)
|
// Level 2: Search suggested account for product/service (similar code exists in page index.php to make automatic binding)
|
||||||
$suggestedaccountingaccountfor = '';
|
$suggestedaccountingaccountfor = '';
|
||||||
@ -553,8 +601,12 @@ if ($result) {
|
|||||||
} else {
|
} else {
|
||||||
$code_sell_p_notset = 'color:orange';
|
$code_sell_p_notset = 'color:orange';
|
||||||
}
|
}
|
||||||
if (empty($objp->code_sell_l) && empty($objp->code_sell_p)) $code_sell_p_notset = 'color:red';
|
if (empty($objp->code_sell_l) && empty($objp->code_sell_p)) {
|
||||||
if ($suggestedaccountingaccountfor == 'eecwithoutvatnumber' && empty($code_sell_p_notset)) $code_sell_p_notset = 'color:orange';
|
$code_sell_p_notset = 'color:red';
|
||||||
|
}
|
||||||
|
if ($suggestedaccountingaccountfor == 'eecwithoutvatnumber' && empty($code_sell_p_notset)) {
|
||||||
|
$code_sell_p_notset = 'color:orange';
|
||||||
|
}
|
||||||
|
|
||||||
// $objp->code_sell_l is now default code of product/service
|
// $objp->code_sell_l is now default code of product/service
|
||||||
// $objp->code_sell_p is now code of product/service
|
// $objp->code_sell_p is now code of product/service
|
||||||
@ -575,7 +627,9 @@ if ($result) {
|
|||||||
if ($product_static->id > 0) {
|
if ($product_static->id > 0) {
|
||||||
print $product_static->getNomUrl(1);
|
print $product_static->getNomUrl(1);
|
||||||
}
|
}
|
||||||
if ($objp->product_label) print '<br><span class="opacitymedium small">'.$objp->product_label.'</span>';
|
if ($objp->product_label) {
|
||||||
|
print '<br><span class="opacitymedium small">'.$objp->product_label.'</span>';
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
print '<td class="tdoverflowonsmartphone small">';
|
print '<td class="tdoverflowonsmartphone small">';
|
||||||
@ -589,8 +643,9 @@ if ($result) {
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
// Vat rate
|
// Vat rate
|
||||||
if ($objp->vat_tx_l != $objp->vat_tx_p)
|
if ($objp->vat_tx_l != $objp->vat_tx_p) {
|
||||||
$code_vat_differ = 'font-weight:bold; text-decoration:blink; color:red';
|
$code_vat_differ = 'font-weight:bold; text-decoration:blink; color:red';
|
||||||
|
}
|
||||||
print '<td style="'.$code_vat_differ.'" class="right">';
|
print '<td style="'.$code_vat_differ.'" class="right">';
|
||||||
print vatrate($objp->tva_tx_line.($objp->vat_src_code ? ' ('.$objp->vat_src_code.')' : ''));
|
print vatrate($objp->tva_tx_line.($objp->vat_src_code ? ' ('.$objp->vat_src_code.')' : ''));
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -610,22 +665,27 @@ if ($result) {
|
|||||||
print '<td>';
|
print '<td>';
|
||||||
$s = '<span class="small">1. '.(($objp->type_l == 1) ? $langs->trans("DefaultForService") : $langs->trans("DefaultForProduct")).': </span>';
|
$s = '<span class="small">1. '.(($objp->type_l == 1) ? $langs->trans("DefaultForService") : $langs->trans("DefaultForProduct")).': </span>';
|
||||||
$shelp = '';
|
$shelp = '';
|
||||||
if ($suggestedaccountingaccountbydefaultfor == 'eec') $shelp .= $langs->trans("SaleEEC");
|
if ($suggestedaccountingaccountbydefaultfor == 'eec') {
|
||||||
elseif ($suggestedaccountingaccountbydefaultfor == 'export') $shelp .= $langs->trans("SaleExport");
|
$shelp .= $langs->trans("SaleEEC");
|
||||||
|
} elseif ($suggestedaccountingaccountbydefaultfor == 'export') {
|
||||||
|
$shelp .= $langs->trans("SaleExport");
|
||||||
|
}
|
||||||
$s .= ($objp->code_sell_l > 0 ? length_accountg($objp->code_sell_l) : '<span style="'.$code_sell_p_notset.'">'.$langs->trans("NotDefined").'</span>');
|
$s .= ($objp->code_sell_l > 0 ? length_accountg($objp->code_sell_l) : '<span style="'.$code_sell_p_notset.'">'.$langs->trans("NotDefined").'</span>');
|
||||||
print $form->textwithpicto($s, $shelp, 1, 'help', '', 0, 2, '', 1);
|
print $form->textwithpicto($s, $shelp, 1, 'help', '', 0, 2, '', 1);
|
||||||
if ($objp->product_id > 0)
|
if ($objp->product_id > 0) {
|
||||||
{
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
$s = '<span class="small">2. '.(($objp->type_l == 1) ? $langs->trans("ThisService") : $langs->trans("ThisProduct")).': </span>';
|
$s = '<span class="small">2. '.(($objp->type_l == 1) ? $langs->trans("ThisService") : $langs->trans("ThisProduct")).': </span>';
|
||||||
$shelp = ''; $ttype = 'help';
|
$shelp = ''; $ttype = 'help';
|
||||||
if ($suggestedaccountingaccountfor == 'eec') $shelp = $langs->trans("SaleEEC");
|
if ($suggestedaccountingaccountfor == 'eec') {
|
||||||
elseif ($suggestedaccountingaccountfor == 'eecwithvat') $shelp = $langs->trans("SaleEECWithVAT");
|
$shelp = $langs->trans("SaleEEC");
|
||||||
elseif ($suggestedaccountingaccountfor == 'eecwithoutvatnumber') {
|
} elseif ($suggestedaccountingaccountfor == 'eecwithvat') {
|
||||||
|
$shelp = $langs->trans("SaleEECWithVAT");
|
||||||
|
} elseif ($suggestedaccountingaccountfor == 'eecwithoutvatnumber') {
|
||||||
$shelp = $langs->trans("SaleEECWithoutVATNumber");
|
$shelp = $langs->trans("SaleEECWithoutVATNumber");
|
||||||
$ttype = 'warning';
|
$ttype = 'warning';
|
||||||
|
} elseif ($suggestedaccountingaccountfor == 'export') {
|
||||||
|
$shelp = $langs->trans("SaleExport");
|
||||||
}
|
}
|
||||||
elseif ($suggestedaccountingaccountfor == 'export') $shelp = $langs->trans("SaleExport");
|
|
||||||
$s .= (empty($objp->code_sell_p) ? '<span style="'.$code_sell_p_notset.'">'.$langs->trans("NotDefined").'</span>' : length_accountg($objp->code_sell_p));
|
$s .= (empty($objp->code_sell_p) ? '<span style="'.$code_sell_p_notset.'">'.$langs->trans("NotDefined").'</span>' : length_accountg($objp->code_sell_p));
|
||||||
print $form->textwithpicto($s, $shelp, 1, $ttype, '', 0, 2, '', 1);
|
print $form->textwithpicto($s, $shelp, 1, $ttype, '', 0, 2, '', 1);
|
||||||
} else {
|
} else {
|
||||||
@ -649,10 +709,8 @@ if ($result) {
|
|||||||
// Suggested accounting account
|
// Suggested accounting account
|
||||||
print '<td>';
|
print '<td>';
|
||||||
$suggestedid = $objp->aarowid_suggest;
|
$suggestedid = $objp->aarowid_suggest;
|
||||||
if (empty($suggestedid) && empty($objp->code_sell_p) && !empty($objp->code_sell_l) && empty($conf->global->ACCOUNTANCY_DO_NOT_AUTOFILL_ACCOUNT_WITH_GENERIC))
|
if (empty($suggestedid) && empty($objp->code_sell_p) && !empty($objp->code_sell_l) && empty($conf->global->ACCOUNTANCY_DO_NOT_AUTOFILL_ACCOUNT_WITH_GENERIC)) {
|
||||||
{
|
if (empty($accountingaccount_codetotid_cache[$objp->code_sell_l])) {
|
||||||
if (empty($accountingaccount_codetotid_cache[$objp->code_sell_l]))
|
|
||||||
{
|
|
||||||
$tmpaccount = new AccountingAccount($db);
|
$tmpaccount = new AccountingAccount($db);
|
||||||
$tmpaccount->fetch(0, $objp->code_sell_l, 1);
|
$tmpaccount->fetch(0, $objp->code_sell_l, 1);
|
||||||
if ($tmpaccount->id > 0) {
|
if ($tmpaccount->id > 0) {
|
||||||
@ -669,7 +727,9 @@ if ($result) {
|
|||||||
// Column with checkbox
|
// Column with checkbox
|
||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
$ischecked = $objp->aarowid_suggest;
|
$ischecked = $objp->aarowid_suggest;
|
||||||
if ($suggestedaccountingaccountfor == 'eecwithoutvatnumber') $ischecked = 0;
|
if ($suggestedaccountingaccountfor == 'eecwithoutvatnumber') {
|
||||||
|
$ischecked = 0;
|
||||||
|
}
|
||||||
print '<input type="checkbox" class="flat checkforselect checkforselect'.$objp->rowid.'" name="toselect[]" value="'.$objp->rowid."_".$i.'"'.($ischecked ? "checked" : "").'/>';
|
print '<input type="checkbox" class="flat checkforselect checkforselect'.$objp->rowid.'" name="toselect[]" value="'.$objp->rowid."_".$i.'"'.($ischecked ? "checked" : "").'/>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
|
|||||||
@ -42,19 +42,20 @@ $codeventil = GETPOST('codeventil', 'int');
|
|||||||
$id = GETPOST('id', 'int');
|
$id = GETPOST('id', 'int');
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->socid > 0)
|
if ($user->socid > 0) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($action == 'ventil' && $user->rights->accounting->bind->write)
|
if ($action == 'ventil' && $user->rights->accounting->bind->write) {
|
||||||
{
|
if (!$cancel) {
|
||||||
if (!$cancel)
|
if ($codeventil < 0) {
|
||||||
{
|
$codeventil = 0;
|
||||||
if ($codeventil < 0) $codeventil = 0;
|
}
|
||||||
|
|
||||||
$sql = " UPDATE ".MAIN_DB_PREFIX."expensereport_det";
|
$sql = " UPDATE ".MAIN_DB_PREFIX."expensereport_det";
|
||||||
$sql .= " SET fk_code_ventilation = ".$codeventil;
|
$sql .= " SET fk_code_ventilation = ".$codeventil;
|
||||||
@ -65,8 +66,7 @@ if ($action == 'ventil' && $user->rights->accounting->bind->write)
|
|||||||
setEventMessages($db->lasterror(), null, 'errors');
|
setEventMessages($db->lasterror(), null, 'errors');
|
||||||
} else {
|
} else {
|
||||||
setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs');
|
setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs');
|
||||||
if ($backtopage)
|
if ($backtopage) {
|
||||||
{
|
|
||||||
header("Location: ".$backtopage);
|
header("Location: ".$backtopage);
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -36,21 +36,25 @@ $langs->loadLangs(array("compta", "bills", "other", "main", "accountancy"));
|
|||||||
if (empty($conf->accounting->enabled)) {
|
if (empty($conf->accounting->enabled)) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
}
|
}
|
||||||
if ($user->socid > 0)
|
if ($user->socid > 0) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
if (!$user->rights->accounting->bind->write)
|
}
|
||||||
|
if (!$user->rights->accounting->bind->write) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
$month_start = ($conf->global->SOCIETE_FISCAL_MONTH_START ? ($conf->global->SOCIETE_FISCAL_MONTH_START) : 1);
|
$month_start = ($conf->global->SOCIETE_FISCAL_MONTH_START ? ($conf->global->SOCIETE_FISCAL_MONTH_START) : 1);
|
||||||
if (GETPOST("year", 'int')) $year_start = GETPOST("year", 'int');
|
if (GETPOST("year", 'int')) {
|
||||||
else {
|
$year_start = GETPOST("year", 'int');
|
||||||
|
} else {
|
||||||
$year_start = dol_print_date(dol_now(), '%Y');
|
$year_start = dol_print_date(dol_now(), '%Y');
|
||||||
if (dol_print_date(dol_now(), '%m') < $month_start) $year_start--; // If current month is lower that starting fiscal month, we start last year
|
if (dol_print_date(dol_now(), '%m') < $month_start) {
|
||||||
|
$year_start--; // If current month is lower that starting fiscal month, we start last year
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$year_end = $year_start + 1;
|
$year_end = $year_start + 1;
|
||||||
$month_end = $month_start - 1;
|
$month_end = $month_start - 1;
|
||||||
if ($month_end < 1)
|
if ($month_end < 1) {
|
||||||
{
|
|
||||||
$month_end = 12;
|
$month_end = 12;
|
||||||
$year_end--;
|
$year_end--;
|
||||||
}
|
}
|
||||||
@ -67,8 +71,7 @@ $action = GETPOST('action', 'aZ09');
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($action == 'clean' || $action == 'validatehistory')
|
if ($action == 'clean' || $action == 'validatehistory') {
|
||||||
{
|
|
||||||
// Clean database
|
// Clean database
|
||||||
$db->begin();
|
$db->begin();
|
||||||
$sql1 = "UPDATE ".MAIN_DB_PREFIX."expensereport_det as erd";
|
$sql1 = "UPDATE ".MAIN_DB_PREFIX."expensereport_det as erd";
|
||||||
@ -156,7 +159,9 @@ print '<tr class="liste_titre"><td width="200">'.$langs->trans("Account").'</td>
|
|||||||
print '<td width="200" class="left">'.$langs->trans("Label").'</td>';
|
print '<td width="200" class="left">'.$langs->trans("Label").'</td>';
|
||||||
for ($i = 1; $i <= 12; $i++) {
|
for ($i = 1; $i <= 12; $i++) {
|
||||||
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
||||||
if ($j > 12) $j -= 12;
|
if ($j > 12) {
|
||||||
|
$j -= 12;
|
||||||
|
}
|
||||||
print '<td width="60" class="right">'.$langs->trans('MonthShort'.str_pad($j, 2, '0', STR_PAD_LEFT)).'</td>';
|
print '<td width="60" class="right">'.$langs->trans('MonthShort'.str_pad($j, 2, '0', STR_PAD_LEFT)).'</td>';
|
||||||
}
|
}
|
||||||
print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>';
|
print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>';
|
||||||
@ -165,7 +170,9 @@ $sql = "SELECT ".$db->ifsql('aa.account_number IS NULL', "'tobind'", 'aa.account
|
|||||||
$sql .= " ".$db->ifsql('aa.label IS NULL', "'tobind'", 'aa.label')." AS intitule,";
|
$sql .= " ".$db->ifsql('aa.label IS NULL', "'tobind'", 'aa.label')." AS intitule,";
|
||||||
for ($i = 1; $i <= 12; $i++) {
|
for ($i = 1; $i <= 12; $i++) {
|
||||||
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
||||||
if ($j > 12) $j -= 12;
|
if ($j > 12) {
|
||||||
|
$j -= 12;
|
||||||
|
}
|
||||||
$sql .= " SUM(".$db->ifsql('MONTH(er.date_debut)='.$j, 'erd.total_ht', '0').") AS month".str_pad($j, 2, '0', STR_PAD_LEFT).",";
|
$sql .= " SUM(".$db->ifsql('MONTH(er.date_debut)='.$j, 'erd.total_ht', '0').") AS month".str_pad($j, 2, '0', STR_PAD_LEFT).",";
|
||||||
}
|
}
|
||||||
$sql .= " SUM(erd.total_ht) as total";
|
$sql .= " SUM(erd.total_ht) as total";
|
||||||
@ -190,16 +197,18 @@ if ($resql) {
|
|||||||
|
|
||||||
while ($row = $db->fetch_row($resql)) {
|
while ($row = $db->fetch_row($resql)) {
|
||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
if ($row[0] == 'tobind')
|
if ($row[0] == 'tobind') {
|
||||||
{
|
|
||||||
print $langs->trans("Unknown");
|
print $langs->trans("Unknown");
|
||||||
} else print length_accountg($row[0]);
|
} else {
|
||||||
|
print length_accountg($row[0]);
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="left">';
|
print '<td class="left">';
|
||||||
if ($row[0] == 'tobind')
|
if ($row[0] == 'tobind') {
|
||||||
{
|
|
||||||
print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/expensereport/list.php?search_year='.$y, $langs->transnoentitiesnoconv("ToBind"));
|
print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/expensereport/list.php?search_year='.$y, $langs->transnoentitiesnoconv("ToBind"));
|
||||||
} else print $row[1];
|
} else {
|
||||||
|
print $row[1];
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
for ($i = 2; $i <= 12; $i++) {
|
for ($i = 2; $i <= 12; $i++) {
|
||||||
print '<td class="nowrap right">'.price($row[$i]).'</td>';
|
print '<td class="nowrap right">'.price($row[$i]).'</td>';
|
||||||
@ -229,7 +238,9 @@ print '<tr class="liste_titre"><td width="200">'.$langs->trans("Account").'</td>
|
|||||||
print '<td width="200" class="left">'.$langs->trans("Label").'</td>';
|
print '<td width="200" class="left">'.$langs->trans("Label").'</td>';
|
||||||
for ($i = 1; $i <= 12; $i++) {
|
for ($i = 1; $i <= 12; $i++) {
|
||||||
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
||||||
if ($j > 12) $j -= 12;
|
if ($j > 12) {
|
||||||
|
$j -= 12;
|
||||||
|
}
|
||||||
print '<td width="60" class="right">'.$langs->trans('MonthShort'.str_pad($j, 2, '0', STR_PAD_LEFT)).'</td>';
|
print '<td width="60" class="right">'.$langs->trans('MonthShort'.str_pad($j, 2, '0', STR_PAD_LEFT)).'</td>';
|
||||||
}
|
}
|
||||||
print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>';
|
print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>';
|
||||||
@ -238,7 +249,9 @@ $sql = "SELECT ".$db->ifsql('aa.account_number IS NULL', "'tobind'", 'aa.account
|
|||||||
$sql .= " ".$db->ifsql('aa.label IS NULL', "'tobind'", 'aa.label')." AS intitule,";
|
$sql .= " ".$db->ifsql('aa.label IS NULL', "'tobind'", 'aa.label')." AS intitule,";
|
||||||
for ($i = 1; $i <= 12; $i++) {
|
for ($i = 1; $i <= 12; $i++) {
|
||||||
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
||||||
if ($j > 12) $j -= 12;
|
if ($j > 12) {
|
||||||
|
$j -= 12;
|
||||||
|
}
|
||||||
$sql .= " SUM(".$db->ifsql('MONTH(er.date_debut)='.$j, 'erd.total_ht', '0').") AS month".str_pad($j, 2, '0', STR_PAD_LEFT).",";
|
$sql .= " SUM(".$db->ifsql('MONTH(er.date_debut)='.$j, 'erd.total_ht', '0').") AS month".str_pad($j, 2, '0', STR_PAD_LEFT).",";
|
||||||
}
|
}
|
||||||
$sql .= " ROUND(SUM(erd.total_ht),2) as total";
|
$sql .= " ROUND(SUM(erd.total_ht),2) as total";
|
||||||
@ -263,17 +276,19 @@ if ($resql) {
|
|||||||
|
|
||||||
while ($row = $db->fetch_row($resql)) {
|
while ($row = $db->fetch_row($resql)) {
|
||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
if ($row[0] == 'tobind')
|
if ($row[0] == 'tobind') {
|
||||||
{
|
|
||||||
print $langs->trans("Unknown");
|
print $langs->trans("Unknown");
|
||||||
} else print length_accountg($row[0]);
|
} else {
|
||||||
|
print length_accountg($row[0]);
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
print '<td class="left">';
|
print '<td class="left">';
|
||||||
if ($row[0] == 'tobind')
|
if ($row[0] == 'tobind') {
|
||||||
{
|
|
||||||
print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/expensereport/list.php?search_year='.$y, $langs->transnoentitiesnoconv("ToBind"));
|
print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/expensereport/list.php?search_year='.$y, $langs->transnoentitiesnoconv("ToBind"));
|
||||||
} else print $row[1];
|
} else {
|
||||||
|
print $row[1];
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
for ($i = 2; $i <= 12; $i++) {
|
for ($i = 2; $i <= 12; $i++) {
|
||||||
print '<td class="nowrap right">'.price($row[$i]).'</td>';
|
print '<td class="nowrap right">'.price($row[$i]).'</td>';
|
||||||
@ -291,8 +306,7 @@ print '</div>';
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. Why showing a report where results depends on next step (so not yet available) ?
|
if ($conf->global->MAIN_FEATURES_LEVEL > 0) { // This part of code looks strange. Why showing a report where results depends on next step (so not yet available) ?
|
||||||
{
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
@ -304,7 +318,9 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
|
|||||||
print '<tr class="liste_titre"><td width="400" class="left">'.$langs->trans("Total").'</td>';
|
print '<tr class="liste_titre"><td width="400" class="left">'.$langs->trans("Total").'</td>';
|
||||||
for ($i = 1; $i <= 12; $i++) {
|
for ($i = 1; $i <= 12; $i++) {
|
||||||
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
||||||
if ($j > 12) $j -= 12;
|
if ($j > 12) {
|
||||||
|
$j -= 12;
|
||||||
|
}
|
||||||
print '<td width="60" class="right">'.$langs->trans('MonthShort'.str_pad($j, 2, '0', STR_PAD_LEFT)).'</td>';
|
print '<td width="60" class="right">'.$langs->trans('MonthShort'.str_pad($j, 2, '0', STR_PAD_LEFT)).'</td>';
|
||||||
}
|
}
|
||||||
print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>';
|
print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>';
|
||||||
@ -312,7 +328,9 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
|
|||||||
$sql = "SELECT '".$db->escape($langs->trans("TotalExpenseReport"))."' AS label,";
|
$sql = "SELECT '".$db->escape($langs->trans("TotalExpenseReport"))."' AS label,";
|
||||||
for ($i = 1; $i <= 12; $i++) {
|
for ($i = 1; $i <= 12; $i++) {
|
||||||
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
||||||
if ($j > 12) $j -= 12;
|
if ($j > 12) {
|
||||||
|
$j -= 12;
|
||||||
|
}
|
||||||
$sql .= " SUM(".$db->ifsql('MONTH(er.date_create)='.$j, 'erd.total_ht', '0').") AS month".str_pad($j, 2, '0', STR_PAD_LEFT).",";
|
$sql .= " SUM(".$db->ifsql('MONTH(er.date_create)='.$j, 'erd.total_ht', '0').") AS month".str_pad($j, 2, '0', STR_PAD_LEFT).",";
|
||||||
}
|
}
|
||||||
$sql .= " SUM(erd.total_ht) as total";
|
$sql .= " SUM(erd.total_ht) as total";
|
||||||
|
|||||||
@ -58,12 +58,15 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : (empty($conf->global
|
|||||||
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
||||||
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
||||||
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
||||||
if (empty($page) || $page < 0) $page = 0;
|
if (empty($page) || $page < 0) {
|
||||||
|
$page = 0;
|
||||||
|
}
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
$offset = $limit * $page;
|
$offset = $limit * $page;
|
||||||
if (!$sortfield)
|
if (!$sortfield) {
|
||||||
$sortfield = "erd.date, erd.rowid";
|
$sortfield = "erd.date, erd.rowid";
|
||||||
|
}
|
||||||
if (!$sortorder) {
|
if (!$sortorder) {
|
||||||
if ($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_DONE > 0) {
|
if ($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_DONE > 0) {
|
||||||
$sortorder = "DESC";
|
$sortorder = "DESC";
|
||||||
@ -71,10 +74,12 @@ if (!$sortorder) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->socid > 0)
|
if ($user->socid > 0) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
if (!$user->rights->accounting->bind->write)
|
}
|
||||||
|
if (!$user->rights->accounting->bind->write) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
$formaccounting = new FormAccounting($db);
|
$formaccounting = new FormAccounting($db);
|
||||||
|
|
||||||
@ -84,8 +89,7 @@ $formaccounting = new FormAccounting($db);
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// Purge search criteria
|
// Purge search criteria
|
||||||
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // Both test are required to be compatible with all browsers
|
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // Both test are required to be compatible with all browsers
|
||||||
{
|
|
||||||
$search_login = '';
|
$search_login = '';
|
||||||
$search_expensereport = '';
|
$search_expensereport = '';
|
||||||
$search_label = '';
|
$search_label = '';
|
||||||
@ -101,14 +105,12 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x'
|
|||||||
if (is_array($changeaccount) && count($changeaccount) > 0) {
|
if (is_array($changeaccount) && count($changeaccount) > 0) {
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
if (!(GETPOST('account_parent', 'int') >= 0))
|
if (!(GETPOST('account_parent', 'int') >= 0)) {
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Account")), null, 'errors');
|
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Account")), null, 'errors');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$error)
|
if (!$error) {
|
||||||
{
|
|
||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
$sql1 = "UPDATE ".MAIN_DB_PREFIX."expensereport_det as erd";
|
$sql1 = "UPDATE ".MAIN_DB_PREFIX."expensereport_det as erd";
|
||||||
@ -205,12 +207,10 @@ $sql .= $db->order($sortfield, $sortorder);
|
|||||||
|
|
||||||
// Count total nb of records
|
// Count total nb of records
|
||||||
$nbtotalofrecords = '';
|
$nbtotalofrecords = '';
|
||||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||||
{
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
$nbtotalofrecords = $db->num_rows($result);
|
$nbtotalofrecords = $db->num_rows($result);
|
||||||
if (($page * $limit) > $nbtotalofrecords) // if total resultset is smaller then paging size (filtering), goto and load page 0
|
if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0
|
||||||
{
|
|
||||||
$page = 0;
|
$page = 0;
|
||||||
$offset = 0;
|
$offset = 0;
|
||||||
}
|
}
|
||||||
@ -226,21 +226,45 @@ if ($result) {
|
|||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
$param = '';
|
$param = '';
|
||||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
$param .= '&contextpage='.urlencode($contextpage);
|
||||||
if ($search_login) $param .= '&search_login='.urlencode($search_login);
|
}
|
||||||
if ($search_expensereport) $param .= "&search_expensereport=".urlencode($search_expensereport);
|
if ($limit > 0 && $limit != $conf->liste_limit) {
|
||||||
if ($search_label) $param .= "&search_label=".urlencode($search_label);
|
$param .= '&limit='.urlencode($limit);
|
||||||
if ($search_desc) $param .= "&search_desc=".urlencode($search_desc);
|
}
|
||||||
if ($search_account) $param .= "&search_account=".urlencode($search_account);
|
if ($search_login) {
|
||||||
if ($search_vat) $param .= "&search_vat=".urlencode($search_vat);
|
$param .= '&search_login='.urlencode($search_login);
|
||||||
if ($search_day) $param .= '&search_day='.urlencode($search_day);
|
}
|
||||||
if ($search_month) $param .= '&search_month='.urlencode($search_month);
|
if ($search_expensereport) {
|
||||||
if ($search_year) $param .= '&search_year='.urlencode($search_year);
|
$param .= "&search_expensereport=".urlencode($search_expensereport);
|
||||||
|
}
|
||||||
|
if ($search_label) {
|
||||||
|
$param .= "&search_label=".urlencode($search_label);
|
||||||
|
}
|
||||||
|
if ($search_desc) {
|
||||||
|
$param .= "&search_desc=".urlencode($search_desc);
|
||||||
|
}
|
||||||
|
if ($search_account) {
|
||||||
|
$param .= "&search_account=".urlencode($search_account);
|
||||||
|
}
|
||||||
|
if ($search_vat) {
|
||||||
|
$param .= "&search_vat=".urlencode($search_vat);
|
||||||
|
}
|
||||||
|
if ($search_day) {
|
||||||
|
$param .= '&search_day='.urlencode($search_day);
|
||||||
|
}
|
||||||
|
if ($search_month) {
|
||||||
|
$param .= '&search_month='.urlencode($search_month);
|
||||||
|
}
|
||||||
|
if ($search_year) {
|
||||||
|
$param .= '&search_year='.urlencode($search_year);
|
||||||
|
}
|
||||||
|
|
||||||
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">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') {
|
||||||
|
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
}
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
||||||
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
@ -268,7 +292,9 @@ if ($result) {
|
|||||||
print '<td class="liste_titre"></td>';
|
print '<td class="liste_titre"></td>';
|
||||||
}
|
}
|
||||||
print '<td class="liste_titre center">';
|
print '<td class="liste_titre center">';
|
||||||
if (!empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat valignmiddle maxwidth25" type="text" maxlength="2" name="search_day" value="'.$search_day.'">';
|
if (!empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) {
|
||||||
|
print '<input class="flat valignmiddle maxwidth25" type="text" maxlength="2" name="search_day" value="'.$search_day.'">';
|
||||||
|
}
|
||||||
print '<input class="flat valignmiddle maxwidth25" type="text" maxlength="2" name="search_month" value="'.$search_month.'">';
|
print '<input class="flat valignmiddle maxwidth25" type="text" maxlength="2" name="search_month" value="'.$search_month.'">';
|
||||||
$formother->select_year($search_year, 'search_year', 1, 20, 5);
|
$formother->select_year($search_year, 'search_year', 1, 20, 5);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|||||||
@ -68,12 +68,15 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : (empty($conf->global
|
|||||||
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
||||||
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
||||||
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
||||||
if (empty($page) || $page < 0) { $page = 0; }
|
if (empty($page) || $page < 0) {
|
||||||
|
$page = 0;
|
||||||
|
}
|
||||||
$offset = $limit * $page;
|
$offset = $limit * $page;
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
if (!$sortfield)
|
if (!$sortfield) {
|
||||||
$sortfield = "erd.date, erd.rowid";
|
$sortfield = "erd.date, erd.rowid";
|
||||||
|
}
|
||||||
if (!$sortorder) {
|
if (!$sortorder) {
|
||||||
if ($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_TODO > 0) {
|
if ($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_TODO > 0) {
|
||||||
$sortorder = "DESC";
|
$sortorder = "DESC";
|
||||||
@ -81,10 +84,12 @@ if (!$sortorder) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->socid > 0)
|
if ($user->socid > 0) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
if (!$user->rights->accounting->bind->write)
|
}
|
||||||
|
if (!$user->rights->accounting->bind->write) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
$formaccounting = new FormAccounting($db);
|
$formaccounting = new FormAccounting($db);
|
||||||
$accounting = new AccountingAccount($db);
|
$accounting = new AccountingAccount($db);
|
||||||
@ -96,12 +101,15 @@ $chartaccountcode = dol_getIdFromCode($db, $conf->global->CHARTOFACCOUNTS, 'acco
|
|||||||
* Action
|
* Action
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (GETPOST('cancel', 'alpha')) { $action = 'list'; $massaction = ''; }
|
if (GETPOST('cancel', 'alpha')) {
|
||||||
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; }
|
$action = 'list'; $massaction = '';
|
||||||
|
}
|
||||||
|
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') {
|
||||||
|
$massaction = '';
|
||||||
|
}
|
||||||
|
|
||||||
// Purge search criteria
|
// Purge search criteria
|
||||||
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // All test are required to be compatible with all browsers
|
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All test are required to be compatible with all browsers
|
||||||
{
|
|
||||||
$search_login = '';
|
$search_login = '';
|
||||||
$search_expensereport = '';
|
$search_expensereport = '';
|
||||||
$search_label = '';
|
$search_label = '';
|
||||||
@ -137,8 +145,7 @@ if ($massaction == 'ventil') {
|
|||||||
$monId = $maLigneCourante[0];
|
$monId = $maLigneCourante[0];
|
||||||
$monCompte = GETPOST('codeventil'.$monId);
|
$monCompte = GETPOST('codeventil'.$monId);
|
||||||
|
|
||||||
if ($monCompte <= 0)
|
if ($monCompte <= 0) {
|
||||||
{
|
|
||||||
$msg .= '<div><span style="color:red">'.$langs->trans("Lineofinvoice").' '.$monId.' - '.$langs->trans("NoAccountSelected").'</span></div>';
|
$msg .= '<div><span style="color:red">'.$langs->trans("Lineofinvoice").' '.$monId.' - '.$langs->trans("NoAccountSelected").'</span></div>';
|
||||||
$ko++;
|
$ko++;
|
||||||
} else {
|
} else {
|
||||||
@ -177,8 +184,7 @@ $formother = new FormOther($db);
|
|||||||
|
|
||||||
llxHeader('', $langs->trans("ExpenseReportsVentilation"));
|
llxHeader('', $langs->trans("ExpenseReportsVentilation"));
|
||||||
|
|
||||||
if (empty($chartaccountcode))
|
if (empty($chartaccountcode)) {
|
||||||
{
|
|
||||||
print $langs->trans("ErrorChartOfAccountSystemNotSelected");
|
print $langs->trans("ErrorChartOfAccountSystemNotSelected");
|
||||||
// End of page
|
// End of page
|
||||||
llxFooter();
|
llxFooter();
|
||||||
@ -231,12 +237,10 @@ $sql .= $db->order($sortfield, $sortorder);
|
|||||||
|
|
||||||
// Count total nb of records
|
// Count total nb of records
|
||||||
$nbtotalofrecords = '';
|
$nbtotalofrecords = '';
|
||||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||||
{
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
$nbtotalofrecords = $db->num_rows($result);
|
$nbtotalofrecords = $db->num_rows($result);
|
||||||
if (($page * $limit) > $nbtotalofrecords) // if total resultset is smaller then paging size (filtering), goto and load page 0
|
if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0
|
||||||
{
|
|
||||||
$page = 0;
|
$page = 0;
|
||||||
$offset = 0;
|
$offset = 0;
|
||||||
}
|
}
|
||||||
@ -253,18 +257,42 @@ if ($result) {
|
|||||||
$arrayofselected = is_array($toselect) ? $toselect : array();
|
$arrayofselected = is_array($toselect) ? $toselect : array();
|
||||||
|
|
||||||
$param = '';
|
$param = '';
|
||||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
$param .= '&contextpage='.urlencode($contextpage);
|
||||||
if ($search_login) $param .= '&search_login='.urlencode($search_login);
|
}
|
||||||
if ($search_lineid) $param .= '&search_lineid='.urlencode($search_lineid);
|
if ($limit > 0 && $limit != $conf->liste_limit) {
|
||||||
if ($search_day) $param .= '&search_day='.urlencode($search_day);
|
$param .= '&limit='.urlencode($limit);
|
||||||
if ($search_month) $param .= '&search_month='.urlencode($search_month);
|
}
|
||||||
if ($search_year) $param .= '&search_year='.urlencode($search_year);
|
if ($search_login) {
|
||||||
if ($search_expensereport) $param .= '&search_expensereport='.urlencode($search_expensereport);
|
$param .= '&search_login='.urlencode($search_login);
|
||||||
if ($search_label) $param .= '&search_label='.urlencode($search_label);
|
}
|
||||||
if ($search_desc) $param .= '&search_desc='.urlencode($search_desc);
|
if ($search_lineid) {
|
||||||
if ($search_amount) $param .= '&search_amount='.urlencode($search_amount);
|
$param .= '&search_lineid='.urlencode($search_lineid);
|
||||||
if ($search_vat) $param .= '&search_vat='.urlencode($search_vat);
|
}
|
||||||
|
if ($search_day) {
|
||||||
|
$param .= '&search_day='.urlencode($search_day);
|
||||||
|
}
|
||||||
|
if ($search_month) {
|
||||||
|
$param .= '&search_month='.urlencode($search_month);
|
||||||
|
}
|
||||||
|
if ($search_year) {
|
||||||
|
$param .= '&search_year='.urlencode($search_year);
|
||||||
|
}
|
||||||
|
if ($search_expensereport) {
|
||||||
|
$param .= '&search_expensereport='.urlencode($search_expensereport);
|
||||||
|
}
|
||||||
|
if ($search_label) {
|
||||||
|
$param .= '&search_label='.urlencode($search_label);
|
||||||
|
}
|
||||||
|
if ($search_desc) {
|
||||||
|
$param .= '&search_desc='.urlencode($search_desc);
|
||||||
|
}
|
||||||
|
if ($search_amount) {
|
||||||
|
$param .= '&search_amount='.urlencode($search_amount);
|
||||||
|
}
|
||||||
|
if ($search_vat) {
|
||||||
|
$param .= '&search_vat='.urlencode($search_vat);
|
||||||
|
}
|
||||||
|
|
||||||
$arrayofmassactions = array(
|
$arrayofmassactions = array(
|
||||||
'ventil' => $langs->trans("Ventilate")
|
'ventil' => $langs->trans("Ventilate")
|
||||||
@ -274,7 +302,9 @@ if ($result) {
|
|||||||
|
|
||||||
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">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') {
|
||||||
|
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
}
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
||||||
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
@ -285,7 +315,9 @@ if ($result) {
|
|||||||
|
|
||||||
print '<span class="opacitymedium">'.$langs->trans("DescVentilTodoExpenseReport").'</span></br><br>';
|
print '<span class="opacitymedium">'.$langs->trans("DescVentilTodoExpenseReport").'</span></br><br>';
|
||||||
|
|
||||||
if ($msg) print $msg.'<br>';
|
if ($msg) {
|
||||||
|
print $msg.'<br>';
|
||||||
|
}
|
||||||
|
|
||||||
$moreforfilter = '';
|
$moreforfilter = '';
|
||||||
|
|
||||||
@ -301,7 +333,9 @@ if ($result) {
|
|||||||
print '<td class="liste_titre"></td>';
|
print '<td class="liste_titre"></td>';
|
||||||
}
|
}
|
||||||
print '<td class="liste_titre center nowraponall minwidth100imp">';
|
print '<td class="liste_titre center nowraponall minwidth100imp">';
|
||||||
if (!empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat valignmiddle maxwidth25" type="text" maxlength="2" name="search_day" value="'.$search_day.'">';
|
if (!empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) {
|
||||||
|
print '<input class="flat valignmiddle maxwidth25" type="text" maxlength="2" name="search_day" value="'.$search_day.'">';
|
||||||
|
}
|
||||||
print '<input class="flat valignmiddle maxwidth25" type="text" maxlength="2" name="search_month" value="'.$search_month.'">';
|
print '<input class="flat valignmiddle maxwidth25" type="text" maxlength="2" name="search_month" value="'.$search_month.'">';
|
||||||
$formother->select_year($search_year, 'search_year', 1, 20, 5);
|
$formother->select_year($search_year, 'search_year', 1, 20, 5);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -332,7 +366,9 @@ if ($result) {
|
|||||||
print_liste_field_titre("AccountAccountingSuggest", '', '', '', '', '', '', '', 'nowraponall ');
|
print_liste_field_titre("AccountAccountingSuggest", '', '', '', '', '', '', '', 'nowraponall ');
|
||||||
print_liste_field_titre("IntoAccount", '', '', '', '', '', '', '', '');
|
print_liste_field_titre("IntoAccount", '', '', '', '', '', '', '', '');
|
||||||
$checkpicto = '';
|
$checkpicto = '';
|
||||||
if ($massactionbutton) $checkpicto = $form->showCheckAddButtons('checkforselect', 1);
|
if ($massactionbutton) {
|
||||||
|
$checkpicto = $form->showCheckAddButtons('checkforselect', 1);
|
||||||
|
}
|
||||||
print_liste_field_titre($checkpicto, '', '', '', '', '', '', '', 'center ');
|
print_liste_field_titre($checkpicto, '', '', '', '', '', '', '', 'center ');
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
|
|||||||
@ -32,8 +32,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
|
|||||||
$langs->loadLangs(array("compta", "bills", "other", "accountancy", "loans", "banks", "admin", "dict"));
|
$langs->loadLangs(array("compta", "bills", "other", "accountancy", "loans", "banks", "admin", "dict"));
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->socid > 0)
|
if ($user->socid > 0) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
// Initialize technical object to manage hooks. Note that conf->hooks_modules contains array of hooks
|
// Initialize technical object to manage hooks. Note that conf->hooks_modules contains array of hooks
|
||||||
$hookmanager->initHooks(array('accountancyindex'));
|
$hookmanager->initHooks(array('accountancyindex'));
|
||||||
@ -43,8 +44,8 @@ $hookmanager->initHooks(array('accountancyindex'));
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (GETPOST('addbox')) // Add box (when submit is done from a form when ajax disabled)
|
if (GETPOST('addbox')) {
|
||||||
{
|
// Add box (when submit is done from a form when ajax disabled)
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/infobox.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/infobox.class.php';
|
||||||
$zone = GETPOST('areacode', 'aZ09');
|
$zone = GETPOST('areacode', 'aZ09');
|
||||||
$userid = GETPOST('userid', 'int');
|
$userid = GETPOST('userid', 'int');
|
||||||
@ -52,7 +53,9 @@ if (GETPOST('addbox')) // Add box (when submit is done from a form when ajax dis
|
|||||||
$boxorder .= GETPOST('boxcombo', 'aZ09');
|
$boxorder .= GETPOST('boxcombo', 'aZ09');
|
||||||
|
|
||||||
$result = InfoBox::saveboxorder($db, $zone, $boxorder, $userid);
|
$result = InfoBox::saveboxorder($db, $zone, $boxorder, $userid);
|
||||||
if ($result > 0) setEventMessages($langs->trans("BoxAdded"), null);
|
if ($result > 0) {
|
||||||
|
setEventMessages($langs->trans("BoxAdded"), null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -60,10 +63,11 @@ if (GETPOST('addbox')) // Add box (when submit is done from a form when ajax dis
|
|||||||
* View
|
* View
|
||||||
*/
|
*/
|
||||||
|
|
||||||
llxHeader('', $langs->trans("AccountancyArea"));
|
$help_url = '';
|
||||||
|
|
||||||
if ($conf->accounting->enabled)
|
llxHeader('', $langs->trans("AccountancyArea"), $help_url);
|
||||||
{
|
|
||||||
|
if ($conf->accounting->enabled) {
|
||||||
$step = 0;
|
$step = 0;
|
||||||
|
|
||||||
$resultboxes = FormOther::getBoxesArea($user, "27"); // Load $resultboxes (selectboxlist + boxactivated + boxlista + boxlistb)
|
$resultboxes = FormOther::getBoxesArea($user, "27"); // Load $resultboxes (selectboxlist + boxactivated + boxlista + boxlistb)
|
||||||
@ -71,8 +75,7 @@ if ($conf->accounting->enabled)
|
|||||||
$helpisexpanded = empty($resultboxes['boxactivated']) || (empty($resultboxes['boxlista']) && empty($resultboxes['boxlistb'])); // If there is no widget, the tooltip help is expanded by default.
|
$helpisexpanded = empty($resultboxes['boxactivated']) || (empty($resultboxes['boxlista']) && empty($resultboxes['boxlistb'])); // If there is no widget, the tooltip help is expanded by default.
|
||||||
$showtutorial = '';
|
$showtutorial = '';
|
||||||
|
|
||||||
if (!$helpisexpanded)
|
if (!$helpisexpanded) {
|
||||||
{
|
|
||||||
$showtutorial = '<div align="right"><a href="#" id="show_hide">';
|
$showtutorial = '<div align="right"><a href="#" id="show_hide">';
|
||||||
$showtutorial .= img_picto('', 'chevron-down');
|
$showtutorial .= img_picto('', 'chevron-down');
|
||||||
$showtutorial .= ' '.$langs->trans("ShowTutorial");
|
$showtutorial .= ' '.$langs->trans("ShowTutorial");
|
||||||
@ -90,7 +93,7 @@ if ($conf->accounting->enabled)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
print load_fiche_titre($langs->trans("AccountancyArea"), $resultboxes['selectboxlist'], 'title_accountancy', 0, '', '', $showtutorial);
|
print load_fiche_titre($langs->trans("AccountancyArea"), $resultboxes['selectboxlist'], 'accountancy', 0, '', '', $showtutorial);
|
||||||
|
|
||||||
print '<div class="'.($helpisexpanded ? '' : 'hideobject').'" id="idfaq">'; // hideobject is to start hidden
|
print '<div class="'.($helpisexpanded ? '' : 'hideobject').'" id="idfaq">'; // hideobject is to start hidden
|
||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
@ -141,8 +144,7 @@ if ($conf->accounting->enabled)
|
|||||||
$s = str_replace('{s}', $textlink, $s);
|
$s = str_replace('{s}', $textlink, $s);
|
||||||
print $s;
|
print $s;
|
||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
if (!empty($conf->tax->enabled))
|
if (!empty($conf->tax->enabled)) {
|
||||||
{
|
|
||||||
$textlink = '<a href="'.DOL_URL_ROOT.'/admin/dict.php?id=7&from=accountancy"><strong>'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuTaxAccounts").'</strong></a>';
|
$textlink = '<a href="'.DOL_URL_ROOT.'/admin/dict.php?id=7&from=accountancy"><strong>'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuTaxAccounts").'</strong></a>';
|
||||||
$step++;
|
$step++;
|
||||||
$s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescContrib", $step, '{s}');
|
$s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescContrib", $step, '{s}');
|
||||||
@ -150,8 +152,7 @@ if ($conf->accounting->enabled)
|
|||||||
print $s;
|
print $s;
|
||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
}
|
}
|
||||||
if (!empty($conf->expensereport->enabled)) // TODO Move this in the default account page because this is only one accounting account per purpose, not several.
|
if (!empty($conf->expensereport->enabled)) { // TODO Move this in the default account page because this is only one accounting account per purpose, not several.
|
||||||
{
|
|
||||||
$step++;
|
$step++;
|
||||||
$s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescExpenseReport", $step, '{s}');
|
$s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescExpenseReport", $step, '{s}');
|
||||||
$s = str_replace('{s}', '<a href="'.DOL_URL_ROOT.'/admin/dict.php?id=17&from=accountancy"><strong>'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuExpenseReportAccounts").'</strong></a>', $s);
|
$s = str_replace('{s}', '<a href="'.DOL_URL_ROOT.'/admin/dict.php?id=17&from=accountancy"><strong>'.$langs->transnoentitiesnoconv("Setup").' - '.$langs->transnoentitiesnoconv("MenuExpenseReportAccounts").'</strong></a>', $s);
|
||||||
@ -190,8 +191,7 @@ if ($conf->accounting->enabled)
|
|||||||
print $s;
|
print $s;
|
||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
|
|
||||||
if (!empty($conf->expensereport->enabled) || !empty($conf->deplacement->enabled))
|
if (!empty($conf->expensereport->enabled) || !empty($conf->deplacement->enabled)) {
|
||||||
{
|
|
||||||
$step++;
|
$step++;
|
||||||
$s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBind", chr(64 + $step), $langs->transnoentitiesnoconv("ExpenseReports"), '{s}')."\n";
|
$s = img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBind", chr(64 + $step), $langs->transnoentitiesnoconv("ExpenseReports"), '{s}')."\n";
|
||||||
$s = str_replace('{s}', '<a href="'.DOL_URL_ROOT.'/accountancy/expensereport/index.php"><strong>'.$langs->transnoentitiesnoconv("TransferInAccounting").' - '.$langs->transnoentitiesnoconv("ExpenseReportsVentilation").'</strong></a>', $s);
|
$s = str_replace('{s}', '<a href="'.DOL_URL_ROOT.'/accountancy/expensereport/index.php"><strong>'.$langs->transnoentitiesnoconv("TransferInAccounting").' - '.$langs->transnoentitiesnoconv("ExpenseReportsVentilation").'</strong></a>', $s);
|
||||||
|
|||||||
@ -10,6 +10,7 @@
|
|||||||
* Copyright (C) 2017-2020 Frédéric France <frederic.france@netlogic.fr>
|
* Copyright (C) 2017-2020 Frédéric France <frederic.france@netlogic.fr>
|
||||||
* Copyright (C) 2018 Ferran Marcet <fmarcet@2byte.es>
|
* Copyright (C) 2018 Ferran Marcet <fmarcet@2byte.es>
|
||||||
* Copyright (C) 2018 Eric Seigne <eric.seigne@cap-rel.fr>
|
* Copyright (C) 2018 Eric Seigne <eric.seigne@cap-rel.fr>
|
||||||
|
* Copyright (C) 2021 Gauthier VERDOL <gauthier.verdol@atm-consulting.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
|
||||||
@ -945,7 +946,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
$vatstatic = new Tva($db);
|
$vatstatic = new Tva($db);
|
||||||
$donationstatic = new Don($db);
|
$donationstatic = new Don($db);
|
||||||
$loanstatic = new Loan($db);
|
$loanstatic = new Loan($db);
|
||||||
$salarystatic = new PaymentSalary($db);
|
$salarystatic = new Salary($db);
|
||||||
$variousstatic = new PaymentVarious($db);
|
$variousstatic = new PaymentVarious($db);
|
||||||
|
|
||||||
llxHeader('', $langs->trans("FinanceJournal"));
|
llxHeader('', $langs->trans("FinanceJournal"));
|
||||||
|
|||||||
@ -51,13 +51,16 @@ $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');
|
||||||
$in_bookkeeping = GETPOST('in_bookkeeping');
|
$in_bookkeeping = GETPOST('in_bookkeeping');
|
||||||
if ($in_bookkeeping == '') $in_bookkeeping = 'notyet';
|
if ($in_bookkeeping == '') {
|
||||||
|
$in_bookkeeping = 'notyet';
|
||||||
|
}
|
||||||
|
|
||||||
$now = dol_now();
|
$now = dol_now();
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->socid > 0)
|
if ($user->socid > 0) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
@ -73,8 +76,7 @@ $journal_label = $accountingjournalstatic->label;
|
|||||||
$date_start = dol_mktime(0, 0, 0, $date_startmonth, $date_startday, $date_startyear);
|
$date_start = dol_mktime(0, 0, 0, $date_startmonth, $date_startday, $date_startyear);
|
||||||
$date_end = dol_mktime(23, 59, 59, $date_endmonth, $date_endday, $date_endyear);
|
$date_end = dol_mktime(23, 59, 59, $date_endmonth, $date_endday, $date_endyear);
|
||||||
|
|
||||||
if (empty($date_startmonth) || empty($date_endmonth))
|
if (empty($date_startmonth) || empty($date_endmonth)) {
|
||||||
{
|
|
||||||
// Period by default on transfer
|
// Period by default on transfer
|
||||||
$dates = getDefaultDatesForTransfer();
|
$dates = getDefaultDatesForTransfer();
|
||||||
$date_start = $dates['date_start'];
|
$date_start = $dates['date_start'];
|
||||||
@ -83,8 +85,7 @@ if (empty($date_startmonth) || empty($date_endmonth))
|
|||||||
$pastmonth = $dates['pastmonth'];
|
$pastmonth = $dates['pastmonth'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!GETPOSTISSET('date_startmonth') && (empty($date_start) || empty($date_end))) // We define date_start and date_end, only if we did not submit the form
|
if (!GETPOSTISSET('date_startmonth') && (empty($date_start) || empty($date_end))) { // We define date_start and date_end, only if we did not submit the form
|
||||||
{
|
|
||||||
$date_start = dol_get_first_day($pastmonthyear, $pastmonth, false);
|
$date_start = dol_get_first_day($pastmonthyear, $pastmonth, false);
|
||||||
$date_end = dol_get_last_day($pastmonthyear, $pastmonth, false);
|
$date_end = dol_get_last_day($pastmonthyear, $pastmonth, false);
|
||||||
}
|
}
|
||||||
@ -101,19 +102,18 @@ $sql .= " JOIN ".MAIN_DB_PREFIX."user as u ON u.rowid = er.fk_user_author";
|
|||||||
$sql .= " WHERE er.fk_statut > 0";
|
$sql .= " WHERE er.fk_statut > 0";
|
||||||
$sql .= " AND erd.fk_code_ventilation > 0";
|
$sql .= " AND erd.fk_code_ventilation > 0";
|
||||||
$sql .= " AND er.entity IN (".getEntity('expensereport', 0).")"; // We don't share object for accountancy
|
$sql .= " AND er.entity IN (".getEntity('expensereport', 0).")"; // We don't share object for accountancy
|
||||||
if ($date_start && $date_end)
|
if ($date_start && $date_end) {
|
||||||
$sql .= " AND er.date_debut >= '".$db->idate($date_start)."' AND er.date_debut <= '".$db->idate($date_end)."'";
|
$sql .= " AND er.date_debut >= '".$db->idate($date_start)."' AND er.date_debut <= '".$db->idate($date_end)."'";
|
||||||
|
}
|
||||||
// Define begin binding date
|
// Define begin binding date
|
||||||
if (!empty($conf->global->ACCOUNTING_DATE_START_BINDING)) {
|
if (!empty($conf->global->ACCOUNTING_DATE_START_BINDING)) {
|
||||||
$sql .= " AND er.date_debut >= '".$db->idate($conf->global->ACCOUNTING_DATE_START_BINDING)."'";
|
$sql .= " AND er.date_debut >= '".$db->idate($conf->global->ACCOUNTING_DATE_START_BINDING)."'";
|
||||||
}
|
}
|
||||||
// Already in bookkeeping or not
|
// Already in bookkeeping or not
|
||||||
if ($in_bookkeeping == 'already')
|
if ($in_bookkeeping == 'already') {
|
||||||
{
|
|
||||||
$sql .= " AND er.rowid IN (SELECT fk_doc FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as ab WHERE ab.doc_type='expense_report')";
|
$sql .= " AND er.rowid IN (SELECT fk_doc FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as ab WHERE ab.doc_type='expense_report')";
|
||||||
}
|
}
|
||||||
if ($in_bookkeeping == 'notyet')
|
if ($in_bookkeeping == 'notyet') {
|
||||||
{
|
|
||||||
$sql .= " AND er.rowid NOT IN (SELECT fk_doc FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as ab WHERE ab.doc_type='expense_report')";
|
$sql .= " AND er.rowid NOT IN (SELECT fk_doc FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as ab WHERE ab.doc_type='expense_report')";
|
||||||
}
|
}
|
||||||
$sql .= " ORDER BY er.date_debut";
|
$sql .= " ORDER BY er.date_debut";
|
||||||
@ -150,8 +150,7 @@ if ($result) {
|
|||||||
$compta_localtax2 = (!empty($vatdata['accountancy_code_buy']) ? $vatdata['accountancy_code_buy'] : $cpttva);
|
$compta_localtax2 = (!empty($vatdata['accountancy_code_buy']) ? $vatdata['accountancy_code_buy'] : $cpttva);
|
||||||
|
|
||||||
// Define array to display all VAT rates that use this accounting account $compta_tva
|
// Define array to display all VAT rates that use this accounting account $compta_tva
|
||||||
if (price2num($obj->tva_tx) || !empty($obj->vat_src_code))
|
if (price2num($obj->tva_tx) || !empty($obj->vat_src_code)) {
|
||||||
{
|
|
||||||
$def_tva[$obj->rowid][$compta_tva][vatrate($obj->tva_tx).($obj->vat_src_code ? ' ('.$obj->vat_src_code.')' : '')] = (vatrate($obj->tva_tx).($obj->vat_src_code ? ' ('.$obj->vat_src_code.')' : ''));
|
$def_tva[$obj->rowid][$compta_tva][vatrate($obj->tva_tx).($obj->vat_src_code ? ' ('.$obj->vat_src_code.')' : '')] = (vatrate($obj->tva_tx).($obj->vat_src_code ? ' ('.$obj->vat_src_code.')' : ''));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -161,11 +160,21 @@ if ($result) {
|
|||||||
$taber[$obj->rowid]["fk_expensereportdet"] = $obj->erdid;
|
$taber[$obj->rowid]["fk_expensereportdet"] = $obj->erdid;
|
||||||
|
|
||||||
// Avoid warnings
|
// Avoid warnings
|
||||||
if (!isset($tabttc[$obj->rowid][$compta_user])) $tabttc[$obj->rowid][$compta_user] = 0;
|
if (!isset($tabttc[$obj->rowid][$compta_user])) {
|
||||||
if (!isset($tabht[$obj->rowid][$compta_fees])) $tabht[$obj->rowid][$compta_fees] = 0;
|
$tabttc[$obj->rowid][$compta_user] = 0;
|
||||||
if (!isset($tabtva[$obj->rowid][$compta_tva])) $tabtva[$obj->rowid][$compta_tva] = 0;
|
}
|
||||||
if (!isset($tablocaltax1[$obj->rowid][$compta_localtax1])) $tablocaltax1[$obj->rowid][$compta_localtax1] = 0;
|
if (!isset($tabht[$obj->rowid][$compta_fees])) {
|
||||||
if (!isset($tablocaltax2[$obj->rowid][$compta_localtax2])) $tablocaltax2[$obj->rowid][$compta_localtax2] = 0;
|
$tabht[$obj->rowid][$compta_fees] = 0;
|
||||||
|
}
|
||||||
|
if (!isset($tabtva[$obj->rowid][$compta_tva])) {
|
||||||
|
$tabtva[$obj->rowid][$compta_tva] = 0;
|
||||||
|
}
|
||||||
|
if (!isset($tablocaltax1[$obj->rowid][$compta_localtax1])) {
|
||||||
|
$tablocaltax1[$obj->rowid][$compta_localtax1] = 0;
|
||||||
|
}
|
||||||
|
if (!isset($tablocaltax2[$obj->rowid][$compta_localtax2])) {
|
||||||
|
$tablocaltax2[$obj->rowid][$compta_localtax2] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
$tabttc[$obj->rowid][$compta_user] += $obj->total_ttc;
|
$tabttc[$obj->rowid][$compta_user] += $obj->total_ttc;
|
||||||
$tabht[$obj->rowid][$compta_fees] += $obj->total_ht;
|
$tabht[$obj->rowid][$compta_fees] += $obj->total_ht;
|
||||||
@ -189,8 +198,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
$now = dol_now();
|
$now = dol_now();
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
foreach ($taber as $key => $val) // Loop on each expense report
|
foreach ($taber as $key => $val) { // Loop on each expense report
|
||||||
{
|
|
||||||
$errorforline = 0;
|
$errorforline = 0;
|
||||||
|
|
||||||
$totalcredit = 0;
|
$totalcredit = 0;
|
||||||
@ -199,8 +207,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
// Thirdparty
|
// Thirdparty
|
||||||
if (!$errorforline)
|
if (!$errorforline) {
|
||||||
{
|
|
||||||
foreach ($tabttc[$key] as $k => $mt) {
|
foreach ($tabttc[$key] as $k => $mt) {
|
||||||
if ($mt) {
|
if ($mt) {
|
||||||
$bookkeeping = new BookKeeping($db);
|
$bookkeeping = new BookKeeping($db);
|
||||||
@ -232,8 +239,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
|
|
||||||
$result = $bookkeeping->create($user);
|
$result = $bookkeeping->create($user);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
|
if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') { // Already exists
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
//setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
|
//setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
|
||||||
@ -248,8 +254,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Fees
|
// Fees
|
||||||
if (!$errorforline)
|
if (!$errorforline) {
|
||||||
{
|
|
||||||
foreach ($tabht[$key] as $k => $mt) {
|
foreach ($tabht[$key] as $k => $mt) {
|
||||||
if ($mt) {
|
if ($mt) {
|
||||||
// get compte id and label
|
// get compte id and label
|
||||||
@ -280,8 +285,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
|
|
||||||
$result = $bookkeeping->create($user);
|
$result = $bookkeeping->create($user);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
|
if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') { // Already exists
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
//setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
|
//setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
|
||||||
@ -297,14 +301,16 @@ if ($action == 'writebookkeeping') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// VAT
|
// VAT
|
||||||
if (!$errorforline)
|
if (!$errorforline) {
|
||||||
{
|
|
||||||
$listoftax = array(0, 1, 2);
|
$listoftax = array(0, 1, 2);
|
||||||
foreach ($listoftax as $numtax)
|
foreach ($listoftax as $numtax) {
|
||||||
{
|
|
||||||
$arrayofvat = $tabtva;
|
$arrayofvat = $tabtva;
|
||||||
if ($numtax == 1) $arrayofvat = $tablocaltax1;
|
if ($numtax == 1) {
|
||||||
if ($numtax == 2) $arrayofvat = $tablocaltax2;
|
$arrayofvat = $tablocaltax1;
|
||||||
|
}
|
||||||
|
if ($numtax == 2) {
|
||||||
|
$arrayofvat = $tablocaltax2;
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($arrayofvat[$key] as $k => $mt) {
|
foreach ($arrayofvat[$key] as $k => $mt) {
|
||||||
if ($mt) {
|
if ($mt) {
|
||||||
@ -338,8 +344,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
|
|
||||||
$result = $bookkeeping->create($user);
|
$result = $bookkeeping->create($user);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
|
if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') { // Already exists
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
//setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
|
//setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
|
||||||
@ -355,21 +360,18 @@ if ($action == 'writebookkeeping') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Protection against a bug on line before
|
// Protection against a bug on line before
|
||||||
if (price2num($totaldebit, 'MT') != price2num($totalcredit, 'MT'))
|
if (price2num($totaldebit, 'MT') != price2num($totalcredit, 'MT')) {
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
setEventMessages('Try to insert a non balanced transaction in book for '.$val["ref"].'. Canceled. Surely a bug.', null, 'errors');
|
setEventMessages('Try to insert a non balanced transaction in book for '.$val["ref"].'. Canceled. Surely a bug.', null, 'errors');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$errorforline)
|
if (!$errorforline) {
|
||||||
{
|
|
||||||
$db->commit();
|
$db->commit();
|
||||||
} else {
|
} else {
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
|
|
||||||
if ($error >= 10)
|
if ($error >= 10) {
|
||||||
{
|
|
||||||
setEventMessages($langs->trans("ErrorTooManyErrorsProcessStopped"), null, 'errors');
|
setEventMessages($langs->trans("ErrorTooManyErrorsProcessStopped"), null, 'errors');
|
||||||
break; // Break in the foreach
|
break; // Break in the foreach
|
||||||
}
|
}
|
||||||
@ -380,8 +382,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
|
|
||||||
if (empty($error) && count($tabpay) > 0) {
|
if (empty($error) && count($tabpay) > 0) {
|
||||||
setEventMessages($langs->trans("GeneralLedgerIsWritten"), null, 'mesgs');
|
setEventMessages($langs->trans("GeneralLedgerIsWritten"), null, 'mesgs');
|
||||||
} elseif (count($tabpay) == $error)
|
} elseif (count($tabpay) == $error) {
|
||||||
{
|
|
||||||
setEventMessages($langs->trans("NoNewRecordSaved"), null, 'warnings');
|
setEventMessages($langs->trans("NoNewRecordSaved"), null, 'warnings');
|
||||||
} else {
|
} else {
|
||||||
setEventMessages($langs->trans("GeneralLedgerSomeRecordWasNotRecorded"), null, 'warnings');
|
setEventMessages($langs->trans("GeneralLedgerSomeRecordWasNotRecorded"), null, 'warnings');
|
||||||
@ -390,8 +391,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
$action = '';
|
$action = '';
|
||||||
|
|
||||||
// Must reload data, so we make a redirect
|
// Must reload data, so we make a redirect
|
||||||
if (count($tabpay) != $error)
|
if (count($tabpay) != $error) {
|
||||||
{
|
|
||||||
$param = 'id_journal='.$id_journal;
|
$param = 'id_journal='.$id_journal;
|
||||||
$param .= '&date_startday='.$date_startday;
|
$param .= '&date_startday='.$date_startday;
|
||||||
$param .= '&date_startmonth='.$date_startmonth;
|
$param .= '&date_startmonth='.$date_startmonth;
|
||||||
@ -503,12 +503,17 @@ if (empty($action) || $action == 'view') {
|
|||||||
}
|
}
|
||||||
print '<div class="tabsAction tabsActionNoBottom">';
|
print '<div class="tabsAction tabsActionNoBottom">';
|
||||||
|
|
||||||
if (!empty($conf->global->ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL) && $in_bookkeeping == 'notyet') print '<input type="button" class="butAction" name="exportcsv" value="'.$langs->trans("ExportDraftJournal").'" onclick="launch_export();" />';
|
if (!empty($conf->global->ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL) && $in_bookkeeping == 'notyet') {
|
||||||
|
print '<input type="button" class="butAction" name="exportcsv" value="'.$langs->trans("ExportDraftJournal").'" onclick="launch_export();" />';
|
||||||
|
}
|
||||||
if (empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) || $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT == '-1') {
|
if (empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) || $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT == '-1') {
|
||||||
print '<input type="button" class="butActionRefused classfortooltip" title="'.dol_escape_htmltag($langs->trans("SomeMandatoryStepsOfSetupWereNotDone")).'" value="'.$langs->trans("WriteBookKeeping").'" />';
|
print '<input type="button" class="butActionRefused classfortooltip" title="'.dol_escape_htmltag($langs->trans("SomeMandatoryStepsOfSetupWereNotDone")).'" value="'.$langs->trans("WriteBookKeeping").'" />';
|
||||||
} else {
|
} else {
|
||||||
if ($in_bookkeeping == 'notyet') print '<input type="button" class="butAction" name="writebookkeeping" value="'.$langs->trans("WriteBookKeeping").'" onclick="writebookkeeping();" />';
|
if ($in_bookkeeping == 'notyet') {
|
||||||
else print '<a href="#" class="butActionRefused classfortooltip" name="writebookkeeping">'.$langs->trans("WriteBookKeeping").'</a>';
|
print '<input type="button" class="butAction" name="writebookkeeping" value="'.$langs->trans("WriteBookKeeping").'" onclick="writebookkeeping();" />';
|
||||||
|
} else {
|
||||||
|
print '<a href="#" class="butActionRefused classfortooltip" name="writebookkeeping">'.$langs->trans("WriteBookKeeping").'</a>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
@ -573,10 +578,11 @@ if (empty($action) || $action == 'view') {
|
|||||||
// Account
|
// Account
|
||||||
print "<td>";
|
print "<td>";
|
||||||
$accountoshow = length_accountg($k);
|
$accountoshow = length_accountg($k);
|
||||||
if (($accountoshow == "") || $accountoshow == 'NotDefined')
|
if (($accountoshow == "") || $accountoshow == 'NotDefined') {
|
||||||
{
|
|
||||||
print '<span class="error">'.$langs->trans("FeeAccountNotDefined").'</span>';
|
print '<span class="error">'.$langs->trans("FeeAccountNotDefined").'</span>';
|
||||||
} else print $accountoshow;
|
} else {
|
||||||
|
print $accountoshow;
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
// Subledger account
|
// Subledger account
|
||||||
print "<td>";
|
print "<td>";
|
||||||
@ -602,18 +608,20 @@ if (empty($action) || $action == 'view') {
|
|||||||
// Account
|
// Account
|
||||||
print "<td>";
|
print "<td>";
|
||||||
$accountoshow = length_accounta($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT);
|
$accountoshow = length_accounta($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT);
|
||||||
if (($accountoshow == "") || $accountoshow == 'NotDefined')
|
if (($accountoshow == "") || $accountoshow == 'NotDefined') {
|
||||||
{
|
|
||||||
print '<span class="error">'.$langs->trans("MainAccountForUsersNotDefined").'</span>';
|
print '<span class="error">'.$langs->trans("MainAccountForUsersNotDefined").'</span>';
|
||||||
} else print $accountoshow;
|
} else {
|
||||||
|
print $accountoshow;
|
||||||
|
}
|
||||||
print "</td>";
|
print "</td>";
|
||||||
// Subledger account
|
// Subledger account
|
||||||
print "<td>";
|
print "<td>";
|
||||||
$accountoshow = length_accounta($k);
|
$accountoshow = length_accounta($k);
|
||||||
if (($accountoshow == "") || $accountoshow == 'NotDefined')
|
if (($accountoshow == "") || $accountoshow == 'NotDefined') {
|
||||||
{
|
|
||||||
print '<span class="error">'.$langs->trans("UserAccountNotDefined").'</span>';
|
print '<span class="error">'.$langs->trans("UserAccountNotDefined").'</span>';
|
||||||
} else print $accountoshow;
|
} else {
|
||||||
|
print $accountoshow;
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print "<td>".$userstatic->getNomUrl(0, 'user', 16).' - '.$langs->trans("SubledgerAccount")."</td>";
|
print "<td>".$userstatic->getNomUrl(0, 'user', 16).' - '.$langs->trans("SubledgerAccount")."</td>";
|
||||||
print '<td class="right nowraponall">'.($mt < 0 ? price(-$mt) : '')."</td>";
|
print '<td class="right nowraponall">'.($mt < 0 ? price(-$mt) : '')."</td>";
|
||||||
@ -625,8 +633,12 @@ if (empty($action) || $action == 'view') {
|
|||||||
$listoftax = array(0, 1, 2);
|
$listoftax = array(0, 1, 2);
|
||||||
foreach ($listoftax as $numtax) {
|
foreach ($listoftax as $numtax) {
|
||||||
$arrayofvat = $tabtva;
|
$arrayofvat = $tabtva;
|
||||||
if ($numtax == 1) $arrayofvat = $tablocaltax1;
|
if ($numtax == 1) {
|
||||||
if ($numtax == 2) $arrayofvat = $tablocaltax2;
|
$arrayofvat = $tablocaltax1;
|
||||||
|
}
|
||||||
|
if ($numtax == 2) {
|
||||||
|
$arrayofvat = $tablocaltax2;
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($arrayofvat[$key] as $k => $mt) {
|
foreach ($arrayofvat[$key] as $k => $mt) {
|
||||||
if ($mt) {
|
if ($mt) {
|
||||||
@ -637,10 +649,11 @@ if (empty($action) || $action == 'view') {
|
|||||||
// Account
|
// Account
|
||||||
print "<td>";
|
print "<td>";
|
||||||
$accountoshow = length_accountg($k);
|
$accountoshow = length_accountg($k);
|
||||||
if (($accountoshow == "") || $accountoshow == 'NotDefined')
|
if (($accountoshow == "") || $accountoshow == 'NotDefined') {
|
||||||
{
|
|
||||||
print '<span class="error">'.$langs->trans("VATAccountNotDefined").'</span>';
|
print '<span class="error">'.$langs->trans("VATAccountNotDefined").'</span>';
|
||||||
} else print $accountoshow;
|
} else {
|
||||||
|
print $accountoshow;
|
||||||
|
}
|
||||||
print "</td>";
|
print "</td>";
|
||||||
// Subledger account
|
// Subledger account
|
||||||
print "<td>";
|
print "<td>";
|
||||||
|
|||||||
@ -51,13 +51,16 @@ $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');
|
||||||
$in_bookkeeping = GETPOST('in_bookkeeping');
|
$in_bookkeeping = GETPOST('in_bookkeeping');
|
||||||
if ($in_bookkeeping == '') $in_bookkeeping = 'notyet';
|
if ($in_bookkeeping == '') {
|
||||||
|
$in_bookkeeping = 'notyet';
|
||||||
|
}
|
||||||
|
|
||||||
$now = dol_now();
|
$now = dol_now();
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->socid > 0)
|
if ($user->socid > 0) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
$hookmanager->initHooks(array('purchasesjournal'));
|
$hookmanager->initHooks(array('purchasesjournal'));
|
||||||
$parameters = array();
|
$parameters = array();
|
||||||
@ -78,8 +81,7 @@ $journal_label = $accountingjournalstatic->label;
|
|||||||
$date_start = dol_mktime(0, 0, 0, $date_startmonth, $date_startday, $date_startyear);
|
$date_start = dol_mktime(0, 0, 0, $date_startmonth, $date_startday, $date_startyear);
|
||||||
$date_end = dol_mktime(23, 59, 59, $date_endmonth, $date_endday, $date_endyear);
|
$date_end = dol_mktime(23, 59, 59, $date_endmonth, $date_endday, $date_endyear);
|
||||||
|
|
||||||
if (empty($date_startmonth) || empty($date_endmonth))
|
if (empty($date_startmonth) || empty($date_endmonth)) {
|
||||||
{
|
|
||||||
// Period by default on transfer
|
// Period by default on transfer
|
||||||
$dates = getDefaultDatesForTransfer();
|
$dates = getDefaultDatesForTransfer();
|
||||||
$date_start = $dates['date_start'];
|
$date_start = $dates['date_start'];
|
||||||
@ -88,8 +90,7 @@ if (empty($date_startmonth) || empty($date_endmonth))
|
|||||||
$pastmonth = $dates['pastmonth'];
|
$pastmonth = $dates['pastmonth'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!GETPOSTISSET('date_startmonth') && (empty($date_start) || empty($date_end))) // We define date_start and date_end, only if we did not submit the form
|
if (!GETPOSTISSET('date_startmonth') && (empty($date_start) || empty($date_end))) { // We define date_start and date_end, only if we did not submit the form
|
||||||
{
|
|
||||||
$date_start = dol_get_first_day($pastmonthyear, $pastmonth, false);
|
$date_start = dol_get_first_day($pastmonthyear, $pastmonth, false);
|
||||||
$date_end = dol_get_last_day($pastmonthyear, $pastmonth, false);
|
$date_end = dol_get_last_day($pastmonthyear, $pastmonth, false);
|
||||||
}
|
}
|
||||||
@ -111,19 +112,18 @@ if (!empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
|
|||||||
} else {
|
} else {
|
||||||
$sql .= " AND f.type IN (".FactureFournisseur::TYPE_STANDARD.",".FactureFournisseur::TYPE_REPLACEMENT.",".FactureFournisseur::TYPE_CREDIT_NOTE.",".FactureFournisseur::TYPE_DEPOSIT.",".FactureFournisseur::TYPE_SITUATION.")";
|
$sql .= " AND f.type IN (".FactureFournisseur::TYPE_STANDARD.",".FactureFournisseur::TYPE_REPLACEMENT.",".FactureFournisseur::TYPE_CREDIT_NOTE.",".FactureFournisseur::TYPE_DEPOSIT.",".FactureFournisseur::TYPE_SITUATION.")";
|
||||||
}
|
}
|
||||||
if ($date_start && $date_end)
|
if ($date_start && $date_end) {
|
||||||
$sql .= " AND f.datef >= '".$db->idate($date_start)."' AND f.datef <= '".$db->idate($date_end)."'";
|
$sql .= " AND f.datef >= '".$db->idate($date_start)."' AND f.datef <= '".$db->idate($date_end)."'";
|
||||||
|
}
|
||||||
// Define begin binding date
|
// Define begin binding date
|
||||||
if (!empty($conf->global->ACCOUNTING_DATE_START_BINDING)) {
|
if (!empty($conf->global->ACCOUNTING_DATE_START_BINDING)) {
|
||||||
$sql .= " AND f.datef >= '".$db->idate($conf->global->ACCOUNTING_DATE_START_BINDING)."'";
|
$sql .= " AND f.datef >= '".$db->idate($conf->global->ACCOUNTING_DATE_START_BINDING)."'";
|
||||||
}
|
}
|
||||||
// Already in bookkeeping or not
|
// Already in bookkeeping or not
|
||||||
if ($in_bookkeeping == 'already')
|
if ($in_bookkeeping == 'already') {
|
||||||
{
|
|
||||||
$sql .= " AND f.rowid IN (SELECT fk_doc FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as ab WHERE ab.doc_type='supplier_invoice')";
|
$sql .= " AND f.rowid IN (SELECT fk_doc FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as ab WHERE ab.doc_type='supplier_invoice')";
|
||||||
}
|
}
|
||||||
if ($in_bookkeeping == 'notyet')
|
if ($in_bookkeeping == 'notyet') {
|
||||||
{
|
|
||||||
$sql .= " AND f.rowid NOT IN (SELECT fk_doc FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as ab WHERE ab.doc_type='supplier_invoice')";
|
$sql .= " AND f.rowid NOT IN (SELECT fk_doc FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as ab WHERE ab.doc_type='supplier_invoice')";
|
||||||
}
|
}
|
||||||
$sql .= " ORDER BY f.datef";
|
$sql .= " ORDER BY f.datef";
|
||||||
@ -156,9 +156,9 @@ if ($result) {
|
|||||||
|
|
||||||
$compta_prod = $obj->compte;
|
$compta_prod = $obj->compte;
|
||||||
if (empty($compta_prod)) {
|
if (empty($compta_prod)) {
|
||||||
if ($obj->product_type == 0)
|
if ($obj->product_type == 0) {
|
||||||
$compta_prod = (!empty($conf->global->ACCOUNTING_PRODUCT_BUY_ACCOUNT)) ? $conf->global->ACCOUNTING_PRODUCT_BUY_ACCOUNT : 'NotDefined';
|
$compta_prod = (!empty($conf->global->ACCOUNTING_PRODUCT_BUY_ACCOUNT)) ? $conf->global->ACCOUNTING_PRODUCT_BUY_ACCOUNT : 'NotDefined';
|
||||||
else {
|
} else {
|
||||||
$compta_prod = (!empty($conf->global->ACCOUNTING_SERVICE_BUY_ACCOUNT)) ? $conf->global->ACCOUNTING_SERVICE_BUY_ACCOUNT : 'NotDefined';
|
$compta_prod = (!empty($conf->global->ACCOUNTING_SERVICE_BUY_ACCOUNT)) ? $conf->global->ACCOUNTING_SERVICE_BUY_ACCOUNT : 'NotDefined';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -170,8 +170,7 @@ if ($result) {
|
|||||||
$compta_counterpart_tva_npr = (!empty($conf->global->ACCOUNTING_COUNTERPART_VAT_NPR)) ? $conf->global->ACCOUNTING_COUNTERPART_VAT_NPR : 'NotDefined';
|
$compta_counterpart_tva_npr = (!empty($conf->global->ACCOUNTING_COUNTERPART_VAT_NPR)) ? $conf->global->ACCOUNTING_COUNTERPART_VAT_NPR : 'NotDefined';
|
||||||
|
|
||||||
// Define array to display all VAT rates that use this accounting account $compta_tva
|
// Define array to display all VAT rates that use this accounting account $compta_tva
|
||||||
if (price2num($obj->tva_tx) || !empty($obj->vat_src_code))
|
if (price2num($obj->tva_tx) || !empty($obj->vat_src_code)) {
|
||||||
{
|
|
||||||
$def_tva[$obj->rowid][$compta_tva][vatrate($obj->tva_tx).($obj->vat_src_code ? ' ('.$obj->vat_src_code.')' : '')] = (vatrate($obj->tva_tx).($obj->vat_src_code ? ' ('.$obj->vat_src_code.')' : ''));
|
$def_tva[$obj->rowid][$compta_tva][vatrate($obj->tva_tx).($obj->vat_src_code ? ' ('.$obj->vat_src_code.')' : '')] = (vatrate($obj->tva_tx).($obj->vat_src_code ? ' ('.$obj->vat_src_code.')' : ''));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -189,17 +188,26 @@ if ($result) {
|
|||||||
//$tabfac[$obj->rowid]["fk_facturefourndet"] = $obj->fdid;
|
//$tabfac[$obj->rowid]["fk_facturefourndet"] = $obj->fdid;
|
||||||
|
|
||||||
// Avoid warnings
|
// Avoid warnings
|
||||||
if (!isset($tabttc[$obj->rowid][$compta_soc])) $tabttc[$obj->rowid][$compta_soc] = 0;
|
if (!isset($tabttc[$obj->rowid][$compta_soc])) {
|
||||||
if (!isset($tabht[$obj->rowid][$compta_prod])) $tabht[$obj->rowid][$compta_prod] = 0;
|
$tabttc[$obj->rowid][$compta_soc] = 0;
|
||||||
if (!isset($tabtva[$obj->rowid][$compta_tva])) $tabtva[$obj->rowid][$compta_tva] = 0;
|
}
|
||||||
if (!isset($tablocaltax1[$obj->rowid][$compta_localtax1])) $tablocaltax1[$obj->rowid][$compta_localtax1] = 0;
|
if (!isset($tabht[$obj->rowid][$compta_prod])) {
|
||||||
if (!isset($tablocaltax2[$obj->rowid][$compta_localtax2])) $tablocaltax2[$obj->rowid][$compta_localtax2] = 0;
|
$tabht[$obj->rowid][$compta_prod] = 0;
|
||||||
|
}
|
||||||
|
if (!isset($tabtva[$obj->rowid][$compta_tva])) {
|
||||||
|
$tabtva[$obj->rowid][$compta_tva] = 0;
|
||||||
|
}
|
||||||
|
if (!isset($tablocaltax1[$obj->rowid][$compta_localtax1])) {
|
||||||
|
$tablocaltax1[$obj->rowid][$compta_localtax1] = 0;
|
||||||
|
}
|
||||||
|
if (!isset($tablocaltax2[$obj->rowid][$compta_localtax2])) {
|
||||||
|
$tablocaltax2[$obj->rowid][$compta_localtax2] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
$tabttc[$obj->rowid][$compta_soc] += $obj->total_ttc;
|
$tabttc[$obj->rowid][$compta_soc] += $obj->total_ttc;
|
||||||
$tabht[$obj->rowid][$compta_prod] += $obj->total_ht;
|
$tabht[$obj->rowid][$compta_prod] += $obj->total_ht;
|
||||||
$tabtva[$obj->rowid][$compta_tva] += $obj->total_tva;
|
$tabtva[$obj->rowid][$compta_tva] += $obj->total_tva;
|
||||||
if (!empty($line->tva_npr)) // Add an entry for counterpart
|
if (!empty($line->tva_npr)) { // Add an entry for counterpart
|
||||||
{
|
|
||||||
$tabother[$obj->rowid][$compta_counterpart_tva_npr] += $obj->total_tva;
|
$tabother[$obj->rowid][$compta_counterpart_tva_npr] += $obj->total_tva;
|
||||||
}
|
}
|
||||||
$tablocaltax1[$obj->rowid][$compta_localtax1] += $obj->total_localtax1;
|
$tablocaltax1[$obj->rowid][$compta_localtax1] += $obj->total_localtax1;
|
||||||
@ -226,14 +234,14 @@ foreach ($tabfac as $key => $val) { // Loop on each invoice
|
|||||||
$sql .= " WHERE fd.product_type <= 2 AND fd.fk_code_ventilation <= 0";
|
$sql .= " WHERE fd.product_type <= 2 AND fd.fk_code_ventilation <= 0";
|
||||||
$sql .= " AND fd.total_ttc <> 0 AND fk_facture_fourn = ".$key;
|
$sql .= " AND fd.total_ttc <> 0 AND fk_facture_fourn = ".$key;
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql)
|
if ($resql) {
|
||||||
{
|
|
||||||
$obj = $db->fetch_object($resql);
|
$obj = $db->fetch_object($resql);
|
||||||
if ($obj->nb > 0)
|
if ($obj->nb > 0) {
|
||||||
{
|
|
||||||
$errorforinvoice[$key] = 'somelinesarenotbound';
|
$errorforinvoice[$key] = 'somelinesarenotbound';
|
||||||
}
|
}
|
||||||
} else dol_print_error($db);
|
} else {
|
||||||
|
dol_print_error($db);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//var_dump($errorforinvoice);exit;
|
//var_dump($errorforinvoice);exit;
|
||||||
|
|
||||||
@ -274,31 +282,29 @@ if ($action == 'writebookkeeping') {
|
|||||||
|
|
||||||
// Is it a replaced invoice ? 0=not a replaced invoice, 1=replaced invoice not yet dispatched, 2=replaced invoice dispatched
|
// Is it a replaced invoice ? 0=not a replaced invoice, 1=replaced invoice not yet dispatched, 2=replaced invoice dispatched
|
||||||
$replacedinvoice = 0;
|
$replacedinvoice = 0;
|
||||||
if ($invoicestatic->close_code == FactureFournisseur::CLOSECODE_REPLACED)
|
if ($invoicestatic->close_code == FactureFournisseur::CLOSECODE_REPLACED) {
|
||||||
{
|
|
||||||
$replacedinvoice = 1;
|
$replacedinvoice = 1;
|
||||||
$alreadydispatched = $invoicestatic->getVentilExportCompta(); // Test if replaced invoice already into bookkeeping.
|
$alreadydispatched = $invoicestatic->getVentilExportCompta(); // Test if replaced invoice already into bookkeeping.
|
||||||
if ($alreadydispatched) $replacedinvoice = 2;
|
if ($alreadydispatched) {
|
||||||
|
$replacedinvoice = 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If not already into bookkeeping, we won't add it. If yes, do nothing (should not happen because creating replacement not possible if invoice is accounted)
|
// If not already into bookkeeping, we won't add it. If yes, do nothing (should not happen because creating replacement not possible if invoice is accounted)
|
||||||
if ($replacedinvoice == 1)
|
if ($replacedinvoice == 1) {
|
||||||
{
|
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Error if some lines are not binded/ready to be journalized
|
// Error if some lines are not binded/ready to be journalized
|
||||||
if ($errorforinvoice[$key] == 'somelinesarenotbound')
|
if ($errorforinvoice[$key] == 'somelinesarenotbound') {
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
setEventMessages($langs->trans('ErrorInvoiceContainsLinesNotYetBounded', $val['ref']), null, 'errors');
|
setEventMessages($langs->trans('ErrorInvoiceContainsLinesNotYetBounded', $val['ref']), null, 'errors');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Thirdparty
|
// Thirdparty
|
||||||
if (!$errorforline)
|
if (!$errorforline) {
|
||||||
{
|
|
||||||
foreach ($tabttc[$key] as $k => $mt) {
|
foreach ($tabttc[$key] as $k => $mt) {
|
||||||
$bookkeeping = new BookKeeping($db);
|
$bookkeeping = new BookKeeping($db);
|
||||||
$bookkeeping->doc_date = $val["date"];
|
$bookkeeping->doc_date = $val["date"];
|
||||||
@ -331,8 +337,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
|
|
||||||
$result = $bookkeeping->create($user);
|
$result = $bookkeeping->create($user);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
|
if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') { // Already exists
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
$errorforinvoice[$key] = 'alreadyjournalized';
|
$errorforinvoice[$key] = 'alreadyjournalized';
|
||||||
@ -348,8 +353,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Product / Service
|
// Product / Service
|
||||||
if (!$errorforline)
|
if (!$errorforline) {
|
||||||
{
|
|
||||||
foreach ($tabht[$key] as $k => $mt) {
|
foreach ($tabht[$key] as $k => $mt) {
|
||||||
// get compte id and label
|
// get compte id and label
|
||||||
if ($accountingaccount->fetch(null, $k, true)) {
|
if ($accountingaccount->fetch(null, $k, true)) {
|
||||||
@ -381,8 +385,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
|
|
||||||
$result = $bookkeeping->create($user);
|
$result = $bookkeeping->create($user);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
|
if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') { // Already exists
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
$errorforinvoice[$key] = 'alreadyjournalized';
|
$errorforinvoice[$key] = 'alreadyjournalized';
|
||||||
@ -400,14 +403,16 @@ if ($action == 'writebookkeeping') {
|
|||||||
|
|
||||||
// VAT
|
// VAT
|
||||||
// var_dump($tabtva);
|
// var_dump($tabtva);
|
||||||
if (!$errorforline)
|
if (!$errorforline) {
|
||||||
{
|
|
||||||
$listoftax = array(0, 1, 2);
|
$listoftax = array(0, 1, 2);
|
||||||
foreach ($listoftax as $numtax)
|
foreach ($listoftax as $numtax) {
|
||||||
{
|
|
||||||
$arrayofvat = $tabtva;
|
$arrayofvat = $tabtva;
|
||||||
if ($numtax == 1) $arrayofvat = $tablocaltax1;
|
if ($numtax == 1) {
|
||||||
if ($numtax == 2) $arrayofvat = $tablocaltax2;
|
$arrayofvat = $tablocaltax1;
|
||||||
|
}
|
||||||
|
if ($numtax == 2) {
|
||||||
|
$arrayofvat = $tablocaltax2;
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($arrayofvat[$key] as $k => $mt) {
|
foreach ($arrayofvat[$key] as $k => $mt) {
|
||||||
if ($mt) {
|
if ($mt) {
|
||||||
@ -442,8 +447,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
|
|
||||||
$result = $bookkeeping->create($user);
|
$result = $bookkeeping->create($user);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
|
if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') { // Already exists
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
$errorforinvoice[$key] = 'alreadyjournalized';
|
$errorforinvoice[$key] = 'alreadyjournalized';
|
||||||
@ -462,8 +466,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
|
|
||||||
// Counterpart of VAT for VAT NPR
|
// Counterpart of VAT for VAT NPR
|
||||||
// var_dump($tabother);
|
// var_dump($tabother);
|
||||||
if (!$errorforline && is_array($tabother[$key]))
|
if (!$errorforline && is_array($tabother[$key])) {
|
||||||
{
|
|
||||||
foreach ($tabother[$key] as $k => $mt) {
|
foreach ($tabother[$key] as $k => $mt) {
|
||||||
if ($mt) {
|
if ($mt) {
|
||||||
$bookkeeping = new BookKeeping($db);
|
$bookkeeping = new BookKeeping($db);
|
||||||
@ -493,8 +496,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
|
|
||||||
$result = $bookkeeping->create($user);
|
$result = $bookkeeping->create($user);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
|
if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') { // Already exists
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
$errorforinvoice[$key] = 'alreadyjournalized';
|
$errorforinvoice[$key] = 'alreadyjournalized';
|
||||||
@ -511,22 +513,19 @@ if ($action == 'writebookkeeping') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Protection against a bug on lines before
|
// Protection against a bug on lines before
|
||||||
if (!$errorforline && (price2num($totaldebit, 'MT') != price2num($totalcredit, 'MT')))
|
if (!$errorforline && (price2num($totaldebit, 'MT') != price2num($totalcredit, 'MT'))) {
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
$errorforinvoice[$key] = 'amountsnotbalanced';
|
$errorforinvoice[$key] = 'amountsnotbalanced';
|
||||||
setEventMessages('Try to insert a non balanced transaction in book for '.$invoicestatic->ref.'. Canceled. Surely a bug.', null, 'errors');
|
setEventMessages('Try to insert a non balanced transaction in book for '.$invoicestatic->ref.'. Canceled. Surely a bug.', null, 'errors');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$errorforline)
|
if (!$errorforline) {
|
||||||
{
|
|
||||||
$db->commit();
|
$db->commit();
|
||||||
} else {
|
} else {
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
|
|
||||||
if ($error >= 10)
|
if ($error >= 10) {
|
||||||
{
|
|
||||||
setEventMessages($langs->trans("ErrorTooManyErrorsProcessStopped"), null, 'errors');
|
setEventMessages($langs->trans("ErrorTooManyErrorsProcessStopped"), null, 'errors');
|
||||||
break; // Break in the foreach
|
break; // Break in the foreach
|
||||||
}
|
}
|
||||||
@ -537,8 +536,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
|
|
||||||
if (empty($error) && count($tabpay) > 0) {
|
if (empty($error) && count($tabpay) > 0) {
|
||||||
setEventMessages($langs->trans("GeneralLedgerIsWritten"), null, 'mesgs');
|
setEventMessages($langs->trans("GeneralLedgerIsWritten"), null, 'mesgs');
|
||||||
} elseif (count($tabpay) == $error)
|
} elseif (count($tabpay) == $error) {
|
||||||
{
|
|
||||||
setEventMessages($langs->trans("NoNewRecordSaved"), null, 'warnings');
|
setEventMessages($langs->trans("NoNewRecordSaved"), null, 'warnings');
|
||||||
} else {
|
} else {
|
||||||
setEventMessages($langs->trans("GeneralLedgerSomeRecordWasNotRecorded"), null, 'warnings');
|
setEventMessages($langs->trans("GeneralLedgerSomeRecordWasNotRecorded"), null, 'warnings');
|
||||||
@ -547,8 +545,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
$action = '';
|
$action = '';
|
||||||
|
|
||||||
// Must reload data, so we make a redirect
|
// Must reload data, so we make a redirect
|
||||||
if (count($tabpay) != $error)
|
if (count($tabpay) != $error) {
|
||||||
{
|
|
||||||
$param = 'id_journal='.$id_journal;
|
$param = 'id_journal='.$id_journal;
|
||||||
$param .= '&date_startday='.$date_startday;
|
$param .= '&date_startday='.$date_startday;
|
||||||
$param .= '&date_startmonth='.$date_startmonth;
|
$param .= '&date_startmonth='.$date_startmonth;
|
||||||
@ -579,8 +576,7 @@ if ($action == 'exportcsv') { // ISO and not UTF8 !
|
|||||||
$companystatic = new Fournisseur($db);
|
$companystatic = new Fournisseur($db);
|
||||||
$invoicestatic = new FactureFournisseur($db);
|
$invoicestatic = new FactureFournisseur($db);
|
||||||
|
|
||||||
foreach ($tabfac as $key => $val)
|
foreach ($tabfac as $key => $val) {
|
||||||
{
|
|
||||||
$companystatic->id = $tabcompany[$key]['id'];
|
$companystatic->id = $tabcompany[$key]['id'];
|
||||||
$companystatic->name = $tabcompany[$key]['name'];
|
$companystatic->name = $tabcompany[$key]['name'];
|
||||||
$companystatic->code_compta = $tabcompany[$key]['code_compta'];
|
$companystatic->code_compta = $tabcompany[$key]['code_compta'];
|
||||||
@ -600,16 +596,16 @@ if ($action == 'exportcsv') { // ISO and not UTF8 !
|
|||||||
|
|
||||||
// Is it a replaced invoice ? 0=not a replaced invoice, 1=replaced invoice not yet dispatched, 2=replaced invoice dispatched
|
// Is it a replaced invoice ? 0=not a replaced invoice, 1=replaced invoice not yet dispatched, 2=replaced invoice dispatched
|
||||||
$replacedinvoice = 0;
|
$replacedinvoice = 0;
|
||||||
if ($invoicestatic->close_code == FactureFournisseur::CLOSECODE_REPLACED)
|
if ($invoicestatic->close_code == FactureFournisseur::CLOSECODE_REPLACED) {
|
||||||
{
|
|
||||||
$replacedinvoice = 1;
|
$replacedinvoice = 1;
|
||||||
$alreadydispatched = $invoicestatic->getVentilExportCompta(); // Test if replaced invoice already into bookkeeping.
|
$alreadydispatched = $invoicestatic->getVentilExportCompta(); // Test if replaced invoice already into bookkeeping.
|
||||||
if ($alreadydispatched) $replacedinvoice = 2;
|
if ($alreadydispatched) {
|
||||||
|
$replacedinvoice = 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If not already into bookkeeping, we won't add it. If yes, do nothing (should not happen because creating replacement not possible if invoice is accounted)
|
// If not already into bookkeeping, we won't add it. If yes, do nothing (should not happen because creating replacement not possible if invoice is accounted)
|
||||||
if ($replacedinvoice == 1)
|
if ($replacedinvoice == 1) {
|
||||||
{
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -657,8 +653,12 @@ if ($action == 'exportcsv') { // ISO and not UTF8 !
|
|||||||
$listoftax = array(0, 1, 2);
|
$listoftax = array(0, 1, 2);
|
||||||
foreach ($listoftax as $numtax) {
|
foreach ($listoftax as $numtax) {
|
||||||
$arrayofvat = $tabtva;
|
$arrayofvat = $tabtva;
|
||||||
if ($numtax == 1) $arrayofvat = $tablocaltax1;
|
if ($numtax == 1) {
|
||||||
if ($numtax == 2) $arrayofvat = $tablocaltax2;
|
$arrayofvat = $tablocaltax1;
|
||||||
|
}
|
||||||
|
if ($numtax == 2) {
|
||||||
|
$arrayofvat = $tablocaltax2;
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($arrayofvat[$key] as $k => $mt) {
|
foreach ($arrayofvat[$key] as $k => $mt) {
|
||||||
if ($mt) {
|
if ($mt) {
|
||||||
@ -679,8 +679,7 @@ if ($action == 'exportcsv') { // ISO and not UTF8 !
|
|||||||
}
|
}
|
||||||
|
|
||||||
// VAT counterpart for NPR
|
// VAT counterpart for NPR
|
||||||
if (is_array($tabother[$key]))
|
if (is_array($tabother[$key])) {
|
||||||
{
|
|
||||||
foreach ($tabother[$key] as $k => $mt) {
|
foreach ($tabother[$key] as $k => $mt) {
|
||||||
if ($mt) {
|
if ($mt) {
|
||||||
print '"'.$key.'"'.$sep;
|
print '"'.$key.'"'.$sep;
|
||||||
@ -733,12 +732,17 @@ if (empty($action) || $action == 'view') {
|
|||||||
print ' : '.$langs->trans("AccountancyAreaDescMisc", 4, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
|
print ' : '.$langs->trans("AccountancyAreaDescMisc", 4, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
|
||||||
}
|
}
|
||||||
print '<div class="tabsAction tabsActionNoBottom">';
|
print '<div class="tabsAction tabsActionNoBottom">';
|
||||||
if (!empty($conf->global->ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL) && $in_bookkeeping == 'notyet') print '<input type="button" class="butAction" name="exportcsv" value="'.$langs->trans("ExportDraftJournal").'" onclick="launch_export();" />';
|
if (!empty($conf->global->ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL) && $in_bookkeeping == 'notyet') {
|
||||||
|
print '<input type="button" class="butAction" name="exportcsv" value="'.$langs->trans("ExportDraftJournal").'" onclick="launch_export();" />';
|
||||||
|
}
|
||||||
if (($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == "") || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1') {
|
if (($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == "") || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1') {
|
||||||
print '<input type="button" class="butActionRefused classfortooltip" title="'.dol_escape_htmltag($langs->trans("SomeMandatoryStepsOfSetupWereNotDone")).'" value="'.$langs->trans("WriteBookKeeping").'" />';
|
print '<input type="button" class="butActionRefused classfortooltip" title="'.dol_escape_htmltag($langs->trans("SomeMandatoryStepsOfSetupWereNotDone")).'" value="'.$langs->trans("WriteBookKeeping").'" />';
|
||||||
} else {
|
} else {
|
||||||
if ($in_bookkeeping == 'notyet') print '<input type="button" class="butAction" name="writebookkeeping" value="'.$langs->trans("WriteBookKeeping").'" onclick="writebookkeeping();" />';
|
if ($in_bookkeeping == 'notyet') {
|
||||||
else print '<a href="#" class="butActionRefused classfortooltip" name="writebookkeeping">'.$langs->trans("WriteBookKeeping").'</a>';
|
print '<input type="button" class="butAction" name="writebookkeeping" value="'.$langs->trans("WriteBookKeeping").'" onclick="writebookkeeping();" />';
|
||||||
|
} else {
|
||||||
|
print '<a href="#" class="butActionRefused classfortooltip" name="writebookkeeping">'.$langs->trans("WriteBookKeeping").'</a>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
@ -781,8 +785,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
$invoicestatic = new FactureFournisseur($db);
|
$invoicestatic = new FactureFournisseur($db);
|
||||||
$companystatic = new Fournisseur($db);
|
$companystatic = new Fournisseur($db);
|
||||||
|
|
||||||
foreach ($tabfac as $key => $val)
|
foreach ($tabfac as $key => $val) {
|
||||||
{
|
|
||||||
$companystatic->id = $tabcompany[$key]['id'];
|
$companystatic->id = $tabcompany[$key]['id'];
|
||||||
$companystatic->name = $tabcompany[$key]['name'];
|
$companystatic->name = $tabcompany[$key]['name'];
|
||||||
$companystatic->code_compta = $tabcompany[$key]['code_compta'];
|
$companystatic->code_compta = $tabcompany[$key]['code_compta'];
|
||||||
@ -802,16 +805,16 @@ if (empty($action) || $action == 'view') {
|
|||||||
|
|
||||||
// Is it a replaced invoice ? 0=not a replaced invoice, 1=replaced invoice not yet dispatched, 2=replaced invoice dispatched
|
// Is it a replaced invoice ? 0=not a replaced invoice, 1=replaced invoice not yet dispatched, 2=replaced invoice dispatched
|
||||||
$replacedinvoice = 0;
|
$replacedinvoice = 0;
|
||||||
if ($invoicestatic->close_code == FactureFournisseur::CLOSECODE_REPLACED)
|
if ($invoicestatic->close_code == FactureFournisseur::CLOSECODE_REPLACED) {
|
||||||
{
|
|
||||||
$replacedinvoice = 1;
|
$replacedinvoice = 1;
|
||||||
$alreadydispatched = $invoicestatic->getVentilExportCompta(); // Test if replaced invoice already into bookkeeping.
|
$alreadydispatched = $invoicestatic->getVentilExportCompta(); // Test if replaced invoice already into bookkeeping.
|
||||||
if ($alreadydispatched) $replacedinvoice = 2;
|
if ($alreadydispatched) {
|
||||||
|
$replacedinvoice = 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If not already into bookkeeping, we won't add it, if yes, add the counterpart ???.
|
// If not already into bookkeeping, we won't add it, if yes, add the counterpart ???.
|
||||||
if ($replacedinvoice == 1)
|
if ($replacedinvoice == 1) {
|
||||||
{
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print "<!-- Replaced invoice -->";
|
print "<!-- Replaced invoice -->";
|
||||||
print "<td>".$date."</td>";
|
print "<td>".$date."</td>";
|
||||||
@ -831,8 +834,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if ($errorforinvoice[$key] == 'somelinesarenotbound')
|
if ($errorforinvoice[$key] == 'somelinesarenotbound') {
|
||||||
{
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print "<!-- Some lines are not bound -->";
|
print "<!-- Some lines are not bound -->";
|
||||||
print "<td>".$date."</td>";
|
print "<td>".$date."</td>";
|
||||||
@ -860,18 +862,20 @@ if (empty($action) || $action == 'view') {
|
|||||||
// Account
|
// Account
|
||||||
print "<td>";
|
print "<td>";
|
||||||
$accountoshow = length_accounta($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER);
|
$accountoshow = length_accounta($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER);
|
||||||
if (($accountoshow == "") || $accountoshow == 'NotDefined')
|
if (($accountoshow == "") || $accountoshow == 'NotDefined') {
|
||||||
{
|
|
||||||
print '<span class="error">'.$langs->trans("MainAccountForSuppliersNotDefined").'</span>';
|
print '<span class="error">'.$langs->trans("MainAccountForSuppliersNotDefined").'</span>';
|
||||||
} else print $accountoshow;
|
} else {
|
||||||
|
print $accountoshow;
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
// Subledger account
|
// Subledger account
|
||||||
print "<td>";
|
print "<td>";
|
||||||
$accountoshow = length_accounta($k);
|
$accountoshow = length_accounta($k);
|
||||||
if (($accountoshow == "") || $accountoshow == 'NotDefined')
|
if (($accountoshow == "") || $accountoshow == 'NotDefined') {
|
||||||
{
|
|
||||||
print '<span class="error">'.$langs->trans("ThirdpartyAccountNotDefined").'</span>';
|
print '<span class="error">'.$langs->trans("ThirdpartyAccountNotDefined").'</span>';
|
||||||
} else print $accountoshow;
|
} else {
|
||||||
|
print $accountoshow;
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print "<td>".$companystatic->getNomUrl(0, 'supplier', 16).' - '.$invoicestatic->ref_supplier.' - '.$langs->trans("SubledgerAccount")."</td>";
|
print "<td>".$companystatic->getNomUrl(0, 'supplier', 16).' - '.$invoicestatic->ref_supplier.' - '.$langs->trans("SubledgerAccount")."</td>";
|
||||||
print '<td class="right nowraponall">'.($mt < 0 ? price(-$mt) : '')."</td>";
|
print '<td class="right nowraponall">'.($mt < 0 ? price(-$mt) : '')."</td>";
|
||||||
@ -891,10 +895,11 @@ if (empty($action) || $action == 'view') {
|
|||||||
// Account
|
// Account
|
||||||
print "<td>";
|
print "<td>";
|
||||||
$accountoshow = length_accountg($k);
|
$accountoshow = length_accountg($k);
|
||||||
if (($accountoshow == "") || $accountoshow == 'NotDefined')
|
if (($accountoshow == "") || $accountoshow == 'NotDefined') {
|
||||||
{
|
|
||||||
print '<span class="error">'.$langs->trans("ProductAccountNotDefined").'</span>';
|
print '<span class="error">'.$langs->trans("ProductAccountNotDefined").'</span>';
|
||||||
} else print $accountoshow;
|
} else {
|
||||||
|
print $accountoshow;
|
||||||
|
}
|
||||||
print "</td>";
|
print "</td>";
|
||||||
// Subledger account
|
// Subledger account
|
||||||
print "<td>";
|
print "<td>";
|
||||||
@ -911,8 +916,12 @@ if (empty($action) || $action == 'view') {
|
|||||||
$listoftax = array(0, 1, 2);
|
$listoftax = array(0, 1, 2);
|
||||||
foreach ($listoftax as $numtax) {
|
foreach ($listoftax as $numtax) {
|
||||||
$arrayofvat = $tabtva;
|
$arrayofvat = $tabtva;
|
||||||
if ($numtax == 1) $arrayofvat = $tablocaltax1;
|
if ($numtax == 1) {
|
||||||
if ($numtax == 2) $arrayofvat = $tablocaltax2;
|
$arrayofvat = $tablocaltax1;
|
||||||
|
}
|
||||||
|
if ($numtax == 2) {
|
||||||
|
$arrayofvat = $tablocaltax2;
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($arrayofvat[$key] as $k => $mt) {
|
foreach ($arrayofvat[$key] as $k => $mt) {
|
||||||
if ($mt) {
|
if ($mt) {
|
||||||
@ -923,10 +932,11 @@ if (empty($action) || $action == 'view') {
|
|||||||
// Account
|
// Account
|
||||||
print "<td>";
|
print "<td>";
|
||||||
$accountoshow = length_accountg($k);
|
$accountoshow = length_accountg($k);
|
||||||
if (($accountoshow == "") || $accountoshow == 'NotDefined')
|
if (($accountoshow == "") || $accountoshow == 'NotDefined') {
|
||||||
{
|
|
||||||
print '<span class="error">'.$langs->trans("VATAccountNotDefined").' ('.$langs->trans("Purchase").')</span>';
|
print '<span class="error">'.$langs->trans("VATAccountNotDefined").' ('.$langs->trans("Purchase").')</span>';
|
||||||
} else print $accountoshow;
|
} else {
|
||||||
|
print $accountoshow;
|
||||||
|
}
|
||||||
print "</td>";
|
print "</td>";
|
||||||
// Subledger account
|
// Subledger account
|
||||||
print "<td>";
|
print "<td>";
|
||||||
@ -942,8 +952,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// VAT counterpart for NPR
|
// VAT counterpart for NPR
|
||||||
if (is_array($tabother[$key]))
|
if (is_array($tabother[$key])) {
|
||||||
{
|
|
||||||
foreach ($tabother[$key] as $k => $mt) {
|
foreach ($tabother[$key] as $k => $mt) {
|
||||||
if ($mt) {
|
if ($mt) {
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
@ -953,10 +962,11 @@ if (empty($action) || $action == 'view') {
|
|||||||
// Account
|
// Account
|
||||||
print '<td>';
|
print '<td>';
|
||||||
$accountoshow = length_accountg($k);
|
$accountoshow = length_accountg($k);
|
||||||
if ($accountoshow == '' || $accountoshow == 'NotDefined')
|
if ($accountoshow == '' || $accountoshow == 'NotDefined') {
|
||||||
{
|
|
||||||
print '<span class="error">'.$langs->trans("VATAccountNotDefined").' ('.$langs->trans("NPR counterpart").'). Set ACCOUNTING_COUNTERPART_VAT_NPR to the subvention account</span>';
|
print '<span class="error">'.$langs->trans("VATAccountNotDefined").' ('.$langs->trans("NPR counterpart").'). Set ACCOUNTING_COUNTERPART_VAT_NPR to the subvention account</span>';
|
||||||
} else print $accountoshow;
|
} else {
|
||||||
|
print $accountoshow;
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
// Subledger account
|
// Subledger account
|
||||||
print "<td>";
|
print "<td>";
|
||||||
|
|||||||
@ -53,13 +53,16 @@ $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');
|
||||||
$in_bookkeeping = GETPOST('in_bookkeeping');
|
$in_bookkeeping = GETPOST('in_bookkeeping');
|
||||||
if ($in_bookkeeping == '') $in_bookkeeping = 'notyet';
|
if ($in_bookkeeping == '') {
|
||||||
|
$in_bookkeeping = 'notyet';
|
||||||
|
}
|
||||||
|
|
||||||
$now = dol_now();
|
$now = dol_now();
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->socid > 0)
|
if ($user->socid > 0) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
$hookmanager->initHooks(array('sellsjournal'));
|
$hookmanager->initHooks(array('sellsjournal'));
|
||||||
$parameters = array();
|
$parameters = array();
|
||||||
@ -81,8 +84,7 @@ $journal_label = $accountingjournalstatic->label;
|
|||||||
$date_start = dol_mktime(0, 0, 0, $date_startmonth, $date_startday, $date_startyear);
|
$date_start = dol_mktime(0, 0, 0, $date_startmonth, $date_startday, $date_startyear);
|
||||||
$date_end = dol_mktime(23, 59, 59, $date_endmonth, $date_endday, $date_endyear);
|
$date_end = dol_mktime(23, 59, 59, $date_endmonth, $date_endday, $date_endyear);
|
||||||
|
|
||||||
if (empty($date_startmonth) || empty($date_endmonth))
|
if (empty($date_startmonth) || empty($date_endmonth)) {
|
||||||
{
|
|
||||||
// Period by default on transfer
|
// Period by default on transfer
|
||||||
$dates = getDefaultDatesForTransfer();
|
$dates = getDefaultDatesForTransfer();
|
||||||
$date_start = $dates['date_start'];
|
$date_start = $dates['date_start'];
|
||||||
@ -91,8 +93,7 @@ if (empty($date_startmonth) || empty($date_endmonth))
|
|||||||
$pastmonth = $dates['pastmonth'];
|
$pastmonth = $dates['pastmonth'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!GETPOSTISSET('date_startmonth') && (empty($date_start) || empty($date_end))) // We define date_start and date_end, only if we did not submit the form
|
if (!GETPOSTISSET('date_startmonth') && (empty($date_start) || empty($date_end))) { // We define date_start and date_end, only if we did not submit the form
|
||||||
{
|
|
||||||
$date_start = dol_get_first_day($pastmonthyear, $pastmonth, false);
|
$date_start = dol_get_first_day($pastmonthyear, $pastmonth, false);
|
||||||
$date_end = dol_get_last_day($pastmonthyear, $pastmonth, false);
|
$date_end = dol_get_last_day($pastmonthyear, $pastmonth, false);
|
||||||
}
|
}
|
||||||
@ -115,20 +116,19 @@ if (!empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { // Non common s
|
|||||||
$sql .= " AND f.type IN (".Facture::TYPE_STANDARD.",".Facture::TYPE_REPLACEMENT.",".Facture::TYPE_CREDIT_NOTE.",".Facture::TYPE_DEPOSIT.",".Facture::TYPE_SITUATION.")";
|
$sql .= " AND f.type IN (".Facture::TYPE_STANDARD.",".Facture::TYPE_REPLACEMENT.",".Facture::TYPE_CREDIT_NOTE.",".Facture::TYPE_DEPOSIT.",".Facture::TYPE_SITUATION.")";
|
||||||
}
|
}
|
||||||
$sql .= " AND fd.product_type IN (0,1)";
|
$sql .= " AND fd.product_type IN (0,1)";
|
||||||
if ($date_start && $date_end)
|
if ($date_start && $date_end) {
|
||||||
$sql .= " AND f.datef >= '".$db->idate($date_start)."' AND f.datef <= '".$db->idate($date_end)."'";
|
$sql .= " AND f.datef >= '".$db->idate($date_start)."' AND f.datef <= '".$db->idate($date_end)."'";
|
||||||
|
}
|
||||||
// Define begin binding date
|
// Define begin binding date
|
||||||
if (!empty($conf->global->ACCOUNTING_DATE_START_BINDING)) {
|
if (!empty($conf->global->ACCOUNTING_DATE_START_BINDING)) {
|
||||||
$sql .= " AND f.datef >= '".$db->idate($conf->global->ACCOUNTING_DATE_START_BINDING)."'";
|
$sql .= " AND f.datef >= '".$db->idate($conf->global->ACCOUNTING_DATE_START_BINDING)."'";
|
||||||
}
|
}
|
||||||
// Already in bookkeeping or not
|
// Already in bookkeeping or not
|
||||||
if ($in_bookkeeping == 'already')
|
if ($in_bookkeeping == 'already') {
|
||||||
{
|
|
||||||
$sql .= " AND f.rowid IN (SELECT fk_doc FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as ab WHERE ab.doc_type='customer_invoice')";
|
$sql .= " AND f.rowid IN (SELECT fk_doc FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as ab WHERE ab.doc_type='customer_invoice')";
|
||||||
// $sql .= " AND fd.rowid IN (SELECT fk_docdet FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='customer_invoice')"; // Useless, we save one line for all products with same account
|
// $sql .= " AND fd.rowid IN (SELECT fk_docdet FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='customer_invoice')"; // Useless, we save one line for all products with same account
|
||||||
}
|
}
|
||||||
if ($in_bookkeeping == 'notyet')
|
if ($in_bookkeeping == 'notyet') {
|
||||||
{
|
|
||||||
$sql .= " AND f.rowid NOT IN (SELECT fk_doc FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as ab WHERE ab.doc_type='customer_invoice')";
|
$sql .= " AND f.rowid NOT IN (SELECT fk_doc FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as ab WHERE ab.doc_type='customer_invoice')";
|
||||||
// $sql .= " AND fd.rowid NOT IN (SELECT fk_docdet FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='customer_invoice')"; // Useless, we save one line for all products with same account
|
// $sql .= " AND fd.rowid NOT IN (SELECT fk_docdet FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='customer_invoice')"; // Useless, we save one line for all products with same account
|
||||||
}
|
}
|
||||||
@ -162,9 +162,9 @@ if ($result) {
|
|||||||
|
|
||||||
$compta_prod = $obj->compte;
|
$compta_prod = $obj->compte;
|
||||||
if (empty($compta_prod)) {
|
if (empty($compta_prod)) {
|
||||||
if ($obj->product_type == 0)
|
if ($obj->product_type == 0) {
|
||||||
$compta_prod = (!empty($conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT)) ? $conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT : 'NotDefined';
|
$compta_prod = (!empty($conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT)) ? $conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT : 'NotDefined';
|
||||||
else {
|
} else {
|
||||||
$compta_prod = (!empty($conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT)) ? $conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT : 'NotDefined';
|
$compta_prod = (!empty($conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT)) ? $conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT : 'NotDefined';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -175,8 +175,7 @@ if ($result) {
|
|||||||
$compta_localtax2 = (!empty($vatdata['accountancy_code_sell']) ? $vatdata['accountancy_code_sell'] : $cpttva);
|
$compta_localtax2 = (!empty($vatdata['accountancy_code_sell']) ? $vatdata['accountancy_code_sell'] : $cpttva);
|
||||||
|
|
||||||
// Define array to display all VAT rates that use this accounting account $compta_tva
|
// Define array to display all VAT rates that use this accounting account $compta_tva
|
||||||
if (price2num($obj->tva_tx) || !empty($obj->vat_src_code))
|
if (price2num($obj->tva_tx) || !empty($obj->vat_src_code)) {
|
||||||
{
|
|
||||||
$def_tva[$obj->rowid][$compta_tva][vatrate($obj->tva_tx).($obj->vat_src_code ? ' ('.$obj->vat_src_code.')' : '')] = (vatrate($obj->tva_tx).($obj->vat_src_code ? ' ('.$obj->vat_src_code.')' : ''));
|
$def_tva[$obj->rowid][$compta_tva][vatrate($obj->tva_tx).($obj->vat_src_code ? ' ('.$obj->vat_src_code.')' : '')] = (vatrate($obj->tva_tx).($obj->vat_src_code ? ' ('.$obj->vat_src_code.')' : ''));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -207,15 +206,27 @@ if ($result) {
|
|||||||
//$tabfac[$obj->rowid]["fk_facturedet"] = $obj->fdid;
|
//$tabfac[$obj->rowid]["fk_facturedet"] = $obj->fdid;
|
||||||
|
|
||||||
// Avoid warnings
|
// Avoid warnings
|
||||||
if (!isset($tabttc[$obj->rowid][$compta_soc])) $tabttc[$obj->rowid][$compta_soc] = 0;
|
if (!isset($tabttc[$obj->rowid][$compta_soc])) {
|
||||||
if (!isset($tabht[$obj->rowid][$compta_prod])) $tabht[$obj->rowid][$compta_prod] = 0;
|
$tabttc[$obj->rowid][$compta_soc] = 0;
|
||||||
if (!isset($tabtva[$obj->rowid][$compta_tva])) $tabtva[$obj->rowid][$compta_tva] = 0;
|
}
|
||||||
if (!isset($tablocaltax1[$obj->rowid][$compta_localtax1])) $tablocaltax1[$obj->rowid][$compta_localtax1] = 0;
|
if (!isset($tabht[$obj->rowid][$compta_prod])) {
|
||||||
if (!isset($tablocaltax2[$obj->rowid][$compta_localtax2])) $tablocaltax2[$obj->rowid][$compta_localtax2] = 0;
|
$tabht[$obj->rowid][$compta_prod] = 0;
|
||||||
|
}
|
||||||
|
if (!isset($tabtva[$obj->rowid][$compta_tva])) {
|
||||||
|
$tabtva[$obj->rowid][$compta_tva] = 0;
|
||||||
|
}
|
||||||
|
if (!isset($tablocaltax1[$obj->rowid][$compta_localtax1])) {
|
||||||
|
$tablocaltax1[$obj->rowid][$compta_localtax1] = 0;
|
||||||
|
}
|
||||||
|
if (!isset($tablocaltax2[$obj->rowid][$compta_localtax2])) {
|
||||||
|
$tablocaltax2[$obj->rowid][$compta_localtax2] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
$tabttc[$obj->rowid][$compta_soc] += $obj->total_ttc * $situation_ratio;
|
$tabttc[$obj->rowid][$compta_soc] += $obj->total_ttc * $situation_ratio;
|
||||||
$tabht[$obj->rowid][$compta_prod] += $obj->total_ht * $situation_ratio;
|
$tabht[$obj->rowid][$compta_prod] += $obj->total_ht * $situation_ratio;
|
||||||
if (empty($line->tva_npr)) $tabtva[$obj->rowid][$compta_tva] += $obj->total_tva * $situation_ratio; // We ignore line if VAT is a NPR
|
if (empty($line->tva_npr)) {
|
||||||
|
$tabtva[$obj->rowid][$compta_tva] += $obj->total_tva * $situation_ratio; // We ignore line if VAT is a NPR
|
||||||
|
}
|
||||||
$tablocaltax1[$obj->rowid][$compta_localtax1] += $obj->total_localtax1 * $situation_ratio;
|
$tablocaltax1[$obj->rowid][$compta_localtax1] += $obj->total_localtax1 * $situation_ratio;
|
||||||
$tablocaltax2[$obj->rowid][$compta_localtax2] += $obj->total_localtax2 * $situation_ratio;
|
$tablocaltax2[$obj->rowid][$compta_localtax2] += $obj->total_localtax2 * $situation_ratio;
|
||||||
$tabcompany[$obj->rowid] = array(
|
$tabcompany[$obj->rowid] = array(
|
||||||
@ -240,14 +251,14 @@ foreach ($tabfac as $key => $val) { // Loop on each invoice
|
|||||||
$sql .= " WHERE fd.product_type <= 2 AND fd.fk_code_ventilation <= 0";
|
$sql .= " WHERE fd.product_type <= 2 AND fd.fk_code_ventilation <= 0";
|
||||||
$sql .= " AND fd.total_ttc <> 0 AND fk_facture = ".$key;
|
$sql .= " AND fd.total_ttc <> 0 AND fk_facture = ".$key;
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ($resql)
|
if ($resql) {
|
||||||
{
|
|
||||||
$obj = $db->fetch_object($resql);
|
$obj = $db->fetch_object($resql);
|
||||||
if ($obj->nb > 0)
|
if ($obj->nb > 0) {
|
||||||
{
|
|
||||||
$errorforinvoice[$key] = 'somelinesarenotbound';
|
$errorforinvoice[$key] = 'somelinesarenotbound';
|
||||||
}
|
}
|
||||||
} else dol_print_error($db);
|
} else {
|
||||||
|
dol_print_error($db);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//var_dump($errorforinvoice);exit;
|
//var_dump($errorforinvoice);exit;
|
||||||
|
|
||||||
@ -285,31 +296,29 @@ if ($action == 'writebookkeeping') {
|
|||||||
|
|
||||||
// Is it a replaced invoice ? 0=not a replaced invoice, 1=replaced invoice not yet dispatched, 2=replaced invoice dispatched
|
// Is it a replaced invoice ? 0=not a replaced invoice, 1=replaced invoice not yet dispatched, 2=replaced invoice dispatched
|
||||||
$replacedinvoice = 0;
|
$replacedinvoice = 0;
|
||||||
if ($invoicestatic->close_code == Facture::CLOSECODE_REPLACED)
|
if ($invoicestatic->close_code == Facture::CLOSECODE_REPLACED) {
|
||||||
{
|
|
||||||
$replacedinvoice = 1;
|
$replacedinvoice = 1;
|
||||||
$alreadydispatched = $invoicestatic->getVentilExportCompta(); // Test if replaced invoice already into bookkeeping.
|
$alreadydispatched = $invoicestatic->getVentilExportCompta(); // Test if replaced invoice already into bookkeeping.
|
||||||
if ($alreadydispatched) $replacedinvoice = 2;
|
if ($alreadydispatched) {
|
||||||
|
$replacedinvoice = 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If not already into bookkeeping, we won't add it. If yes, do nothing (should not happen because creating replacement not possible if invoice is accounted)
|
// If not already into bookkeeping, we won't add it. If yes, do nothing (should not happen because creating replacement not possible if invoice is accounted)
|
||||||
if ($replacedinvoice == 1)
|
if ($replacedinvoice == 1) {
|
||||||
{
|
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Error if some lines are not binded/ready to be journalized
|
// Error if some lines are not binded/ready to be journalized
|
||||||
if ($errorforinvoice[$key] == 'somelinesarenotbound')
|
if ($errorforinvoice[$key] == 'somelinesarenotbound') {
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
setEventMessages($langs->trans('ErrorInvoiceContainsLinesNotYetBounded', $val['ref']), null, 'errors');
|
setEventMessages($langs->trans('ErrorInvoiceContainsLinesNotYetBounded', $val['ref']), null, 'errors');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Thirdparty
|
// Thirdparty
|
||||||
if (!$errorforline)
|
if (!$errorforline) {
|
||||||
{
|
|
||||||
foreach ($tabttc[$key] as $k => $mt) {
|
foreach ($tabttc[$key] as $k => $mt) {
|
||||||
$bookkeeping = new BookKeeping($db);
|
$bookkeeping = new BookKeeping($db);
|
||||||
$bookkeeping->doc_date = $val["date"];
|
$bookkeeping->doc_date = $val["date"];
|
||||||
@ -342,8 +351,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
|
|
||||||
$result = $bookkeeping->create($user);
|
$result = $bookkeeping->create($user);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
|
if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') { // Already exists
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
$errorforinvoice[$key] = 'alreadyjournalized';
|
$errorforinvoice[$key] = 'alreadyjournalized';
|
||||||
@ -359,8 +367,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Product / Service
|
// Product / Service
|
||||||
if (!$errorforline)
|
if (!$errorforline) {
|
||||||
{
|
|
||||||
foreach ($tabht[$key] as $k => $mt) {
|
foreach ($tabht[$key] as $k => $mt) {
|
||||||
// get compte id and label
|
// get compte id and label
|
||||||
if ($accountingaccount->fetch(null, $k, true)) {
|
if ($accountingaccount->fetch(null, $k, true)) {
|
||||||
@ -392,8 +399,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
|
|
||||||
$result = $bookkeeping->create($user);
|
$result = $bookkeeping->create($user);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
|
if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') { // Already exists
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
$errorforinvoice[$key] = 'alreadyjournalized';
|
$errorforinvoice[$key] = 'alreadyjournalized';
|
||||||
@ -410,14 +416,16 @@ if ($action == 'writebookkeeping') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// VAT
|
// VAT
|
||||||
if (!$errorforline)
|
if (!$errorforline) {
|
||||||
{
|
|
||||||
$listoftax = array(0, 1, 2);
|
$listoftax = array(0, 1, 2);
|
||||||
foreach ($listoftax as $numtax)
|
foreach ($listoftax as $numtax) {
|
||||||
{
|
|
||||||
$arrayofvat = $tabtva;
|
$arrayofvat = $tabtva;
|
||||||
if ($numtax == 1) $arrayofvat = $tablocaltax1;
|
if ($numtax == 1) {
|
||||||
if ($numtax == 2) $arrayofvat = $tablocaltax2;
|
$arrayofvat = $tablocaltax1;
|
||||||
|
}
|
||||||
|
if ($numtax == 2) {
|
||||||
|
$arrayofvat = $tablocaltax2;
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($arrayofvat[$key] as $k => $mt) {
|
foreach ($arrayofvat[$key] as $k => $mt) {
|
||||||
if ($mt) {
|
if ($mt) {
|
||||||
@ -452,8 +460,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
|
|
||||||
$result = $bookkeeping->create($user);
|
$result = $bookkeeping->create($user);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
|
if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') { // Already exists
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
$errorforinvoice[$key] = 'alreadyjournalized';
|
$errorforinvoice[$key] = 'alreadyjournalized';
|
||||||
@ -471,22 +478,19 @@ if ($action == 'writebookkeeping') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Protection against a bug on lines before
|
// Protection against a bug on lines before
|
||||||
if (!$errorforline && (price2num($totaldebit, 'MT') != price2num($totalcredit, 'MT')))
|
if (!$errorforline && (price2num($totaldebit, 'MT') != price2num($totalcredit, 'MT'))) {
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
$errorforinvoice[$key] = 'amountsnotbalanced';
|
$errorforinvoice[$key] = 'amountsnotbalanced';
|
||||||
setEventMessages('Try to insert a non balanced transaction in book for '.$invoicestatic->ref.'. Canceled. Surely a bug.', null, 'errors');
|
setEventMessages('Try to insert a non balanced transaction in book for '.$invoicestatic->ref.'. Canceled. Surely a bug.', null, 'errors');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$errorforline)
|
if (!$errorforline) {
|
||||||
{
|
|
||||||
$db->commit();
|
$db->commit();
|
||||||
} else {
|
} else {
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
|
|
||||||
if ($error >= 10)
|
if ($error >= 10) {
|
||||||
{
|
|
||||||
setEventMessages($langs->trans("ErrorTooManyErrorsProcessStopped"), null, 'errors');
|
setEventMessages($langs->trans("ErrorTooManyErrorsProcessStopped"), null, 'errors');
|
||||||
break; // Break in the foreach
|
break; // Break in the foreach
|
||||||
}
|
}
|
||||||
@ -506,8 +510,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
$action = '';
|
$action = '';
|
||||||
|
|
||||||
// Must reload data, so we make a redirect
|
// Must reload data, so we make a redirect
|
||||||
if (count($tabpay) != $error)
|
if (count($tabpay) != $error) {
|
||||||
{
|
|
||||||
$param = 'id_journal='.$id_journal;
|
$param = 'id_journal='.$id_journal;
|
||||||
$param .= '&date_startday='.$date_startday;
|
$param .= '&date_startday='.$date_startday;
|
||||||
$param .= '&date_startmonth='.$date_startmonth;
|
$param .= '&date_startmonth='.$date_startmonth;
|
||||||
@ -540,8 +543,7 @@ if ($action == 'exportcsv') { // ISO and not UTF8 !
|
|||||||
$companystatic = new Client($db);
|
$companystatic = new Client($db);
|
||||||
$invoicestatic = new Facture($db);
|
$invoicestatic = new Facture($db);
|
||||||
|
|
||||||
foreach ($tabfac as $key => $val)
|
foreach ($tabfac as $key => $val) {
|
||||||
{
|
|
||||||
$companystatic->id = $tabcompany[$key]['id'];
|
$companystatic->id = $tabcompany[$key]['id'];
|
||||||
$companystatic->name = $tabcompany[$key]['name'];
|
$companystatic->name = $tabcompany[$key]['name'];
|
||||||
$companystatic->code_compta = $tabcompany[$key]['code_compta'];
|
$companystatic->code_compta = $tabcompany[$key]['code_compta'];
|
||||||
@ -559,16 +561,16 @@ if ($action == 'exportcsv') { // ISO and not UTF8 !
|
|||||||
|
|
||||||
// Is it a replaced invoice ? 0=not a replaced invoice, 1=replaced invoice not yet dispatched, 2=replaced invoice dispatched
|
// Is it a replaced invoice ? 0=not a replaced invoice, 1=replaced invoice not yet dispatched, 2=replaced invoice dispatched
|
||||||
$replacedinvoice = 0;
|
$replacedinvoice = 0;
|
||||||
if ($invoicestatic->close_code == Facture::CLOSECODE_REPLACED)
|
if ($invoicestatic->close_code == Facture::CLOSECODE_REPLACED) {
|
||||||
{
|
|
||||||
$replacedinvoice = 1;
|
$replacedinvoice = 1;
|
||||||
$alreadydispatched = $invoicestatic->getVentilExportCompta(); // Test if replaced invoice already into bookkeeping.
|
$alreadydispatched = $invoicestatic->getVentilExportCompta(); // Test if replaced invoice already into bookkeeping.
|
||||||
if ($alreadydispatched) $replacedinvoice = 2;
|
if ($alreadydispatched) {
|
||||||
|
$replacedinvoice = 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If not already into bookkeeping, we won't add it. If yes, do nothing (should not happen because creating replacement not possible if invoice is accounted)
|
// If not already into bookkeeping, we won't add it. If yes, do nothing (should not happen because creating replacement not possible if invoice is accounted)
|
||||||
if ($replacedinvoice == 1)
|
if ($replacedinvoice == 1) {
|
||||||
{
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -616,8 +618,12 @@ if ($action == 'exportcsv') { // ISO and not UTF8 !
|
|||||||
$listoftax = array(0, 1, 2);
|
$listoftax = array(0, 1, 2);
|
||||||
foreach ($listoftax as $numtax) {
|
foreach ($listoftax as $numtax) {
|
||||||
$arrayofvat = $tabtva;
|
$arrayofvat = $tabtva;
|
||||||
if ($numtax == 1) $arrayofvat = $tablocaltax1;
|
if ($numtax == 1) {
|
||||||
if ($numtax == 2) $arrayofvat = $tablocaltax2;
|
$arrayofvat = $tablocaltax1;
|
||||||
|
}
|
||||||
|
if ($numtax == 2) {
|
||||||
|
$arrayofvat = $tablocaltax2;
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($arrayofvat[$key] as $k => $mt) {
|
foreach ($arrayofvat[$key] as $k => $mt) {
|
||||||
if ($mt) {
|
if ($mt) {
|
||||||
@ -651,9 +657,9 @@ if (empty($action) || $action == 'view') {
|
|||||||
$exportlink = '';
|
$exportlink = '';
|
||||||
$builddate = dol_now();
|
$builddate = dol_now();
|
||||||
$description .= $langs->trans("DescJournalOnlyBindedVisible").'<br>';
|
$description .= $langs->trans("DescJournalOnlyBindedVisible").'<br>';
|
||||||
if (!empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS))
|
if (!empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
|
||||||
$description .= $langs->trans("DepositsAreNotIncluded");
|
$description .= $langs->trans("DepositsAreNotIncluded");
|
||||||
else {
|
} else {
|
||||||
$description .= $langs->trans("DepositsAreIncluded");
|
$description .= $langs->trans("DepositsAreIncluded");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -672,12 +678,17 @@ if (empty($action) || $action == 'view') {
|
|||||||
print ' : '.$langs->trans("AccountancyAreaDescMisc", 4, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
|
print ' : '.$langs->trans("AccountancyAreaDescMisc", 4, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
|
||||||
}
|
}
|
||||||
print '<div class="tabsAction tabsActionNoBottom">';
|
print '<div class="tabsAction tabsActionNoBottom">';
|
||||||
if (!empty($conf->global->ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL) && $in_bookkeeping == 'notyet') print '<input type="button" class="butAction" name="exportcsv" value="'.$langs->trans("ExportDraftJournal").'" onclick="launch_export();" />';
|
if (!empty($conf->global->ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL) && $in_bookkeeping == 'notyet') {
|
||||||
|
print '<input type="button" class="butAction" name="exportcsv" value="'.$langs->trans("ExportDraftJournal").'" onclick="launch_export();" />';
|
||||||
|
}
|
||||||
if (($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == "") || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1') {
|
if (($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == "") || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1') {
|
||||||
print '<input type="button" class="butActionRefused classfortooltip" title="'.dol_escape_htmltag($langs->trans("SomeMandatoryStepsOfSetupWereNotDone")).'" value="'.$langs->trans("WriteBookKeeping").'" />';
|
print '<input type="button" class="butActionRefused classfortooltip" title="'.dol_escape_htmltag($langs->trans("SomeMandatoryStepsOfSetupWereNotDone")).'" value="'.$langs->trans("WriteBookKeeping").'" />';
|
||||||
} else {
|
} else {
|
||||||
if ($in_bookkeeping == 'notyet') print '<input type="button" class="butAction" name="writebookkeeping" value="'.$langs->trans("WriteBookKeeping").'" onclick="writebookkeeping();" />';
|
if ($in_bookkeeping == 'notyet') {
|
||||||
else print '<a href="#" class="butActionRefused classfortooltip" name="writebookkeeping">'.$langs->trans("WriteBookKeeping").'</a>';
|
print '<input type="button" class="butAction" name="writebookkeeping" value="'.$langs->trans("WriteBookKeeping").'" onclick="writebookkeeping();" />';
|
||||||
|
} else {
|
||||||
|
print '<a href="#" class="butActionRefused classfortooltip" name="writebookkeeping">'.$langs->trans("WriteBookKeeping").'</a>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
@ -720,8 +731,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
$companystatic = new Client($db);
|
$companystatic = new Client($db);
|
||||||
$invoicestatic = new Facture($db);
|
$invoicestatic = new Facture($db);
|
||||||
|
|
||||||
foreach ($tabfac as $key => $val)
|
foreach ($tabfac as $key => $val) {
|
||||||
{
|
|
||||||
$companystatic->id = $tabcompany[$key]['id'];
|
$companystatic->id = $tabcompany[$key]['id'];
|
||||||
$companystatic->name = $tabcompany[$key]['name'];
|
$companystatic->name = $tabcompany[$key]['name'];
|
||||||
$companystatic->code_compta = $tabcompany[$key]['code_compta'];
|
$companystatic->code_compta = $tabcompany[$key]['code_compta'];
|
||||||
@ -739,16 +749,16 @@ if (empty($action) || $action == 'view') {
|
|||||||
|
|
||||||
// Is it a replaced invoice ? 0=not a replaced invoice, 1=replaced invoice not yet dispatched, 2=replaced invoice dispatched
|
// Is it a replaced invoice ? 0=not a replaced invoice, 1=replaced invoice not yet dispatched, 2=replaced invoice dispatched
|
||||||
$replacedinvoice = 0;
|
$replacedinvoice = 0;
|
||||||
if ($invoicestatic->close_code == Facture::CLOSECODE_REPLACED)
|
if ($invoicestatic->close_code == Facture::CLOSECODE_REPLACED) {
|
||||||
{
|
|
||||||
$replacedinvoice = 1;
|
$replacedinvoice = 1;
|
||||||
$alreadydispatched = $invoicestatic->getVentilExportCompta(); // Test if replaced invoice already into bookkeeping.
|
$alreadydispatched = $invoicestatic->getVentilExportCompta(); // Test if replaced invoice already into bookkeeping.
|
||||||
if ($alreadydispatched) $replacedinvoice = 2;
|
if ($alreadydispatched) {
|
||||||
|
$replacedinvoice = 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If not already into bookkeeping, we won't add it, if yes, add the counterpart ???.
|
// If not already into bookkeeping, we won't add it, if yes, add the counterpart ???.
|
||||||
if ($replacedinvoice == 1)
|
if ($replacedinvoice == 1) {
|
||||||
{
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print "<!-- Replaced invoice -->";
|
print "<!-- Replaced invoice -->";
|
||||||
print "<td>".$date."</td>";
|
print "<td>".$date."</td>";
|
||||||
@ -768,8 +778,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if ($errorforinvoice[$key] == 'somelinesarenotbound')
|
if ($errorforinvoice[$key] == 'somelinesarenotbound') {
|
||||||
{
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print "<!-- Some lines are not bound -->";
|
print "<!-- Some lines are not bound -->";
|
||||||
print "<td>".$date."</td>";
|
print "<td>".$date."</td>";
|
||||||
@ -789,8 +798,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Third party
|
// Third party
|
||||||
foreach ($tabttc[$key] as $k => $mt)
|
foreach ($tabttc[$key] as $k => $mt) {
|
||||||
{
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print "<!-- Thirdparty -->";
|
print "<!-- Thirdparty -->";
|
||||||
print "<td>".$date."</td>";
|
print "<td>".$date."</td>";
|
||||||
@ -798,18 +806,20 @@ if (empty($action) || $action == 'view') {
|
|||||||
// Account
|
// Account
|
||||||
print "<td>";
|
print "<td>";
|
||||||
$accountoshow = length_accounta($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER);
|
$accountoshow = length_accounta($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER);
|
||||||
if (($accountoshow == "") || $accountoshow == 'NotDefined')
|
if (($accountoshow == "") || $accountoshow == 'NotDefined') {
|
||||||
{
|
|
||||||
print '<span class="error">'.$langs->trans("MainAccountForCustomersNotDefined").'</span>';
|
print '<span class="error">'.$langs->trans("MainAccountForCustomersNotDefined").'</span>';
|
||||||
} else print $accountoshow;
|
} else {
|
||||||
|
print $accountoshow;
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
// Subledger account
|
// Subledger account
|
||||||
print "<td>";
|
print "<td>";
|
||||||
$accountoshow = length_accounta($k);
|
$accountoshow = length_accounta($k);
|
||||||
if (($accountoshow == "") || $accountoshow == 'NotDefined')
|
if (($accountoshow == "") || $accountoshow == 'NotDefined') {
|
||||||
{
|
|
||||||
print '<span class="error">'.$langs->trans("ThirdpartyAccountNotDefined").'</span>';
|
print '<span class="error">'.$langs->trans("ThirdpartyAccountNotDefined").'</span>';
|
||||||
} else print $accountoshow;
|
} else {
|
||||||
|
print $accountoshow;
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print "<td>".$companystatic->getNomUrl(0, 'customer', 16).' - '.$invoicestatic->ref.' - '.$langs->trans("SubledgerAccount")."</td>";
|
print "<td>".$companystatic->getNomUrl(0, 'customer', 16).' - '.$invoicestatic->ref.' - '.$langs->trans("SubledgerAccount")."</td>";
|
||||||
print '<td class="right nowraponall">'.($mt >= 0 ? price($mt) : '')."</td>";
|
print '<td class="right nowraponall">'.($mt >= 0 ? price($mt) : '')."</td>";
|
||||||
@ -818,8 +828,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Product / Service
|
// Product / Service
|
||||||
foreach ($tabht[$key] as $k => $mt)
|
foreach ($tabht[$key] as $k => $mt) {
|
||||||
{
|
|
||||||
$accountingaccount = new AccountingAccount($db);
|
$accountingaccount = new AccountingAccount($db);
|
||||||
$accountingaccount->fetch(null, $k, true);
|
$accountingaccount->fetch(null, $k, true);
|
||||||
|
|
||||||
@ -830,10 +839,11 @@ if (empty($action) || $action == 'view') {
|
|||||||
// Account
|
// Account
|
||||||
print "<td>";
|
print "<td>";
|
||||||
$accountoshow = length_accountg($k);
|
$accountoshow = length_accountg($k);
|
||||||
if (($accountoshow == "") || $accountoshow == 'NotDefined')
|
if (($accountoshow == "") || $accountoshow == 'NotDefined') {
|
||||||
{
|
|
||||||
print '<span class="error">'.$langs->trans("ProductNotDefined").'</span>';
|
print '<span class="error">'.$langs->trans("ProductNotDefined").'</span>';
|
||||||
} else print $accountoshow;
|
} else {
|
||||||
|
print $accountoshow;
|
||||||
|
}
|
||||||
print "</td>";
|
print "</td>";
|
||||||
// Subledger account
|
// Subledger account
|
||||||
print "<td>";
|
print "<td>";
|
||||||
@ -848,11 +858,14 @@ if (empty($action) || $action == 'view') {
|
|||||||
|
|
||||||
// VAT
|
// VAT
|
||||||
$listoftax = array(0, 1, 2);
|
$listoftax = array(0, 1, 2);
|
||||||
foreach ($listoftax as $numtax)
|
foreach ($listoftax as $numtax) {
|
||||||
{
|
|
||||||
$arrayofvat = $tabtva;
|
$arrayofvat = $tabtva;
|
||||||
if ($numtax == 1) $arrayofvat = $tablocaltax1;
|
if ($numtax == 1) {
|
||||||
if ($numtax == 2) $arrayofvat = $tablocaltax2;
|
$arrayofvat = $tablocaltax1;
|
||||||
|
}
|
||||||
|
if ($numtax == 2) {
|
||||||
|
$arrayofvat = $tablocaltax2;
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($arrayofvat[$key] as $k => $mt) {
|
foreach ($arrayofvat[$key] as $k => $mt) {
|
||||||
if ($mt) {
|
if ($mt) {
|
||||||
@ -863,10 +876,11 @@ if (empty($action) || $action == 'view') {
|
|||||||
// Account
|
// Account
|
||||||
print "<td>";
|
print "<td>";
|
||||||
$accountoshow = length_accountg($k);
|
$accountoshow = length_accountg($k);
|
||||||
if (($accountoshow == "") || $accountoshow == 'NotDefined')
|
if (($accountoshow == "") || $accountoshow == 'NotDefined') {
|
||||||
{
|
|
||||||
print '<span class="error">'.$langs->trans("VATAccountNotDefined").' ('.$langs->trans("Sale").')</span>';
|
print '<span class="error">'.$langs->trans("VATAccountNotDefined").' ('.$langs->trans("Sale").')</span>';
|
||||||
} else print $accountoshow;
|
} else {
|
||||||
|
print $accountoshow;
|
||||||
|
}
|
||||||
print "</td>";
|
print "</td>";
|
||||||
// Subledger account
|
// Subledger account
|
||||||
print "<td>";
|
print "<td>";
|
||||||
|
|||||||
@ -42,19 +42,20 @@ $codeventil = GETPOST('codeventil', 'int');
|
|||||||
$id = GETPOST('id', 'int');
|
$id = GETPOST('id', 'int');
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->socid > 0)
|
if ($user->socid > 0) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($action == 'ventil' && $user->rights->accounting->bind->write)
|
if ($action == 'ventil' && $user->rights->accounting->bind->write) {
|
||||||
{
|
if (!$cancel) {
|
||||||
if (!$cancel)
|
if ($codeventil < 0) {
|
||||||
{
|
$codeventil = 0;
|
||||||
if ($codeventil < 0) $codeventil = 0;
|
}
|
||||||
|
|
||||||
$sql = " UPDATE ".MAIN_DB_PREFIX."facture_fourn_det";
|
$sql = " UPDATE ".MAIN_DB_PREFIX."facture_fourn_det";
|
||||||
$sql .= " SET fk_code_ventilation = ".$codeventil;
|
$sql .= " SET fk_code_ventilation = ".$codeventil;
|
||||||
@ -65,8 +66,7 @@ if ($action == 'ventil' && $user->rights->accounting->bind->write)
|
|||||||
setEventMessages($db->lasterror(), null, 'errors');
|
setEventMessages($db->lasterror(), null, 'errors');
|
||||||
} else {
|
} else {
|
||||||
setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs');
|
setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs');
|
||||||
if ($backtopage)
|
if ($backtopage) {
|
||||||
{
|
|
||||||
header("Location: ".$backtopage);
|
header("Location: ".$backtopage);
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,22 +37,26 @@ $langs->loadLangs(array("compta", "bills", "other", "main", "accountancy"));
|
|||||||
if (empty($conf->accounting->enabled)) {
|
if (empty($conf->accounting->enabled)) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
}
|
}
|
||||||
if ($user->socid > 0)
|
if ($user->socid > 0) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
if (!$user->rights->accounting->bind->write)
|
}
|
||||||
|
if (!$user->rights->accounting->bind->write) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$month_start = ($conf->global->SOCIETE_FISCAL_MONTH_START ? ($conf->global->SOCIETE_FISCAL_MONTH_START) : 1);
|
$month_start = ($conf->global->SOCIETE_FISCAL_MONTH_START ? ($conf->global->SOCIETE_FISCAL_MONTH_START) : 1);
|
||||||
if (GETPOST("year", 'int')) $year_start = GETPOST("year", 'int');
|
if (GETPOST("year", 'int')) {
|
||||||
else {
|
$year_start = GETPOST("year", 'int');
|
||||||
|
} else {
|
||||||
$year_start = dol_print_date(dol_now(), '%Y');
|
$year_start = dol_print_date(dol_now(), '%Y');
|
||||||
if (dol_print_date(dol_now(), '%m') < $month_start) $year_start--; // If current month is lower that starting fiscal month, we start last year
|
if (dol_print_date(dol_now(), '%m') < $month_start) {
|
||||||
|
$year_start--; // If current month is lower that starting fiscal month, we start last year
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$year_end = $year_start + 1;
|
$year_end = $year_start + 1;
|
||||||
$month_end = $month_start - 1;
|
$month_end = $month_start - 1;
|
||||||
if ($month_end < 1)
|
if ($month_end < 1) {
|
||||||
{
|
|
||||||
$month_end = 12;
|
$month_end = 12;
|
||||||
$year_end--;
|
$year_end--;
|
||||||
}
|
}
|
||||||
@ -70,8 +74,7 @@ $chartaccountcode = dol_getIdFromCode($db, $conf->global->CHARTOFACCOUNTS, 'acco
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($action == 'clean' || $action == 'validatehistory')
|
if ($action == 'clean' || $action == 'validatehistory') {
|
||||||
{
|
|
||||||
// Clean database
|
// Clean database
|
||||||
$db->begin();
|
$db->begin();
|
||||||
$sql1 = "UPDATE ".MAIN_DB_PREFIX."facture_fourn_det as fd";
|
$sql1 = "UPDATE ".MAIN_DB_PREFIX."facture_fourn_det as fd";
|
||||||
@ -177,15 +180,13 @@ if ($action == 'validatehistory') {
|
|||||||
$suggestedaccountingaccountfor = '';
|
$suggestedaccountingaccountfor = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($objp->aarowid_suggest > 0)
|
if ($objp->aarowid_suggest > 0) {
|
||||||
{
|
|
||||||
$sqlupdate = "UPDATE ".MAIN_DB_PREFIX."facture_fourn_det";
|
$sqlupdate = "UPDATE ".MAIN_DB_PREFIX."facture_fourn_det";
|
||||||
$sqlupdate .= " SET fk_code_ventilation = ".$objp->aarowid_suggest;
|
$sqlupdate .= " SET fk_code_ventilation = ".$objp->aarowid_suggest;
|
||||||
$sqlupdate .= " WHERE fk_code_ventilation <= 0 AND product_type <= 2 AND rowid = ".$objp->rowid;
|
$sqlupdate .= " WHERE fk_code_ventilation <= 0 AND product_type <= 2 AND rowid = ".$objp->rowid;
|
||||||
|
|
||||||
$resqlupdate = $db->query($sqlupdate);
|
$resqlupdate = $db->query($sqlupdate);
|
||||||
if (!$resqlupdate)
|
if (!$resqlupdate) {
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
setEventMessages($db->lasterror(), null, 'errors');
|
setEventMessages($db->lasterror(), null, 'errors');
|
||||||
break;
|
break;
|
||||||
@ -196,8 +197,7 @@ if ($action == 'validatehistory') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($error)
|
if ($error) {
|
||||||
{
|
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
} else {
|
} else {
|
||||||
$db->commit();
|
$db->commit();
|
||||||
@ -235,7 +235,9 @@ print '<tr class="liste_titre"><td width="200">'.$langs->trans("Account").'</td>
|
|||||||
print '<td width="200" class="left">'.$langs->trans("Label").'</td>';
|
print '<td width="200" class="left">'.$langs->trans("Label").'</td>';
|
||||||
for ($i = 1; $i <= 12; $i++) {
|
for ($i = 1; $i <= 12; $i++) {
|
||||||
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
||||||
if ($j > 12) $j -= 12;
|
if ($j > 12) {
|
||||||
|
$j -= 12;
|
||||||
|
}
|
||||||
print '<td width="60" class="right">'.$langs->trans('MonthShort'.str_pad($j, 2, '0', STR_PAD_LEFT)).'</td>';
|
print '<td width="60" class="right">'.$langs->trans('MonthShort'.str_pad($j, 2, '0', STR_PAD_LEFT)).'</td>';
|
||||||
}
|
}
|
||||||
print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>';
|
print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>';
|
||||||
@ -244,7 +246,9 @@ $sql = "SELECT ".$db->ifsql('aa.account_number IS NULL', "'tobind'", 'aa.account
|
|||||||
$sql .= " ".$db->ifsql('aa.label IS NULL', "'tobind'", 'aa.label')." AS intitule,";
|
$sql .= " ".$db->ifsql('aa.label IS NULL', "'tobind'", 'aa.label')." AS intitule,";
|
||||||
for ($i = 1; $i <= 12; $i++) {
|
for ($i = 1; $i <= 12; $i++) {
|
||||||
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
||||||
if ($j > 12) $j -= 12;
|
if ($j > 12) {
|
||||||
|
$j -= 12;
|
||||||
|
}
|
||||||
$sql .= " SUM(".$db->ifsql('MONTH(ff.datef)='.$j, 'ffd.total_ht', '0').") AS month".str_pad($j, 2, '0', STR_PAD_LEFT).",";
|
$sql .= " SUM(".$db->ifsql('MONTH(ff.datef)='.$j, 'ffd.total_ht', '0').") AS month".str_pad($j, 2, '0', STR_PAD_LEFT).",";
|
||||||
}
|
}
|
||||||
$sql .= " SUM(ffd.total_ht) as total";
|
$sql .= " SUM(ffd.total_ht) as total";
|
||||||
@ -270,16 +274,18 @@ if ($resql) {
|
|||||||
|
|
||||||
while ($row = $db->fetch_row($resql)) {
|
while ($row = $db->fetch_row($resql)) {
|
||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
if ($row[0] == 'tobind')
|
if ($row[0] == 'tobind') {
|
||||||
{
|
|
||||||
print $langs->trans("Unknown");
|
print $langs->trans("Unknown");
|
||||||
} else print length_accountg($row[0]);
|
} else {
|
||||||
|
print length_accountg($row[0]);
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="left">';
|
print '<td class="left">';
|
||||||
if ($row[0] == 'tobind')
|
if ($row[0] == 'tobind') {
|
||||||
{
|
|
||||||
print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/supplier/list.php?search_year='.$y, $langs->transnoentitiesnoconv("ToBind"));
|
print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/supplier/list.php?search_year='.$y, $langs->transnoentitiesnoconv("ToBind"));
|
||||||
} else print $row[1];
|
} else {
|
||||||
|
print $row[1];
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
for ($i = 2; $i <= 12; $i++) {
|
for ($i = 2; $i <= 12; $i++) {
|
||||||
print '<td class="nowrap right">'.price($row[$i]).'</td>';
|
print '<td class="nowrap right">'.price($row[$i]).'</td>';
|
||||||
@ -308,7 +314,9 @@ print '<tr class="liste_titre"><td width="200">'.$langs->trans("Account").'</td>
|
|||||||
print '<td width="200" class="left">'.$langs->trans("Label").'</td>';
|
print '<td width="200" class="left">'.$langs->trans("Label").'</td>';
|
||||||
for ($i = 1; $i <= 12; $i++) {
|
for ($i = 1; $i <= 12; $i++) {
|
||||||
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
||||||
if ($j > 12) $j -= 12;
|
if ($j > 12) {
|
||||||
|
$j -= 12;
|
||||||
|
}
|
||||||
print '<td width="60" class="right">'.$langs->trans('MonthShort'.str_pad($j, 2, '0', STR_PAD_LEFT)).'</td>';
|
print '<td width="60" class="right">'.$langs->trans('MonthShort'.str_pad($j, 2, '0', STR_PAD_LEFT)).'</td>';
|
||||||
}
|
}
|
||||||
print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>';
|
print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>';
|
||||||
@ -317,7 +325,9 @@ $sql = "SELECT ".$db->ifsql('aa.account_number IS NULL', "'tobind'", 'aa.account
|
|||||||
$sql .= " ".$db->ifsql('aa.label IS NULL', "'tobind'", 'aa.label')." AS intitule,";
|
$sql .= " ".$db->ifsql('aa.label IS NULL', "'tobind'", 'aa.label')." AS intitule,";
|
||||||
for ($i = 1; $i <= 12; $i++) {
|
for ($i = 1; $i <= 12; $i++) {
|
||||||
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
||||||
if ($j > 12) $j -= 12;
|
if ($j > 12) {
|
||||||
|
$j -= 12;
|
||||||
|
}
|
||||||
$sql .= " SUM(".$db->ifsql('MONTH(ff.datef)='.$j, 'ffd.total_ht', '0').") AS month".str_pad($j, 2, '0', STR_PAD_LEFT).",";
|
$sql .= " SUM(".$db->ifsql('MONTH(ff.datef)='.$j, 'ffd.total_ht', '0').") AS month".str_pad($j, 2, '0', STR_PAD_LEFT).",";
|
||||||
}
|
}
|
||||||
$sql .= " SUM(ffd.total_ht) as total";
|
$sql .= " SUM(ffd.total_ht) as total";
|
||||||
@ -343,16 +353,18 @@ if ($resql) {
|
|||||||
|
|
||||||
while ($row = $db->fetch_row($resql)) {
|
while ($row = $db->fetch_row($resql)) {
|
||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
if ($row[0] == 'tobind')
|
if ($row[0] == 'tobind') {
|
||||||
{
|
|
||||||
print $langs->trans("Unknown");
|
print $langs->trans("Unknown");
|
||||||
} else print length_accountg($row[0]);
|
} else {
|
||||||
|
print length_accountg($row[0]);
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="left">';
|
print '<td class="left">';
|
||||||
if ($row[0] == 'tobind')
|
if ($row[0] == 'tobind') {
|
||||||
{
|
|
||||||
print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/supplier/list.php?search_year='.$y, $langs->transnoentitiesnoconv("ToBind"));
|
print $langs->trans("UseMenuToSetBindindManualy", DOL_URL_ROOT.'/accountancy/supplier/list.php?search_year='.$y, $langs->transnoentitiesnoconv("ToBind"));
|
||||||
} else print $row[1];
|
} else {
|
||||||
|
print $row[1];
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
for ($i = 2; $i <= 12; $i++) {
|
for ($i = 2; $i <= 12; $i++) {
|
||||||
print '<td class="nowrap right">'.price($row[$i]).'</td>';
|
print '<td class="nowrap right">'.price($row[$i]).'</td>';
|
||||||
@ -370,8 +382,7 @@ print '</div>';
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. Why showing a report that should rely on result of this step ?
|
if ($conf->global->MAIN_FEATURES_LEVEL > 0) { // This part of code looks strange. Why showing a report that should rely on result of this step ?
|
||||||
{
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
@ -383,7 +394,9 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
|
|||||||
print '<tr class="liste_titre"><td width="400" class="left">'.$langs->trans("Total").'</td>';
|
print '<tr class="liste_titre"><td width="400" class="left">'.$langs->trans("Total").'</td>';
|
||||||
for ($i = 1; $i <= 12; $i++) {
|
for ($i = 1; $i <= 12; $i++) {
|
||||||
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
||||||
if ($j > 12) $j -= 12;
|
if ($j > 12) {
|
||||||
|
$j -= 12;
|
||||||
|
}
|
||||||
print '<td width="60" class="right">'.$langs->trans('MonthShort'.str_pad($j, 2, '0', STR_PAD_LEFT)).'</td>';
|
print '<td width="60" class="right">'.$langs->trans('MonthShort'.str_pad($j, 2, '0', STR_PAD_LEFT)).'</td>';
|
||||||
}
|
}
|
||||||
print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>';
|
print '<td width="60" class="right"><b>'.$langs->trans("Total").'</b></td></tr>';
|
||||||
@ -391,7 +404,9 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange.
|
|||||||
$sql = "SELECT '".$db->escape($langs->trans("CAHTF"))."' AS label,";
|
$sql = "SELECT '".$db->escape($langs->trans("CAHTF"))."' AS label,";
|
||||||
for ($i = 1; $i <= 12; $i++) {
|
for ($i = 1; $i <= 12; $i++) {
|
||||||
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
$j = $i + ($conf->global->SOCIETE_FISCAL_MONTH_START ? $conf->global->SOCIETE_FISCAL_MONTH_START : 1) - 1;
|
||||||
if ($j > 12) $j -= 12;
|
if ($j > 12) {
|
||||||
|
$j -= 12;
|
||||||
|
}
|
||||||
$sql .= " SUM(".$db->ifsql('MONTH(ff.datef)='.$j, 'ffd.total_ht', '0').") AS month".str_pad($j, 2, '0', STR_PAD_LEFT).",";
|
$sql .= " SUM(".$db->ifsql('MONTH(ff.datef)='.$j, 'ffd.total_ht', '0').") AS month".str_pad($j, 2, '0', STR_PAD_LEFT).",";
|
||||||
}
|
}
|
||||||
$sql .= " SUM(ffd.total_ht) as total";
|
$sql .= " SUM(ffd.total_ht) as total";
|
||||||
|
|||||||
@ -65,12 +65,15 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : (empty($conf->global
|
|||||||
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
||||||
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
||||||
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
||||||
if (empty($page) || $page < 0) $page = 0;
|
if (empty($page) || $page < 0) {
|
||||||
|
$page = 0;
|
||||||
|
}
|
||||||
$offset = $limit * $page;
|
$offset = $limit * $page;
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
if (!$sortfield)
|
if (!$sortfield) {
|
||||||
$sortfield = "f.datef, f.ref, l.rowid";
|
$sortfield = "f.datef, f.ref, l.rowid";
|
||||||
|
}
|
||||||
if (!$sortorder) {
|
if (!$sortorder) {
|
||||||
if ($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_DONE > 0) {
|
if ($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_DONE > 0) {
|
||||||
$sortorder = "DESC";
|
$sortorder = "DESC";
|
||||||
@ -78,10 +81,12 @@ if (!$sortorder) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->socid > 0)
|
if ($user->socid > 0) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
if (!$user->rights->accounting->bind->write)
|
}
|
||||||
|
if (!$user->rights->accounting->bind->write) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
$formaccounting = new FormAccounting($db);
|
$formaccounting = new FormAccounting($db);
|
||||||
|
|
||||||
@ -91,8 +96,7 @@ $formaccounting = new FormAccounting($db);
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// Purge search criteria
|
// Purge search criteria
|
||||||
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // All tests are required to be compatible with all browsers
|
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All tests are required to be compatible with all browsers
|
||||||
{
|
|
||||||
$search_societe = '';
|
$search_societe = '';
|
||||||
$search_lineid = '';
|
$search_lineid = '';
|
||||||
$search_ref = '';
|
$search_ref = '';
|
||||||
@ -112,15 +116,13 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x'
|
|||||||
if (is_array($changeaccount) && count($changeaccount) > 0) {
|
if (is_array($changeaccount) && count($changeaccount) > 0) {
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
if (!(GETPOST('account_parent', 'int') >= 0))
|
if (!(GETPOST('account_parent', 'int') >= 0)) {
|
||||||
{
|
|
||||||
$error++;
|
$error++;
|
||||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Account")), null, 'errors');
|
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Account")), null, 'errors');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!$error)
|
if (!$error) {
|
||||||
{
|
|
||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
$sql1 = "UPDATE ".MAIN_DB_PREFIX."facture_fourn_det as l";
|
$sql1 = "UPDATE ".MAIN_DB_PREFIX."facture_fourn_det as l";
|
||||||
@ -224,16 +226,23 @@ $sql .= dolSqlDateFilter('f.datef', $search_day, $search_month, $search_year);
|
|||||||
if (strlen(trim($search_country))) {
|
if (strlen(trim($search_country))) {
|
||||||
$arrayofcode = getCountriesInEEC();
|
$arrayofcode = getCountriesInEEC();
|
||||||
$country_code_in_EEC = $country_code_in_EEC_without_me = '';
|
$country_code_in_EEC = $country_code_in_EEC_without_me = '';
|
||||||
foreach ($arrayofcode as $key => $value)
|
foreach ($arrayofcode as $key => $value) {
|
||||||
{
|
|
||||||
$country_code_in_EEC .= ($country_code_in_EEC ? "," : "")."'".$value."'";
|
$country_code_in_EEC .= ($country_code_in_EEC ? "," : "")."'".$value."'";
|
||||||
if ($value != $mysoc->country_code) $country_code_in_EEC_without_me .= ($country_code_in_EEC_without_me ? "," : "")."'".$value."'";
|
if ($value != $mysoc->country_code) {
|
||||||
|
$country_code_in_EEC_without_me .= ($country_code_in_EEC_without_me ? "," : "")."'".$value."'";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($search_country == 'special_allnotme') {
|
||||||
|
$sql .= " AND co.code <> '".$db->escape($mysoc->country_code)."'";
|
||||||
|
} elseif ($search_country == 'special_eec') {
|
||||||
|
$sql .= " AND co.code IN (".$country_code_in_EEC.")";
|
||||||
|
} elseif ($search_country == 'special_eecnotme') {
|
||||||
|
$sql .= " AND co.code IN (".$country_code_in_EEC_without_me.")";
|
||||||
|
} elseif ($search_country == 'special_noteec') {
|
||||||
|
$sql .= " AND co.code NOT IN (".$country_code_in_EEC.")";
|
||||||
|
} else {
|
||||||
|
$sql .= natural_search("co.code", $search_country);
|
||||||
}
|
}
|
||||||
if ($search_country == 'special_allnotme') $sql .= " AND co.code <> '".$db->escape($mysoc->country_code)."'";
|
|
||||||
elseif ($search_country == 'special_eec') $sql .= " AND co.code IN (".$country_code_in_EEC.")";
|
|
||||||
elseif ($search_country == 'special_eecnotme') $sql .= " AND co.code IN (".$country_code_in_EEC_without_me.")";
|
|
||||||
elseif ($search_country == 'special_noteec') $sql .= " AND co.code NOT IN (".$country_code_in_EEC.")";
|
|
||||||
else $sql .= natural_search("co.code", $search_country);
|
|
||||||
}
|
}
|
||||||
if (strlen(trim($search_tvaintra))) {
|
if (strlen(trim($search_tvaintra))) {
|
||||||
$sql .= natural_search("s.tva_intra", $search_tvaintra);
|
$sql .= natural_search("s.tva_intra", $search_tvaintra);
|
||||||
@ -249,12 +258,10 @@ $sql .= $db->order($sortfield, $sortorder);
|
|||||||
|
|
||||||
// Count total nb of records
|
// Count total nb of records
|
||||||
$nbtotalofrecords = '';
|
$nbtotalofrecords = '';
|
||||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||||
{
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
$nbtotalofrecords = $db->num_rows($result);
|
$nbtotalofrecords = $db->num_rows($result);
|
||||||
if (($page * $limit) > $nbtotalofrecords) // if total resultset is smaller then paging size (filtering), goto and load page 0
|
if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0
|
||||||
{
|
|
||||||
$page = 0;
|
$page = 0;
|
||||||
$offset = 0;
|
$offset = 0;
|
||||||
}
|
}
|
||||||
@ -269,24 +276,54 @@ if ($result) {
|
|||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
$param = '';
|
$param = '';
|
||||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
$param .= '&contextpage='.urlencode($contextpage);
|
||||||
if ($search_societe) $param .= "&search_societe=".urlencode($search_societe);
|
}
|
||||||
if ($search_invoice) $param .= "&search_invoice=".urlencode($search_invoice);
|
if ($limit > 0 && $limit != $conf->liste_limit) {
|
||||||
if ($search_ref) $param .= "&search_ref=".urlencode($search_ref);
|
$param .= '&limit='.urlencode($limit);
|
||||||
if ($search_label) $param .= "&search_label=".urlencode($search_label);
|
}
|
||||||
if ($search_desc) $param .= "&search_desc=".urlencode($search_desc);
|
if ($search_societe) {
|
||||||
if ($search_account) $param .= "&search_account=".urlencode($search_account);
|
$param .= "&search_societe=".urlencode($search_societe);
|
||||||
if ($search_vat) $param .= "&search_vat=".urlencode($search_vat);
|
}
|
||||||
if ($search_day) $param .= '&search_day='.urlencode($search_day);
|
if ($search_invoice) {
|
||||||
if ($search_month) $param .= '&search_month='.urlencode($search_month);
|
$param .= "&search_invoice=".urlencode($search_invoice);
|
||||||
if ($search_year) $param .= '&search_year='.urlencode($search_year);
|
}
|
||||||
if ($search_country) $param .= "&search_country=".urlencode($search_country);
|
if ($search_ref) {
|
||||||
if ($search_tvaintra) $param .= "&search_tvaintra=".urlencode($search_tvaintra);
|
$param .= "&search_ref=".urlencode($search_ref);
|
||||||
|
}
|
||||||
|
if ($search_label) {
|
||||||
|
$param .= "&search_label=".urlencode($search_label);
|
||||||
|
}
|
||||||
|
if ($search_desc) {
|
||||||
|
$param .= "&search_desc=".urlencode($search_desc);
|
||||||
|
}
|
||||||
|
if ($search_account) {
|
||||||
|
$param .= "&search_account=".urlencode($search_account);
|
||||||
|
}
|
||||||
|
if ($search_vat) {
|
||||||
|
$param .= "&search_vat=".urlencode($search_vat);
|
||||||
|
}
|
||||||
|
if ($search_day) {
|
||||||
|
$param .= '&search_day='.urlencode($search_day);
|
||||||
|
}
|
||||||
|
if ($search_month) {
|
||||||
|
$param .= '&search_month='.urlencode($search_month);
|
||||||
|
}
|
||||||
|
if ($search_year) {
|
||||||
|
$param .= '&search_year='.urlencode($search_year);
|
||||||
|
}
|
||||||
|
if ($search_country) {
|
||||||
|
$param .= "&search_country=".urlencode($search_country);
|
||||||
|
}
|
||||||
|
if ($search_tvaintra) {
|
||||||
|
$param .= "&search_tvaintra=".urlencode($search_tvaintra);
|
||||||
|
}
|
||||||
|
|
||||||
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">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') {
|
||||||
|
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
}
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
||||||
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
@ -311,7 +348,9 @@ if ($result) {
|
|||||||
print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_invoice" value="'.dol_escape_htmltag($search_invoice).'"></td>';
|
print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_invoice" value="'.dol_escape_htmltag($search_invoice).'"></td>';
|
||||||
print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_label" value="'.dol_escape_htmltag($search_label).'"></td>';
|
print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_label" value="'.dol_escape_htmltag($search_label).'"></td>';
|
||||||
print '<td class="liste_titre center nowraponall">';
|
print '<td class="liste_titre center nowraponall">';
|
||||||
if (!empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat valignmiddle maxwidth25" type="text" maxlength="2" name="search_day" value="'.$search_day.'">';
|
if (!empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) {
|
||||||
|
print '<input class="flat valignmiddle maxwidth25" type="text" maxlength="2" name="search_day" value="'.$search_day.'">';
|
||||||
|
}
|
||||||
print '<input class="flat valignmiddle maxwidth25" type="text" maxlength="2" name="search_month" value="'.$search_month.'">';
|
print '<input class="flat valignmiddle maxwidth25" type="text" maxlength="2" name="search_month" value="'.$search_month.'">';
|
||||||
$formother->select_year($search_year, 'search_year', 1, 20, 5);
|
$formother->select_year($search_year, 'search_year', 1, 20, 5);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -355,8 +394,7 @@ if ($result) {
|
|||||||
$accountingaccountstatic = new AccountingAccount($db);
|
$accountingaccountstatic = new AccountingAccount($db);
|
||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
while ($i < min($num_lines, $limit))
|
while ($i < min($num_lines, $limit)) {
|
||||||
{
|
|
||||||
$objp = $db->fetch_object($result);
|
$objp = $db->fetch_object($result);
|
||||||
|
|
||||||
$facturefournisseur_static->ref = $objp->ref;
|
$facturefournisseur_static->ref = $objp->ref;
|
||||||
@ -405,9 +443,15 @@ if ($result) {
|
|||||||
|
|
||||||
// Ref Product
|
// Ref Product
|
||||||
print '<td class="tdoverflowmax100">';
|
print '<td class="tdoverflowmax100">';
|
||||||
if ($productstatic->id > 0) print $productstatic->getNomUrl(1);
|
if ($productstatic->id > 0) {
|
||||||
if ($productstatic->id > 0 && $objp->product_label) print '<br>';
|
print $productstatic->getNomUrl(1);
|
||||||
if ($objp->product_label) print '<span class="opacitymedium">'.$objp->product_label.'</span>';
|
}
|
||||||
|
if ($productstatic->id > 0 && $objp->product_label) {
|
||||||
|
print '<br>';
|
||||||
|
}
|
||||||
|
if ($objp->product_label) {
|
||||||
|
print '<span class="opacitymedium">'.$objp->product_label.'</span>';
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
print '<td class="tdoverflowonsmartphone">';
|
print '<td class="tdoverflowonsmartphone">';
|
||||||
@ -425,8 +469,7 @@ if ($result) {
|
|||||||
|
|
||||||
// Country
|
// Country
|
||||||
print '<td>';
|
print '<td>';
|
||||||
if ($objp->country_code)
|
if ($objp->country_code) {
|
||||||
{
|
|
||||||
print $langs->trans("Country".$objp->country_code).' ('.$objp->country_code.')';
|
print $langs->trans("Country".$objp->country_code).' ('.$objp->country_code.')';
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|||||||
@ -73,12 +73,15 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : (empty($conf->global
|
|||||||
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
$sortfield = GETPOST('sortfield', 'aZ09comma');
|
||||||
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
$sortorder = GETPOST('sortorder', 'aZ09comma');
|
||||||
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
||||||
if (empty($page) || $page < 0) { $page = 0; }
|
if (empty($page) || $page < 0) {
|
||||||
|
$page = 0;
|
||||||
|
}
|
||||||
$offset = $limit * $page;
|
$offset = $limit * $page;
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
if (!$sortfield)
|
if (!$sortfield) {
|
||||||
$sortfield = "f.datef, f.ref, l.rowid";
|
$sortfield = "f.datef, f.ref, l.rowid";
|
||||||
|
}
|
||||||
if (!$sortorder) {
|
if (!$sortorder) {
|
||||||
if ($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_TODO > 0) {
|
if ($conf->global->ACCOUNTING_LIST_SORT_VENTILATION_TODO > 0) {
|
||||||
$sortorder = "DESC";
|
$sortorder = "DESC";
|
||||||
@ -86,10 +89,12 @@ if (!$sortorder) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
if ($user->socid > 0)
|
if ($user->socid > 0) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
if (!$user->rights->accounting->bind->write)
|
}
|
||||||
|
if (!$user->rights->accounting->bind->write) {
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
|
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
|
||||||
$hookmanager->initHooks(array('accountancysupplierlist'));
|
$hookmanager->initHooks(array('accountancysupplierlist'));
|
||||||
@ -107,18 +112,22 @@ $chartaccountcode = dol_getIdFromCode($db, $conf->global->CHARTOFACCOUNTS, 'acco
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (GETPOST('cancel', 'alpha')) { $action = 'list'; $massaction = ''; }
|
if (GETPOST('cancel', 'alpha')) {
|
||||||
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; }
|
$action = 'list'; $massaction = '';
|
||||||
|
}
|
||||||
|
if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') {
|
||||||
|
$massaction = '';
|
||||||
|
}
|
||||||
|
|
||||||
$parameters = array();
|
$parameters = array();
|
||||||
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
||||||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
if ($reshook < 0) {
|
||||||
|
setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($reshook))
|
if (empty($reshook)) {
|
||||||
{
|
|
||||||
// Purge search criteria
|
// Purge search criteria
|
||||||
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // All test are required to be compatible with all browsers
|
if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) { // All test are required to be compatible with all browsers
|
||||||
{
|
|
||||||
$search_societe = '';
|
$search_societe = '';
|
||||||
$search_lineid = '';
|
$search_lineid = '';
|
||||||
$search_ref = '';
|
$search_ref = '';
|
||||||
@ -160,8 +169,7 @@ if ($massaction == 'ventil') {
|
|||||||
$monId = $maLigneCourante[0];
|
$monId = $maLigneCourante[0];
|
||||||
$monCompte = GETPOST('codeventil'.$monId);
|
$monCompte = GETPOST('codeventil'.$monId);
|
||||||
|
|
||||||
if ($monCompte <= 0)
|
if ($monCompte <= 0) {
|
||||||
{
|
|
||||||
$msg .= '<div><span style="color:red">'.$langs->trans("Lineofinvoice").' '.$monId.' - '.$langs->trans("NoAccountSelected").'</span></div>';
|
$msg .= '<div><span style="color:red">'.$langs->trans("Lineofinvoice").' '.$monId.' - '.$langs->trans("NoAccountSelected").'</span></div>';
|
||||||
$ko++;
|
$ko++;
|
||||||
} else {
|
} else {
|
||||||
@ -200,8 +208,7 @@ $formother = new FormOther($db);
|
|||||||
|
|
||||||
llxHeader('', $langs->trans("SuppliersVentilation"));
|
llxHeader('', $langs->trans("SuppliersVentilation"));
|
||||||
|
|
||||||
if (empty($chartaccountcode))
|
if (empty($chartaccountcode)) {
|
||||||
{
|
|
||||||
print $langs->trans("ErrorChartOfAccountSystemNotSelected");
|
print $langs->trans("ErrorChartOfAccountSystemNotSelected");
|
||||||
// End of page
|
// End of page
|
||||||
llxFooter();
|
llxFooter();
|
||||||
@ -269,16 +276,23 @@ $sql .= dolSqlDateFilter('f.datef', $search_day, $search_month, $search_year);
|
|||||||
if (strlen(trim($search_country))) {
|
if (strlen(trim($search_country))) {
|
||||||
$arrayofcode = getCountriesInEEC();
|
$arrayofcode = getCountriesInEEC();
|
||||||
$country_code_in_EEC = $country_code_in_EEC_without_me = '';
|
$country_code_in_EEC = $country_code_in_EEC_without_me = '';
|
||||||
foreach ($arrayofcode as $key => $value)
|
foreach ($arrayofcode as $key => $value) {
|
||||||
{
|
|
||||||
$country_code_in_EEC .= ($country_code_in_EEC ? "," : "")."'".$value."'";
|
$country_code_in_EEC .= ($country_code_in_EEC ? "," : "")."'".$value."'";
|
||||||
if ($value != $mysoc->country_code) $country_code_in_EEC_without_me .= ($country_code_in_EEC_without_me ? "," : "")."'".$value."'";
|
if ($value != $mysoc->country_code) {
|
||||||
|
$country_code_in_EEC_without_me .= ($country_code_in_EEC_without_me ? "," : "")."'".$value."'";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($search_country == 'special_allnotme') {
|
||||||
|
$sql .= " AND co.code <> '".$db->escape($mysoc->country_code)."'";
|
||||||
|
} elseif ($search_country == 'special_eec') {
|
||||||
|
$sql .= " AND co.code IN (".$country_code_in_EEC.")";
|
||||||
|
} elseif ($search_country == 'special_eecnotme') {
|
||||||
|
$sql .= " AND co.code IN (".$country_code_in_EEC_without_me.")";
|
||||||
|
} elseif ($search_country == 'special_noteec') {
|
||||||
|
$sql .= " AND co.code NOT IN (".$country_code_in_EEC.")";
|
||||||
|
} else {
|
||||||
|
$sql .= natural_search("co.code", $search_country);
|
||||||
}
|
}
|
||||||
if ($search_country == 'special_allnotme') $sql .= " AND co.code <> '".$db->escape($mysoc->country_code)."'";
|
|
||||||
elseif ($search_country == 'special_eec') $sql .= " AND co.code IN (".$country_code_in_EEC.")";
|
|
||||||
elseif ($search_country == 'special_eecnotme') $sql .= " AND co.code IN (".$country_code_in_EEC_without_me.")";
|
|
||||||
elseif ($search_country == 'special_noteec') $sql .= " AND co.code NOT IN (".$country_code_in_EEC.")";
|
|
||||||
else $sql .= natural_search("co.code", $search_country);
|
|
||||||
}
|
}
|
||||||
if (strlen(trim($search_tvaintra))) {
|
if (strlen(trim($search_tvaintra))) {
|
||||||
$sql .= natural_search("s.tva_intra", $search_tvaintra);
|
$sql .= natural_search("s.tva_intra", $search_tvaintra);
|
||||||
@ -299,12 +313,10 @@ $sql .= $db->order($sortfield, $sortorder);
|
|||||||
|
|
||||||
// Count total nb of records
|
// Count total nb of records
|
||||||
$nbtotalofrecords = '';
|
$nbtotalofrecords = '';
|
||||||
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
|
if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
|
||||||
{
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
$nbtotalofrecords = $db->num_rows($result);
|
$nbtotalofrecords = $db->num_rows($result);
|
||||||
if (($page * $limit) > $nbtotalofrecords) // if total resultset is smaller then paging size (filtering), goto and load page 0
|
if (($page * $limit) > $nbtotalofrecords) { // if total resultset is smaller then paging size (filtering), goto and load page 0
|
||||||
{
|
|
||||||
$page = 0;
|
$page = 0;
|
||||||
$offset = 0;
|
$offset = 0;
|
||||||
}
|
}
|
||||||
@ -322,21 +334,51 @@ if ($result) {
|
|||||||
$arrayofselected = is_array($toselect) ? $toselect : array();
|
$arrayofselected = is_array($toselect) ? $toselect : array();
|
||||||
|
|
||||||
$param = '';
|
$param = '';
|
||||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
$param .= '&contextpage='.urlencode($contextpage);
|
||||||
if ($search_societe) $param .= '&search_societe='.urlencode($search_societe);
|
}
|
||||||
if ($search_lineid) $param .= '&search_lineid='.urlencode($search_lineid);
|
if ($limit > 0 && $limit != $conf->liste_limit) {
|
||||||
if ($search_day) $param .= '&search_day='.urlencode($search_day);
|
$param .= '&limit='.urlencode($limit);
|
||||||
if ($search_month) $param .= '&search_month='.urlencode($search_month);
|
}
|
||||||
if ($search_year) $param .= '&search_year='.urlencode($search_year);
|
if ($search_societe) {
|
||||||
if ($search_invoice) $param .= '&search_invoice='.urlencode($search_invoice);
|
$param .= '&search_societe='.urlencode($search_societe);
|
||||||
if ($search_ref) $param .= '&search_ref='.urlencode($search_ref);
|
}
|
||||||
if ($search_label) $param .= '&search_label='.urlencode($search_label);
|
if ($search_lineid) {
|
||||||
if ($search_desc) $param .= '&search_desc='.urlencode($search_desc);
|
$param .= '&search_lineid='.urlencode($search_lineid);
|
||||||
if ($search_amount) $param .= '&search_amount='.urlencode($search_amount);
|
}
|
||||||
if ($search_vat) $param .= '&search_vat='.urlencode($search_vat);
|
if ($search_day) {
|
||||||
if ($search_country) $param .= "&search_country=".urlencode($search_country);
|
$param .= '&search_day='.urlencode($search_day);
|
||||||
if ($search_tvaintra) $param .= "&search_tvaintra=".urlencode($search_tvaintra);
|
}
|
||||||
|
if ($search_month) {
|
||||||
|
$param .= '&search_month='.urlencode($search_month);
|
||||||
|
}
|
||||||
|
if ($search_year) {
|
||||||
|
$param .= '&search_year='.urlencode($search_year);
|
||||||
|
}
|
||||||
|
if ($search_invoice) {
|
||||||
|
$param .= '&search_invoice='.urlencode($search_invoice);
|
||||||
|
}
|
||||||
|
if ($search_ref) {
|
||||||
|
$param .= '&search_ref='.urlencode($search_ref);
|
||||||
|
}
|
||||||
|
if ($search_label) {
|
||||||
|
$param .= '&search_label='.urlencode($search_label);
|
||||||
|
}
|
||||||
|
if ($search_desc) {
|
||||||
|
$param .= '&search_desc='.urlencode($search_desc);
|
||||||
|
}
|
||||||
|
if ($search_amount) {
|
||||||
|
$param .= '&search_amount='.urlencode($search_amount);
|
||||||
|
}
|
||||||
|
if ($search_vat) {
|
||||||
|
$param .= '&search_vat='.urlencode($search_vat);
|
||||||
|
}
|
||||||
|
if ($search_country) {
|
||||||
|
$param .= "&search_country=".urlencode($search_country);
|
||||||
|
}
|
||||||
|
if ($search_tvaintra) {
|
||||||
|
$param .= "&search_tvaintra=".urlencode($search_tvaintra);
|
||||||
|
}
|
||||||
|
|
||||||
$arrayofmassactions = array(
|
$arrayofmassactions = array(
|
||||||
'ventil'=>$langs->trans("Ventilate")
|
'ventil'=>$langs->trans("Ventilate")
|
||||||
@ -349,7 +391,9 @@ if ($result) {
|
|||||||
|
|
||||||
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">';
|
||||||
if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
if ($optioncss != '') {
|
||||||
|
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
|
||||||
|
}
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
|
||||||
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
@ -360,7 +404,9 @@ if ($result) {
|
|||||||
|
|
||||||
print '<span class="opacitymedium">'.$langs->trans("DescVentilTodoCustomer").'</span></br><br>';
|
print '<span class="opacitymedium">'.$langs->trans("DescVentilTodoCustomer").'</span></br><br>';
|
||||||
|
|
||||||
if ($msg) print $msg.'<br>';
|
if ($msg) {
|
||||||
|
print $msg.'<br>';
|
||||||
|
}
|
||||||
|
|
||||||
$moreforfilter = '';
|
$moreforfilter = '';
|
||||||
|
|
||||||
@ -373,7 +419,9 @@ if ($result) {
|
|||||||
print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_invoice" value="'.dol_escape_htmltag($search_invoice).'"></td>';
|
print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_invoice" value="'.dol_escape_htmltag($search_invoice).'"></td>';
|
||||||
//print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_label" value="'.dol_escape_htmltag($search_label).'"></td>';
|
//print '<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_label" value="'.dol_escape_htmltag($search_label).'"></td>';
|
||||||
print '<td class="liste_titre center nowraponall minwidth100imp">';
|
print '<td class="liste_titre center nowraponall minwidth100imp">';
|
||||||
if (!empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat valignmiddle maxwidth25" type="text" maxlength="2" name="search_day" value="'.$search_day.'">';
|
if (!empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) {
|
||||||
|
print '<input class="flat valignmiddle maxwidth25" type="text" maxlength="2" name="search_day" value="'.$search_day.'">';
|
||||||
|
}
|
||||||
print '<input class="flat valignmiddle maxwidth25" type="text" maxlength="2" name="search_month" value="'.$search_month.'">';
|
print '<input class="flat valignmiddle maxwidth25" type="text" maxlength="2" name="search_month" value="'.$search_month.'">';
|
||||||
$formother->select_year($search_year, 'search_year', 1, 20, 5);
|
$formother->select_year($search_year, 'search_year', 1, 20, 5);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -411,7 +459,9 @@ if ($result) {
|
|||||||
print_liste_field_titre("AccountAccountingSuggest", '', '', '', '', '', '', '', 'nowraponall ');
|
print_liste_field_titre("AccountAccountingSuggest", '', '', '', '', '', '', '', 'nowraponall ');
|
||||||
print_liste_field_titre("IntoAccount", '', '', '', '', '', '', '', 'center ');
|
print_liste_field_titre("IntoAccount", '', '', '', '', '', '', '', 'center ');
|
||||||
$checkpicto = '';
|
$checkpicto = '';
|
||||||
if ($massactionbutton) $checkpicto = $form->showCheckAddButtons('checkforselect', 1);
|
if ($massactionbutton) {
|
||||||
|
$checkpicto = $form->showCheckAddButtons('checkforselect', 1);
|
||||||
|
}
|
||||||
print_liste_field_titre($checkpicto, '', '', '', '', '', '', '', 'center ');
|
print_liste_field_titre($checkpicto, '', '', '', '', '', '', '', 'center ');
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
@ -496,7 +546,9 @@ if ($result) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($objp->code_sell_l == -1) $objp->code_sell_l = '';
|
if ($objp->code_sell_l == -1) {
|
||||||
|
$objp->code_sell_l = '';
|
||||||
|
}
|
||||||
|
|
||||||
// Level 2: Search suggested account for product/service (similar code exists in page index.php to make automatic binding)
|
// Level 2: Search suggested account for product/service (similar code exists in page index.php to make automatic binding)
|
||||||
$suggestedaccountingaccountfor = '';
|
$suggestedaccountingaccountfor = '';
|
||||||
@ -528,7 +580,9 @@ if ($result) {
|
|||||||
} else {
|
} else {
|
||||||
$code_buy_p_notset = 'color:orange';
|
$code_buy_p_notset = 'color:orange';
|
||||||
}
|
}
|
||||||
if (empty($objp->code_buy_l) && empty($objp->code_buy_p)) $code_buy_p_notset = 'color:red';
|
if (empty($objp->code_buy_l) && empty($objp->code_buy_p)) {
|
||||||
|
$code_buy_p_notset = 'color:red';
|
||||||
|
}
|
||||||
|
|
||||||
// $objp->code_buy_l is now default code of product/service
|
// $objp->code_buy_l is now default code of product/service
|
||||||
// $objp->code_buy_p is now code of product/service
|
// $objp->code_buy_p is now code of product/service
|
||||||
@ -551,9 +605,12 @@ if ($result) {
|
|||||||
|
|
||||||
// Ref Product
|
// Ref Product
|
||||||
print '<td class="tdoverflowmax150">';
|
print '<td class="tdoverflowmax150">';
|
||||||
if ($product_static->id > 0)
|
if ($product_static->id > 0) {
|
||||||
print $product_static->getNomUrl(1);
|
print $product_static->getNomUrl(1);
|
||||||
if ($objp->product_label) print '<br><span class="opacitymedium small">'.$objp->product_label.'</span>';
|
}
|
||||||
|
if ($objp->product_label) {
|
||||||
|
print '<br><span class="opacitymedium small">'.$objp->product_label.'</span>';
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
// Description
|
// Description
|
||||||
@ -568,8 +625,9 @@ if ($result) {
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
// Vat rate
|
// Vat rate
|
||||||
if ($objp->vat_tx_l != $objp->vat_tx_p)
|
if ($objp->vat_tx_l != $objp->vat_tx_p) {
|
||||||
$code_vat_differ = 'font-weight:bold; text-decoration:blink; color:red';
|
$code_vat_differ = 'font-weight:bold; text-decoration:blink; color:red';
|
||||||
|
}
|
||||||
print '<td style="'.$code_vat_differ.'" class="right">';
|
print '<td style="'.$code_vat_differ.'" class="right">';
|
||||||
print vatrate($objp->tva_tx_line.($objp->vat_src_code ? ' ('.$objp->vat_src_code.')' : ''));
|
print vatrate($objp->tva_tx_line.($objp->vat_src_code ? ' ('.$objp->vat_src_code.')' : ''));
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -590,17 +648,22 @@ if ($result) {
|
|||||||
print '<td>';
|
print '<td>';
|
||||||
$s = '<span class="small">1. '.(($objp->type_l == 1) ? $langs->trans("DefaultForService") : $langs->trans("DefaultForProduct")).': </span>';
|
$s = '<span class="small">1. '.(($objp->type_l == 1) ? $langs->trans("DefaultForService") : $langs->trans("DefaultForProduct")).': </span>';
|
||||||
$shelp = '';
|
$shelp = '';
|
||||||
if ($suggestedaccountingaccountbydefaultfor == 'eec') $shelp .= $langs->trans("SaleEEC");
|
if ($suggestedaccountingaccountbydefaultfor == 'eec') {
|
||||||
elseif ($suggestedaccountingaccountbydefaultfor == 'export') $shelp .= $langs->trans("SaleExport");
|
$shelp .= $langs->trans("SaleEEC");
|
||||||
|
} elseif ($suggestedaccountingaccountbydefaultfor == 'export') {
|
||||||
|
$shelp .= $langs->trans("SaleExport");
|
||||||
|
}
|
||||||
$s .= ($objp->code_buy_l > 0 ? length_accountg($objp->code_buy_l) : '<span style="'.$code_buy_p_notset.'">'.$langs->trans("NotDefined").'</span>');
|
$s .= ($objp->code_buy_l > 0 ? length_accountg($objp->code_buy_l) : '<span style="'.$code_buy_p_notset.'">'.$langs->trans("NotDefined").'</span>');
|
||||||
print $form->textwithpicto($s, $shelp, 1, 'help', '', 0, 2, '', 1);
|
print $form->textwithpicto($s, $shelp, 1, 'help', '', 0, 2, '', 1);
|
||||||
if ($objp->product_id > 0)
|
if ($objp->product_id > 0) {
|
||||||
{
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
$s = '<span class="small">2. '.(($objp->type_l == 1) ? $langs->trans("ThisService") : $langs->trans("ThisProduct")).': </span>';
|
$s = '<span class="small">2. '.(($objp->type_l == 1) ? $langs->trans("ThisService") : $langs->trans("ThisProduct")).': </span>';
|
||||||
$shelp = '';
|
$shelp = '';
|
||||||
if ($suggestedaccountingaccountfor == 'eec') $shelp = $langs->trans("SaleEEC");
|
if ($suggestedaccountingaccountfor == 'eec') {
|
||||||
elseif ($suggestedaccountingaccountfor == 'export') $shelp = $langs->trans("SaleExport");
|
$shelp = $langs->trans("SaleEEC");
|
||||||
|
} elseif ($suggestedaccountingaccountfor == 'export') {
|
||||||
|
$shelp = $langs->trans("SaleExport");
|
||||||
|
}
|
||||||
$s .= (empty($objp->code_buy_p) ? '<span style="'.$code_buy_p_notset.'">'.$langs->trans("NotDefined").'</span>' : length_accountg($objp->code_buy_p));
|
$s .= (empty($objp->code_buy_p) ? '<span style="'.$code_buy_p_notset.'">'.$langs->trans("NotDefined").'</span>' : length_accountg($objp->code_buy_p));
|
||||||
print $form->textwithpicto($s, $shelp, 1, 'help', '', 0, 2, '', 1);
|
print $form->textwithpicto($s, $shelp, 1, 'help', '', 0, 2, '', 1);
|
||||||
} else {
|
} else {
|
||||||
@ -620,10 +683,8 @@ if ($result) {
|
|||||||
// Suggested accounting account
|
// Suggested accounting account
|
||||||
print '<td>';
|
print '<td>';
|
||||||
$suggestedid = $objp->aarowid_suggest;
|
$suggestedid = $objp->aarowid_suggest;
|
||||||
if (empty($suggestedid) && empty($objp->code_buy_p) && !empty($objp->code_buy_l) && empty($conf->global->ACCOUNTANCY_DO_NOT_AUTOFILL_ACCOUNT_WITH_GENERIC))
|
if (empty($suggestedid) && empty($objp->code_buy_p) && !empty($objp->code_buy_l) && empty($conf->global->ACCOUNTANCY_DO_NOT_AUTOFILL_ACCOUNT_WITH_GENERIC)) {
|
||||||
{
|
if (empty($accountingaccount_codetotid_cache[$objp->code_buy_l])) {
|
||||||
if (empty($accountingaccount_codetotid_cache[$objp->code_buy_l]))
|
|
||||||
{
|
|
||||||
$tmpaccount = new AccountingAccount($db);
|
$tmpaccount = new AccountingAccount($db);
|
||||||
$tmpaccount->fetch(0, $objp->code_buy_l, 1);
|
$tmpaccount->fetch(0, $objp->code_buy_l, 1);
|
||||||
if ($tmpaccount->id > 0) {
|
if ($tmpaccount->id > 0) {
|
||||||
|
|||||||
@ -17,8 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// Protection to avoid direct call of template
|
// Protection to avoid direct call of template
|
||||||
if (empty($conf) || !is_object($conf))
|
if (empty($conf) || !is_object($conf)) {
|
||||||
{
|
|
||||||
print "Error, template page can't be called as URL";
|
print "Error, template page can't be called as URL";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
@ -37,11 +36,9 @@ header('Content-Type: text/csv');
|
|||||||
include_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountancyexport.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountancyexport.class.php';
|
||||||
$accountancyexport = new AccountancyExport($db);
|
$accountancyexport = new AccountancyExport($db);
|
||||||
|
|
||||||
if ($accountancyexport->getFormatCode($formatexportset) == $accountancyexport::$EXPORT_TYPE_FEC && $type_export == "general_ledger") // Specific filename for FEC model export into the general ledger
|
if ($accountancyexport->getFormatCode($formatexportset) == $accountancyexport::$EXPORT_TYPE_FEC && $type_export == "general_ledger") { // Specific filename for FEC model export into the general ledger
|
||||||
{
|
|
||||||
// FEC format is defined here: https://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000027804775&cidTexte=LEGITEXT000006069583&dateTexte=20130802&oldAction=rechCodeArticle
|
// FEC format is defined here: https://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000027804775&cidTexte=LEGITEXT000006069583&dateTexte=20130802&oldAction=rechCodeArticle
|
||||||
if (empty($search_date_end))
|
if (empty($search_date_end)) {
|
||||||
{
|
|
||||||
// TODO Get the max date into bookeeping table
|
// TODO Get the max date into bookeeping table
|
||||||
$search_date_end = dol_now();
|
$search_date_end = dol_now();
|
||||||
}
|
}
|
||||||
@ -49,8 +46,9 @@ if ($accountancyexport->getFormatCode($formatexportset) == $accountancyexport::$
|
|||||||
$tmparray = dol_getdate($datetouseforfilename);
|
$tmparray = dol_getdate($datetouseforfilename);
|
||||||
$fiscalmonth = empty($conf->global->SOCIETE_FISCAL_MONTH_START) ? 1 : $conf->global->SOCIETE_FISCAL_MONTH_START;
|
$fiscalmonth = empty($conf->global->SOCIETE_FISCAL_MONTH_START) ? 1 : $conf->global->SOCIETE_FISCAL_MONTH_START;
|
||||||
// Define end of month to use
|
// Define end of month to use
|
||||||
if ($tmparray['mon'] <= $fiscalmonth) $tmparray['mon'] = $fiscalmonth;
|
if ($tmparray['mon'] <= $fiscalmonth) {
|
||||||
else {
|
$tmparray['mon'] = $fiscalmonth;
|
||||||
|
} else {
|
||||||
$tmparray['mon'] = $fiscalmonth;
|
$tmparray['mon'] = $fiscalmonth;
|
||||||
$tmparray['year']++;
|
$tmparray['year']++;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,7 +37,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php';
|
|||||||
// Load translation files required by the page
|
// Load translation files required by the page
|
||||||
$langs->loadLangs(array("admin", "members"));
|
$langs->loadLangs(array("admin", "members"));
|
||||||
|
|
||||||
if (!$user->admin) accessforbidden();
|
if (!$user->admin) {
|
||||||
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$choices = array('yesno', 'texte', 'chaine');
|
$choices = array('yesno', 'texte', 'chaine');
|
||||||
@ -126,17 +128,24 @@ if ($action == 'update' || $action == 'add') {
|
|||||||
$constname = GETPOST('constname', 'alpha');
|
$constname = GETPOST('constname', 'alpha');
|
||||||
$constvalue = (GETPOST('constvalue_'.$constname) ? GETPOST('constvalue_'.$constname) : GETPOST('constvalue'));
|
$constvalue = (GETPOST('constvalue_'.$constname) ? GETPOST('constvalue_'.$constname) : GETPOST('constvalue'));
|
||||||
|
|
||||||
if (($constname == 'ADHERENT_CARD_TYPE' || $constname == 'ADHERENT_ETIQUETTE_TYPE' || $constname == 'ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS') && $constvalue == -1) $constvalue = '';
|
if (($constname == 'ADHERENT_CARD_TYPE' || $constname == 'ADHERENT_ETIQUETTE_TYPE' || $constname == 'ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS') && $constvalue == -1) {
|
||||||
|
$constvalue = '';
|
||||||
|
}
|
||||||
if ($constname == 'ADHERENT_LOGIN_NOT_REQUIRED') { // Invert choice
|
if ($constname == 'ADHERENT_LOGIN_NOT_REQUIRED') { // Invert choice
|
||||||
if ($constvalue) $constvalue = 0;
|
if ($constvalue) {
|
||||||
else $constvalue = 1;
|
$constvalue = 0;
|
||||||
|
} else {
|
||||||
|
$constvalue = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$consttype = GETPOST('consttype', 'alpha');
|
$consttype = GETPOST('consttype', 'alpha');
|
||||||
$constnote = GETPOST('constnote');
|
$constnote = GETPOST('constnote');
|
||||||
$res = dolibarr_set_const($db, $constname, $constvalue, $choices[$consttype], 0, $constnote, $conf->entity);
|
$res = dolibarr_set_const($db, $constname, $constvalue, $choices[$consttype], 0, $constnote, $conf->entity);
|
||||||
|
|
||||||
if (!($res > 0)) $error++;
|
if (!($res > 0)) {
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
@ -211,9 +220,15 @@ print "</td></tr>\n";
|
|||||||
// Insert subscription into bank account
|
// Insert subscription into bank account
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("MoreActionsOnSubscription").'</td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("MoreActionsOnSubscription").'</td>';
|
||||||
$arraychoices = array('0'=>$langs->trans("None"));
|
$arraychoices = array('0'=>$langs->trans("None"));
|
||||||
if (!empty($conf->banque->enabled)) $arraychoices['bankdirect'] = $langs->trans("MoreActionBankDirect");
|
if (!empty($conf->banque->enabled)) {
|
||||||
if (!empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) $arraychoices['invoiceonly'] = $langs->trans("MoreActionInvoiceOnly");
|
$arraychoices['bankdirect'] = $langs->trans("MoreActionBankDirect");
|
||||||
if (!empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) $arraychoices['bankviainvoice'] = $langs->trans("MoreActionBankViaInvoice");
|
}
|
||||||
|
if (!empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) {
|
||||||
|
$arraychoices['invoiceonly'] = $langs->trans("MoreActionInvoiceOnly");
|
||||||
|
}
|
||||||
|
if (!empty($conf->banque->enabled) && !empty($conf->societe->enabled) && !empty($conf->facture->enabled)) {
|
||||||
|
$arraychoices['bankviainvoice'] = $langs->trans("MoreActionBankViaInvoice");
|
||||||
|
}
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print $form->selectarray('ADHERENT_BANK_USE', $arraychoices, $conf->global->ADHERENT_BANK_USE, 0);
|
print $form->selectarray('ADHERENT_BANK_USE', $arraychoices, $conf->global->ADHERENT_BANK_USE, 0);
|
||||||
if ($conf->global->ADHERENT_BANK_USE == 'bankdirect' || $conf->global->ADHERENT_BANK_USE == 'bankviainvoice') {
|
if ($conf->global->ADHERENT_BANK_USE == 'bankdirect' || $conf->global->ADHERENT_BANK_USE == 'bankviainvoice') {
|
||||||
@ -349,7 +364,9 @@ foreach ($dirmodels as $reldir) {
|
|||||||
$module = new $classname($db);
|
$module = new $classname($db);
|
||||||
|
|
||||||
$modulequalified = 1;
|
$modulequalified = 1;
|
||||||
if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) $modulequalified = 0;
|
if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) {
|
||||||
|
$modulequalified = 0;
|
||||||
|
}
|
||||||
if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) {
|
if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) {
|
||||||
$modulequalified = 0;
|
$modulequalified = 0;
|
||||||
}
|
}
|
||||||
@ -404,8 +421,7 @@ foreach ($dirmodels as $reldir) {
|
|||||||
|
|
||||||
// Preview
|
// Preview
|
||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
if ($module->type == 'pdf')
|
if ($module->type == 'pdf') {
|
||||||
{
|
|
||||||
print '<a href="'.$_SERVER["PHP_SELF"].'?action=specimen&module='.$name.'">'.img_object($langs->trans("Preview"), 'contract').'</a>';
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=specimen&module='.$name.'">'.img_object($langs->trans("Preview"), 'contract').'</a>';
|
||||||
} else {
|
} else {
|
||||||
print img_object($langs->trans("PreviewNotAvailable"), 'generic');
|
print img_object($langs->trans("PreviewNotAvailable"), 'generic');
|
||||||
|
|||||||
@ -36,7 +36,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php';
|
|||||||
// Load translation files required by the page
|
// Load translation files required by the page
|
||||||
$langs->loadLangs(array("admin", "members"));
|
$langs->loadLangs(array("admin", "members"));
|
||||||
|
|
||||||
if (!$user->admin) accessforbidden();
|
if (!$user->admin) {
|
||||||
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$oldtypetonewone = array('texte'=>'text', 'chaine'=>'string'); // old type to new ones
|
$oldtypetonewone = array('texte'=>'text', 'chaine'=>'string'); // old type to new ones
|
||||||
@ -92,7 +94,9 @@ if ($action == 'update' || $action == 'add') {
|
|||||||
|
|
||||||
$res = dolibarr_set_const($db, $constname, $constvalue, $typetouse, 0, $constnote, $conf->entity);
|
$res = dolibarr_set_const($db, $constname, $constvalue, $typetouse, 0, $constnote, $conf->entity);
|
||||||
|
|
||||||
if (!($res > 0)) $error++;
|
if (!($res > 0)) {
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
|
|||||||
@ -37,13 +37,17 @@ $form = new Form($db);
|
|||||||
// List of supported format
|
// List of supported format
|
||||||
$tmptype2label = ExtraFields::$type2label;
|
$tmptype2label = ExtraFields::$type2label;
|
||||||
$type2label = array('');
|
$type2label = array('');
|
||||||
foreach ($tmptype2label as $key => $val) $type2label[$key] = $langs->transnoentitiesnoconv($val);
|
foreach ($tmptype2label as $key => $val) {
|
||||||
|
$type2label[$key] = $langs->transnoentitiesnoconv($val);
|
||||||
|
}
|
||||||
|
|
||||||
$action = GETPOST('action', 'aZ09');
|
$action = GETPOST('action', 'aZ09');
|
||||||
$attrname = GETPOST('attrname', 'alpha');
|
$attrname = GETPOST('attrname', 'alpha');
|
||||||
$elementtype = 'adherent'; //Must be the $table_element of the class that manage extrafield
|
$elementtype = 'adherent'; //Must be the $table_element of the class that manage extrafield
|
||||||
|
|
||||||
if (!$user->admin) accessforbidden();
|
if (!$user->admin) {
|
||||||
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -40,13 +40,17 @@ $form = new Form($db);
|
|||||||
// List of supported format
|
// List of supported format
|
||||||
$tmptype2label = ExtraFields::$type2label;
|
$tmptype2label = ExtraFields::$type2label;
|
||||||
$type2label = array('');
|
$type2label = array('');
|
||||||
foreach ($tmptype2label as $key => $val) $type2label[$key] = $langs->transnoentitiesnoconv($val);
|
foreach ($tmptype2label as $key => $val) {
|
||||||
|
$type2label[$key] = $langs->transnoentitiesnoconv($val);
|
||||||
|
}
|
||||||
|
|
||||||
$action = GETPOST('action', 'aZ09');
|
$action = GETPOST('action', 'aZ09');
|
||||||
$attrname = GETPOST('attrname', 'alpha');
|
$attrname = GETPOST('attrname', 'alpha');
|
||||||
$elementtype = 'adherent_type'; //Must be the $table_element of the class that manage extrafield
|
$elementtype = 'adherent_type'; //Must be the $table_element of the class that manage extrafield
|
||||||
|
|
||||||
if (!$user->admin) accessforbidden();
|
if (!$user->admin) {
|
||||||
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -35,7 +35,9 @@ $langs->loadLangs(array("admin", "members"));
|
|||||||
|
|
||||||
$action = GETPOST('action', 'aZ09');
|
$action = GETPOST('action', 'aZ09');
|
||||||
|
|
||||||
if (!$user->admin) accessforbidden();
|
if (!$user->admin) {
|
||||||
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -43,8 +45,11 @@ if (!$user->admin) accessforbidden();
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
if ($action == 'setMEMBER_ENABLE_PUBLIC') {
|
if ($action == 'setMEMBER_ENABLE_PUBLIC') {
|
||||||
if (GETPOST('value')) dolibarr_set_const($db, 'MEMBER_ENABLE_PUBLIC', 1, 'chaine', 0, '', $conf->entity);
|
if (GETPOST('value')) {
|
||||||
else dolibarr_set_const($db, 'MEMBER_ENABLE_PUBLIC', 0, 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, 'MEMBER_ENABLE_PUBLIC', 1, 'chaine', 0, '', $conf->entity);
|
||||||
|
} else {
|
||||||
|
dolibarr_set_const($db, 'MEMBER_ENABLE_PUBLIC', 0, 'chaine', 0, '', $conf->entity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'update') {
|
if ($action == 'update') {
|
||||||
@ -58,12 +63,15 @@ if ($action == 'update') {
|
|||||||
$res = dolibarr_set_const($db, "MEMBER_NEWFORM_AMOUNT", $amount, 'chaine', 0, '', $conf->entity);
|
$res = dolibarr_set_const($db, "MEMBER_NEWFORM_AMOUNT", $amount, 'chaine', 0, '', $conf->entity);
|
||||||
$res = dolibarr_set_const($db, "MEMBER_NEWFORM_EDITAMOUNT", $editamount, 'chaine', 0, '', $conf->entity);
|
$res = dolibarr_set_const($db, "MEMBER_NEWFORM_EDITAMOUNT", $editamount, 'chaine', 0, '', $conf->entity);
|
||||||
$res = dolibarr_set_const($db, "MEMBER_NEWFORM_PAYONLINE", $payonline, 'chaine', 0, '', $conf->entity);
|
$res = dolibarr_set_const($db, "MEMBER_NEWFORM_PAYONLINE", $payonline, 'chaine', 0, '', $conf->entity);
|
||||||
if ($forcetype < 0) $res = dolibarr_del_const($db, "MEMBER_NEWFORM_FORCETYPE", $conf->entity);
|
if ($forcetype < 0) {
|
||||||
else {
|
$res = dolibarr_del_const($db, "MEMBER_NEWFORM_FORCETYPE", $conf->entity);
|
||||||
|
} else {
|
||||||
$res = dolibarr_set_const($db, "MEMBER_NEWFORM_FORCETYPE", $forcetype, 'chaine', 0, '', $conf->entity);
|
$res = dolibarr_set_const($db, "MEMBER_NEWFORM_FORCETYPE", $forcetype, 'chaine', 0, '', $conf->entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!($res > 0)) $error++;
|
if (!($res > 0)) {
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
|
||||||
@ -133,6 +141,7 @@ if ($conf->use_javascript_ajax) {
|
|||||||
|
|
||||||
print '<span class="opacitymedium">'.$langs->trans("BlankSubscriptionFormDesc").'</span><br><br>';
|
print '<span class="opacitymedium">'.$langs->trans("BlankSubscriptionFormDesc").'</span><br><br>';
|
||||||
|
|
||||||
|
$param = '';
|
||||||
|
|
||||||
$enabledisablehtml = $langs->trans("EnablePublicSubscriptionForm").' ';
|
$enabledisablehtml = $langs->trans("EnablePublicSubscriptionForm").' ';
|
||||||
if (empty($conf->global->MEMBER_ENABLE_PUBLIC)) {
|
if (empty($conf->global->MEMBER_ENABLE_PUBLIC)) {
|
||||||
@ -194,9 +203,15 @@ if (!empty($conf->global->MEMBER_ENABLE_PUBLIC)) {
|
|||||||
$listofval = array();
|
$listofval = array();
|
||||||
$listofval['-1'] = $langs->trans('No');
|
$listofval['-1'] = $langs->trans('No');
|
||||||
$listofval['all'] = $langs->trans('Yes').' ('.$langs->trans("VisitorCanChooseItsPaymentMode").')';
|
$listofval['all'] = $langs->trans('Yes').' ('.$langs->trans("VisitorCanChooseItsPaymentMode").')';
|
||||||
if (!empty($conf->paybox->enabled)) $listofval['paybox'] = 'Paybox';
|
if (!empty($conf->paybox->enabled)) {
|
||||||
if (!empty($conf->paypal->enabled)) $listofval['paypal'] = 'PayPal';
|
$listofval['paybox'] = 'Paybox';
|
||||||
if (!empty($conf->stripe->enabled)) $listofval['stripe'] = 'Stripe';
|
}
|
||||||
|
if (!empty($conf->paypal->enabled)) {
|
||||||
|
$listofval['paypal'] = 'PayPal';
|
||||||
|
}
|
||||||
|
if (!empty($conf->stripe->enabled)) {
|
||||||
|
$listofval['stripe'] = 'Stripe';
|
||||||
|
}
|
||||||
print $form->selectarray("MEMBER_NEWFORM_PAYONLINE", $listofval, (!empty($conf->global->MEMBER_NEWFORM_PAYONLINE) ? $conf->global->MEMBER_NEWFORM_PAYONLINE : ''), 0);
|
print $form->selectarray("MEMBER_NEWFORM_PAYONLINE", $listofval, (!empty($conf->global->MEMBER_NEWFORM_PAYONLINE) ? $conf->global->MEMBER_NEWFORM_PAYONLINE : ''), 0);
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
|
|
||||||
|
|||||||
@ -42,16 +42,24 @@ $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
|
|||||||
$sortfield = GETPOST("sortfield", 'alpha');
|
$sortfield = GETPOST("sortfield", 'alpha');
|
||||||
$sortorder = GETPOST("sortorder", 'alpha');
|
$sortorder = GETPOST("sortorder", 'alpha');
|
||||||
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
||||||
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1
|
if (empty($page) || $page == -1) {
|
||||||
|
$page = 0;
|
||||||
|
} // If $page is not defined, or '' or -1
|
||||||
$offset = $limit * $page;
|
$offset = $limit * $page;
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
if (!$sortfield) $sortfield = 'a.datep,a.id';
|
if (!$sortfield) {
|
||||||
if (!$sortorder) $sortorder = 'DESC';
|
$sortfield = 'a.datep,a.id';
|
||||||
|
}
|
||||||
|
if (!$sortorder) {
|
||||||
|
$sortorder = 'DESC';
|
||||||
|
}
|
||||||
|
|
||||||
if (GETPOST('actioncode', 'array')) {
|
if (GETPOST('actioncode', 'array')) {
|
||||||
$actioncode = GETPOST('actioncode', 'array', 3);
|
$actioncode = GETPOST('actioncode', 'array', 3);
|
||||||
if (!count($actioncode)) $actioncode = '0';
|
if (!count($actioncode)) {
|
||||||
|
$actioncode = '0';
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT));
|
$actioncode = GETPOST("actioncode", "alpha", 3) ?GETPOST("actioncode", "alpha", 3) : (GETPOST("actioncode") == '0' ? '0' : (empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT) ? '' : $conf->global->AGENDA_DEFAULT_FILTER_TYPE_FOR_OBJECT));
|
||||||
}
|
}
|
||||||
@ -76,7 +84,9 @@ if ($result > 0) {
|
|||||||
|
|
||||||
$parameters = array('id'=>$id, 'objcanvas'=>$objcanvas);
|
$parameters = array('id'=>$id, 'objcanvas'=>$objcanvas);
|
||||||
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
||||||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
if ($reshook < 0) {
|
||||||
|
setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($reshook)) {
|
if (empty($reshook)) {
|
||||||
// Cancel
|
// Cancel
|
||||||
@ -115,7 +125,9 @@ if ($object->id > 0) {
|
|||||||
$helpurl = "EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros";
|
$helpurl = "EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros";
|
||||||
llxHeader("", $title, $helpurl);
|
llxHeader("", $title, $helpurl);
|
||||||
|
|
||||||
if (!empty($conf->notification->enabled)) $langs->load("mails");
|
if (!empty($conf->notification->enabled)) {
|
||||||
|
$langs->load("mails");
|
||||||
|
}
|
||||||
$head = member_prepare_head($object);
|
$head = member_prepare_head($object);
|
||||||
|
|
||||||
print dol_get_fiche_head($head, 'agenda', $langs->trans("Member"), -1, 'user');
|
print dol_get_fiche_head($head, 'agenda', $langs->trans("Member"), -1, 'user');
|
||||||
@ -149,8 +161,12 @@ if ($object->id > 0) {
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
$param = '&id='.$id;
|
$param = '&id='.$id;
|
||||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.$contextpage;
|
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) {
|
||||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.$limit;
|
$param .= '&contextpage='.$contextpage;
|
||||||
|
}
|
||||||
|
if ($limit > 0 && $limit != $conf->liste_limit) {
|
||||||
|
$param .= '&limit='.$limit;
|
||||||
|
}
|
||||||
|
|
||||||
print_barre_liste($langs->trans("ActionsOnMember"), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', '', $newcardbutton, '', 0, 1, 1);
|
print_barre_liste($langs->trans("ActionsOnMember"), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', '', $newcardbutton, '', 0, 1, 1);
|
||||||
|
|
||||||
|
|||||||
@ -70,7 +70,9 @@ abstract class ActionsAdherentCardCommon
|
|||||||
else
|
else
|
||||||
{*/
|
{*/
|
||||||
$object = new Adherent($this->db);
|
$object = new Adherent($this->db);
|
||||||
if (!empty($id)) $object->fetch($id);
|
if (!empty($id)) {
|
||||||
|
$object->fetch($id);
|
||||||
|
}
|
||||||
$this->object = $object;
|
$this->object = $object;
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
@ -89,7 +91,9 @@ abstract class ActionsAdherentCardCommon
|
|||||||
global $conf, $langs, $user, $canvas;
|
global $conf, $langs, $user, $canvas;
|
||||||
global $form, $formcompany, $objsoc;
|
global $form, $formcompany, $objsoc;
|
||||||
|
|
||||||
if ($action == 'add' || $action == 'update') $this->assign_post();
|
if ($action == 'add' || $action == 'update') {
|
||||||
|
$this->assign_post();
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($this->object as $key => $value) {
|
foreach ($this->object as $key => $value) {
|
||||||
$this->tpl[$key] = $value;
|
$this->tpl[$key] = $value;
|
||||||
@ -123,12 +127,24 @@ abstract class ActionsAdherentCardCommon
|
|||||||
|
|
||||||
// Predefined with third party
|
// Predefined with third party
|
||||||
if ((isset($objsoc->typent_code) && $objsoc->typent_code == 'TE_PRIVATE')) {
|
if ((isset($objsoc->typent_code) && $objsoc->typent_code == 'TE_PRIVATE')) {
|
||||||
if (dol_strlen(trim($this->object->address)) == 0) $this->tpl['address'] = $objsoc->address;
|
if (dol_strlen(trim($this->object->address)) == 0) {
|
||||||
if (dol_strlen(trim($this->object->zip)) == 0) $this->object->zip = $objsoc->zip;
|
$this->tpl['address'] = $objsoc->address;
|
||||||
if (dol_strlen(trim($this->object->town)) == 0) $this->object->town = $objsoc->town;
|
}
|
||||||
if (dol_strlen(trim($this->object->phone_perso)) == 0) $this->object->phone_perso = $objsoc->phone;
|
if (dol_strlen(trim($this->object->zip)) == 0) {
|
||||||
if (dol_strlen(trim($this->object->phone_mobile)) == 0) $this->object->phone_mobile = $objsoc->phone_mobile;
|
$this->object->zip = $objsoc->zip;
|
||||||
if (dol_strlen(trim($this->object->email)) == 0) $this->object->email = $objsoc->email;
|
}
|
||||||
|
if (dol_strlen(trim($this->object->town)) == 0) {
|
||||||
|
$this->object->town = $objsoc->town;
|
||||||
|
}
|
||||||
|
if (dol_strlen(trim($this->object->phone_perso)) == 0) {
|
||||||
|
$this->object->phone_perso = $objsoc->phone;
|
||||||
|
}
|
||||||
|
if (dol_strlen(trim($this->object->phone_mobile)) == 0) {
|
||||||
|
$this->object->phone_mobile = $objsoc->phone_mobile;
|
||||||
|
}
|
||||||
|
if (dol_strlen(trim($this->object->email)) == 0) {
|
||||||
|
$this->object->email = $objsoc->email;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Zip
|
// Zip
|
||||||
@ -137,17 +153,24 @@ abstract class ActionsAdherentCardCommon
|
|||||||
// Town
|
// Town
|
||||||
$this->tpl['select_town'] = $formcompany->select_ziptown($this->object->town, 'town', array('zipcode', 'selectcountry_id', 'state_id'));
|
$this->tpl['select_town'] = $formcompany->select_ziptown($this->object->town, 'town', array('zipcode', 'selectcountry_id', 'state_id'));
|
||||||
|
|
||||||
if (dol_strlen(trim($this->object->country_id)) == 0) $this->object->country_id = $objsoc->country_id;
|
if (dol_strlen(trim($this->object->country_id)) == 0) {
|
||||||
|
$this->object->country_id = $objsoc->country_id;
|
||||||
|
}
|
||||||
|
|
||||||
// Country
|
// Country
|
||||||
$this->tpl['select_country'] = $form->select_country($this->object->country_id, 'country_id');
|
$this->tpl['select_country'] = $form->select_country($this->object->country_id, 'country_id');
|
||||||
$countrynotdefined = $langs->trans("ErrorSetACountryFirst").' ('.$langs->trans("SeeAbove").')';
|
$countrynotdefined = $langs->trans("ErrorSetACountryFirst").' ('.$langs->trans("SeeAbove").')';
|
||||||
|
|
||||||
if ($user->admin) $this->tpl['info_admin'] = info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
|
if ($user->admin) {
|
||||||
|
$this->tpl['info_admin'] = info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
|
||||||
|
}
|
||||||
|
|
||||||
// State
|
// State
|
||||||
if ($this->object->country_id) $this->tpl['select_state'] = $formcompany->select_state($this->object->state_id, $this->object->country_code);
|
if ($this->object->country_id) {
|
||||||
else $this->tpl['select_state'] = $countrynotdefined;
|
$this->tpl['select_state'] = $formcompany->select_state($this->object->state_id, $this->object->country_code);
|
||||||
|
} else {
|
||||||
|
$this->tpl['select_state'] = $countrynotdefined;
|
||||||
|
}
|
||||||
|
|
||||||
// Physical or Moral
|
// Physical or Moral
|
||||||
$selectarray = array('0'=>$langs->trans("Physical"), '1'=>$langs->trans("Moral"));
|
$selectarray = array('0'=>$langs->trans("Physical"), '1'=>$langs->trans("Moral"));
|
||||||
@ -166,7 +189,9 @@ abstract class ActionsAdherentCardCommon
|
|||||||
$dolibarr_user = new User($this->db);
|
$dolibarr_user = new User($this->db);
|
||||||
$result = $dolibarr_user->fetch($this->object->user_id);
|
$result = $dolibarr_user->fetch($this->object->user_id);
|
||||||
$this->tpl['dolibarr_user'] = $dolibarr_user->getLoginUrl(1);
|
$this->tpl['dolibarr_user'] = $dolibarr_user->getLoginUrl(1);
|
||||||
} else $this->tpl['dolibarr_user'] = $langs->trans("NoDolibarrAccess");
|
} else {
|
||||||
|
$this->tpl['dolibarr_user'] = $langs->trans("NoDolibarrAccess");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'view' || $action == 'delete') {
|
if ($action == 'view' || $action == 'delete') {
|
||||||
|
|||||||
@ -60,9 +60,15 @@ class ActionsAdherentCardDefault extends ActionsAdherentCardCommon
|
|||||||
|
|
||||||
$out = '';
|
$out = '';
|
||||||
|
|
||||||
if ($action == 'view') $out .= (!empty($conf->global->ADHERENT_ADDRESSES_MANAGEMENT) ? $langs->trans("Adherent") : $langs->trans("ContactAddress"));
|
if ($action == 'view') {
|
||||||
if ($action == 'edit') $out .= (!empty($conf->global->ADHERENT_ADDRESSES_MANAGEMENT) ? $langs->trans("EditAdherent") : $langs->trans("EditAdherentAddress"));
|
$out .= (!empty($conf->global->ADHERENT_ADDRESSES_MANAGEMENT) ? $langs->trans("Adherent") : $langs->trans("ContactAddress"));
|
||||||
if ($action == 'create') $out .= (!empty($conf->global->ADHERENT_ADDRESSES_MANAGEMENT) ? $langs->trans("NewAdherent") : $langs->trans("NewAdherentAddress"));
|
}
|
||||||
|
if ($action == 'edit') {
|
||||||
|
$out .= (!empty($conf->global->ADHERENT_ADDRESSES_MANAGEMENT) ? $langs->trans("EditAdherent") : $langs->trans("EditAdherentAddress"));
|
||||||
|
}
|
||||||
|
if ($action == 'create') {
|
||||||
|
$out .= (!empty($conf->global->ADHERENT_ADDRESSES_MANAGEMENT) ? $langs->trans("NewAdherent") : $langs->trans("NewAdherentAddress"));
|
||||||
|
}
|
||||||
|
|
||||||
return $out;
|
return $out;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,8 +29,12 @@ echo "<!-- BEGIN PHP TEMPLATE ADHERENTCARD_VIEW.TPL.PHP DEFAULT -->\n";
|
|||||||
echo $this->control->tpl['showhead'];
|
echo $this->control->tpl['showhead'];
|
||||||
|
|
||||||
dol_htmloutput_errors($this->control->tpl['error'], $this->control->tpl['errors']);
|
dol_htmloutput_errors($this->control->tpl['error'], $this->control->tpl['errors']);
|
||||||
if (!empty($this->control->tpl['action_create_user'])) echo $this->control->tpl['action_create_user'];
|
if (!empty($this->control->tpl['action_create_user'])) {
|
||||||
if (!empty($this->control->tpl['action_delete'])) echo $this->control->tpl['action_delete']; ?>
|
echo $this->control->tpl['action_create_user'];
|
||||||
|
}
|
||||||
|
if (!empty($this->control->tpl['action_delete'])) {
|
||||||
|
echo $this->control->tpl['action_delete'];
|
||||||
|
} ?>
|
||||||
|
|
||||||
<table class="border allwidth">
|
<table class="border allwidth">
|
||||||
|
|
||||||
|
|||||||
@ -81,6 +81,9 @@ if (!empty($canvas)) {
|
|||||||
$objcanvas->getCanvas('adherent', 'membercard', $canvas);
|
$objcanvas->getCanvas('adherent', 'membercard', $canvas);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
|
||||||
|
$hookmanager->initHooks(array('membercard', 'globalcard'));
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
$result = restrictedArea($user, 'adherent', $id, '', '', 'socid', 'rowid', 0);
|
$result = restrictedArea($user, 'adherent', $id, '', '', 'socid', 'rowid', 0);
|
||||||
|
|
||||||
@ -107,9 +110,6 @@ if ($id) {
|
|||||||
$caneditfieldmember = $user->rights->adherent->creer;
|
$caneditfieldmember = $user->rights->adherent->creer;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
|
|
||||||
$hookmanager->initHooks(array('membercard', 'globalcard'));
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -118,7 +118,9 @@ $hookmanager->initHooks(array('membercard', 'globalcard'));
|
|||||||
|
|
||||||
$parameters = array('id'=>$id, 'rowid'=>$id, 'objcanvas'=>$objcanvas, 'confirm'=>$confirm);
|
$parameters = array('id'=>$id, 'rowid'=>$id, 'objcanvas'=>$objcanvas, 'confirm'=>$confirm);
|
||||||
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
|
||||||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
if ($reshook < 0) {
|
||||||
|
setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($reshook)) {
|
if (empty($reshook)) {
|
||||||
if ($cancel) {
|
if ($cancel) {
|
||||||
@ -141,7 +143,9 @@ if (empty($reshook)) {
|
|||||||
if (!$error) {
|
if (!$error) {
|
||||||
if ($userid != $object->user_id) { // If link differs from currently in database
|
if ($userid != $object->user_id) { // If link differs from currently in database
|
||||||
$result = $object->setUserId($userid);
|
$result = $object->setUserId($userid);
|
||||||
if ($result < 0) dol_print_error($object->db, $object->error);
|
if ($result < 0) {
|
||||||
|
dol_print_error($object->db, $object->error);
|
||||||
|
}
|
||||||
$action = '';
|
$action = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -169,7 +173,9 @@ if (empty($reshook)) {
|
|||||||
|
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
$result = $object->setThirdPartyId($socid);
|
$result = $object->setThirdPartyId($socid);
|
||||||
if ($result < 0) dol_print_error($object->db, $object->error);
|
if ($result < 0) {
|
||||||
|
dol_print_error($object->db, $object->error);
|
||||||
|
}
|
||||||
$action = '';
|
$action = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -221,8 +227,7 @@ if (empty($reshook)) {
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
|
|
||||||
$birthdate = '';
|
$birthdate = '';
|
||||||
if (GETPOST("birthday", 'int') && GETPOST("birthmonth", 'int') && GETPOST("birthyear", 'int'))
|
if (GETPOST("birthday", 'int') && GETPOST("birthmonth", 'int') && GETPOST("birthyear", 'int')) {
|
||||||
{
|
|
||||||
$birthdate = dol_mktime(12, 0, 0, GETPOST("birthmonth", 'int'), GETPOST("birthday", 'int'), GETPOST("birthyear", 'int'));
|
$birthdate = dol_mktime(12, 0, 0, GETPOST("birthmonth", 'int'), GETPOST("birthday", 'int'), GETPOST("birthyear", 'int'));
|
||||||
}
|
}
|
||||||
$lastname = GETPOST("lastname", 'alphanohtml');
|
$lastname = GETPOST("lastname", 'alphanohtml');
|
||||||
@ -294,8 +299,11 @@ if (empty($reshook)) {
|
|||||||
//$object->note = trim(GETPOST("comment","alpha"));
|
//$object->note = trim(GETPOST("comment","alpha"));
|
||||||
$object->morphy = GETPOST("morphy", 'alpha');
|
$object->morphy = GETPOST("morphy", 'alpha');
|
||||||
|
|
||||||
if (GETPOST('deletephoto', 'alpha')) $object->photo = '';
|
if (GETPOST('deletephoto', 'alpha')) {
|
||||||
elseif (!empty($_FILES['photo']['name'])) $object->photo = dol_sanitizeFileName($_FILES['photo']['name']);
|
$object->photo = '';
|
||||||
|
} elseif (!empty($_FILES['photo']['name'])) {
|
||||||
|
$object->photo = dol_sanitizeFileName($_FILES['photo']['name']);
|
||||||
|
}
|
||||||
|
|
||||||
// Get status and public property
|
// Get status and public property
|
||||||
$object->statut = GETPOST("statut", 'alpha');
|
$object->statut = GETPOST("statut", 'alpha');
|
||||||
@ -303,18 +311,24 @@ if (empty($reshook)) {
|
|||||||
|
|
||||||
// Fill array 'array_options' with data from add form
|
// Fill array 'array_options' with data from add form
|
||||||
$ret = $extrafields->setOptionalsFromPost(null, $object);
|
$ret = $extrafields->setOptionalsFromPost(null, $object);
|
||||||
if ($ret < 0) $error++;
|
if ($ret < 0) {
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
|
||||||
// Check if we need to also synchronize user information
|
// Check if we need to also synchronize user information
|
||||||
$nosyncuser = 0;
|
$nosyncuser = 0;
|
||||||
if ($object->user_id) { // If linked to a user
|
if ($object->user_id) { // If linked to a user
|
||||||
if ($user->id != $object->user_id && empty($user->rights->user->user->creer)) $nosyncuser = 1; // Disable synchronizing
|
if ($user->id != $object->user_id && empty($user->rights->user->user->creer)) {
|
||||||
|
$nosyncuser = 1; // Disable synchronizing
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if we need to also synchronize password information
|
// Check if we need to also synchronize password information
|
||||||
$nosyncuserpass = 0;
|
$nosyncuserpass = 0;
|
||||||
if ($object->user_id) { // If linked to a user
|
if ($object->user_id) { // If linked to a user
|
||||||
if ($user->id != $object->user_id && empty($user->rights->user->user->password)) $nosyncuserpass = 1; // Disable synchronizing
|
if ($user->id != $object->user_id && empty($user->rights->user->user->password)) {
|
||||||
|
$nosyncuserpass = 1; // Disable synchronizing
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$result = $object->update($user, 0, $nosyncuser, $nosyncuserpass);
|
$result = $object->update($user, 0, $nosyncuser, $nosyncuserpass);
|
||||||
@ -380,7 +394,9 @@ if (empty($reshook)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'add' && $user->rights->adherent->creer) {
|
if ($action == 'add' && $user->rights->adherent->creer) {
|
||||||
if ($canvas) $object->canvas = $canvas;
|
if ($canvas) {
|
||||||
|
$object->canvas = $canvas;
|
||||||
|
}
|
||||||
$birthdate = '';
|
$birthdate = '';
|
||||||
if (GETPOSTISSET("birthday") && GETPOST("birthday") && GETPOSTISSET("birthmonth") && GETPOST("birthmonth") && GETPOSTISSET("birthyear") && GETPOST("birthyear")) {
|
if (GETPOSTISSET("birthday") && GETPOST("birthday") && GETPOSTISSET("birthmonth") && GETPOST("birthmonth") && GETPOSTISSET("birthyear") && GETPOST("birthyear")) {
|
||||||
$birthdate = dol_mktime(12, 0, 0, GETPOST("birthmonth", 'int'), GETPOST("birthday", 'int'), GETPOST("birthyear", 'int'));
|
$birthdate = dol_mktime(12, 0, 0, GETPOST("birthmonth", 'int'), GETPOST("birthday", 'int'), GETPOST("birthyear", 'int'));
|
||||||
@ -461,7 +477,9 @@ if (empty($reshook)) {
|
|||||||
|
|
||||||
// Fill array 'array_options' with data from add form
|
// Fill array 'array_options' with data from add form
|
||||||
$ret = $extrafields->setOptionalsFromPost(null, $object);
|
$ret = $extrafields->setOptionalsFromPost(null, $object);
|
||||||
if ($ret < 0) $error++;
|
if ($ret < 0) {
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
|
||||||
// Check parameters
|
// Check parameters
|
||||||
if (empty($morphy) || $morphy == "-1") {
|
if (empty($morphy) || $morphy == "-1") {
|
||||||
@ -515,7 +533,9 @@ if (empty($reshook)) {
|
|||||||
setEventMessages($langs->trans("ErrorBadEMail", $email), null, 'errors');
|
setEventMessages($langs->trans("ErrorBadEMail", $email), null, 'errors');
|
||||||
}
|
}
|
||||||
$public = 0;
|
$public = 0;
|
||||||
if (isset($public)) $public = 1;
|
if (isset($public)) {
|
||||||
|
$public = 1;
|
||||||
|
}
|
||||||
|
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
$db->begin();
|
$db->begin();
|
||||||
@ -590,7 +610,9 @@ if (empty($reshook)) {
|
|||||||
$arraydefaultmessage = null;
|
$arraydefaultmessage = null;
|
||||||
$labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION;
|
$labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION;
|
||||||
|
|
||||||
if (!empty($labeltouse)) $arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse);
|
if (!empty($labeltouse)) {
|
||||||
|
$arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse);
|
||||||
|
}
|
||||||
|
|
||||||
if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) {
|
if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) {
|
||||||
$subject = $arraydefaultmessage->topic;
|
$subject = $arraydefaultmessage->topic;
|
||||||
@ -659,7 +681,9 @@ if (empty($reshook)) {
|
|||||||
$arraydefaultmessage = null;
|
$arraydefaultmessage = null;
|
||||||
$labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_CANCELATION;
|
$labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_CANCELATION;
|
||||||
|
|
||||||
if (!empty($labeltouse)) $arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse);
|
if (!empty($labeltouse)) {
|
||||||
|
$arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse);
|
||||||
|
}
|
||||||
|
|
||||||
if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) {
|
if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) {
|
||||||
$subject = $arraydefaultmessage->topic;
|
$subject = $arraydefaultmessage->topic;
|
||||||
@ -757,7 +781,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
if (empty($object->error) && $id) {
|
if (empty($object->error) && $id) {
|
||||||
$object = new Adherent($db);
|
$object = new Adherent($db);
|
||||||
$result = $object->fetch($id);
|
$result = $object->fetch($id);
|
||||||
if ($result <= 0) dol_print_error('', $object->error);
|
if ($result <= 0) {
|
||||||
|
dol_print_error('', $object->error);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$objcanvas->assign_values($action, $object->id, $object->ref); // Set value for templates
|
$objcanvas->assign_values($action, $object->id, $object->ref); // Set value for templates
|
||||||
$objcanvas->display_canvas($action); // Show template
|
$objcanvas->display_canvas($action); // Show template
|
||||||
@ -785,7 +811,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
|
|
||||||
if (!empty($socid)) {
|
if (!empty($socid)) {
|
||||||
$object = new Societe($db);
|
$object = new Societe($db);
|
||||||
if ($socid > 0) $object->fetch($socid);
|
if ($socid > 0) {
|
||||||
|
$object->fetch($socid);
|
||||||
|
}
|
||||||
|
|
||||||
if (!($object->id > 0)) {
|
if (!($object->id > 0)) {
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
@ -796,7 +824,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
|
|
||||||
$adht = new AdherentType($db);
|
$adht = new AdherentType($db);
|
||||||
|
|
||||||
print load_fiche_titre($langs->trans("NewMember"), '', 'members');
|
print load_fiche_titre($langs->trans("NewMember"), '', $object->picto);
|
||||||
|
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
print "\n".'<script type="text/javascript" language="javascript">';
|
print "\n".'<script type="text/javascript" language="javascript">';
|
||||||
@ -832,7 +860,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="action" value="add">';
|
print '<input type="hidden" name="action" value="add">';
|
||||||
print '<input type="hidden" name="socid" value="'.$socid.'">';
|
print '<input type="hidden" name="socid" value="'.$socid.'">';
|
||||||
if ($backtopage) print '<input type="hidden" name="backtopage" value="'.($backtopage != '1' ? $backtopage : $_SERVER["HTTP_REFERER"]).'">';
|
if ($backtopage) {
|
||||||
|
print '<input type="hidden" name="backtopage" value="'.($backtopage != '1' ? $backtopage : $_SERVER["HTTP_REFERER"]).'">';
|
||||||
|
}
|
||||||
|
|
||||||
print dol_get_fiche_head('');
|
print dol_get_fiche_head('');
|
||||||
|
|
||||||
@ -913,7 +943,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
$object->country_id = $object->country_id ? $object->country_id : $mysoc->country_id;
|
$object->country_id = $object->country_id ? $object->country_id : $mysoc->country_id;
|
||||||
print '<tr><td width="25%">'.$langs->trans('Country').'</td><td>';
|
print '<tr><td width="25%">'.$langs->trans('Country').'</td><td>';
|
||||||
print $form->select_country(GETPOSTISSET('country_id') ? GETPOST('country_id', 'alpha') : $object->country_id, 'country_id');
|
print $form->select_country(GETPOSTISSET('country_id') ? GETPOST('country_id', 'alpha') : $object->country_id, 'country_id');
|
||||||
if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
|
if ($user->admin) {
|
||||||
|
print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
|
||||||
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// State
|
// State
|
||||||
@ -941,7 +973,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
|
|
||||||
if (!empty($conf->socialnetworks->enabled)) {
|
if (!empty($conf->socialnetworks->enabled)) {
|
||||||
foreach ($socialnetworks as $key => $value) {
|
foreach ($socialnetworks as $key => $value) {
|
||||||
if (!$value['active']) break;
|
if (!$value['active']) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
print '<tr><td>'.$langs->trans($value['label']).'</td><td><input type="text" name="member_'.$key.'" size="40" value="'.(GETPOSTISSET('member_'.$key) ? GETPOST('member_'.$key, 'alpha') : $object->socialnetworks[$key]).'"></td></tr>';
|
print '<tr><td>'.$langs->trans($value['label']).'</td><td><input type="text" name="member_'.$key.'" size="40" value="'.(GETPOSTISSET('member_'.$key) ? GETPOST('member_'.$key, 'alpha') : $object->socialnetworks[$key]).'"></td></tr>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1057,7 +1091,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
print '<input type="hidden" name="action" value="update" />';
|
print '<input type="hidden" name="action" value="update" />';
|
||||||
print '<input type="hidden" name="rowid" value="'.$id.'" />';
|
print '<input type="hidden" name="rowid" value="'.$id.'" />';
|
||||||
print '<input type="hidden" name="statut" value="'.$object->statut.'" />';
|
print '<input type="hidden" name="statut" value="'.$object->statut.'" />';
|
||||||
if ($backtopage) print '<input type="hidden" name="backtopage" value="'.($backtopage != '1' ? $backtopage : $_SERVER["HTTP_REFERER"]).'">';
|
if ($backtopage) {
|
||||||
|
print '<input type="hidden" name="backtopage" value="'.($backtopage != '1' ? $backtopage : $_SERVER["HTTP_REFERER"]).'">';
|
||||||
|
}
|
||||||
|
|
||||||
print dol_get_fiche_head($head, 'general', $langs->trans("Member"), 0, 'user');
|
print dol_get_fiche_head($head, 'general', $langs->trans("Member"), 0, 'user');
|
||||||
|
|
||||||
@ -1121,9 +1157,13 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
print '<td class="hideonsmartphone" valign="middle">';
|
print '<td class="hideonsmartphone" valign="middle">';
|
||||||
print $form->showphoto('memberphoto', $object)."\n";
|
print $form->showphoto('memberphoto', $object)."\n";
|
||||||
if ($caneditfieldmember) {
|
if ($caneditfieldmember) {
|
||||||
if ($object->photo) print "<br>\n";
|
if ($object->photo) {
|
||||||
|
print "<br>\n";
|
||||||
|
}
|
||||||
print '<table class="nobordernopadding">';
|
print '<table class="nobordernopadding">';
|
||||||
if ($object->photo) print '<tr><td><input type="checkbox" class="flat photodelete" name="deletephoto" id="photodelete"> '.$langs->trans("Delete").'<br><br></td></tr>';
|
if ($object->photo) {
|
||||||
|
print '<tr><td><input type="checkbox" class="flat photodelete" name="deletephoto" id="photodelete"> '.$langs->trans("Delete").'<br><br></td></tr>';
|
||||||
|
}
|
||||||
print '<tr><td>'.$langs->trans("PhotoFile").'</td></tr>';
|
print '<tr><td>'.$langs->trans("PhotoFile").'</td></tr>';
|
||||||
print '<tr><td><input type="file" class="flat" name="photo" id="photoinput"></td></tr>';
|
print '<tr><td><input type="file" class="flat" name="photo" id="photoinput"></td></tr>';
|
||||||
print '</table>';
|
print '</table>';
|
||||||
@ -1150,7 +1190,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
//$object->country_id=$object->country_id?$object->country_id:$mysoc->country_id; // In edit mode we don't force to company country if not defined
|
//$object->country_id=$object->country_id?$object->country_id:$mysoc->country_id; // In edit mode we don't force to company country if not defined
|
||||||
print '<tr><td>'.$langs->trans('Country').'</td><td>';
|
print '<tr><td>'.$langs->trans('Country').'</td><td>';
|
||||||
print $form->select_country(GETPOSTISSET("country_id") ? GETPOST("country_id", "alpha") : $object->country_id, 'country_id');
|
print $form->select_country(GETPOSTISSET("country_id") ? GETPOST("country_id", "alpha") : $object->country_id, 'country_id');
|
||||||
if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
|
if ($user->admin) {
|
||||||
|
print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
|
||||||
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// State
|
// State
|
||||||
@ -1174,7 +1216,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
|
|
||||||
if (!empty($conf->socialnetworks->enabled)) {
|
if (!empty($conf->socialnetworks->enabled)) {
|
||||||
foreach ($socialnetworks as $key => $value) {
|
foreach ($socialnetworks as $key => $value) {
|
||||||
if (!$value['active']) break;
|
if (!$value['active']) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
print '<tr><td>'.$langs->trans($value['label']).'</td><td><input type="text" name="'.$key.'" class="minwidth100" value="'.(GETPOSTISSET($key) ? GETPOST($key, 'alphanohtml') : $object->socialnetworks[$key]).'"></td></tr>';
|
print '<tr><td>'.$langs->trans($value['label']).'</td><td><input type="text" name="'.$key.'" class="minwidth100" value="'.(GETPOSTISSET($key) ? GETPOST($key, 'alphanohtml') : $object->socialnetworks[$key]).'"></td></tr>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1223,7 +1267,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
print '<tr><td>'.$langs->trans("LinkedToDolibarrUser").'</td><td colspan="2" class="valeur">';
|
print '<tr><td>'.$langs->trans("LinkedToDolibarrUser").'</td><td colspan="2" class="valeur">';
|
||||||
if ($object->user_id) {
|
if ($object->user_id) {
|
||||||
$form->form_users($_SERVER['PHP_SELF'].'?rowid='.$object->id, $object->user_id, 'none');
|
$form->form_users($_SERVER['PHP_SELF'].'?rowid='.$object->id, $object->user_id, 'none');
|
||||||
} else print $langs->trans("NoDolibarrAccess");
|
} else {
|
||||||
|
print $langs->trans("NoDolibarrAccess");
|
||||||
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Other attributes. Fields from hook formObjectOptions and Extrafields.
|
// Other attributes. Fields from hook formObjectOptions and Extrafields.
|
||||||
@ -1279,7 +1325,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
||||||
$login = dol_buildlogin($object->lastname, $object->firstname);
|
$login = dol_buildlogin($object->lastname, $object->firstname);
|
||||||
}
|
}
|
||||||
if (empty($login)) $login = strtolower(substr($object->firstname, 0, 4)).strtolower(substr($object->lastname, 0, 4));
|
if (empty($login)) {
|
||||||
|
$login = strtolower(substr($object->firstname, 0, 4)).strtolower(substr($object->lastname, 0, 4));
|
||||||
|
}
|
||||||
|
|
||||||
// Create a form array
|
// Create a form array
|
||||||
$formquestion = array(
|
$formquestion = array(
|
||||||
@ -1304,10 +1352,14 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
|
|
||||||
if ($object->morphy == 'mor') {
|
if ($object->morphy == 'mor') {
|
||||||
$companyname = $object->company;
|
$companyname = $object->company;
|
||||||
if (!empty($fullname)) $companyalias = $fullname;
|
if (!empty($fullname)) {
|
||||||
|
$companyalias = $fullname;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$companyname = $fullname;
|
$companyname = $fullname;
|
||||||
if (!empty($object->company)) $companyalias = $object->company;
|
if (!empty($object->company)) {
|
||||||
|
$companyalias = $object->company;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create a form array
|
// Create a form array
|
||||||
@ -1341,7 +1393,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
$arraydefaultmessage = null;
|
$arraydefaultmessage = null;
|
||||||
$labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION;
|
$labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_MEMBER_VALIDATION;
|
||||||
|
|
||||||
if (!empty($labeltouse)) $arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse);
|
if (!empty($labeltouse)) {
|
||||||
|
$arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse);
|
||||||
|
}
|
||||||
|
|
||||||
if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) {
|
if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) {
|
||||||
$subject = $arraydefaultmessage->topic;
|
$subject = $arraydefaultmessage->topic;
|
||||||
@ -1368,7 +1422,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
|
|
||||||
// Create form popup
|
// Create form popup
|
||||||
$formquestion = array();
|
$formquestion = array();
|
||||||
if ($object->email) $formquestion[] = array('type' => 'checkbox', 'name' => 'send_mail', 'label' => $label, 'value' => ($conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL ?true:false));
|
if ($object->email) {
|
||||||
|
$formquestion[] = array('type' => 'checkbox', 'name' => 'send_mail', 'label' => $label, 'value' => ($conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL ?true:false));
|
||||||
|
}
|
||||||
if (!empty($conf->mailman->enabled) && !empty($conf->global->ADHERENT_USE_MAILMAN)) {
|
if (!empty($conf->mailman->enabled) && !empty($conf->global->ADHERENT_USE_MAILMAN)) {
|
||||||
$formquestion[] = array('type'=>'other', 'label'=>$langs->transnoentitiesnoconv("SynchroMailManEnabled"), 'value'=>'');
|
$formquestion[] = array('type'=>'other', 'label'=>$langs->transnoentitiesnoconv("SynchroMailManEnabled"), 'value'=>'');
|
||||||
}
|
}
|
||||||
@ -1400,7 +1456,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
$arraydefaultmessage = null;
|
$arraydefaultmessage = null;
|
||||||
$labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_CANCELATION;
|
$labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_CANCELATION;
|
||||||
|
|
||||||
if (!empty($labeltouse)) $arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse);
|
if (!empty($labeltouse)) {
|
||||||
|
$arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse);
|
||||||
|
}
|
||||||
|
|
||||||
if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) {
|
if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) {
|
||||||
$subject = $arraydefaultmessage->topic;
|
$subject = $arraydefaultmessage->topic;
|
||||||
@ -1427,15 +1485,21 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
|
|
||||||
// Create an array
|
// Create an array
|
||||||
$formquestion = array();
|
$formquestion = array();
|
||||||
if ($object->email) $formquestion[] = array('type' => 'checkbox', 'name' => 'send_mail', 'label' => $label, 'value' => (!empty($conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL) ? 'true' : 'false'));
|
if ($object->email) {
|
||||||
if ($backtopage) $formquestion[] = array('type' => 'hidden', 'name' => 'backtopage', 'value' => ($backtopage != '1' ? $backtopage : $_SERVER["HTTP_REFERER"]));
|
$formquestion[] = array('type' => 'checkbox', 'name' => 'send_mail', 'label' => $label, 'value' => (!empty($conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL) ? 'true' : 'false'));
|
||||||
|
}
|
||||||
|
if ($backtopage) {
|
||||||
|
$formquestion[] = array('type' => 'hidden', 'name' => 'backtopage', 'value' => ($backtopage != '1' ? $backtopage : $_SERVER["HTTP_REFERER"]));
|
||||||
|
}
|
||||||
print $form->formconfirm("card.php?rowid=".$id, $langs->trans("ResiliateMember"), $langs->trans("ConfirmResiliateMember"), "confirm_resign", $formquestion, 'no', 1, 240);
|
print $form->formconfirm("card.php?rowid=".$id, $langs->trans("ResiliateMember"), $langs->trans("ConfirmResiliateMember"), "confirm_resign", $formquestion, 'no', 1, 240);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Confirm remove member
|
// Confirm remove member
|
||||||
if ($action == 'delete') {
|
if ($action == 'delete') {
|
||||||
$formquestion = array();
|
$formquestion = array();
|
||||||
if ($backtopage) $formquestion[] = array('type' => 'hidden', 'name' => 'backtopage', 'value' => ($backtopage != '1' ? $backtopage : $_SERVER["HTTP_REFERER"]));
|
if ($backtopage) {
|
||||||
|
$formquestion[] = array('type' => 'hidden', 'name' => 'backtopage', 'value' => ($backtopage != '1' ? $backtopage : $_SERVER["HTTP_REFERER"]));
|
||||||
|
}
|
||||||
print $form->formconfirm("card.php?rowid=".$id, $langs->trans("DeleteMember"), $langs->trans("ConfirmDeleteMember"), "confirm_delete", $formquestion, 'no', 1);
|
print $form->formconfirm("card.php?rowid=".$id, $langs->trans("DeleteMember"), $langs->trans("ConfirmDeleteMember"), "confirm_delete", $formquestion, 'no', 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1449,8 +1513,12 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$rowspan = 17;
|
$rowspan = 17;
|
||||||
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) $rowspan++;
|
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) {
|
||||||
if (!empty($conf->societe->enabled)) $rowspan++;
|
$rowspan++;
|
||||||
|
}
|
||||||
|
if (!empty($conf->societe->enabled)) {
|
||||||
|
$rowspan++;
|
||||||
|
}
|
||||||
|
|
||||||
$linkback = '<a href="'.DOL_URL_ROOT.'/adherents/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
|
$linkback = '<a href="'.DOL_URL_ROOT.'/adherents/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
|
||||||
|
|
||||||
@ -1477,7 +1545,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
// Gender
|
// Gender
|
||||||
print '<tr><td>'.$langs->trans("Gender").'</td>';
|
print '<tr><td>'.$langs->trans("Gender").'</td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
if ($object->gender) print $langs->trans("Gender".$object->gender);
|
if ($object->gender) {
|
||||||
|
print $langs->trans("Gender".$object->gender);
|
||||||
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Company
|
// Company
|
||||||
@ -1490,10 +1560,14 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
// Password
|
// Password
|
||||||
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) {
|
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) {
|
||||||
print '<tr><td>'.$langs->trans("Password").'</td><td>'.preg_replace('/./i', '*', $object->pass);
|
print '<tr><td>'.$langs->trans("Password").'</td><td>'.preg_replace('/./i', '*', $object->pass);
|
||||||
if ($object->pass) print preg_replace('/./i', '*', $object->pass);
|
if ($object->pass) {
|
||||||
else {
|
print preg_replace('/./i', '*', $object->pass);
|
||||||
if ($user->admin) print $langs->trans("Crypted").': '.$object->pass_indatabase_crypted;
|
} else {
|
||||||
else print $langs->trans("Hidden");
|
if ($user->admin) {
|
||||||
|
print $langs->trans("Crypted").': '.$object->pass_indatabase_crypted;
|
||||||
|
} else {
|
||||||
|
print $langs->trans("Hidden");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ((!empty($object->pass) || !empty($object->pass_crypted)) && empty($object->user_id)) {
|
if ((!empty($object->pass) || !empty($object->pass_crypted)) && empty($object->user_id)) {
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
@ -1515,14 +1589,44 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
print $langs->trans("SubscriptionNotNeeded");
|
print $langs->trans("SubscriptionNotNeeded");
|
||||||
} elseif (!$adht->subscription) {
|
} elseif (!$adht->subscription) {
|
||||||
print $langs->trans("SubscriptionNotRecorded");
|
print $langs->trans("SubscriptionNotRecorded");
|
||||||
if ($object->statut > 0) print " ".img_warning($langs->trans("Late")); // displays delay Pictogram only if not a draft and not terminated
|
if ($object->statut > 0) {
|
||||||
|
print " ".img_warning($langs->trans("Late")); // displays delay Pictogram only if not a draft and not terminated
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
print $langs->trans("SubscriptionNotReceived");
|
print $langs->trans("SubscriptionNotReceived");
|
||||||
if ($object->statut > 0) print " ".img_warning($langs->trans("Late")); // displays delay Pictogram only if not a draft and not terminated
|
if ($object->statut > 0) {
|
||||||
|
print " ".img_warning($langs->trans("Late")); // displays delay Pictogram only if not a draft and not terminated
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
|
print '<div class="fichehalfright"><div class="ficheaddleft">';
|
||||||
|
print '<div class="underbanner clearboth"></div>';
|
||||||
|
|
||||||
|
print '<table class="border tableforfield tableforfield" width="100%">';
|
||||||
|
|
||||||
|
// Birth Date
|
||||||
|
print '<tr><td class="titlefield">'.$langs->trans("DateOfBirth").'</td><td class="valeur">'.dol_print_date($object->birth, 'day').'</td></tr>';
|
||||||
|
|
||||||
|
// Public
|
||||||
|
print '<tr><td>'.$langs->trans("Public").'</td><td class="valeur">'.yn($object->public).'</td></tr>';
|
||||||
|
|
||||||
|
// Categories
|
||||||
|
if (!empty($conf->categorie->enabled) && !empty($user->rights->categorie->lire)) {
|
||||||
|
print '<tr><td>'.$langs->trans("Categories").'</td>';
|
||||||
|
print '<td colspan="2">';
|
||||||
|
print $form->showCategories($object->id, Categorie::TYPE_MEMBER, 1);
|
||||||
|
print '</td></tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Other attributes
|
||||||
|
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php';
|
||||||
|
|
||||||
// Third party Dolibarr
|
// Third party Dolibarr
|
||||||
if (!empty($conf->societe->enabled)) {
|
if (!empty($conf->societe->enabled)) {
|
||||||
print '<tr><td>';
|
print '<tr><td>';
|
||||||
@ -1566,34 +1670,11 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
$linkeduser->fetch($object->user_id);
|
$linkeduser->fetch($object->user_id);
|
||||||
print $linkeduser->getNomUrl(-1);
|
print $linkeduser->getNomUrl(-1);
|
||||||
} else {
|
} else {
|
||||||
print $langs->trans("NoDolibarrAccess");
|
print '<span class="opacitymedium">'.$langs->trans("NoDolibarrAccess").'</span>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
|
||||||
|
|
||||||
print '</div>';
|
|
||||||
|
|
||||||
print '<div class="fichehalfright"><div class="ficheaddleft">';
|
|
||||||
print '<div class="underbanner clearboth"></div>';
|
|
||||||
|
|
||||||
print '<table class="border tableforfield tableforfield" width="100%">';
|
|
||||||
|
|
||||||
// Birth Date
|
|
||||||
print '<tr><td class="titlefield">'.$langs->trans("DateOfBirth").'</td><td class="valeur">'.dol_print_date($object->birth, 'day').'</td></tr>';
|
|
||||||
|
|
||||||
// Public
|
|
||||||
print '<tr><td>'.$langs->trans("Public").'</td><td class="valeur">'.yn($object->public).'</td></tr>';
|
|
||||||
|
|
||||||
// Categories
|
|
||||||
if (!empty($conf->categorie->enabled) && !empty($user->rights->categorie->lire)) {
|
|
||||||
print '<tr><td>'.$langs->trans("Categories").'</td>';
|
|
||||||
print '<td colspan="2">';
|
|
||||||
print $form->showCategories($object->id, Categorie::TYPE_MEMBER, 1);
|
|
||||||
print '</td></tr>';
|
|
||||||
}
|
|
||||||
|
|
||||||
//VCard
|
//VCard
|
||||||
print '<tr><td>';
|
print '<tr><td>';
|
||||||
print $langs->trans("VCard").'</td><td colspan="3">';
|
print $langs->trans("VCard").'</td><td colspan="3">';
|
||||||
@ -1603,9 +1684,6 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
print '</a>';
|
print '</a>';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Other attributes
|
|
||||||
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php';
|
|
||||||
|
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
|
|
||||||
print "</div></div></div>\n";
|
print "</div></div></div>\n";
|
||||||
@ -1687,8 +1765,11 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
// Create third party
|
// Create third party
|
||||||
if (!empty($conf->societe->enabled) && !$object->socid) {
|
if (!empty($conf->societe->enabled) && !$object->socid) {
|
||||||
if ($user->rights->societe->creer) {
|
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>';
|
if ($object->statut != -1) {
|
||||||
else print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("CreateDolibarrThirdParty").'</a></div>';
|
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 classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("CreateDolibarrThirdParty").'</a></div>';
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
print '<div class="inline-block divButAction"><font class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("CreateDolibarrThirdParty")."</font></div>";
|
print '<div class="inline-block divButAction"><font class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("CreateDolibarrThirdParty")."</font></div>";
|
||||||
}
|
}
|
||||||
@ -1697,8 +1778,11 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
// Create user
|
// Create user
|
||||||
if (!$user->socid && !$object->user_id) {
|
if (!$user->socid && !$object->user_id) {
|
||||||
if ($user->rights->user->user->creer) {
|
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>';
|
if ($object->statut != -1) {
|
||||||
else print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("CreateDolibarrLogin").'</a></div>';
|
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 classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("ValidateBefore")).'">'.$langs->trans("CreateDolibarrLogin").'</a></div>';
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
print '<div class="inline-block divButAction"><font class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("CreateDolibarrLogin")."</font></div>";
|
print '<div class="inline-block divButAction"><font class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotEnoughPermissions")).'">'.$langs->trans("CreateDolibarrLogin")."</font></div>";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -80,8 +80,12 @@ if ((!empty($foruserid) || !empty($foruserlogin) || !empty($mode)) && !$mesg) {
|
|||||||
}
|
}
|
||||||
$sql .= " WHERE d.fk_adherent_type = t.rowid AND d.statut = 1";
|
$sql .= " WHERE d.fk_adherent_type = t.rowid AND d.statut = 1";
|
||||||
$sql .= " AND d.entity IN (".getEntity('adherent').")";
|
$sql .= " AND d.entity IN (".getEntity('adherent').")";
|
||||||
if (is_numeric($foruserid)) $sql .= " AND d.rowid=".(int) $foruserid;
|
if (is_numeric($foruserid)) {
|
||||||
if ($foruserlogin) $sql .= " AND d.login='".$db->escape($foruserlogin)."'";
|
$sql .= " AND d.rowid=".(int) $foruserid;
|
||||||
|
}
|
||||||
|
if ($foruserlogin) {
|
||||||
|
$sql .= " AND d.login='".$db->escape($foruserlogin)."'";
|
||||||
|
}
|
||||||
$sql .= " ORDER BY d.rowid ASC";
|
$sql .= " ORDER BY d.rowid ASC";
|
||||||
|
|
||||||
dol_syslog("Search members", LOG_DEBUG);
|
dol_syslog("Search members", LOG_DEBUG);
|
||||||
@ -92,7 +96,9 @@ if ((!empty($foruserid) || !empty($foruserlogin) || !empty($mode)) && !$mesg) {
|
|||||||
while ($i < $num) {
|
while ($i < $num) {
|
||||||
$objp = $db->fetch_object($result);
|
$objp = $db->fetch_object($result);
|
||||||
|
|
||||||
if ($objp->country == '-') $objp->country = '';
|
if ($objp->country == '-') {
|
||||||
|
$objp->country = '';
|
||||||
|
}
|
||||||
|
|
||||||
$adherentstatic->id = $objp->rowid;
|
$adherentstatic->id = $objp->rowid;
|
||||||
$adherentstatic->ref = $objp->ref;
|
$adherentstatic->ref = $objp->ref;
|
||||||
@ -147,7 +153,9 @@ if ((!empty($foruserid) || !empty($foruserlogin) || !empty($mode)) && !$mesg) {
|
|||||||
|
|
||||||
if (is_numeric($foruserid) || $foruserlogin) {
|
if (is_numeric($foruserid) || $foruserlogin) {
|
||||||
$nb = $_Avery_Labels[$model]['NX'] * $_Avery_Labels[$model]['NY'];
|
$nb = $_Avery_Labels[$model]['NX'] * $_Avery_Labels[$model]['NY'];
|
||||||
if ($nb <= 0) $nb = 1; // Protection to avoid empty page
|
if ($nb <= 0) {
|
||||||
|
$nb = 1; // Protection to avoid empty page
|
||||||
|
}
|
||||||
|
|
||||||
for ($j = 0; $j < $nb; $j++) {
|
for ($j = 0; $j < $nb; $j++) {
|
||||||
$arrayofmembers[] = array(
|
$arrayofmembers[] = array(
|
||||||
@ -175,7 +183,9 @@ if ((!empty($foruserid) || !empty($foruserlogin) || !empty($mode)) && !$mesg) {
|
|||||||
|
|
||||||
// For labels
|
// For labels
|
||||||
if ($mode == 'label') {
|
if ($mode == 'label') {
|
||||||
if (empty($conf->global->ADHERENT_ETIQUETTE_TEXT)) $conf->global->ADHERENT_ETIQUETTE_TEXT = "__FULLNAME__\n__ADDRESS__\n__ZIP__ __TOWN__\n__COUNTRY__";
|
if (empty($conf->global->ADHERENT_ETIQUETTE_TEXT)) {
|
||||||
|
$conf->global->ADHERENT_ETIQUETTE_TEXT = "__FULLNAME__\n__ADDRESS__\n__ZIP__ __TOWN__\n__COUNTRY__";
|
||||||
|
}
|
||||||
$textleft = make_substitutions($conf->global->ADHERENT_ETIQUETTE_TEXT, $substitutionarray);
|
$textleft = make_substitutions($conf->global->ADHERENT_ETIQUETTE_TEXT, $substitutionarray);
|
||||||
$textheader = '';
|
$textheader = '';
|
||||||
$textfooter = '';
|
$textfooter = '';
|
||||||
@ -203,7 +213,9 @@ if ((!empty($foruserid) || !empty($foruserlogin) || !empty($mode)) && !$mesg) {
|
|||||||
if (empty($model) || $model == '-1') {
|
if (empty($model) || $model == '-1') {
|
||||||
$mesg = $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DescADHERENT_CARD_TYPE"));
|
$mesg = $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DescADHERENT_CARD_TYPE"));
|
||||||
}
|
}
|
||||||
if (!$mesg) $result = members_card_pdf_create($db, $arrayofmembers, $model, $outputlangs);
|
if (!$mesg) {
|
||||||
|
$result = members_card_pdf_create($db, $arrayofmembers, $model, $outputlangs);
|
||||||
|
}
|
||||||
} elseif ($mode == 'label') {
|
} elseif ($mode == 'label') {
|
||||||
if (!count($arrayofmembers)) {
|
if (!count($arrayofmembers)) {
|
||||||
$mesg = $langs->trans("ErrorRecordNotFound");
|
$mesg = $langs->trans("ErrorRecordNotFound");
|
||||||
@ -211,7 +223,9 @@ if ((!empty($foruserid) || !empty($foruserlogin) || !empty($mode)) && !$mesg) {
|
|||||||
if (empty($modellabel) || $modellabel == '-1') {
|
if (empty($modellabel) || $modellabel == '-1') {
|
||||||
$mesg = $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DescADHERENT_ETIQUETTE_TYPE"));
|
$mesg = $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DescADHERENT_ETIQUETTE_TYPE"));
|
||||||
}
|
}
|
||||||
if (!$mesg) $result = doc_label_pdf_create($db, $arrayofmembers, $modellabel, $outputlangs);
|
if (!$mesg) {
|
||||||
|
$result = doc_label_pdf_create($db, $arrayofmembers, $modellabel, $outputlangs);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($result <= 0) {
|
if ($result <= 0) {
|
||||||
@ -236,7 +250,7 @@ $form = new Form($db);
|
|||||||
|
|
||||||
llxHeader('', $langs->trans("MembersCards"));
|
llxHeader('', $langs->trans("MembersCards"));
|
||||||
|
|
||||||
print load_fiche_titre($langs->trans("LinkToGeneratedPages"), '', 'members');
|
print load_fiche_titre($langs->trans("LinkToGeneratedPages"), '', $adherentstatic->picto);
|
||||||
|
|
||||||
print '<span class="opacitymedium">'.$langs->trans("LinkToGeneratedPagesDesc").'</span><br>';
|
print '<span class="opacitymedium">'.$langs->trans("LinkToGeneratedPagesDesc").'</span><br>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|||||||
@ -373,18 +373,24 @@ class Adherent extends CommonObject
|
|||||||
// Detect if message is HTML
|
// Detect if message is HTML
|
||||||
if ($msgishtml == -1) {
|
if ($msgishtml == -1) {
|
||||||
$msgishtml = 0;
|
$msgishtml = 0;
|
||||||
if (dol_textishtml($text, 0)) $msgishtml = 1;
|
if (dol_textishtml($text, 0)) {
|
||||||
|
$msgishtml = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dol_syslog('send_an_email msgishtml='.$msgishtml);
|
dol_syslog('send_an_email msgishtml='.$msgishtml);
|
||||||
|
|
||||||
$texttosend = $this->makeSubstitution($text);
|
$texttosend = $this->makeSubstitution($text);
|
||||||
$subjecttosend = $this->makeSubstitution($subject);
|
$subjecttosend = $this->makeSubstitution($subject);
|
||||||
if ($msgishtml) $texttosend = dol_htmlentitiesbr($texttosend);
|
if ($msgishtml) {
|
||||||
|
$texttosend = dol_htmlentitiesbr($texttosend);
|
||||||
|
}
|
||||||
|
|
||||||
// Envoi mail confirmation
|
// Envoi mail confirmation
|
||||||
$from = $conf->email_from;
|
$from = $conf->email_from;
|
||||||
if (!empty($conf->global->ADHERENT_MAIL_FROM)) $from = $conf->global->ADHERENT_MAIL_FROM;
|
if (!empty($conf->global->ADHERENT_MAIL_FROM)) {
|
||||||
|
$from = $conf->global->ADHERENT_MAIL_FROM;
|
||||||
|
}
|
||||||
|
|
||||||
$trackid = 'mem'.$this->id;
|
$trackid = 'mem'.$this->id;
|
||||||
|
|
||||||
@ -413,10 +419,14 @@ class Adherent extends CommonObject
|
|||||||
$birthday = dol_print_date($this->birth, 'day');
|
$birthday = dol_print_date($this->birth, 'day');
|
||||||
|
|
||||||
$msgishtml = 0;
|
$msgishtml = 0;
|
||||||
if (dol_textishtml($text, 1)) $msgishtml = 1;
|
if (dol_textishtml($text, 1)) {
|
||||||
|
$msgishtml = 1;
|
||||||
|
}
|
||||||
|
|
||||||
$infos = '';
|
$infos = '';
|
||||||
if ($this->civility_id) $infos .= $langs->transnoentities("UserTitle").": ".$this->getCivilityLabel()."\n";
|
if ($this->civility_id) {
|
||||||
|
$infos .= $langs->transnoentities("UserTitle").": ".$this->getCivilityLabel()."\n";
|
||||||
|
}
|
||||||
$infos .= $langs->transnoentities("id").": ".$this->id."\n";
|
$infos .= $langs->transnoentities("id").": ".$this->id."\n";
|
||||||
$infos .= $langs->transnoentities("ref").": ".$this->ref."\n";
|
$infos .= $langs->transnoentities("ref").": ".$this->ref."\n";
|
||||||
$infos .= $langs->transnoentities("Lastname").": ".$this->lastname."\n";
|
$infos .= $langs->transnoentities("Lastname").": ".$this->lastname."\n";
|
||||||
@ -514,7 +524,9 @@ class Adherent extends CommonObject
|
|||||||
$this->error = $langs->trans("ErrorBadEMail", $this->email);
|
$this->error = $langs->trans("ErrorBadEMail", $this->email);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (!$this->datec) $this->datec = $now;
|
if (!$this->datec) {
|
||||||
|
$this->datec = $now;
|
||||||
|
}
|
||||||
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) {
|
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) {
|
||||||
if (empty($this->login)) {
|
if (empty($this->login)) {
|
||||||
$this->error = $langs->trans("ErrorWrongValueForParameterX", "Login");
|
$this->error = $langs->trans("ErrorWrongValueForParameterX", "Login");
|
||||||
@ -669,9 +681,15 @@ class Adherent extends CommonObject
|
|||||||
$sql .= ", fk_adherent_type = ".$this->db->escape($this->typeid);
|
$sql .= ", fk_adherent_type = ".$this->db->escape($this->typeid);
|
||||||
$sql .= ", morphy = '".$this->db->escape($this->morphy)."'";
|
$sql .= ", morphy = '".$this->db->escape($this->morphy)."'";
|
||||||
$sql .= ", birth = ".($this->birth ? "'".$this->db->idate($this->birth)."'" : "null");
|
$sql .= ", birth = ".($this->birth ? "'".$this->db->idate($this->birth)."'" : "null");
|
||||||
if ($this->socid) $sql .= ", fk_soc = '".$this->db->escape($this->socid)."'"; // Must be modified only when creating from a third-party
|
if ($this->socid) {
|
||||||
if ($this->datefin) $sql .= ", datefin = '".$this->db->idate($this->datefin)."'"; // Must be modified only when deleting a subscription
|
$sql .= ", fk_soc = '".$this->db->escape($this->socid)."'"; // Must be modified only when creating from a third-party
|
||||||
if ($this->datevalid) $sql .= ", datevalid = '".$this->db->idate($this->datevalid)."'"; // Must be modified only when validating a member
|
}
|
||||||
|
if ($this->datefin) {
|
||||||
|
$sql .= ", datefin = '".$this->db->idate($this->datefin)."'"; // Must be modified only when deleting a subscription
|
||||||
|
}
|
||||||
|
if ($this->datevalid) {
|
||||||
|
$sql .= ", datevalid = '".$this->db->idate($this->datevalid)."'"; // Must be modified only when validating a member
|
||||||
|
}
|
||||||
$sql .= ", fk_user_mod = ".($user->id > 0 ? $user->id : 'null'); // Can be null because member can be create by a guest
|
$sql .= ", fk_user_mod = ".($user->id > 0 ? $user->id : 'null'); // Can be null because member can be create by a guest
|
||||||
$sql .= " WHERE rowid = ".$this->id;
|
$sql .= " WHERE rowid = ".$this->id;
|
||||||
|
|
||||||
@ -716,7 +734,9 @@ class Adherent extends CommonObject
|
|||||||
|
|
||||||
// If password to set differs from the one found into database
|
// If password to set differs from the one found into database
|
||||||
$result = $this->setPassword($user, $this->pass, $isencrypted, $notrigger, $nosyncuserpass);
|
$result = $this->setPassword($user, $this->pass, $isencrypted, $notrigger, $nosyncuserpass);
|
||||||
if (!$nbrowsaffected) $nbrowsaffected++;
|
if (!$nbrowsaffected) {
|
||||||
|
$nbrowsaffected++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -759,7 +779,9 @@ class Adherent extends CommonObject
|
|||||||
//var_dump($this->login);exit;
|
//var_dump($this->login);exit;
|
||||||
|
|
||||||
// If option ADHERENT_LOGIN_NOT_REQUIRED is on, there is no login of member, so we do not overwrite user login to keep existing one.
|
// If option ADHERENT_LOGIN_NOT_REQUIRED is on, there is no login of member, so we do not overwrite user login to keep existing one.
|
||||||
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) $luser->login = $this->login;
|
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) {
|
||||||
|
$luser->login = $this->login;
|
||||||
|
}
|
||||||
|
|
||||||
$luser->ref = $this->ref;
|
$luser->ref = $this->ref;
|
||||||
$luser->civility_id = $this->civility_id;
|
$luser->civility_id = $this->civility_id;
|
||||||
@ -925,14 +947,18 @@ class Adherent extends CommonObject
|
|||||||
$errorflag = 0;
|
$errorflag = 0;
|
||||||
|
|
||||||
// Check parameters
|
// Check parameters
|
||||||
if (empty($rowid)) $rowid = $this->id;
|
if (empty($rowid)) {
|
||||||
|
$rowid = $this->id;
|
||||||
|
}
|
||||||
|
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
if (!$error && !$notrigger) {
|
if (!$error && !$notrigger) {
|
||||||
// Call trigger
|
// Call trigger
|
||||||
$result = $this->call_trigger('MEMBER_DELETE', $user);
|
$result = $this->call_trigger('MEMBER_DELETE', $user);
|
||||||
if ($result < 0) $error++;
|
if ($result < 0) {
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
// End call triggers
|
// End call triggers
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1474,7 +1500,9 @@ class Adherent extends CommonObject
|
|||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
// Clean parameters
|
// Clean parameters
|
||||||
if (!$amount) $amount = 0;
|
if (!$amount) {
|
||||||
|
$amount = 0;
|
||||||
|
}
|
||||||
|
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
@ -1605,10 +1633,14 @@ class Adherent extends CommonObject
|
|||||||
|
|
||||||
if ($this->morphy == 'mor') {
|
if ($this->morphy == 'mor') {
|
||||||
$companyname = $this->company;
|
$companyname = $this->company;
|
||||||
if (!empty($fullname)) $companyalias = $fullname;
|
if (!empty($fullname)) {
|
||||||
|
$companyalias = $fullname;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$companyname = $fullname;
|
$companyname = $fullname;
|
||||||
if (!empty($this->company)) $companyalias = $this->company;
|
if (!empty($this->company)) {
|
||||||
|
$companyalias = $this->company;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$result = $customer->create_from_member($this, $companyname, $companyalias);
|
$result = $customer->create_from_member($this, $companyname, $companyalias);
|
||||||
@ -1671,7 +1703,9 @@ class Adherent extends CommonObject
|
|||||||
if (!$error) {
|
if (!$error) {
|
||||||
// Add line to draft invoice
|
// Add line to draft invoice
|
||||||
$idprodsubscription = 0;
|
$idprodsubscription = 0;
|
||||||
if (!empty($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS) && (!empty($conf->product->enabled) || !empty($conf->service->enabled))) $idprodsubscription = $conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS;
|
if (!empty($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS) && (!empty($conf->product->enabled) || !empty($conf->service->enabled))) {
|
||||||
|
$idprodsubscription = $conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS;
|
||||||
|
}
|
||||||
|
|
||||||
$vattouse = 0;
|
$vattouse = 0;
|
||||||
if (isset($conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS) && $conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS == 'defaultforfoundationcountry') {
|
if (isset($conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS) && $conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS == 'defaultforfoundationcountry') {
|
||||||
@ -1749,7 +1783,7 @@ class Adherent extends CommonObject
|
|||||||
|
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
// Set invoice as paid
|
// Set invoice as paid
|
||||||
$invoice->set_paid($user);
|
$invoice->setPaid($user);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1758,8 +1792,12 @@ class Adherent extends CommonObject
|
|||||||
$outputlangs = $langs;
|
$outputlangs = $langs;
|
||||||
$newlang = '';
|
$newlang = '';
|
||||||
$lang_id = GETPOST('lang_id');
|
$lang_id = GETPOST('lang_id');
|
||||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && !empty($lang_id)) $newlang = $lang_id;
|
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && !empty($lang_id)) {
|
||||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $customer->default_lang;
|
$newlang = $lang_id;
|
||||||
|
}
|
||||||
|
if ($conf->global->MAIN_MULTILANGS && empty($newlang)) {
|
||||||
|
$newlang = $customer->default_lang;
|
||||||
|
}
|
||||||
if (!empty($newlang)) {
|
if (!empty($newlang)) {
|
||||||
$outputlangs = new Translate("", $conf);
|
$outputlangs = new Translate("", $conf);
|
||||||
$outputlangs->setDefaultLang($newlang);
|
$outputlangs->setDefaultLang($newlang);
|
||||||
@ -1901,7 +1939,9 @@ class Adherent extends CommonObject
|
|||||||
$result = $mailmanspip->add_to_mailman($this);
|
$result = $mailmanspip->add_to_mailman($this);
|
||||||
|
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
if (!empty($mailmanspip->error)) $this->errors[] = $mailmanspip->error;
|
if (!empty($mailmanspip->error)) {
|
||||||
|
$this->errors[] = $mailmanspip->error;
|
||||||
|
}
|
||||||
$err += 1;
|
$err += 1;
|
||||||
}
|
}
|
||||||
foreach ($mailmanspip->mladded_ko as $tmplist => $tmpemail) {
|
foreach ($mailmanspip->mladded_ko as $tmplist => $tmpemail) {
|
||||||
@ -1950,7 +1990,9 @@ class Adherent extends CommonObject
|
|||||||
if (!empty($conf->global->ADHERENT_USE_MAILMAN)) {
|
if (!empty($conf->global->ADHERENT_USE_MAILMAN)) {
|
||||||
$result = $mailmanspip->del_to_mailman($this);
|
$result = $mailmanspip->del_to_mailman($this);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
if (!empty($mailmanspip->error)) $this->errors[] = $mailmanspip->error;
|
if (!empty($mailmanspip->error)) {
|
||||||
|
$this->errors[] = $mailmanspip->error;
|
||||||
|
}
|
||||||
$err += 1;
|
$err += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1991,7 +2033,9 @@ class Adherent extends CommonObject
|
|||||||
$langs->load("dict");
|
$langs->load("dict");
|
||||||
|
|
||||||
$code = (empty($this->civility_id) ? '' : $this->civility_id);
|
$code = (empty($this->civility_id) ? '' : $this->civility_id);
|
||||||
if (empty($code)) return '';
|
if (empty($code)) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
return $langs->getLabelFromKey($this->db, "Civility".$code, "c_civility", "code", "label", $code);
|
return $langs->getLabelFromKey($this->db, "Civility".$code, "c_civility", "code", "label", $code);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2012,7 +2056,9 @@ class Adherent extends CommonObject
|
|||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) && $withpictoimg) $withpictoimg = 0;
|
if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) && $withpictoimg) {
|
||||||
|
$withpictoimg = 0;
|
||||||
|
}
|
||||||
|
|
||||||
$result = '';
|
$result = '';
|
||||||
$label = '';
|
$label = '';
|
||||||
@ -2028,9 +2074,15 @@ class Adherent extends CommonObject
|
|||||||
$label .= '<div class="centpercent">';
|
$label .= '<div class="centpercent">';
|
||||||
$label .= img_picto('', $this->picto).' <u class="paddingrightonly">'.$langs->trans("Member").'</u>';
|
$label .= img_picto('', $this->picto).' <u class="paddingrightonly">'.$langs->trans("Member").'</u>';
|
||||||
$label .= ' '.$this->getLibStatut(4);
|
$label .= ' '.$this->getLibStatut(4);
|
||||||
if (!empty($this->ref)) $label .= '<br><b>'.$langs->trans('Ref').':</b> '.$this->ref;
|
if (!empty($this->ref)) {
|
||||||
if (!empty($this->firstname) || !empty($this->lastname)) $label .= '<br><b>'.$langs->trans('Name').':</b> '.$this->getFullName($langs);
|
$label .= '<br><b>'.$langs->trans('Ref').':</b> '.$this->ref;
|
||||||
if (!empty($this->company)) $label .= '<br><b>'.$langs->trans('Company').':</b> '.$this->company;
|
}
|
||||||
|
if (!empty($this->firstname) || !empty($this->lastname)) {
|
||||||
|
$label .= '<br><b>'.$langs->trans('Name').':</b> '.$this->getFullName($langs);
|
||||||
|
}
|
||||||
|
if (!empty($this->company)) {
|
||||||
|
$label .= '<br><b>'.$langs->trans('Company').':</b> '.$this->company;
|
||||||
|
}
|
||||||
$label .= '</div>';
|
$label .= '</div>';
|
||||||
|
|
||||||
$url = DOL_URL_ROOT.'/adherents/card.php?rowid='.$this->id;
|
$url = DOL_URL_ROOT.'/adherents/card.php?rowid='.$this->id;
|
||||||
@ -2041,8 +2093,12 @@ class Adherent extends CommonObject
|
|||||||
if ($option != 'nolink') {
|
if ($option != 'nolink') {
|
||||||
// Add param to save lastsearch_values or not
|
// Add param to save lastsearch_values or not
|
||||||
$add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0);
|
$add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0);
|
||||||
if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) $add_save_lastsearch_values = 1;
|
if ($save_lastsearch_value == -1 && preg_match('/list\.php/', $_SERVER["PHP_SELF"])) {
|
||||||
if ($add_save_lastsearch_values) $url .= '&save_lastsearch_values=1';
|
$add_save_lastsearch_values = 1;
|
||||||
|
}
|
||||||
|
if ($add_save_lastsearch_values) {
|
||||||
|
$url .= '&save_lastsearch_values=1';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$linkstart .= '<a href="'.$url.'"';
|
$linkstart .= '<a href="'.$url.'"';
|
||||||
@ -2061,16 +2117,20 @@ class Adherent extends CommonObject
|
|||||||
$linkend = '</a>';
|
$linkend = '</a>';
|
||||||
|
|
||||||
$result .= $linkstart;
|
$result .= $linkstart;
|
||||||
if ($withpictoimg) $result .= '<div class="inline-block nopadding valignmiddle">';
|
if ($withpictoimg) {
|
||||||
|
$result .= '<div class="inline-block nopadding valignmiddle">';
|
||||||
|
}
|
||||||
if ($withpictoimg) {
|
if ($withpictoimg) {
|
||||||
$paddafterimage = '';
|
$paddafterimage = '';
|
||||||
if (abs($withpictoimg) == 1) $paddafterimage = 'style="margin-right: 3px;"';
|
if (abs($withpictoimg) == 1) {
|
||||||
|
$paddafterimage = 'style="margin-right: 3px;"';
|
||||||
|
}
|
||||||
// Only picto
|
// Only picto
|
||||||
if ($withpictoimg > 0)
|
if ($withpictoimg > 0) {
|
||||||
$picto = '<span class="nopadding'.($morecss ? ' userimg'.$morecss : '').'">'.
|
$picto = '<span class="nopadding'.($morecss ? ' userimg'.$morecss : '').'">'.
|
||||||
img_object('', 'user', $paddafterimage.' '.($notooltip ? '' : 'class="classfortooltip"'), 0, 0, $notooltip ? 0 : 1).'</span>';
|
img_object('', 'user', $paddafterimage.' '.($notooltip ? '' : 'class="classfortooltip"'), 0, 0, $notooltip ? 0 : 1).'</span>';
|
||||||
|
} else {
|
||||||
// Picto must be a photo
|
// Picto must be a photo
|
||||||
else {
|
|
||||||
$picto = '<span class="nopadding'.($morecss ? ' userimg'.$morecss : '').'"'.($paddafterimage ? ' '.$paddafterimage : '').'>';
|
$picto = '<span class="nopadding'.($morecss ? ' userimg'.$morecss : '').'"'.($paddafterimage ? ' '.$paddafterimage : '').'>';
|
||||||
$picto .= Form::showphoto('memberphoto', $this, 0, 0, 0, 'userphoto'.($withpictoimg == -3 ? 'small' : ''), 'mini', 0, 1);
|
$picto .= Form::showphoto('memberphoto', $this, 0, 0, 0, 'userphoto'.($withpictoimg == -3 ? 'small' : ''), 'mini', 0, 1);
|
||||||
$picto .= '</span>';
|
$picto .= '</span>';
|
||||||
@ -2078,8 +2138,10 @@ class Adherent extends CommonObject
|
|||||||
$result .= $picto;
|
$result .= $picto;
|
||||||
}
|
}
|
||||||
if ($withpictoimg > -2 && $withpictoimg != 2) {
|
if ($withpictoimg > -2 && $withpictoimg != 2) {
|
||||||
if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) $result .= '<span class="nopadding valignmiddle'.((!isset($this->statut) || $this->statut) ? '' : ' strikefordisabled').
|
if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) {
|
||||||
|
$result .= '<span class="nopadding valignmiddle'.((!isset($this->statut) || $this->statut) ? '' : ' strikefordisabled').
|
||||||
($morecss ? ' usertext'.$morecss : '').'">';
|
($morecss ? ' usertext'.$morecss : '').'">';
|
||||||
|
}
|
||||||
if ($mode == 'login') {
|
if ($mode == 'login') {
|
||||||
$result .= dol_trunc($this->login, $maxlen);
|
$result .= dol_trunc($this->login, $maxlen);
|
||||||
} elseif ($mode == 'ref') {
|
} elseif ($mode == 'ref') {
|
||||||
@ -2087,9 +2149,13 @@ class Adherent extends CommonObject
|
|||||||
} else {
|
} else {
|
||||||
$result .= $this->getFullName($langs, '', ($mode == 'firstname' ? 2 : ($mode == 'lastname' ? 4 : -1)), $maxlen);
|
$result .= $this->getFullName($langs, '', ($mode == 'firstname' ? 2 : ($mode == 'lastname' ? 4 : -1)), $maxlen);
|
||||||
}
|
}
|
||||||
if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) $result .= '</span>';
|
if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) {
|
||||||
|
$result .= '</span>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($withpictoimg) {
|
||||||
|
$result .= '</div>';
|
||||||
}
|
}
|
||||||
if ($withpictoimg) $result .= '</div>';
|
|
||||||
$result .= $linkend;
|
$result .= $linkend;
|
||||||
|
|
||||||
if ($addlinktonotes) {
|
if ($addlinktonotes) {
|
||||||
@ -2214,7 +2280,9 @@ class Adherent extends CommonObject
|
|||||||
// phpcs:enable
|
// phpcs:enable
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
if ($user->socid) return -1; // protection pour eviter appel par utilisateur externe
|
if ($user->socid) {
|
||||||
|
return -1; // protection pour eviter appel par utilisateur externe
|
||||||
|
}
|
||||||
|
|
||||||
$now = dol_now();
|
$now = dol_now();
|
||||||
|
|
||||||
@ -2398,9 +2466,15 @@ class Adherent extends CommonObject
|
|||||||
// phpcs:enable
|
// phpcs:enable
|
||||||
global $conf;
|
global $conf;
|
||||||
$dn = '';
|
$dn = '';
|
||||||
if ($mode == 0) $dn = $conf->global->LDAP_KEY_MEMBERS."=".$info[$conf->global->LDAP_KEY_MEMBERS].",".$conf->global->LDAP_MEMBER_DN;
|
if ($mode == 0) {
|
||||||
if ($mode == 1) $dn = $conf->global->LDAP_MEMBER_DN;
|
$dn = $conf->global->LDAP_KEY_MEMBERS."=".$info[$conf->global->LDAP_KEY_MEMBERS].",".$conf->global->LDAP_MEMBER_DN;
|
||||||
if ($mode == 2) $dn = $conf->global->LDAP_KEY_MEMBERS."=".$info[$conf->global->LDAP_KEY_MEMBERS];
|
}
|
||||||
|
if ($mode == 1) {
|
||||||
|
$dn = $conf->global->LDAP_MEMBER_DN;
|
||||||
|
}
|
||||||
|
if ($mode == 2) {
|
||||||
|
$dn = $conf->global->LDAP_KEY_MEMBERS."=".$info[$conf->global->LDAP_KEY_MEMBERS];
|
||||||
|
}
|
||||||
return $dn;
|
return $dn;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2448,31 +2522,65 @@ class Adherent extends CommonObject
|
|||||||
|
|
||||||
// Check if it is the LDAP key and if its value has been changed
|
// Check if it is the LDAP key and if its value has been changed
|
||||||
if (!empty($conf->global->LDAP_KEY_MEMBERS) && $conf->global->LDAP_KEY_MEMBERS == $conf->global->$constname) {
|
if (!empty($conf->global->LDAP_KEY_MEMBERS) && $conf->global->LDAP_KEY_MEMBERS == $conf->global->$constname) {
|
||||||
if (!empty($this->oldcopy) && $this->$varname != $this->oldcopy->$varname) $keymodified = true; // For check if LDAP key has been modified
|
if (!empty($this->oldcopy) && $this->$varname != $this->oldcopy->$varname) {
|
||||||
|
$keymodified = true; // For check if LDAP key has been modified
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($this->firstname && !empty($conf->global->LDAP_MEMBER_FIELD_FIRSTNAME)) $info[$conf->global->LDAP_MEMBER_FIELD_FIRSTNAME] = $this->firstname;
|
}
|
||||||
if ($this->poste && !empty($conf->global->LDAP_MEMBER_FIELD_TITLE)) $info[$conf->global->LDAP_MEMBER_FIELD_TITLE] = $this->poste;
|
if ($this->firstname && !empty($conf->global->LDAP_MEMBER_FIELD_FIRSTNAME)) {
|
||||||
if ($this->company && !empty($conf->global->LDAP_MEMBER_FIELD_COMPANY)) $info[$conf->global->LDAP_MEMBER_FIELD_COMPANY] = $this->company;
|
$info[$conf->global->LDAP_MEMBER_FIELD_FIRSTNAME] = $this->firstname;
|
||||||
if ($this->address && !empty($conf->global->LDAP_MEMBER_FIELD_ADDRESS)) $info[$conf->global->LDAP_MEMBER_FIELD_ADDRESS] = $this->address;
|
}
|
||||||
if ($this->zip && !empty($conf->global->LDAP_MEMBER_FIELD_ZIP)) $info[$conf->global->LDAP_MEMBER_FIELD_ZIP] = $this->zip;
|
if ($this->poste && !empty($conf->global->LDAP_MEMBER_FIELD_TITLE)) {
|
||||||
if ($this->town && !empty($conf->global->LDAP_MEMBER_FIELD_TOWN)) $info[$conf->global->LDAP_MEMBER_FIELD_TOWN] = $this->town;
|
$info[$conf->global->LDAP_MEMBER_FIELD_TITLE] = $this->poste;
|
||||||
if ($this->country_code && !empty($conf->global->LDAP_MEMBER_FIELD_COUNTRY)) $info[$conf->global->LDAP_MEMBER_FIELD_COUNTRY] = $this->country_code;
|
}
|
||||||
|
if ($this->company && !empty($conf->global->LDAP_MEMBER_FIELD_COMPANY)) {
|
||||||
|
$info[$conf->global->LDAP_MEMBER_FIELD_COMPANY] = $this->company;
|
||||||
|
}
|
||||||
|
if ($this->address && !empty($conf->global->LDAP_MEMBER_FIELD_ADDRESS)) {
|
||||||
|
$info[$conf->global->LDAP_MEMBER_FIELD_ADDRESS] = $this->address;
|
||||||
|
}
|
||||||
|
if ($this->zip && !empty($conf->global->LDAP_MEMBER_FIELD_ZIP)) {
|
||||||
|
$info[$conf->global->LDAP_MEMBER_FIELD_ZIP] = $this->zip;
|
||||||
|
}
|
||||||
|
if ($this->town && !empty($conf->global->LDAP_MEMBER_FIELD_TOWN)) {
|
||||||
|
$info[$conf->global->LDAP_MEMBER_FIELD_TOWN] = $this->town;
|
||||||
|
}
|
||||||
|
if ($this->country_code && !empty($conf->global->LDAP_MEMBER_FIELD_COUNTRY)) {
|
||||||
|
$info[$conf->global->LDAP_MEMBER_FIELD_COUNTRY] = $this->country_code;
|
||||||
|
}
|
||||||
foreach ($socialnetworks as $key => $value) {
|
foreach ($socialnetworks as $key => $value) {
|
||||||
if ($this->socialnetworks[$value['label']] && !empty($conf->global->{'LDAP_MEMBER_FIELD_'.strtoupper($value['label'])})) {
|
if ($this->socialnetworks[$value['label']] && !empty($conf->global->{'LDAP_MEMBER_FIELD_'.strtoupper($value['label'])})) {
|
||||||
$info[$conf->global->{'LDAP_MEMBER_FIELD_'.strtoupper($value['label'])}] = $this->socialnetworks[$value['label']];
|
$info[$conf->global->{'LDAP_MEMBER_FIELD_'.strtoupper($value['label'])}] = $this->socialnetworks[$value['label']];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($this->phone && !empty($conf->global->LDAP_MEMBER_FIELD_PHONE)) $info[$conf->global->LDAP_MEMBER_FIELD_PHONE] = $this->phone;
|
if ($this->phone && !empty($conf->global->LDAP_MEMBER_FIELD_PHONE)) {
|
||||||
if ($this->phone_perso && !empty($conf->global->LDAP_MEMBER_FIELD_PHONE_PERSO)) $info[$conf->global->LDAP_MEMBER_FIELD_PHONE_PERSO] = $this->phone_perso;
|
$info[$conf->global->LDAP_MEMBER_FIELD_PHONE] = $this->phone;
|
||||||
if ($this->phone_mobile && !empty($conf->global->LDAP_MEMBER_FIELD_MOBILE)) $info[$conf->global->LDAP_MEMBER_FIELD_MOBILE] = $this->phone_mobile;
|
}
|
||||||
if ($this->fax && !empty($conf->global->LDAP_MEMBER_FIELD_FAX)) $info[$conf->global->LDAP_MEMBER_FIELD_FAX] = $this->fax;
|
if ($this->phone_perso && !empty($conf->global->LDAP_MEMBER_FIELD_PHONE_PERSO)) {
|
||||||
if ($this->note_private && !empty($conf->global->LDAP_MEMBER_FIELD_DESCRIPTION)) $info[$conf->global->LDAP_MEMBER_FIELD_DESCRIPTION] = dol_string_nohtmltag($this->note_private, 2);
|
$info[$conf->global->LDAP_MEMBER_FIELD_PHONE_PERSO] = $this->phone_perso;
|
||||||
if ($this->note_public && !empty($conf->global->LDAP_MEMBER_FIELD_NOTE_PUBLIC)) $info[$conf->global->LDAP_MEMBER_FIELD_NOTE_PUBLIC] = dol_string_nohtmltag($this->note_public, 2);
|
}
|
||||||
if ($this->birth && !empty($conf->global->LDAP_MEMBER_FIELD_BIRTHDATE)) $info[$conf->global->LDAP_MEMBER_FIELD_BIRTHDATE] = dol_print_date($this->birth, 'dayhourldap');
|
if ($this->phone_mobile && !empty($conf->global->LDAP_MEMBER_FIELD_MOBILE)) {
|
||||||
if (isset($this->statut) && !empty($conf->global->LDAP_FIELD_MEMBER_STATUS)) $info[$conf->global->LDAP_FIELD_MEMBER_STATUS] = $this->statut;
|
$info[$conf->global->LDAP_MEMBER_FIELD_MOBILE] = $this->phone_mobile;
|
||||||
if ($this->datefin && !empty($conf->global->LDAP_FIELD_MEMBER_END_LASTSUBSCRIPTION)) $info[$conf->global->LDAP_FIELD_MEMBER_END_LASTSUBSCRIPTION] = dol_print_date($this->datefin, 'dayhourldap');
|
}
|
||||||
|
if ($this->fax && !empty($conf->global->LDAP_MEMBER_FIELD_FAX)) {
|
||||||
|
$info[$conf->global->LDAP_MEMBER_FIELD_FAX] = $this->fax;
|
||||||
|
}
|
||||||
|
if ($this->note_private && !empty($conf->global->LDAP_MEMBER_FIELD_DESCRIPTION)) {
|
||||||
|
$info[$conf->global->LDAP_MEMBER_FIELD_DESCRIPTION] = dol_string_nohtmltag($this->note_private, 2);
|
||||||
|
}
|
||||||
|
if ($this->note_public && !empty($conf->global->LDAP_MEMBER_FIELD_NOTE_PUBLIC)) {
|
||||||
|
$info[$conf->global->LDAP_MEMBER_FIELD_NOTE_PUBLIC] = dol_string_nohtmltag($this->note_public, 2);
|
||||||
|
}
|
||||||
|
if ($this->birth && !empty($conf->global->LDAP_MEMBER_FIELD_BIRTHDATE)) {
|
||||||
|
$info[$conf->global->LDAP_MEMBER_FIELD_BIRTHDATE] = dol_print_date($this->birth, 'dayhourldap');
|
||||||
|
}
|
||||||
|
if (isset($this->statut) && !empty($conf->global->LDAP_FIELD_MEMBER_STATUS)) {
|
||||||
|
$info[$conf->global->LDAP_FIELD_MEMBER_STATUS] = $this->statut;
|
||||||
|
}
|
||||||
|
if ($this->datefin && !empty($conf->global->LDAP_FIELD_MEMBER_END_LASTSUBSCRIPTION)) {
|
||||||
|
$info[$conf->global->LDAP_FIELD_MEMBER_END_LASTSUBSCRIPTION] = dol_print_date($this->datefin, 'dayhourldap');
|
||||||
|
}
|
||||||
|
|
||||||
// When password is modified
|
// When password is modified
|
||||||
if (!empty($this->pass)) {
|
if (!empty($this->pass)) {
|
||||||
@ -2482,8 +2590,9 @@ class Adherent extends CommonObject
|
|||||||
if (!empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED)) {
|
if (!empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED)) {
|
||||||
$info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED] = dol_hash($this->pass, 4); // Create OpenLDAP MD5 password (TODO add type of encryption)
|
$info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED] = dol_hash($this->pass, 4); // Create OpenLDAP MD5 password (TODO add type of encryption)
|
||||||
}
|
}
|
||||||
} // Set LDAP password if possible
|
} elseif ($conf->global->LDAP_SERVER_PROTOCOLVERSION !== '3') {
|
||||||
elseif ($conf->global->LDAP_SERVER_PROTOCOLVERSION !== '3') { // If ldap key is modified and LDAPv3 we use ldap_rename function for avoid lose encrypt password
|
// Set LDAP password if possible
|
||||||
|
// If ldap key is modified and LDAPv3 we use ldap_rename function for avoid lose encrypt password
|
||||||
if (!empty($conf->global->DATABASE_PWD_ENCRYPTED)) {
|
if (!empty($conf->global->DATABASE_PWD_ENCRYPTED)) {
|
||||||
// Just for the default MD5 !
|
// Just for the default MD5 !
|
||||||
if (empty($conf->global->MAIN_SECURITY_HASH_ALGO)) {
|
if (empty($conf->global->MAIN_SECURITY_HASH_ALGO)) {
|
||||||
@ -2493,18 +2602,30 @@ class Adherent extends CommonObject
|
|||||||
$info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED] = '{md5}'.base64_encode(hex2bin($this->pass_indatabase_crypted));
|
$info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED] = '{md5}'.base64_encode(hex2bin($this->pass_indatabase_crypted));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} // Use $this->pass_indatabase value if exists
|
} elseif (!empty($this->pass_indatabase)) {
|
||||||
elseif (!empty($this->pass_indatabase)) {
|
// Use $this->pass_indatabase value if exists
|
||||||
if (!empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD)) $info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD] = $this->pass_indatabase; // $this->pass_indatabase = mot de passe non crypte
|
if (!empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD)) {
|
||||||
if (!empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED)) $info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED] = dol_hash($this->pass_indatabase, 4); // md5 for OpenLdap TODO add type of encryption
|
$info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD] = $this->pass_indatabase; // $this->pass_indatabase = mot de passe non crypte
|
||||||
|
}
|
||||||
|
if (!empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED)) {
|
||||||
|
$info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED] = dol_hash($this->pass_indatabase, 4); // md5 for OpenLdap TODO add type of encryption
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Subscriptions
|
// Subscriptions
|
||||||
if ($this->first_subscription_date && !empty($conf->global->LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_DATE)) $info[$conf->global->LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_DATE] = dol_print_date($this->first_subscription_date, 'dayhourldap');
|
if ($this->first_subscription_date && !empty($conf->global->LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_DATE)) {
|
||||||
if (isset($this->first_subscription_amount) && !empty($conf->global->LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_AMOUNT)) $info[$conf->global->LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_AMOUNT] = $this->first_subscription_amount;
|
$info[$conf->global->LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_DATE] = dol_print_date($this->first_subscription_date, 'dayhourldap');
|
||||||
if ($this->last_subscription_date && !empty($conf->global->LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_DATE)) $info[$conf->global->LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_DATE] = dol_print_date($this->last_subscription_date, 'dayhourldap');
|
}
|
||||||
if (isset($this->last_subscription_amount) && !empty($conf->global->LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_AMOUNT)) $info[$conf->global->LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_AMOUNT] = $this->last_subscription_amount;
|
if (isset($this->first_subscription_amount) && !empty($conf->global->LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_AMOUNT)) {
|
||||||
|
$info[$conf->global->LDAP_FIELD_MEMBER_FIRSTSUBSCRIPTION_AMOUNT] = $this->first_subscription_amount;
|
||||||
|
}
|
||||||
|
if ($this->last_subscription_date && !empty($conf->global->LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_DATE)) {
|
||||||
|
$info[$conf->global->LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_DATE] = dol_print_date($this->last_subscription_date, 'dayhourldap');
|
||||||
|
}
|
||||||
|
if (isset($this->last_subscription_amount) && !empty($conf->global->LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_AMOUNT)) {
|
||||||
|
$info[$conf->global->LDAP_FIELD_MEMBER_LASTSUBSCRIPTION_AMOUNT] = $this->last_subscription_amount;
|
||||||
|
}
|
||||||
|
|
||||||
return $info;
|
return $info;
|
||||||
}
|
}
|
||||||
@ -2626,8 +2747,12 @@ class Adherent extends CommonObject
|
|||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
//Only valid members
|
//Only valid members
|
||||||
if ($this->statut <= 0) return false;
|
if ($this->statut <= 0) {
|
||||||
if (!$this->datefin) return false;
|
return false;
|
||||||
|
}
|
||||||
|
if (!$this->datefin) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
$now = dol_now();
|
$now = dol_now();
|
||||||
|
|
||||||
@ -2720,7 +2845,9 @@ class Adherent extends CommonObject
|
|||||||
$arraydefaultmessage = null;
|
$arraydefaultmessage = null;
|
||||||
$labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION;
|
$labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_REMIND_EXPIRATION;
|
||||||
|
|
||||||
if (!empty($labeltouse)) $arraydefaultmessage = $formmail->getEMailTemplate($this->db, 'member', $user, $outputlangs, 0, 1, $labeltouse);
|
if (!empty($labeltouse)) {
|
||||||
|
$arraydefaultmessage = $formmail->getEMailTemplate($this->db, 'member', $user, $outputlangs, 0, 1, $labeltouse);
|
||||||
|
}
|
||||||
|
|
||||||
if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) {
|
if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) {
|
||||||
$substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $adherent);
|
$substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $adherent);
|
||||||
@ -2763,7 +2890,9 @@ class Adherent extends CommonObject
|
|||||||
if ($message) {
|
if ($message) {
|
||||||
$actionmsg = $langs->transnoentities('MailFrom').': '.dol_escape_htmltag($from);
|
$actionmsg = $langs->transnoentities('MailFrom').': '.dol_escape_htmltag($from);
|
||||||
$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTo').': '.dol_escape_htmltag($sendto));
|
$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTo').': '.dol_escape_htmltag($sendto));
|
||||||
if ($sendtocc) $actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('Bcc').": ".dol_escape_htmltag($sendtocc));
|
if ($sendtocc) {
|
||||||
|
$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('Bcc').": ".dol_escape_htmltag($sendtocc));
|
||||||
|
}
|
||||||
$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic').": ".$subject);
|
$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('MailTopic').": ".$subject);
|
||||||
$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody').":");
|
$actionmsg = dol_concatdesc($actionmsg, $langs->transnoentities('TextUsedInTheMessageBody').":");
|
||||||
$actionmsg = dol_concatdesc($actionmsg, $message);
|
$actionmsg = dol_concatdesc($actionmsg, $message);
|
||||||
@ -2843,7 +2972,9 @@ class Adherent extends CommonObject
|
|||||||
$listofids .= $idmember;
|
$listofids .= $idmember;
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
if ($listofids) $listofids .= ']';
|
if ($listofids) {
|
||||||
|
$listofids .= ']';
|
||||||
|
}
|
||||||
$this->output .= $listofids;
|
$this->output .= $listofids;
|
||||||
}
|
}
|
||||||
if ($nbko) {
|
if ($nbko) {
|
||||||
@ -2864,7 +2995,9 @@ class Adherent extends CommonObject
|
|||||||
$listofids .= $idmember;
|
$listofids .= $idmember;
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
if ($listofids) $listofids .= ']';
|
if ($listofids) {
|
||||||
|
$listofids .= ']';
|
||||||
|
}
|
||||||
$this->output .= $listofids;
|
$this->output .= $listofids;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -46,7 +46,7 @@ class AdherentType extends CommonObject
|
|||||||
/**
|
/**
|
||||||
* @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
|
* @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png
|
||||||
*/
|
*/
|
||||||
public $picto = 'group';
|
public $picto = 'members';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
|
* 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
|
||||||
@ -313,7 +313,9 @@ class AdherentType extends CommonObject
|
|||||||
if (!$notrigger) {
|
if (!$notrigger) {
|
||||||
// Call trigger
|
// Call trigger
|
||||||
$result = $this->call_trigger('MEMBER_TYPE_CREATE', $user);
|
$result = $this->call_trigger('MEMBER_TYPE_CREATE', $user);
|
||||||
if ($result < 0) { $error++; }
|
if ($result < 0) {
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
// End call triggers
|
// End call triggers
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -386,7 +388,9 @@ class AdherentType extends CommonObject
|
|||||||
if (!$error && !$notrigger) {
|
if (!$error && !$notrigger) {
|
||||||
// Call trigger
|
// Call trigger
|
||||||
$result = $this->call_trigger('MEMBER_TYPE_MODIFY', $user);
|
$result = $this->call_trigger('MEMBER_TYPE_MODIFY', $user);
|
||||||
if ($result < 0) { $error++; }
|
if ($result < 0) {
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
// End call triggers
|
// End call triggers
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -423,7 +427,9 @@ class AdherentType extends CommonObject
|
|||||||
if ($resql) {
|
if ($resql) {
|
||||||
// Call trigger
|
// Call trigger
|
||||||
$result = $this->call_trigger('MEMBER_TYPE_DELETE', $user);
|
$result = $this->call_trigger('MEMBER_TYPE_DELETE', $user);
|
||||||
if ($result < 0) { $error++; $this->db->rollback(); return -2; }
|
if ($result < 0) {
|
||||||
|
$error++; $this->db->rollback(); return -2;
|
||||||
|
}
|
||||||
// End call triggers
|
// End call triggers
|
||||||
|
|
||||||
$this->db->commit();
|
$this->db->commit();
|
||||||
@ -499,7 +505,9 @@ class AdherentType extends CommonObject
|
|||||||
$sql = "SELECT rowid, libelle as label";
|
$sql = "SELECT rowid, libelle as label";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."adherent_type";
|
$sql .= " FROM ".MAIN_DB_PREFIX."adherent_type";
|
||||||
$sql .= " WHERE entity IN (".getEntity('member_type').")";
|
$sql .= " WHERE entity IN (".getEntity('member_type').")";
|
||||||
if ($status >= 0) $sql .= " AND statut = ".((int) $status);
|
if ($status >= 0) {
|
||||||
|
$sql .= " AND statut = ".((int) $status);
|
||||||
|
}
|
||||||
|
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
if ($resql) {
|
if ($resql) {
|
||||||
@ -539,7 +547,9 @@ class AdherentType extends CommonObject
|
|||||||
$sql .= " FROM ".MAIN_DB_PREFIX."adherent as a";
|
$sql .= " FROM ".MAIN_DB_PREFIX."adherent as a";
|
||||||
$sql .= " WHERE a.entity IN (".getEntity('member').")";
|
$sql .= " WHERE a.entity IN (".getEntity('member').")";
|
||||||
$sql .= " AND a.fk_adherent_type = ".$this->id;
|
$sql .= " AND a.fk_adherent_type = ".$this->id;
|
||||||
if (!empty($excludefilter)) $sql .= ' AND ('.$excludefilter.')';
|
if (!empty($excludefilter)) {
|
||||||
|
$sql .= ' AND ('.$excludefilter.')';
|
||||||
|
}
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::listUsersForGroup", LOG_DEBUG);
|
dol_syslog(get_class($this)."::listUsersForGroup", LOG_DEBUG);
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
@ -554,7 +564,9 @@ class AdherentType extends CommonObject
|
|||||||
$memberstatic->fetch($obj->rowid);
|
$memberstatic->fetch($obj->rowid);
|
||||||
}
|
}
|
||||||
$ret[$obj->rowid] = $memberstatic;
|
$ret[$obj->rowid] = $memberstatic;
|
||||||
} else $ret[$obj->rowid] = $obj->rowid;
|
} else {
|
||||||
|
$ret[$obj->rowid] = $obj->rowid;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -578,7 +590,13 @@ class AdherentType extends CommonObject
|
|||||||
public function getmorphylib($morphy = '')
|
public function getmorphylib($morphy = '')
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
if ($morphy == 'phy') { return $langs->trans("Physical"); } elseif ($morphy == 'mor') { return $langs->trans("Moral"); } else return $langs->trans("MorAndPhy");
|
if ($morphy == 'phy') {
|
||||||
|
return $langs->trans("Physical");
|
||||||
|
} elseif ($morphy == 'mor') {
|
||||||
|
return $langs->trans("Moral");
|
||||||
|
} else {
|
||||||
|
return $langs->trans("MorAndPhy");
|
||||||
|
}
|
||||||
//return $morphy;
|
//return $morphy;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -609,8 +627,12 @@ class AdherentType extends CommonObject
|
|||||||
$linkend = '</a>';
|
$linkend = '</a>';
|
||||||
|
|
||||||
$result .= $linkstart;
|
$result .= $linkstart;
|
||||||
if ($withpicto) $result .= img_object(($notooltip ? '' : $label), ($this->picto ? $this->picto : 'generic'), ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1);
|
if ($withpicto) {
|
||||||
if ($withpicto != 2) $result .= ($maxlen ?dol_trunc($this->label, $maxlen) : $this->label);
|
$result .= img_object(($notooltip ? '' : $label), ($this->picto ? $this->picto : 'generic'), ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1);
|
||||||
|
}
|
||||||
|
if ($withpicto != 2) {
|
||||||
|
$result .= ($maxlen ?dol_trunc($this->label, $maxlen) : $this->label);
|
||||||
|
}
|
||||||
$result .= $linkend;
|
$result .= $linkend;
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
@ -642,7 +664,9 @@ class AdherentType extends CommonObject
|
|||||||
$langs->load('companies');
|
$langs->load('companies');
|
||||||
|
|
||||||
$statusType = 'status4';
|
$statusType = 'status4';
|
||||||
if ($status == 0) $statusType = 'status5';
|
if ($status == 0) {
|
||||||
|
$statusType = 'status5';
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($this->labelStatus) || empty($this->labelStatusShort)) {
|
if (empty($this->labelStatus) || empty($this->labelStatusShort)) {
|
||||||
$this->labelStatus[0] = $langs->trans("ActivityCeased");
|
$this->labelStatus[0] = $langs->trans("ActivityCeased");
|
||||||
@ -670,9 +694,15 @@ class AdherentType extends CommonObject
|
|||||||
// phpcs:enable
|
// phpcs:enable
|
||||||
global $conf;
|
global $conf;
|
||||||
$dn = '';
|
$dn = '';
|
||||||
if ($mode == 0) $dn = $conf->global->LDAP_KEY_MEMBERS_TYPES."=".$info[$conf->global->LDAP_KEY_MEMBERS_TYPES].",".$conf->global->LDAP_MEMBER_TYPE_DN;
|
if ($mode == 0) {
|
||||||
if ($mode == 1) $dn = $conf->global->LDAP_MEMBER_TYPE_DN;
|
$dn = $conf->global->LDAP_KEY_MEMBERS_TYPES."=".$info[$conf->global->LDAP_KEY_MEMBERS_TYPES].",".$conf->global->LDAP_MEMBER_TYPE_DN;
|
||||||
if ($mode == 2) $dn = $conf->global->LDAP_KEY_MEMBERS_TYPES."=".$info[$conf->global->LDAP_KEY_MEMBERS_TYPES];
|
}
|
||||||
|
if ($mode == 1) {
|
||||||
|
$dn = $conf->global->LDAP_MEMBER_TYPE_DN;
|
||||||
|
}
|
||||||
|
if ($mode == 2) {
|
||||||
|
$dn = $conf->global->LDAP_KEY_MEMBERS_TYPES."=".$info[$conf->global->LDAP_KEY_MEMBERS_TYPES];
|
||||||
|
}
|
||||||
return $dn;
|
return $dn;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -695,11 +725,15 @@ class AdherentType extends CommonObject
|
|||||||
$info["objectclass"] = explode(',', $conf->global->LDAP_MEMBER_TYPE_OBJECT_CLASS);
|
$info["objectclass"] = explode(',', $conf->global->LDAP_MEMBER_TYPE_OBJECT_CLASS);
|
||||||
|
|
||||||
// Champs
|
// Champs
|
||||||
if ($this->label && !empty($conf->global->LDAP_MEMBER_TYPE_FIELD_FULLNAME)) $info[$conf->global->LDAP_MEMBER_TYPE_FIELD_FULLNAME] = $this->label;
|
if ($this->label && !empty($conf->global->LDAP_MEMBER_TYPE_FIELD_FULLNAME)) {
|
||||||
if ($this->note && !empty($conf->global->LDAP_MEMBER_TYPE_FIELD_DESCRIPTION)) $info[$conf->global->LDAP_MEMBER_TYPE_FIELD_DESCRIPTION] = dol_string_nohtmltag($this->note, 0, 'UTF-8', 1);
|
$info[$conf->global->LDAP_MEMBER_TYPE_FIELD_FULLNAME] = $this->label;
|
||||||
|
}
|
||||||
|
if ($this->note && !empty($conf->global->LDAP_MEMBER_TYPE_FIELD_DESCRIPTION)) {
|
||||||
|
$info[$conf->global->LDAP_MEMBER_TYPE_FIELD_DESCRIPTION] = dol_string_nohtmltag($this->note, 0, 'UTF-8', 1);
|
||||||
|
}
|
||||||
if (!empty($conf->global->LDAP_MEMBER_TYPE_FIELD_GROUPMEMBERS)) {
|
if (!empty($conf->global->LDAP_MEMBER_TYPE_FIELD_GROUPMEMBERS)) {
|
||||||
$valueofldapfield = array();
|
$valueofldapfield = array();
|
||||||
foreach ($this->members as $key=>$val) { // This is array of users for group into dolibarr database.
|
foreach ($this->members as $key => $val) { // This is array of users for group into dolibarr database.
|
||||||
$member = new Adherent($this->db);
|
$member = new Adherent($this->db);
|
||||||
$member->fetch($val->id, '', '', '', false, false);
|
$member->fetch($val->id, '', '', '', false, false);
|
||||||
$info2 = $member->_load_ldap_info();
|
$info2 = $member->_load_ldap_info();
|
||||||
|
|||||||
@ -36,7 +36,7 @@ class Members extends DolibarrApi
|
|||||||
/**
|
/**
|
||||||
* @var array $FIELDS Mandatory fields, checked when create and update object
|
* @var array $FIELDS Mandatory fields, checked when create and update object
|
||||||
*/
|
*/
|
||||||
static $FIELDS = array(
|
public static $FIELDS = array(
|
||||||
'morphy',
|
'morphy',
|
||||||
'typeid'
|
'typeid'
|
||||||
);
|
);
|
||||||
@ -325,7 +325,9 @@ class Members extends DolibarrApi
|
|||||||
}
|
}
|
||||||
|
|
||||||
foreach ($request_data as $field => $value) {
|
foreach ($request_data as $field => $value) {
|
||||||
if ($field == 'id') continue;
|
if ($field == 'id') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
// Process the status separately because it must be updated using
|
// Process the status separately because it must be updated using
|
||||||
// the validate() and resiliate() methods of the class Adherent.
|
// the validate() and resiliate() methods of the class Adherent.
|
||||||
if ($field == 'statut') {
|
if ($field == 'statut') {
|
||||||
@ -399,8 +401,9 @@ class Members extends DolibarrApi
|
|||||||
{
|
{
|
||||||
$member = array();
|
$member = array();
|
||||||
foreach (Members::$FIELDS as $field) {
|
foreach (Members::$FIELDS as $field) {
|
||||||
if (!isset($data[$field]))
|
if (!isset($data[$field])) {
|
||||||
throw new RestException(400, "$field field missing");
|
throw new RestException(400, "$field field missing");
|
||||||
|
}
|
||||||
$member[$field] = $data[$field];
|
$member[$field] = $data[$field];
|
||||||
}
|
}
|
||||||
return $member;
|
return $member;
|
||||||
|
|||||||
@ -30,7 +30,7 @@ class MembersTypes extends DolibarrApi
|
|||||||
/**
|
/**
|
||||||
* @var array $FIELDS Mandatory fields, checked when create and update object
|
* @var array $FIELDS Mandatory fields, checked when create and update object
|
||||||
*/
|
*/
|
||||||
static $FIELDS = array(
|
public static $FIELDS = array(
|
||||||
'label',
|
'label',
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -190,7 +190,9 @@ class MembersTypes extends DolibarrApi
|
|||||||
}
|
}
|
||||||
|
|
||||||
foreach ($request_data as $field => $value) {
|
foreach ($request_data as $field => $value) {
|
||||||
if ($field == 'id') continue;
|
if ($field == 'id') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
// Process the status separately because it must be updated using
|
// Process the status separately because it must be updated using
|
||||||
// the validate() and resiliate() methods of the class AdherentType.
|
// the validate() and resiliate() methods of the class AdherentType.
|
||||||
$membertype->$field = $value;
|
$membertype->$field = $value;
|
||||||
@ -250,8 +252,9 @@ class MembersTypes extends DolibarrApi
|
|||||||
{
|
{
|
||||||
$membertype = array();
|
$membertype = array();
|
||||||
foreach (MembersTypes::$FIELDS as $field) {
|
foreach (MembersTypes::$FIELDS as $field) {
|
||||||
if (!isset($data[$field]))
|
if (!isset($data[$field])) {
|
||||||
throw new RestException(400, "$field field missing");
|
throw new RestException(400, "$field field missing");
|
||||||
|
}
|
||||||
$membertype[$field] = $data[$field];
|
$membertype[$field] = $data[$field];
|
||||||
}
|
}
|
||||||
return $membertype;
|
return $membertype;
|
||||||
|
|||||||
@ -30,7 +30,7 @@ class Subscriptions extends DolibarrApi
|
|||||||
/**
|
/**
|
||||||
* @var array $FIELDS Mandatory fields, checked when create and update object
|
* @var array $FIELDS Mandatory fields, checked when create and update object
|
||||||
*/
|
*/
|
||||||
static $FIELDS = array(
|
public static $FIELDS = array(
|
||||||
'fk_adherent',
|
'fk_adherent',
|
||||||
'dateh',
|
'dateh',
|
||||||
'datef',
|
'datef',
|
||||||
|
|||||||
@ -50,12 +50,18 @@ $limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit;
|
|||||||
$sortfield = GETPOST("sortfield", 'alpha');
|
$sortfield = GETPOST("sortfield", 'alpha');
|
||||||
$sortorder = GETPOST("sortorder", 'alpha');
|
$sortorder = GETPOST("sortorder", 'alpha');
|
||||||
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
$page = GETPOSTISSET('pageplusone') ? (GETPOST('pageplusone') - 1) : GETPOST("page", 'int');
|
||||||
if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1
|
if (empty($page) || $page == -1) {
|
||||||
|
$page = 0;
|
||||||
|
} // If $page is not defined, or '' or -1
|
||||||
$offset = $limit * $page;
|
$offset = $limit * $page;
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
if (!$sortorder) $sortorder = "ASC";
|
if (!$sortorder) {
|
||||||
if (!$sortfield) $sortfield = "name";
|
$sortorder = "ASC";
|
||||||
|
}
|
||||||
|
if (!$sortfield) {
|
||||||
|
$sortfield = "name";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
@ -73,7 +79,7 @@ $upload_dir = $conf->adherent->dir_output."/".get_exdir(0, 0, 0, 1, $object, 'me
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php';
|
include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php';
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -96,8 +102,9 @@ if ($id > 0) {
|
|||||||
$totalsize += $file['size'];
|
$totalsize += $file['size'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($conf->notification->enabled))
|
if (!empty($conf->notification->enabled)) {
|
||||||
$langs->load("mails");
|
$langs->load("mails");
|
||||||
|
}
|
||||||
|
|
||||||
$head = member_prepare_head($object);
|
$head = member_prepare_head($object);
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user