2
0
forked from Wavyzz/dolibarr

Compare commits

...

587 Commits
3.7.1 ... 3.7.3

Author SHA1 Message Date
Laurent Destailleur
f13df0f952 Prepare 3.7.3 2015-12-27 20:17:46 +01:00
Laurent Destailleur
06754068ff Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts:
	build/debian/changelog
	build/makepack-dolibarr.pl
	build/makepack-howto.txt
	htdocs/filefunc.inc.php
2015-12-27 19:02:19 +01:00
Laurent Destailleur
96bc2023f3 Prepare package 3.6.6 2015-12-27 18:56:15 +01:00
Laurent Destailleur
70b73f2d51 Merge pull request #4306 from marcosgdf/bug-3980
FIX #3980 Search field in "product by supplier" list sends empty result 3.8 and 3.7
2015-12-27 17:38:33 +01:00
Marcos García de La Fuente
ebdaf7dfa6 FIX #3980 Search field in "product by supplier" list sends empty result 3.8 and 3.7 2015-12-27 15:12:02 +01:00
Laurent Destailleur
96b6f0d8fb Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts:
	composer.json
	htdocs/product/ajax/products.php
	htdocs/product/class/product.class.php
2015-12-21 12:24:24 +01:00
Laurent Destailleur
67462a81a8 Fix link to issues and dependencies 2015-12-21 12:22:31 +01:00
Laurent Destailleur
b0b5e95c7f Backport travis change 2015-12-21 03:04:01 +01:00
Laurent Destailleur
9334cf8fd1 FIX #4243 sql injection 2015-12-19 18:03:08 +01:00
Laurent Destailleur
6ed87f43de Fix indent 2015-12-19 01:15:08 +01:00
Laurent Destailleur
b1b2038d71 Merge remote-tracking branch 'origin/3.6' into 3.7 2015-12-19 01:11:01 +01:00
Laurent Destailleur
0df45f10c1 Fix travis 2015-12-19 01:09:42 +01:00
Laurent Destailleur
a136e90749 Fix travis 2015-12-19 01:06:11 +01:00
Laurent Destailleur
41cdb65521 Test to solve travis error 2015-12-18 21:44:18 +01:00
Laurent Destailleur
ebf68ecbe0 Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts:
	.travis.yml
	htdocs/contrat/class/contrat.class.php
	htdocs/core/modules/livraison/pdf/pdf_typhon.modules.php
	htdocs/core/modules/project/pdf/pdf_baleine.modules.php
2015-12-18 21:03:57 +01:00
Laurent Destailleur
c1c0fa88c2 Fix for new travis setup 2015-12-18 20:56:27 +01:00
Laurent Destailleur
b47dc8a394 Fix to use new travis setup 2015-12-18 20:10:11 +01:00
Laurent Destailleur
61df71cc64 Fix travis 2015-12-18 19:57:09 +01:00
Laurent Destailleur
11042fe499 Restore data missin help debug 2015-12-18 19:54:54 +01:00
Laurent Destailleur
064fad136e Try to solve travis pb 2015-12-18 19:28:17 +01:00
Laurent Destailleur
0dc4130a17 Add debug 2015-12-18 18:59:20 +01:00
Laurent Destailleur
056ab63680 Try to fix travis error using new setup 2015-12-18 18:46:35 +01:00
Laurent Destailleur
480111c6b1 Try to fix travis error using new setup 2015-12-18 18:31:51 +01:00
Laurent Destailleur
5c8731b197 Merge branch '3.7' of git@github.com:Dolibarr/dolibarr.git into 3.7 2015-12-18 18:29:51 +01:00
Laurent Destailleur
aa7e74f4c8 Try to fix travis error using the new setup 2015-12-18 18:29:33 +01:00
Laurent Destailleur
7af4d91828 Merge pull request #4251 from fmarcet/3.6
FIX: Not deleting contracts on element_element table
2015-12-18 17:07:42 +01:00
Laurent Destailleur
2a137cd126 Merge pull request #4248 from GPCsolutions/3.7-4242
FIX #4242 Allow disabling dashes in documents
2015-12-18 17:06:40 +01:00
Laurent Destailleur
3d6f1d911a Merge pull request #4247 from GPCsolutions/3.6-4242
FIX #4242 Allow disabling dashes in documents
2015-12-18 17:06:23 +01:00
fmarcet
21f7271e51 FIX: Not deleting contrats on element_element table 2015-12-17 12:36:43 +01:00
Raphaël Doursenaud
02e053acc6 FIX #4242 Allow disabling dashes in documents
3.7 specific fix since document files have moved
2015-12-17 10:26:27 +01:00
Raphaël Doursenaud
e6ec797af8 FIX #4242 Allow disabling dashes in documents 2015-12-17 10:21:44 +01:00
Laurent Destailleur
7c1fc2fee1 Merge pull request #4233 from aspangaro/3.7-accountancy1
Fix: Accountancy Add an empty field for list of parent account - This value can be null
2015-12-16 19:14:45 +01:00
Laurent Destailleur
198e2cdcfa Merge pull request #4237 from hregis/3.7_bug
Fix: PHP 7 - Fatal error: 'break' not in the 'loop' or 'switch' context
2015-12-16 18:11:45 +01:00
Regis Houssin
cb7f29b332 Fix: PHP 7 - Fatal error: 'break' not in the 'loop' or 'switch' context 2015-12-16 13:32:44 +01:00
aspangaro
dfbc2814e7 Fix: Add an empty field for list of parent account - This value can be null 2015-12-15 21:10:53 +01:00
Laurent Destailleur
1978eebb69 Fix bad merge 2015-12-13 17:33:20 +01:00
Laurent Destailleur
4a88c9ea9f Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts:
	htdocs/product/class/product.class.php
2015-12-13 15:53:57 +01:00
Laurent Destailleur
3fea57f83b Merge pull request #4192 from GPCsolutions/3.6-3930
Fix #3930 Removed executable bit
2015-12-11 16:42:25 +01:00
Raphaël Doursenaud
4e9b339439 [Qual] Removed PHP closing tag 2015-12-09 13:28:45 +01:00
Raphaël Doursenaud
c0862762a5 Fix #3930 Removed executable bit
These files doesn't contain executable code and may pose a security
threat.
2015-12-09 13:28:36 +01:00
Laurent Destailleur
a209d18649 FIX Can use formated float number on old expense report module. 2015-12-06 19:51:28 +01:00
Laurent Destailleur
b3ed99ddc1 Merge pull request #4146 from fmarcet/3.6
FIX: Not delete a product when have customer price
2015-12-04 18:24:37 +01:00
Laurent Destailleur
00aa5aace7 Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts:
	dev/codesniffer/ruleset.xml
2015-12-04 12:14:24 +01:00
Laurent Destailleur
d2b221cfd1 Upgrade PHPCS rules 2015-12-04 10:22:27 +01:00
fmarcet
eb98bd1e78 FIX: Not delete a product when have customer price 2015-12-03 14:02:26 +01:00
Laurent Destailleur
7105fabb79 Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts:
	htdocs/langs/en_US/users.lang
	htdocs/product/stock/class/mouvementstock.class.php
2015-12-03 12:51:49 +01:00
Laurent Destailleur
1694481df8 Merge pull request #4134 from FHenry/3.7
FIX : Use "WHERE true" instead of "WHERE 1" #4132
2015-12-03 11:58:23 +01:00
Laurent Destailleur
a7020506aa Merge pull request #4123 from aspangaro/3.7-accountancy
Fix : accountancy code on finance journal is not a constant
2015-12-03 11:55:08 +01:00
Florian HENRY
bd632cf2b0 FIX : Use "WHERE true" instead of "WHERE 1" #4132 2015-12-02 12:12:26 +01:00
aspangaro
b1122b55d4 Fix : accountancy code on finance journal is not a constant 2015-11-30 21:07:27 +01:00
Laurent Destailleur
e72f4cb063 Merge pull request #4102 from fmarcet/3.6
Fix: Bug when idprof is mandatory on thrid creation and we use multicompany
2015-11-28 16:27:16 +01:00
Laurent Destailleur
ae87a270e4 Merge pull request #4101 from aspangaro/3.7-accountancy
Fix #4069 Accountancy - button "export" don't work on finance journal
2015-11-28 16:26:36 +01:00
Laurent Destailleur
2ce00b2956 Merge pull request #4099 from GPCsolutions/3.6-4097
FIX #4097 Public holiday calculation
2015-11-28 16:11:28 +01:00
fmarcet
208bf2545f Fix: Bug when idprof is mandatory on thrid creation and we use
multicompany
2015-11-26 17:14:03 +01:00
aspangaro
37da315af6 Remove old code 2015-11-26 06:30:09 +01:00
aspangaro
9a2259c681 Correct button 'Export' and 'Write bookkeeping' on finance journal 2015-11-26 06:19:24 +01:00
Laurent Destailleur
041fa8d3f3 Merge pull request #4083 from GPCsolutions/3.6-4081
FIX #4081 Added missing translation
2015-11-26 00:16:46 +01:00
aspangaro
8c0dffd24e Merge remote-tracking branch 'Upstream/3.7' into 3.7-accountancy 2015-11-25 20:23:41 +01:00
Raphaël Doursenaud
973e42d10f FIX #4097 Public holiday calculation
The last day was ommitted and never parsed. If this day was a
saturday, sunday or public holiday day, it was not computed.
2015-11-25 19:34:11 +01:00
Raphaël Doursenaud
91ce70a6e9 FIX #4081 Added missing translation 2015-11-23 17:25:10 +01:00
Laurent Destailleur
d64664f5a7 Merge pull request #4057 from marcosgdf/bug-3734
FIX #3734 Do not show empty links of deleted source objects in stock movement list
2015-11-21 17:49:41 +01:00
Laurent Destailleur
c04743aa84 Merge remote-tracking branch 'origin/3.6' into 3.7 2015-11-21 12:23:51 +01:00
Marcos García de La Fuente
9f27e2323f FIX #3734 Do not show empty links of deleted source objects in stock movement list 2015-11-21 11:51:23 +01:00
Laurent Destailleur
c77eaeaa77 Merge pull request #4040 from atm-arnaud/3.6_fix_export_category_contact
FIX export with category contact extrafields
2015-11-21 02:09:32 +01:00
Laurent Destailleur
07d24a9a05 Merge pull request #4044 from atm-arnaud/3.7_fix_project_box_nb_task
FIX Nb of tasks and percent progress in box project
2015-11-21 02:08:00 +01:00
arnaud
07226d32ec FIX NB task and percent progress in box project 2015-11-20 16:11:48 +01:00
arnaud
4233d24f4b FIX export with category contact extrafields 2015-11-19 18:01:58 +01:00
Juanjo Menent
a627e32fca Merge pull request #4034 from fmarcet/3.7
FIX Not use localtaxes when invoice some orders
2015-11-18 23:07:24 +01:00
Juanjo Menent
6c379029fa Merge pull request #4033 from atm-arnaud/3.7_fix_project_box
FIX product link in project box
2015-11-18 23:06:08 +01:00
fmarcet
f615927d24 FIX Not use localtaxes when invoice some orders 2015-11-18 17:56:04 +01:00
arnaud
85a58f666a FIX product link in project box 2015-11-18 17:22:53 +01:00
aspangaro
06f752b250 Merge remote-tracking branch 'Upstream/3.7' into 3.7-accountancy 2015-11-16 06:50:04 +01:00
Laurent Destailleur
bad28c6d92 Fi sntax error 2015-11-13 11:44:55 +01:00
Laurent Destailleur
eac80d7db4 Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts:
	ChangeLog
	build/debian/changelog
	htdocs/commande/fiche.php
	htdocs/compta/facture.php
2015-11-13 11:43:29 +01:00
Laurent Destailleur
c7546dbad2 Merge branch '3.7' of git@github.com:Dolibarr/dolibarr.git into 3.7 2015-11-13 11:13:04 +01:00
Laurent Destailleur
b3be7f65cd Fix syntax error . = instead of .= 2015-11-13 11:12:49 +01:00
Laurent Destailleur
f65829ec42 Merge pull request #3970 from hregis/3.7_bug
Fix: wrong var name
2015-11-12 18:33:12 +01:00
Regis Houssin
52bd90f950 Fix: wrong var name 2015-11-12 14:12:56 +01:00
Laurent Destailleur
350345ecca Prepare 3.6.5 2015-11-08 15:18:26 +01:00
Laurent Destailleur
722a133b31 FIX Add a protection to not make release if ChangeLog was not generated.
Prepare package 3.6.5

Conflicts:
	ChangeLog

Conflicts:
	ChangeLog
2015-11-08 15:09:57 +01:00
Laurent Destailleur
d4aeb8b3bc Abandon package APS. Was never used. 2015-11-08 14:57:26 +01:00
Laurent Destailleur
04aba8ce96 Abandon package APS. Was never used. 2015-11-08 14:56:36 +01:00
Laurent Destailleur
9b8bb114cd FIX Add a protection to not make release if ChangeLog was not generated.
Prepare package 3.7.2

Conflicts:
	ChangeLog
2015-11-08 14:55:12 +01:00
Laurent Destailleur
c639e82062 FIX Add a protection to not make release if ChangeLog was not generated.
Conflicts:
	ChangeLog
2015-11-08 14:45:56 +01:00
Laurent Destailleur
e6ab6bdb8e Merge branch '3.7' of git@github.com:Dolibarr/dolibarr.git into 3.7 2015-11-08 14:38:01 +01:00
Laurent Destailleur
7a0206adce FIX Missing to set context into workflow actions, so triggers can't know
we are creating an invoice from order or an order from a proposal.
2015-11-08 14:37:50 +01:00
Juanjo Menent
0ce7cad48c Merge pull request #3946 from aspangaro/3.7-1
Fix: Accountancy compatibility with subtotal & jalon module
2015-11-08 11:26:06 +01:00
Juanjo Menent
7673a73a65 Merge pull request #3939 from marcosgdf/bug-3836
FIX #3836 Unable to upload a document to an invoice under some circunstances
2015-11-08 11:21:16 +01:00
Juanjo Menent
8377d6967a Merge pull request #3934 from marcosgdf/bug-3679
FIX #3679 Error when deleting a Localtax2 special payment
2015-11-08 11:16:07 +01:00
Juanjo Menent
a6f0baefc1 Merge pull request #3933 from marcosgdf/bug-3980
FIX #3890 Expected transactions bank account page, shows negative numbers
2015-11-08 11:15:31 +01:00
Juanjo Menent
0cab08b2f3 Merge pull request #3932 from marcosgdf/bug-3707
FIX #3707 Thirdparty bank account page table has a glitch
2015-11-08 11:14:39 +01:00
Juanjo Menent
d69e76168f Merge pull request #3929 from marcosgdf/bug-3928
FIX #3928 Creating a Customer order and a Customer invoice from a project, does not inherit payment conditions and method of payment of customer card
2015-11-08 11:14:02 +01:00
aspangaro
f0a3bca4c2 Fix: Accountancy compatibility with subtotal & jalon module 2015-11-08 04:22:49 +01:00
Marcos García de La Fuente
4a52d3c1b1 Removed unwanted change 2015-11-07 15:35:00 +01:00
Marcos García de La Fuente
84a152dc2e FIX #3836 Unable to upload a document to an invoice under some circunstances 2015-11-07 15:33:48 +01:00
Marcos García de La Fuente
01854b3259 FIX #3679 Error when deleting a Localtax2 special payment 2015-11-07 13:51:09 +01:00
Marcos García de La Fuente
728f469c1e FIX #3890 Expected transactions bank account page, shows negative numbers 2015-11-07 13:43:59 +01:00
Marcos García de La Fuente
3bbedf1795 FIX #3707 Thirdparty bank account page table has a glitch 2015-11-07 13:39:34 +01:00
Marcos García de La Fuente
b4c3804c91 FIX #3928 Creating a Customer order and a Customer invoice from a project, does not inherit payment conditions and method of payment of customer card 2015-11-07 13:21:03 +01:00
Juanjo Menent
f33157033c Merge pull request #3909 from altatof/fixcloseshipping
FIX: change object statut on close shipping and remove erratic db commit
2015-11-06 10:16:00 +01:00
Juanjo Menent
87a102f5c8 Merge pull request #3910 from FHenry/3.7
FIX : only active customer should be available into select list thirdparty on invoice creation
2015-11-06 10:14:44 +01:00
Christophe Battarel
4d11205a01 FIX: change object statut on close shipping and remove erratic db commit 2015-11-06 09:51:33 +01:00
Florian HENRY
600dbced7e Merge branch '3.7' of git@github.com:Dolibarr/dolibarr.git into 3.7 2015-11-06 09:49:48 +01:00
Florian HENRY
8d829dca32 FIX : only active customer should be return into new invoice creation
select list
2015-11-06 09:49:02 +01:00
Laurent Destailleur
fe78996026 Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts:
	htdocs/commande/class/commande.class.php
	htdocs/product/stock/fiche.php
	htdocs/product/stock/valo.php
2015-11-05 22:04:18 +01:00
Laurent Destailleur
375e61de2e Merge 3.5 2015-11-05 22:01:05 +01:00
Laurent Destailleur
5777c16b72 Merge pull request #3902 from altatof/clonedorderdate
FIX: change order date on clone (as everywhere else)
2015-11-05 21:49:50 +01:00
Laurent Destailleur
fdf9617e42 Merge pull request #3900 from GPCsolutions/dolibarr-3864
Fix #3864 Really fixed invalid jQuery code
2015-11-05 21:47:40 +01:00
Laurent Destailleur
d499fafdb9 Merge pull request #3901 from altatof/3.6
FIX bad calculation for stock value
2015-11-05 21:44:21 +01:00
Laurent Destailleur
60debe31c4 Merge pull request #3894 from altatof/stockvalue
FIX bad calculation for stock value
2015-11-05 21:44:15 +01:00
Laurent Destailleur
cbff03ca08 Merge pull request #3892 from atm-alexis/3.7_FIX_data_lose_event_userassigned
FIX event's data lost on user assign update
2015-11-05 21:36:34 +01:00
Christophe Battarel
316b7453e4 FIX bad stock valo 2015-11-05 17:04:08 +01:00
Christophe Battarel
80d2445540 FIX: bad stock valorisation 2015-11-05 17:00:22 +01:00
Christophe Battarel
ad82135879 FIX: change order date on clone (as everywhere else) 2015-11-05 15:36:13 +01:00
Christophe Battarel
75bcb7e53f fix pmp 2015-11-05 15:32:56 +01:00
Christophe Battarel
f566b38296 FIX pmp 2015-11-05 15:29:51 +01:00
Christophe Battarel
fa088eb6cc FIX bad calculation for stock value 2015-11-05 14:57:58 +01:00
Raphaël Doursenaud
b0cf9bd0be Fix #3864 Really fixed invalid jQuery code 2015-11-05 14:38:11 +01:00
Christophe Battarel
9b797c1831 FIX bad calculation for stock value 2015-11-05 12:49:43 +01:00
Alexis Algoud
e1ea2215a3 FIX loss data also if update was cancel by error of ended state with no end date, try a generic patch 2015-11-05 11:25:04 +01:00
Alexis Algoud
0543a31920 FIX event's data lost on user assign update 2015-11-05 11:11:03 +01:00
Laurent Destailleur
fb34f25701 Merge pull request #3887 from GPCsolutions/dolibarr-3864
Fix #3864 Fixed invalid jQuery code
2015-11-05 02:34:24 +01:00
Raphaël Doursenaud
69ac75bef8 Fix #3864 Fixed invalid jQuery code 2015-11-04 22:55:14 +01:00
aspangaro
337643e53e Accountancy : Correct errors of display in bank journal 2015-11-04 22:31:24 +01:00
Laurent Destailleur
38ed83d05f Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts:
	htdocs/core/lib/company.lib.php
2015-11-02 19:19:05 +01:00
Laurent Destailleur
c06c2d0464 FIX #3841 creation of a task completed has not status set to finished by
default
2015-11-02 14:21:45 +01:00
Juanjo Menent
64ff12c009 Merge pull request #3835 from atm-maxime/fix_product_stats
Fix : stats were wrong if same product on several lines
2015-10-30 22:18:48 +01:00
Maxime Kohlhaas
c46f9350a5 Fix : stats were wrong if same product on several lines with same quantity because of distinct 2015-10-30 09:50:04 +01:00
Laurent Destailleur
bd69830cbd Merge pull request #3803 from atm-robin/3.7_fix_supplier_rights
FIX supplier rights for orderToInvoice
2015-10-26 22:46:12 +01:00
atm-robin
29b8919a40 FIX supplier rights for orderToInvoice 2015-10-26 14:34:46 +01:00
Juanjo Menent
d192ed9676 Merge pull request #3761 from frederic34/patch-18
Fix getFullName() on a non-object in notify.class.php
2015-10-18 11:50:04 +02:00
Frédéric FRANCE
6f4cfc86e8 Update notify.class.php
http://www.dolibarr.fr/forum/12-howto--aide/54061-probleme-sur-la-validation-des-commande-fournisseu
Fatal error: Call to a member function getFullName() on a non-object in /home/xxxx/public_html/xxxxx/htdocs/core/class/notify.class.php on line 374
2015-10-18 11:25:55 +02:00
Laurent Destailleur
9b85a70013 Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts:
	ChangeLog
	htdocs/comm/propal.php
	htdocs/comm/propal/class/propal.class.php
2015-10-16 09:52:38 +02:00
Laurent Destailleur
5d585fa04a Merge pull request #3729 from FHenry/3.7
FIX : #3724 Bug: Blank page after cloning proposal with changed client
2015-10-14 21:32:26 +02:00
Laurent Destailleur
f08d52b0e8 Merge pull request #3723 from atm-alexis/FIX_double_escape_entrepot
FIX double db escape add too quote
2015-10-14 21:27:39 +02:00
Florian HENRY
727db56576 FIX : #3724 Bug: Blank page after cloning proposal with changed client 2015-10-14 08:27:56 +02:00
Alexis Algoud
0251728e28 FIX double db escape add too quote 2015-10-12 17:36:24 +02:00
Laurent Destailleur
84f5b72d2b Merge pull request #3719 from Dolibarr/revert-3573-FIX_remove_file_from_mail_remove_file
Revert "FIX no need to remove file into mail form"
2015-10-11 20:43:16 +02:00
Laurent Destailleur
87fad70f4a Revert "FIX no need to remove file into mail form" 2015-10-11 20:42:49 +02:00
Laurent Destailleur
62dd936b08 Merge pull request #3573 from atm-alexis/FIX_remove_file_from_mail_remove_file
FIX no need to remove file into mail form
2015-10-11 20:42:42 +02:00
Laurent Destailleur
9fa2afb44b Merge branch '3.6' of github.com:Dolibarr/dolibarr into 3.6
Conflicts:
	ChangeLog
2015-10-11 19:55:50 +02:00
Laurent Destailleur
4e4efc97f0 Merge branch 'marcosgdf-bug-1776' into 3.6 2015-10-11 19:54:51 +02:00
Laurent Destailleur
c76af687ed Merge pull request #3715 from marcosgdf/clone-proposals
FIX 1794 Error when cloning Proposal gives error in a malformed page
2015-10-11 19:52:30 +02:00
Marcos García de La Fuente
fd9f51df88 Missing changelog 2015-10-11 12:39:42 +02:00
Marcos García de La Fuente
4e9a378f0d Merge branch '3.6' into bug-1776 2015-10-11 12:37:41 +02:00
Marcos García de La Fuente
9f1fa7e212 Missing changelog 2015-10-11 12:32:02 +02:00
Marcos García de La Fuente
252f00dfe7 Merge branch '3.6' into clone-proposals 2015-10-11 12:29:45 +02:00
Laurent Destailleur
3f8e9bd181 Remove warning 2015-10-10 19:24:31 +02:00
Laurent Destailleur
384c89dcef Merge pull request #3701 from altatof/fix_orderdateonclone
FIX: change order date on clone (as everywhere else)
2015-10-09 20:44:03 +02:00
Laurent Destailleur
279e7028fb Merge pull request #3686 from grandoc/3.7
3.7
2015-10-09 20:38:16 +02:00
Laurent Destailleur
f9485bd25b Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts:
	htdocs/core/class/extrafields.class.php
2015-10-09 20:35:17 +02:00
Laurent Destailleur
b27989d5d4 Merge pull request #3665 from altatof/fix_extrafields
reenable search criteria in sql clause
2015-10-09 20:32:42 +02:00
Laurent Destailleur
c675f88dda Merge pull request #3678 from GPCsolutions/3.7-calcul_price_total-warning
[Qual] Prevent warning
2015-10-09 20:29:24 +02:00
Laurent Destailleur
e886c89e06 Merge pull request #3668 from altatof/fix_stock_entity
fix entities warehouse share
2015-10-09 20:16:32 +02:00
Laurent Destailleur
53c9cb38ef Merge pull request #3664 from FHenry/3.7
FIX : New adherent from, always redirect on entity
2015-10-09 20:15:23 +02:00
Christophe Battarel
00f0aff6f0 FIX: change order date on clone (as everywhere else) 2015-10-08 15:58:19 +02:00
philippe grand
0e343ae3b2 syntax error 2015-10-08 09:34:02 +02:00
philippe grand
6cce2860c2 Merge branch '3.7' of https://github.com/Dolibarr/dolibarr.git into 3.7 2015-10-08 09:12:36 +02:00
Laurent Destailleur
8f5d9597f8 Merge pull request #3675 from GPCsolutions/3.7-3666
Fixes for checkbox extrafields
2015-10-07 14:31:30 +02:00
Raphaël Doursenaud
c208fccf35 [Qual] Prevent warning
calcul_price_total() prefers to have the seller and localtaxes specified
2015-10-06 15:03:59 +02:00
Raphaël Doursenaud
afbee44993 Fix #3667 checkbox extrafields on edit
For actions and members.
2015-10-05 20:51:43 +02:00
Raphaël Doursenaud
3fdd59bf0a Fix #3666 checkbox extrafields on edit 2015-10-05 20:39:14 +02:00
Raphaël Doursenaud
41354ca00d Added type hinting to extrafields object 2015-10-05 20:30:55 +02:00
Raphaël Doursenaud
d24f5538f9 Fix: wrong parameters order 2015-10-05 20:25:55 +02:00
Christophe Battarel
f3ef9b868f fix entities warehouse share 2015-10-05 16:19:54 +02:00
Christophe Battarel
bf262c2cae reenable search criteria in sql clause 2015-10-05 15:41:28 +02:00
Florian HENRY
9dd4a23365 Merge branch '3.7' of git@github.com:Dolibarr/dolibarr.git into 3.7 2015-10-05 15:22:38 +02:00
Florian HENRY
c9d8e041d5 FIX : New adherent from, always redirect on entity 2015-10-05 15:20:55 +02:00
philippe grand
78cb31e55f Merge branch '3.7' of https://github.com/Dolibarr/dolibarr.git into 3.7 2015-10-05 14:50:30 +02:00
Laurent Destailleur
406b271275 Merge pull request #3635 from FHenry/3.7
FIX : Mass Mailing activity don't display all status
2015-10-04 19:57:29 +02:00
philippe grand
e22fb3c538 fix : Typo 2015-10-02 12:39:09 +02:00
Florian HENRY
fd29bb34be FIX : Mass Mailing activity don't display all status 2015-10-01 16:09:04 +02:00
Laurent Destailleur
4201e8b032 FIX #3630 - Wrong balance report when module salaries and donation
disabled
2015-10-01 14:38:31 +02:00
Laurent Destailleur
076f2ed9d1 Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts:
	htdocs/core/lib/security.lib.php
2015-10-01 11:10:47 +02:00
Laurent Destailleur
72c31c0fa9 Merge branch '3.6' of git@github.com:Dolibarr/dolibarr.git into 3.6 2015-10-01 10:48:28 +02:00
Laurent Destailleur
4da8fb901b Add comment 2015-10-01 10:48:09 +02:00
Laurent Destailleur
1907e5da54 Merge pull request #3619 from atm-arnaud/3.6_fix_facturestat
FIX facturestat bad sql when customer view is limited
2015-10-01 10:48:05 +02:00
Laurent Destailleur
34adc60d26 Merge pull request #3618 from atm-alexis/fix_event_for_user_restricted_if_no_company
FIX error in SQL due to a previous fix
2015-10-01 10:35:07 +02:00
Laurent Destailleur
9c28894ec3 Merge pull request #3615 from FHenry/3.7
FIX : When delete actioncomm also delete actioncomm_resources
2015-10-01 10:34:54 +02:00
Laurent Destailleur
74fb718b77 Merge pull request #3612 from grandoc/3.7
missing translation
2015-10-01 10:28:27 +02:00
Florian HENRY
a96b92a618 FIX : Email selector contact must not include inactive contact 2015-09-30 14:06:45 +02:00
Florian HENRY
e209fb23a2 FIX : Admin fiche inter page do not take good action 2015-09-29 18:27:39 +02:00
Florian HENRY
fecd213bb8 FIX: display error on extrafields on ficheinter 2015-09-29 16:57:05 +02:00
Florian HENRY
bb0de1dcad FIX : update2.php test res befre assign it 2015-09-29 15:00:11 +02:00
Florian HENRY
766b8535ae spacing 2015-09-29 09:47:23 +02:00
Florian HENRY
4f5e207f08 review 2015-09-29 09:45:04 +02:00
arnaud
0b7305d21a FIX facturestat bad sql when customer view is limited 2015-09-28 16:55:34 +02:00
Alexis ALGOUD
453ed8a05e FIX error in SQL due to a previous fix 2015-09-28 15:36:27 +02:00
Florian HENRY
0f27edad5d FIX : When delete actioncomm also delete actioncomm_resources 2015-09-28 10:14:19 +02:00
Grand Philippe
6f128907fe fix : Missing argument 1 for CommonDocGenerator::__construct() 2015-09-27 11:30:23 +02:00
philippe
1454d942ef missing translation 2015-09-27 11:06:45 +02:00
Alexis Algoud
2d35124c71 FIX no need to remove file into mail form, the temp dir will be deleted after any sending 2015-09-23 11:11:19 +02:00
Laurent Destailleur
90b78702e5 Update ignore to secure packaging 2015-09-22 16:23:51 +02:00
Laurent Destailleur
c125ba0d66 Update ignore to secure
Conflicts:
	htdocs/.gitignore
2015-09-22 15:42:59 +02:00
Laurent Destailleur
f9973d13b4 Merge pull request #3550 from AlainRnet/patch-2
Update categorie.php
2015-09-18 20:51:46 +02:00
AlainRnet
8dd843ab8f Update categorie.php
voir https://github.com/Dolibarr/dolibarr/pull/3540/files (je n'avais pas vu dans quelle branche j'étais)
2015-09-17 23:23:18 +02:00
Laurent Destailleur
8251807408 Merge pull request #3532 from FHenry/3.7
FIX : #3530
2015-09-16 21:08:17 +02:00
Laurent Destailleur
30ccd28d01 Merge pull request #3535 from GPCsolutions/3.7-debian
FIX Syntax error in Debian Apache configuration
2015-09-16 21:07:04 +02:00
Raphaël Doursenaud
cb31ab3e2b FIX Syntax error in Debian Apache configuration
This issue prevented Apache from starting after dolibarr deb package
installation with the following error:
Syntax error on line 30 of /etc/apache2/conf.d/dolibarr.conf:
order takes one argument, 'allow,deny', 'deny,allow', or 'mutual-failure'
2015-09-16 19:53:32 +02:00
Marcos García de La Fuente
3818bff86a Fix: [ bug 1776 ] Undefined $deliverycompany variable in pdf_build_address 2015-09-16 12:49:05 +02:00
Marcos García de La Fuente
e80f29c271 Fix: [ bug 1794 ] - Error when cloning Proposal gives error in a malformed page 2015-09-16 12:47:13 +02:00
Florian HENRY
8fd9d2a7ce FIX : #3530 2015-09-16 10:21:32 +02:00
Juanjo Menent
4e19500cce Merge pull request #3527 from FHenry/3.7
FIX : Must not be able to create Proposal on thridparty with "close" status  #3526
2015-09-15 15:13:36 +02:00
Florian HENRY
a0fb27bd80 FIX : Can create Proposal on close thridparty #3526 2015-09-15 14:34:49 +02:00
Laurent Destailleur
0c3ebe63c2 Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts:
	htdocs/fourn/commande/dispatch.php
	htdocs/product/class/html.formproduct.class.php
	htdocs/product/stock/index.php
	htdocs/product/stock/liste.php
	htdocs/product/stock/mouvement.php
	htdocs/product/stock/product.php
	htdocs/product/stock/valo.php
2015-09-12 11:44:07 +02:00
Laurent Destailleur
86b1a9cbce Merge remote-tracking branch 'origin/3.5' into 3.6 2015-09-12 11:38:25 +02:00
Laurent Destailleur
a3032d5674 Merge pull request #3504 from fappels/3.5-patch-Dispatch-rounding
Fix #3471 3.5 Rounding issue when dispatching non-integer
2015-09-12 11:07:55 +02:00
Laurent Destailleur
a83b3ae7e8 Merge pull request #3503 from fappels/3.7-dispatch-rounding
Fix #3471 3.7 Rounding issue when dispatching non-integer
2015-09-12 11:07:16 +02:00
Laurent Destailleur
e1a92c8288 Merge pull request #3506 from atm-maxime/3.6
Fix multientity stock management (F.Henry followup)
2015-09-12 10:58:26 +02:00
Maxime Kohlhaas
c6081f0fa2 Fix multientity stock management (F.Henry followup) 2015-09-11 20:38:32 +02:00
fappels
c290840513 Revert "Fix delete not used empty stock record"
This reverts commit 1d85529eda.
2015-09-10 23:31:23 +02:00
fappels
75a14e02d8 Fix #3471 3.7 Rounding issue when dispatching non-integer 2015-09-10 23:29:13 +02:00
fappels
8bdfdc0127 Fix #3471 3.5 Rounding issue when dispatching non-integer 2015-09-10 23:12:27 +02:00
fappels
249883dda2 Merge remote-tracking branch 'Dolibarr/3.5' into 3.5 2015-09-10 22:19:41 +02:00
fappels
a294700cef fix dispatch rounding version 1 2015-09-10 22:16:03 +02:00
Juanjo Menent
70df553814 Merge pull request #3494 from FHenry/3.6
3.6
2015-09-09 17:43:07 +02:00
Laurent Destailleur
8c1760fbcf Merge branch '3.7' of git@github.com:Dolibarr/dolibarr.git into 3.7 2015-09-09 13:26:35 +02:00
Laurent Destailleur
d3f1a7d5b8 FIX Bad condition into invoice export request making reporting too many
rows.
2015-09-09 13:26:10 +02:00
Juanjo Menent
c13d2d202b Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts:
	ChangeLog
	htdocs/filefunc.inc.php
2015-09-08 21:08:59 +02:00
Laurent Destailleur
1f44bb5947 Merge pull request #3495 from FHenry/3.7
FIX : multientity warehouse management
2015-09-08 20:58:48 +02:00
Juanjo Menent
355fcc78cf Fix #3475 RemiseCheque: Undefined variable $date 2015-09-08 20:48:31 +02:00
Florian HENRY
89b723b2a7 FIX : multientity warehouse management 2015-09-08 16:23:00 +02:00
Florian HENRY
63a817c3a4 Fix wahrehouse multientty management 2015-09-08 16:13:15 +02:00
Florian HENRY
52cb9581ff Fix multientity stock management 2015-09-08 16:00:13 +02:00
Laurent Destailleur
e5ad14442a Merge pull request #3472 from aspangaro/3.7-5
Fix #3455 In advanced accounting module, button transfer to general ledger don't work
2015-09-07 15:10:20 +02:00
Florian HENRY
7505537a3e Merge branch '3.6' of git@github.com:Dolibarr/dolibarr.git into 3.6 2015-09-07 11:39:00 +02:00
Laurent Destailleur
6c78b930d1 Merge branch '3.6' of git@github.com:Dolibarr/dolibarr.git into 3.6 2015-09-06 11:26:20 +02:00
aspangaro
a4a72d64c0 New: Accountancy Add message when general ledger is witten 2015-09-06 06:43:40 +02:00
aspangaro
b268ccf064 Fix #3455 In advanced accounting module, button transfer to general ledger don't work 2015-09-06 04:52:03 +02:00
Laurent Destailleur
8076ea85ea 3.6.4 was packaged 2015-09-05 20:07:17 +02:00
Juanjo Menent
ecf80249d1 Merge pull request #3454 from hregis/3.7_bug3
Fix: problem with pagination
2015-09-04 18:22:23 +02:00
Juanjo Menent
0016f48fac Merge pull request #3424 from atm-aurelien/3.7
FIX ref_supplier to object property on supplier ref change
2015-09-04 18:00:05 +02:00
Laurent Destailleur
2e3d25c055 Merge pull request #3462 from grandoc/3.7
fix : Typo
2015-09-03 19:15:31 +02:00
Laurent Destailleur
1f25ccf0bf git push origin 3.7Merge branch 'marcosgdf-bug-3460' into 3.7 2015-09-03 19:14:49 +02:00
Laurent Destailleur
c7b7dff0ed Merge branch 'bug-3460' of https://github.com/marcosgdf/dolibarr into
marcosgdf-bug-3460

Conflicts:
	ChangeLog
2015-09-03 19:14:37 +02:00
Laurent Destailleur
846899dc06 git push origin 3.7Merge branch 'marcosgdf-bug-3383' into 3.7 2015-09-03 19:12:43 +02:00
Laurent Destailleur
54214cfddf Merge branch 'bug-3383' of https://github.com/marcosgdf/dolibarr into
marcosgdf-bug-3383

Conflicts:
	ChangeLog
2015-09-03 19:12:01 +02:00
Laurent Destailleur
7009c6b890 git push origin 3.7Merge branch 'marcosgdf-bug-3358' into 3.7 2015-09-03 19:08:19 +02:00
Laurent Destailleur
be9d5b030d Merge branch 'bug-3358' of https://github.com/marcosgdf/dolibarr into
marcosgdf-bug-3358

Conflicts:
	ChangeLog
2015-09-03 19:08:08 +02:00
Laurent Destailleur
b0f604da14 Merge branch '3.7' of git@github.com:Dolibarr/dolibarr.git into 3.7
Conflicts:
	ChangeLog
2015-09-03 17:05:02 +02:00
Laurent Destailleur
de741e41e5 git push origin 3.7Merge branch 'marcosgdf-bug-incorrect-pdf-bank' into 3.7 2015-09-03 17:04:03 +02:00
Laurent Destailleur
bd38e2f0bd Merge pull request #3457 from marcosgdf/bug-iban-whitespaces-37
FIX [ bug #3432 ] Spaces should be removed from IBAN when formatting it
2015-09-03 16:56:15 +02:00
Laurent Destailleur
51a01921ba Merge pull request #3456 from marcosgdf/bug-2893
Fix [ bug #2893 ] Dolibarr error when viewing an invoice after changing invoice mask
2015-09-03 16:55:13 +02:00
philippe grand
fed70b1376 translation missing 2015-09-03 12:57:57 +02:00
Marcos García de La Fuente
ded6e7d6d9 Merge branch '3.7' into bug-3358
# Conflicts:
#	ChangeLog
2015-09-03 12:32:03 +02:00
Marcos García de La Fuente
2d5331b8f8 FIX [ #3460 ] Selected bank account was not saved when an error happened when trying to create a customer invoice
Close #3460
2015-09-03 12:13:03 +02:00
philippe grand
8bf093a7ce fix : Typo 2015-09-03 12:12:10 +02:00
Marcos García de La Fuente
67b7162c59 Merge branch '3.7' into bug-3383
# Conflicts:
#	ChangeLog
2015-09-03 12:05:19 +02:00
Marcos García de La Fuente
86dd751f29 Merge branch '3.7' into bug-incorrect-pdf-bank
# Conflicts:
#	ChangeLog
2015-09-03 12:03:24 +02:00
Marcos García de La Fuente
0955432de3 Merge branch '3.7' into bug-iban-whitespaces-37
# Conflicts:
#	ChangeLog
2015-09-03 12:02:23 +02:00
Marcos García de La Fuente
7a115c9366 Typo 2015-09-03 11:59:46 +02:00
Marcos García de La Fuente
bd21cf5d68 Updated changelog 2015-09-03 11:58:20 +02:00
Marcos García de La Fuente
08565d46fe Merge branch '3.6' into bug-2893 2015-09-03 11:56:43 +02:00
Marcos García de La Fuente
50184babb9 FIX [ bug #2893 ] Dolibarr error when viewing an invoice after changing invoice mask
Close #2893
2015-09-03 11:55:40 +02:00
Laurent Destailleur
d64a87d980 Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts:
	htdocs/compta/index.php
2015-09-03 10:44:40 +02:00
Laurent Destailleur
001f1b4c31 Merge remote-tracking branch 'origin/3.5' into 3.6
Conflicts:
	htdocs/filefunc.inc.php
2015-09-03 10:41:44 +02:00
Laurent Destailleur
7640abe6fc Merge pull request #3453 from hregis/3.7_bug
Fix: wrong logical operator
2015-09-03 10:40:10 +02:00
Laurent Destailleur
897686a752 Merge pull request #3447 from fmarcet/3.5
FIX: The hours of date filter aren't correct
2015-09-03 10:33:00 +02:00
Laurent Destailleur
6ea31d87f8 Merge pull request #3445 from GPCsolutions/3.7-2863
Fix #2863 Sensible defaults for ChromePHP path
2015-09-03 10:32:22 +02:00
Laurent Destailleur
9efecbf52b Merge pull request #3443 from GPCsolutions/3.5-3442
Fix #3442 Remove useless syslog
2015-09-03 10:30:42 +02:00
Laurent Destailleur
e3d4b104e2 Merge pull request #3449 from GPCsolutions/3.5-3448
Fix #3448 Pass expected date format
2015-09-03 10:26:00 +02:00
Laurent Destailleur
c024578ca1 Fix bad link and remove a break 2015-09-02 19:41:54 +02:00
Regis Houssin
1a08f65942 Fix: problem with pagination 2015-09-02 17:22:19 +02:00
Laurent Destailleur
5ef3c517bc Merge branch '3.7' of git@github.com:Dolibarr/dolibarr.git into 3.7 2015-09-02 16:26:09 +02:00
Laurent Destailleur
c4fa4fc931 Fix hidden feature to send remind by email 2015-09-02 16:25:21 +02:00
Regis Houssin
fbf13ec2c7 Fix: wrong logical operator 2015-09-02 14:09:19 +02:00
Marcos García de La Fuente
216827b1d8 FIX [ bug #3358 ] Tasks box does not work with PostgreSQL
Close #358
2015-09-01 11:26:59 +02:00
Marcos García de La Fuente
3134950dbe FIX [ bug #3383 ] Company name is overlapped with company direction in PDF models
Close #3383
2015-09-01 11:19:05 +02:00
Marcos García de La Fuente
c4f9bde14d FIX [ bug #3431 ] Invoice bank account is not respected
Close #3431
2015-09-01 11:09:37 +02:00
Raphaël Doursenaud
870882257d Fix #3448 Pass expected date format 2015-09-01 11:06:44 +02:00
Marcos García de La Fuente
9ec349f410 FIX [ bug #3432 ] Spaces should be removed from IBAN when formatting it
Close #3432
2015-09-01 10:56:55 +02:00
fmarcet
2b6a481011 FIX: The hours of date filter aren't correct 2015-09-01 09:46:45 +02:00
Raphaël Doursenaud
3b493ab0ed Fix #2863 Sensible defaults for ChromePHP path
Use the provided ChromePHP class by default
2015-08-31 21:08:37 +02:00
Raphaël Doursenaud
51d5bff15d Fix #3442 Remove useless syslog
Not having the permission to read the box is not an error.
Furthermore, no other boxes have this behavior.
2015-08-31 19:41:42 +02:00
Laurent Destailleur
8941431ee3 Merge pull request #3435 from fmarcet/3.7
FIX: Bad visualization of suppliers name on Incomes-Expenses mode
2015-08-31 10:25:14 +02:00
Aurélien Stride
1a3d8b5ae4 FIX : adjusted test for affecting supplier reference 2015-08-31 09:25:39 +02:00
fmarcet
cf38b17e88 FIX: Bad visualization of suppliers name on Incomes-Expenses mode 2015-08-31 09:18:37 +02:00
Laurent Destailleur
fb70fbdc06 Merge pull request #3428 from marcosgdf/bug-3426
FIX [ bug #3426 ] Unable to create an invoice from a contract with extrafields
2015-08-31 00:53:04 +02:00
Marcos García de La Fuente
b953d2c466 FIX [ bug #3426 ] Unable to create an invoice from a contract with extrafields
Close #3426
2015-08-29 19:42:51 +02:00
Laurent Destailleur
c8f12dc5f2 Fix PUT method for already formated strings 2015-08-29 15:12:31 +02:00
Laurent Destailleur
a3d612a26a Merge branch '3.7' of git@github.com:Dolibarr/dolibarr.git into 3.7 2015-08-29 13:45:47 +02:00
Laurent Destailleur
17b69e16d2 Fix remove a bad log reporting error when not 2015-08-29 13:45:23 +02:00
Aurélien Stride
e2072999cf ADD : ref_supplier to object property, otherwise not visibly updated on change 2015-08-28 17:12:27 +02:00
Juanjo Menent
a7d1a35a56 Merge pull request #3420 from aspangaro/3.7-4
Fix #3289 Salaries module shows amounts with currency symbol unlike t…
2015-08-28 16:12:36 +02:00
Juanjo Menent
0aba8a1bb1 Merge pull request #3421 from grandoc/grandoc_fix_27082015
Grandoc fix 27082015
2015-08-28 16:06:43 +02:00
philippe grand
6952084be3 it's a mess 2015-08-27 17:23:23 +02:00
aspangaro
aff134ab65 Fix #3289 Salaries module shows amounts with currency symbol unlike the rest of Dolibarr 2015-08-27 16:10:02 +02:00
philippe grand
e9f631d2e3 fix : Fatal error: Uncaught exception 'Exception' with message 'Incorrect log level' 2015-08-27 14:49:12 +02:00
philippe grand
db7defb7c3 Revert "fix : Fatal error: Uncaught exception 'Exception' with message 'Incorrect log level'"
This reverts commit 2527ae263b.
2015-08-27 14:43:48 +02:00
philippe grand
2527ae263b fix : Fatal error: Uncaught exception 'Exception' with message 'Incorrect log level' 2015-08-27 14:28:12 +02:00
Laurent Destailleur
edf05e8d94 Merge pull request #3404 from hregis/3.7_bug
Fix: disable hook for avoid errors when object langs is disable
2015-08-26 11:24:50 +02:00
Laurent Destailleur
feed3f714c Fix to avoid warning 2015-08-24 11:17:11 +02:00
Regis Houssin
7b7fc44b46 Fix: disable hook for avoid errors when object langs is disable 2015-08-22 09:24:46 +02:00
Laurent Destailleur
da8e71b2c5 Fix #3309 2015-08-20 16:05:29 +02:00
Laurent Destailleur
1b409538a8 Fix #3400
Conflicts:
	htdocs/core/lib/date.lib.php
2015-08-20 15:51:28 +02:00
Laurent Destailleur
c3fb14855b Try a better fix to replace PR #3297 2015-08-20 14:34:48 +02:00
Laurent Destailleur
8f32e8ace8 Merge branch '3.7' of git@github.com:Dolibarr/dolibarr.git into 3.7 2015-08-19 17:14:21 +02:00
Laurent Destailleur
6e9bf70add Fix bad text into file 2015-08-19 15:12:11 +02:00
Laurent Destailleur
2faa5d725e Missing tcpdf files 2015-08-15 18:17:54 +02:00
Laurent Destailleur
5ed3d80103 Merge pull request #3385 from marcosgdf/bug-3321
FIX [ bug #3321 ] Users with certain permissions were shown a "forbidden access" page even if they had the rights
2015-08-14 18:10:28 +02:00
Laurent Destailleur
cacfe454a9 Merge pull request #3382 from hregis/3.7_bug
Fix: place the form outside the table for avoid errors
2015-08-14 18:09:57 +02:00
Laurent Destailleur
58988d3084 3.5.8 2015-08-14 16:12:36 +02:00
Laurent Destailleur
8d18507d5f Bad help 2015-08-14 15:35:25 +02:00
Laurent Destailleur
343f4086bc Remove dead code 2015-08-14 15:12:40 +02:00
Marcos García de La Fuente
b3a7b44046 FIX [ bug #3321 ] Users with certain permissions were shown a "forbidden access" page even if they had the rights
Close #3321
2015-08-14 12:29:32 +02:00
Regis Houssin
fdf6c32fbc Fix: place the form outside the table for avoid errors 2015-08-13 12:47:04 +02:00
Laurent Destailleur
c73fe965d2 Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts:
	htdocs/comm/propal/class/propal.class.php
	htdocs/commande/class/commande.class.php
	htdocs/compta/facture/class/facture.class.php
2015-08-13 03:58:32 +02:00
Laurent Destailleur
1595765ec8 Merge remote-tracking branch 'origin/3.5' into 3.6
Conflicts:
	htdocs/compta/facture/class/facture.class.php
2015-08-13 03:18:02 +02:00
Laurent Destailleur
af2d63d7e5 Merge pull request #3368 from marcosgdf/bug-3211
FIX [ bug #3211 ] Error about sold to pay (Montant encours)
2015-08-13 00:15:13 +02:00
Laurent Destailleur
45aed1e0aa Merge branch 'marcosgdf-bug-3313' into 3.5 2015-08-13 00:14:17 +02:00
Laurent Destailleur
dc4b429a33 Merge branch 'bug-3313' of https://github.com/marcosgdf/dolibarr into
marcosgdf-bug-3313

Conflicts:
	ChangeLog
2015-08-13 00:13:36 +02:00
Laurent Destailleur
4b51fc80a6 Merge branch '3.5' of git@github.com:Dolibarr/dolibarr.git into 3.5
Conflicts:
	ChangeLog
2015-08-13 00:06:27 +02:00
Laurent Destailleur
a8c2dfd445 Merge branch 'marcosgdf-bug-3310' into 3.5 2015-08-13 00:05:16 +02:00
Laurent Destailleur
958321b64d Merge pull request #3340 from atm-maxime/3.6
Rowid was missing on expedition line so no origin id when creating an invoice
2015-08-12 23:39:43 +02:00
Laurent Destailleur
16ee7b461c Merge pull request #3332 from atm-gauthier/3.7_fix_display_country_name_on_vcard
FIX : Display country name instead of country id (display country id …
2015-08-12 23:38:36 +02:00
Laurent Destailleur
d3f004d407 Merge pull request #3275 from marcosgdf/bug-3206
Fix: [ bug #3206 ] PropaleLigne, OrderLine and FactureLigne given to triggers through update function does not contain all the information
2015-08-12 23:25:29 +02:00
Juanjo Menent
e4a9ca8b45 Merge pull request #3373 from hregis/3.7_bug
Fix: missing entity in cache files names
2015-08-12 18:38:39 +02:00
Juanjo Menent
5039db3ebf Merge pull request #3375 from josemariagomezroncero/patch-1
Update llx_c_type_resource.sql
2015-08-12 18:34:41 +02:00
josemariagomezroncero
e146af3118 Update llx_c_type_resource.sql
Error create table, missing incremet type element
2015-08-11 22:38:21 +02:00
Francis Appels
1d85529eda Fix delete not used empty stock record
When removing all stock from warehouse are move all stock to other
warehouse, there is still an 0 stock record in in the stock table for
the source warehouse, not visible in Dolibarr.
2015-08-11 22:01:26 +02:00
Regis Houssin
ebe4969723 Fix: missing entity in cache files names 2015-08-11 10:22:06 +02:00
Marcos García de La Fuente
02f4e9f5cb Merge branch '3.7' into bug-3211
# Conflicts:
#	ChangeLog
2015-08-11 10:12:36 +02:00
Juanjo Menent
3108523ff2 Merge pull request #3361 from hregis/3.7_bug
Fix: remove custom dir creation and update script
2015-08-10 20:39:48 +02:00
Juanjo Menent
7d18adebb1 Merge pull request #3369 from marcosgdf/minor
Fixed minor problem with error alert when creating user
2015-08-10 20:35:03 +02:00
Juanjo Menent
b3f3cdda3a Merge remote-tracking branch 'origin/3.6' into 3.7 2015-08-10 20:16:05 +02:00
Juanjo Menent
374f702ef0 Merge pull request #3363 from marcosgdf/bug-3342
Fix [ bug #3342 ]: Taxes dictionary page does not accept localized decimals for localtax2 rate
2015-08-10 20:12:48 +02:00
Marcos García de La Fuente
e2797ddd40 Merge branch '3.6' into bug-3342
# Conflicts:
#	ChangeLog
2015-08-10 17:48:18 +02:00
Marcos García de La Fuente
202d12ffef Merge branch '3.7' into bug-3211
# Conflicts:
#	ChangeLog
2015-08-10 17:42:38 +02:00
Juanjo Menent
9374b4f3e3 Merge remote-tracking branch 'origin/3.6' into 3.7 2015-08-10 12:14:18 +02:00
Juanjo Menent
804aec3cbc Merge pull request #3362 from marcosgdf/bug-3341
Fix [ bug #3341 ]: Missing translation in /compta/paiement_charge.php
2015-08-10 11:35:19 +02:00
Juanjo Menent
5f70e94905 Merge pull request #3360 from marcosgdf/bug-3286
Fix [ bug #3286 ]: Payment types are not translated to English
2015-08-10 11:25:20 +02:00
Juanjo Menent
1c32dcf86f Merge pull request #3359 from marcosgdf/bug-3288
Fix: [ bug #3288 ] Tasks box is not properly drawn
2015-08-10 11:00:38 +02:00
Marcos García de La Fuente
8a1c5450c2 Fixed minor problem with error alert when creating user 2015-08-09 18:26:12 +02:00
Marcos García de La Fuente
2f6587b48e FIX [ bug #3211 ] Error about sold to pay (Montant encours)
Close #3211
2015-08-09 18:08:22 +02:00
Marcos García de La Fuente
f3ef4fed93 Fix: [ bug #3313 ] Error enabling module with PostgreSQL database
Close #3313
2015-08-09 13:58:03 +02:00
Marcos García de La Fuente
7cb564586e Fix: [ bug #3310 ] OrderLine::fetch, FactureLigne::fetch and PropaleLigne::fetch do not return anything
Close #3310
2015-08-09 13:52:02 +02:00
Marcos García de La Fuente
2f921b6431 Fix [ bug #3342 ]: Taxes dictionary page does not accept localized decimals for localtax2 rate
Close #3342
2015-08-09 13:46:48 +02:00
Marcos García de La Fuente
a24f29ba8b Fix [ bug #3341 ]: Missing translation in /compta/paiement_charge.php
Close #3341
2015-08-09 13:37:05 +02:00
Regis Houssin
94ac0f5305 Fix: remove custom dir creation 2015-08-09 13:25:09 +02:00
Marcos García de La Fuente
e725d44565 Fix [ bug #3286 ]: Payment types are not translated to English
Close #3286
2015-08-09 13:24:23 +02:00
Marcos García de La Fuente
cccc543065 Fix: [ bug #3288 ] Tasks box is not properly drawn
Close #3288
2015-08-09 13:16:55 +02:00
Juanjo Menent
12b83fd3e8 Fix #3304 2015-08-07 12:45:27 +02:00
Juanjo Menent
63f62a1fa2 Merge pull request #3344 from fmarcet/3.7
FIX: Not showing task extrafields when creating from left menu
2015-08-06 18:15:30 +02:00
Juanjo Menent
46a9381f0b Merge pull request #3335 from GPCsolutions/3.7-3322
Fix #3322 Use title for alt if no alt is provided
2015-08-06 18:12:25 +02:00
Maxime Kohlhaas
e13515e59f Merge branch '3.6' of github.com:Dolibarr/dolibarr into 3.6 2015-08-06 08:57:52 +02:00
fmarcet
62ad7d4d34 FIX: Not showing task extrafields when creating from left menu 2015-08-04 13:32:44 +02:00
Marcos García de La Fuente
a1f74763da Merge branch '3.5' into bug-3206
Conflicts:
	ChangeLog
2015-08-03 18:55:01 +02:00
Raphaël Doursenaud
2cf9d9f583 Fix #3322 Use title for alt if no alt is provided
alt has priority over title, so it should be filled if title is filled.
Use the title value to fill alt.
Unit test updated accordingly.
2015-08-03 10:30:10 +02:00
Juanjo Menent
2a67bd1f38 Fix #3314 Display state in bank account card 2015-08-01 14:43:04 +02:00
Juanjo Menent
22b4bfd1a4 Merge pull request #3334 from GPCsolutions/3.6-3314
Fix #3314 Display state in bank account card
2015-08-01 14:40:42 +02:00
Maxime Kohlhaas
9e05cecc1a Fix : rowid was missing on expedition line so no origin id when creating an invoice 2015-07-31 16:31:12 +02:00
Laurent Destailleur
13dee1876a Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts:
	htdocs/compta/resultat/clientfourn.php
2015-07-30 15:07:22 +02:00
Laurent Destailleur
6adc3ba604 Merge remote-tracking branch 'origin/3.5' into 3.6
Conflicts:
	htdocs/core/menus/standard/eldy.lib.php
2015-07-30 14:54:33 +02:00
Raphaël Doursenaud
3b9c8a685b Fix #3314 Display state in bank account card 2015-07-29 19:29:18 +02:00
Gauthier
cc8eac67d9 FIX : Display country name instead of country id (display country id makes no sense on vcard files) 2015-07-29 12:29:33 +02:00
Laurent Destailleur
cc49b39eb6 Merge pull request #3329 from atm-gauthier/3.7_fix_add_user_on_event_in_create_mode
FIX : When we add an user on event in create mode, we lose linked object
2015-07-28 18:37:19 +02:00
Laurent Destailleur
c2eb47f3a1 Merge pull request #3325 from atm-ph/3.6_fix_timespent_id
FIX no projet_task_time id from trigger TASK_TIMESPENT_CREATE
2015-07-28 18:36:48 +02:00
Laurent Destailleur
565b0861d9 Merge pull request #3323 from fmarcet/3.6
Fix: Not showing product's supplier reference when page break
2015-07-28 18:36:01 +02:00
Laurent Destailleur
bd4a31c45d Merge pull request #3320 from fmarcet/3.7
Fix: Not showing delivery date on rouget pdf (expedition)
2015-07-28 18:34:19 +02:00
Laurent Destailleur
c42e952ce9 Merge pull request #3319 from FHenry/3.7
FIX : #3318
2015-07-28 18:30:19 +02:00
Laurent Destailleur
a3b379476b Merge pull request #3308 from atm-gauthier/3.7_fix_display_extraf_text_line_break
FIX : Line break display as a block
2015-07-28 18:19:07 +02:00
Gauthier
aaa9d85d07 FIX : When we add an user on event in create mode, we lose linked object 2015-07-28 17:25:33 +02:00
Gauthier
556d01ff8a FIX : Line break display as a block 2015-07-28 15:14:54 +02:00
Florian HENRY
517e9094da FIX : Avoid warning strict mode when hosting server do not have
php5_curl installed
2015-07-27 22:34:30 +02:00
Florian HENRY
d78292b9af FIX : if multicompany enabled, call to undifend method _setCookie
instead of setCookie
2015-07-27 22:08:33 +02:00
phf
824da6d2b0 FIX no projet_task_time id from trigger TASK_TIMESPENT_CREATE 2015-07-27 17:38:27 +02:00
fmarcet
6676114501 Fix: Not showing product supplier reference when page break 2015-07-27 16:31:40 +02:00
fmarcet
e130af8033 Fix: Not showing delivery date on rouget pdf (expedition) 2015-07-27 13:11:07 +02:00
Florian HENRY
c0412acdea FIX : #3318 2015-07-27 13:03:47 +02:00
Laurent Destailleur
6b2d7f7d19 Merge pull request #3200 from atm-maxime/3.5
Fix #3188 SQL error if qty or discount is not a number on proposal ad…
2015-07-23 22:53:44 +02:00
Laurent Destailleur
96f1c25a73 Merge pull request #3287 from marcosgdf/bug-3198
Fix: [ bug #3198 ] Trigger LINECONTRACT_INSERT passes Contrat as $object instead of ContratLigne
2015-07-23 22:51:17 +02:00
Laurent Destailleur
a0fc119ce5 Merge pull request #3290 from marcosgdf/bug-3074
Fix: [ bug #3074 ] Accruals accounting use payment date instead of commitment date in turnover reports for salaries
2015-07-23 22:48:54 +02:00
Maxime Kohlhaas
73c7ef5a88 Merge branch '3.5' of github.com:Dolibarr/dolibarr into 3.5 2015-07-22 17:10:46 +02:00
Gauthier
fa26b284a9 FIX : Line break display as a block 2015-07-21 16:39:00 +02:00
Laurent Destailleur
9e35fd1bc3 Doc comments 2015-07-21 11:04:01 +02:00
Maxime Kohlhaas
646ad48bd0 Better fix for not numeric qty or discount 2015-07-21 10:50:07 +02:00
Maxime Kohlhaas
428bd14b55 Merge branch '3.5' of github.com:Dolibarr/dolibarr into 3.5
# Veuillez entrer un message de validation pour expliquer en quoi cette fusion est
# nécessaire, surtout si cela fusionne une branche amont mise à jour dans une branche de sujet.
#
# Les lignes commençant par '#' seront ignorées, et un message vide
# abandonne la validation.
2015-07-21 10:49:47 +02:00
Laurent Destailleur
84be353e13 Comments 2015-07-21 00:13:13 +02:00
Laurent Destailleur
2bebb869fb Fix bad signature of fetch. The ref_ext is missing. 2015-07-20 17:19:44 +02:00
Laurent Destailleur
f0ed7dac09 Exclude tested module 2015-07-20 12:21:15 +02:00
Marcos García de La Fuente
038f171d6c Fix: [ bug #3074 ] Accruals accounting use payment date instead of commitment date in turnover reports for salaries
Close #3074
2015-07-20 12:18:30 +02:00
Marcos García de La Fuente
db54b6f596 Fix: [ bug #3198 ] Trigger LINECONTRACT_INSERT passes Contrat as $object instead of ContratLigne
Created new ContratLigne::insert function

Close #3198
2015-07-20 11:19:40 +02:00
Laurent Destailleur
c8ea72473e Merge branch 'marcosgdf-bug-1925' into 3.7 2015-07-19 15:31:27 +02:00
Laurent Destailleur
dafe0a37cf Merge branch 'bug-1925' of https://github.com/marcosgdf/dolibarr into
marcosgdf-bug-1925

Conflicts:
	ChangeLog
2015-07-19 15:31:02 +02:00
Laurent Destailleur
ad5612158a Fix report of all error messages 2015-07-19 15:29:18 +02:00
Laurent Destailleur
8fa35fcb7b Merge pull request #3278 from marcosgdf/bug-1634
FIX [ bug 1634 ] Error deleting a project when it had many linked objects
2015-07-19 15:26:45 +02:00
Laurent Destailleur
14eee82a64 Merge pull request #3277 from marcosgdf/bug-1791
Fix: [ bug 1791 ] Margin menu not available if any Finance module is not enabled
2015-07-19 15:26:29 +02:00
Marcos García de La Fuente
b64adcc065 FIX [ bug 1925 ] "Link to order" option in supplier invoices is not working properly
Patch submitted by Philippe (pheno) at https://doliforge.org/tracker/?func=detail&aid=1925&group_id=144
2015-07-19 15:13:27 +02:00
Marcos García de La Fuente
f2313748c8 Merge branch '3.7' into bug-1634 2015-07-19 14:57:39 +02:00
Marcos García de La Fuente
1be33e1dda FIX [ bug 1634 ] Error deleting a project when it had many linked objects
Projet::delete was throwing DB error messages directly to the user instead of logging them and showing a proper error message to the user
2015-07-19 14:56:52 +02:00
Marcos García de La Fuente
5b0c216b42 Merge branch '3.5' into bug-1791
Conflicts:
	ChangeLog
2015-07-19 13:48:04 +02:00
Marcos García de La Fuente
8505e91469 Fix: [ bug 1791 ] Margin menu not available if any Finance module is not enabled 2015-07-19 13:46:25 +02:00
Laurent Destailleur
2bb1945a2f Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts:
	htdocs/compta/prelevement/class/rejetprelevement.class.php
	htdocs/compta/sociales/class/paymentsocialcontribution.class.php
	htdocs/contact/exportimport.php
	htdocs/contact/ldap.php
	htdocs/contact/perso.php
	htdocs/contact/vcard.php
	htdocs/core/class/commonobject.class.php
	htdocs/product/reassort.php
	htdocs/projet/liste.php
	htdocs/societe/consumption.php
	htdocs/societe/info.php
2015-07-19 12:04:30 +02:00
Laurent Destailleur
fbc0b5b313 Merge remote-tracking branch 'origin/3.5' into 3.6
Conflicts:
	htdocs/contact/vcard.php
	htdocs/societe/consumption.php
2015-07-19 11:38:44 +02:00
Laurent Destailleur
5c2059a79f Merge branch 'marcosgdf-bug-3180' into 3.5 2015-07-19 11:29:57 +02:00
Laurent Destailleur
2e2f99c351 Merge branch 'bug-3180' of https://github.com/marcosgdf/dolibarr into
marcosgdf-bug-3180

Conflicts:
	ChangeLog
2015-07-19 11:28:48 +02:00
Laurent Destailleur
739eaedecc Merge branch 'marcosgdf-bug-3268' into 3.5 2015-07-19 11:27:42 +02:00
Laurent Destailleur
4100026c71 Merge branch 'bug-3268' of https://github.com/marcosgdf/dolibarr into
marcosgdf-bug-3268

Conflicts:
	ChangeLog
2015-07-19 11:27:28 +02:00
Laurent Destailleur
8d7c1f8d4c Fix: [ bug #2570 ] [Contacts] Page should not process if ID is invalid 2015-07-19 11:21:21 +02:00
Marcos García de La Fuente
3d6c5b09e8 Fix: [ bug #3268 ] SQL error when accessing thirdparty log page without a socid parameter
Close #3268
2015-07-19 11:19:47 +02:00
Marcos García de La Fuente
538c8c072b Merge branch '3.5' into bug-3180
Conflicts:
	ChangeLog
2015-07-19 11:16:36 +02:00
Marcos García de La Fuente
d0b1652efd Merge branch '3.5' into bug-3206
Conflicts:
	ChangeLog
2015-07-19 11:16:10 +02:00
Laurent Destailleur
d422fac3fe Merge pull request #3272 from marcosgdf/bug-2715
Fix: [ bug #2715 ] Statistics page has broken layout with long thirdparty names
2015-07-18 23:53:30 +02:00
Laurent Destailleur
9e1c1fd464 Merge pull request #3271 from marcosgdf/bug-2696
Fix: [ bug #2696 ] Adding complementary attribute fails if code is numerics
2015-07-18 23:50:08 +02:00
Marcos García de La Fuente
4649cf7210 Fix: [ bug #3206 ] PropaleLigne, OrderLine and FactureLigne given to triggers through update function does not contain all the information
Close #3206
2015-07-18 19:40:48 +02:00
Marcos García de La Fuente
b28c4df0d6 Fix: [ bug #3180 ] formObjectOptions hook when editing thirdparty card does not print result
Close #3180
2015-07-18 17:35:36 +02:00
Marcos García de La Fuente
7185cfeb84 Fix: [ bug #2715 ] Statistics page has broken layout with long thirdparty names 2015-07-18 14:48:59 +02:00
Marcos García de La Fuente
e9d1e6265d Fix: [ bug #2696 ] Adding complementary attribute fails if code is numerics
Close #2696
2015-07-18 14:25:05 +02:00
Juanjo Menent
57f5c95894 Merge pull request #3261 from atm-gauthier/3.7_fix_trad_availability
FIX : load propal langs for availability traduction
2015-07-17 19:20:56 +02:00
Juanjo Menent
7660d846e3 Merge pull request #3263 from GPCsolutions/dolibarr3.7-3262
FIX #3262 Webservice getProductsForCategory()
2015-07-17 19:20:15 +02:00
Raphaël Doursenaud
953a21b55e FIX #3262 Webservice getProductsForCategory()
Wrong variable name was used!
2015-07-17 18:02:44 +02:00
Gauthier
244d1839e4 FIX : load propal langs for availability traduction 2015-07-17 17:24:11 +02:00
Laurent Destailleur
1a61ab055f Merge pull request #3207 from atm-ph/fix_37_translation_category
FIX : translation for 1 word do not work
2015-07-16 10:26:00 +02:00
Laurent Destailleur
d7e9bccad6 Merge pull request #3199 from atm-maxime/fix_rejet_prel
Fix : withdrawal rejection were taking the total amount of the invoic…
2015-07-16 10:20:46 +02:00
Florian HENRY
01d1c89f11 Merge branch '3.6' of git@github.com:Dolibarr/dolibarr.git into 3.6 2015-07-15 15:16:09 +02:00
phf
bde4503abd FIX : translation for 1 word do not work if product/service module are disabled because the translation search in products.lang 2015-07-15 14:46:29 +02:00
Maxime Kohlhaas
5223934ff0 Fix #3188 SQL error if qty or discount is not a number on proposal add line 2015-07-14 12:17:50 +02:00
Maxime Kohlhaas
20bdfdb286 Fix : withdrawal rejection were taking the total amount of the invoice instead of the amount of the withdrawal 2015-07-14 11:57:47 +02:00
Laurent Destailleur
c1445a88e1 Merge pull request #3171 from atm-ph/fix_37_translate_contact
FIX translate Jabberid on contact page with edit view
2015-07-11 20:36:54 +02:00
Juanjo Menent
e2b5bc756a Merge pull request #3174 from hregis/3.6_bug
Fix: missing shared parameters
2015-07-09 09:36:52 +02:00
Regis Houssin
9e7cb70d63 Fix: missing shared parameters 2015-07-08 16:03:15 +02:00
Regis Houssin
aff3f03ae0 Merge remote-tracking branch 'origin/3.6' into 3.6_bug 2015-07-08 16:01:26 +02:00
phf
f0f4d83664 FIX translate Jabberid on contact page with edit view 2015-07-08 12:33:37 +02:00
Laurent Destailleur
7965e5bcfb Merge pull request #3157 from marcosgdf/bug-3055
FIX #3055 Product image thumbnails were not deleted after deleting the image
2015-07-07 19:34:49 +02:00
Marcos García de La Fuente
cba902c5ae Fix: [ bug #3055 ] Product image thumbnails were not deleted after deleting the image
Close #3055
2015-07-07 09:40:23 +02:00
Laurent Destailleur
36aebb5fc4 Merge pull request #3151 from FHenry/3.7
FIX : when fetch_optionnal_by_label in Extrafields with $this->db cannot
2015-07-06 23:54:43 +02:00
Florian HENRY
b6850e36c9 fix previous commit 2015-07-06 16:59:03 +02:00
Florian HENRY
ec89f00103 Merge branch '3.7' of git@github.com:Dolibarr/dolibarr.git into 3.7 2015-07-06 13:19:35 +02:00
Florian HENRY
8a36353385 FIX : when fetch_optionnal_by_label in Extrafields with $this->db cannot
work because this->db is never instanciated
2015-07-06 13:18:51 +02:00
Laurent Destailleur
7c23dd13e5 Merge pull request #3144 from hregis/3.7_bug3
Fix: for avoid error with main context hooks, if hook use $langs object for example.
2015-07-04 10:32:11 +02:00
Regis Houssin
a9059247ca Merge branch '3.7' of https://github.com/Dolibarr/dolibarr.git into 3.7_bug3 2015-07-04 05:46:41 +02:00
Laurent Destailleur
5d588714f0 Merge pull request #3135 from atm-ph/3.6_fix_socpeople_country_display
FIX : wrong display with contact country
2015-07-04 04:41:20 +02:00
Laurent Destailleur
3c77a5ca21 Merge pull request #3132 from atm-maxime/3.6
Fix : Project list was not keeping parameters on sorts
2015-07-04 04:35:11 +02:00
Laurent Destailleur
4628c15684 Merge pull request #3141 from hregis/3.7_bug
Fix: reset the current entity
2015-07-04 03:46:40 +02:00
Laurent Destailleur
62d3314e38 Merge pull request #3140 from hregis/3.7_photos
Fix: broken feature: Check the entity because He may be the same
2015-07-04 03:39:46 +02:00
Regis Houssin
e82f4c474b Fix: for avoid error with main context hooks, with $langs object for
example.
2015-07-03 22:14:34 +02:00
Maxime Kohlhaas
5d14d05ce1 Fix : Social contribution payment deletion was not deleting the bank line 2015-07-03 16:38:54 +02:00
Regis Houssin
4273c4aad9 Fix: data can be just a value, not an array 2015-07-03 11:35:11 +02:00
Regis Houssin
4fb5af7442 Fix: reset the current entity 2015-07-03 10:58:55 +02:00
Regis Houssin
e58957e603 Fix: broken feature: Check the entity because He may be the same
reference in several entities
2015-07-03 08:18:32 +02:00
phf
c87328b362 FIX : contact country had wrong display if the country dont have translate 2015-07-02 17:00:37 +02:00
Maxime Kohlhaas
ee643ed2a7 Fix : Project list was not keeping parameters on sorts 2015-07-02 14:08:16 +02:00
Laurent Destailleur
9c99cae911 FIX XSS security using the onerror and missing escapement on type of
member page.
2015-06-28 23:32:38 +02:00
Laurent Destailleur
9d7806f1f4 Tag class as deprecated 2015-06-27 21:26:05 +02:00
Laurent Destailleur
a220a8696d Merge pull request #3111 from hregis/3.7_photos
Fix: change encrypt/decrypt method for avoid division by zero
2015-06-27 21:13:17 +02:00
Regis Houssin
5efea745a1 Fix: Public method name must not be prefixed with an underscore 2015-06-27 20:38:11 +02:00
Regis Houssin
5ac292f9ae Fix: Private member variable must be prefixed with an underscore 2015-06-27 20:32:19 +02:00
Regis Houssin
bf9c7c8ef9 Fix: add private/public function 2015-06-27 20:26:40 +02:00
Regis Houssin
dfae24ded9 Fix: remove unused var 2015-06-27 20:20:27 +02:00
Regis Houssin
bfe7112308 Fix: change encrypt/decrypt method for avoid division by zero 2015-06-27 19:57:35 +02:00
Laurent Destailleur
22a2038a65 Merge pull request #3108 from simnandez/3.7
FIX #3091 TotalHT amount in supplier order is bold unlike the rest of
2015-06-27 02:38:21 +02:00
Laurent Destailleur
461b5f0882 Merge pull request #3086 from atm-ph/3.6_fix_export_extrafield_select
FIX : tool export extrafields
2015-06-27 02:20:39 +02:00
Juanjo Menent
0f046776d5 FIX #3091 TotalHT amount in supplier order is bold unlike the rest of
Dolibarr
2015-06-26 17:54:34 +02:00
Juanjo Menent
a5b3c3476d Merge pull request #3106 from hregis/3.7_bug
Fix: missing table
2015-06-26 17:35:24 +02:00
Juanjo Menent
b0b7c4990e Merge pull request #3105 from hregis/3.7_photos
Fix: for avoid error with function "complete_head_from_modules"
2015-06-26 17:30:13 +02:00
Juanjo Menent
e72c118274 Merge pull request #3104 from atm-ph/3.6_fix_search_filter_on_reassort
FIX filter by "category / not enough stock"
2015-06-26 17:29:01 +02:00
Regis Houssin
7ec13c9435 Merge remote-tracking branch 'origin/3.7' into 3.7_bug 2015-06-26 16:56:41 +02:00
Regis Houssin
46272cf4cd Fix: for avoid error with function "complete_head_from_modules" 2015-06-26 15:26:08 +02:00
phf
582f9cd214 FIX : keep filter by category or by not enough stock if we switch page 2015-06-26 11:04:08 +02:00
Juanjo Menent
a3b3ce9c77 Merge pull request #3101 from FHenry/3.7
FIX: multicompny bug with getEntites without shared test
2015-06-25 20:50:03 +02:00
Juanjo Menent
a8e3a8809b Merge pull request #3095 from netfab/3.7
Missing space after title tag.
2015-06-25 20:43:57 +02:00
Florian HENRY
9505d3a528 fix multicompny bug with getEntites without shared test 2015-06-25 17:22:37 +02:00
Fab
3adf6b1a73 Missing space after title tag.
When using textwithpicto() from core/class/html.form.class.php, if you
are reading source code with firefox, you will see that a part of the
generated html is highlighted in red.

<td class="classfortooltip" title="title text"valign="top" width="14">

should be :

<td class="classfortooltip" title="title text" valign="top" width="14">
2015-06-25 08:50:48 +02:00
Laurent Destailleur
02ce0bc6af Merge branch '3.7' of git@github.com:Dolibarr/dolibarr.git into 3.7 2015-06-24 18:32:56 +02:00
Laurent Destailleur
c218843cdb FIX Save of filters into export profiles failed. 2015-06-24 18:29:29 +02:00
Juanjo Menent
1d562be1f4 Merge pull request #3090 from fmarcet/3.7
FIX: Payed invoices are showed as canceled
2015-06-24 18:17:45 +02:00
Juanjo Menent
d1ea3577fc Merge pull request #3087 from fappels/3.7
Fix: issue #3085
2015-06-24 18:17:06 +02:00
Florian HENRY
ac6619daef Merge branch '3.6' of git@github.com:Dolibarr/dolibarr.git into 3.6 2015-06-24 12:29:42 +02:00
fmarcet
c9c1247a28 FIX: Payed invoices are showed as canceled
FIX: Bad date filter on customer order
2015-06-24 09:01:39 +02:00
Francis Appels
63df278eca Fix: issue #3085 2015-06-23 19:28:18 +02:00
phf
06962cb4e6 FIX : tool export handle the type "select" extrafields and return the value instead of id 2015-06-23 16:26:05 +02:00
Laurent Destailleur
29a2185462 Merge pull request #3063 from hregis/3.7_photos
Fix: wrong user right
2015-06-19 11:14:49 +02:00
Regis Houssin
9c6c3ad65d Fix: wrong user right 2015-06-17 16:33:18 +02:00
Laurent Destailleur
bd4d108217 Merge pull request #3058 from fmarcet/3.5
Fix: Date filter on customer orders
2015-06-17 00:19:03 +02:00
Laurent Destailleur
2617d28f58 Merge pull request #3057 from hregis/3.7_photos
Fix: no error message if extrafield is require
2015-06-17 00:18:12 +02:00
Laurent Destailleur
c023c078ae Merge branch '3.7' of git@github.com:Dolibarr/dolibarr.git into 3.7 2015-06-17 00:07:44 +02:00
Laurent Destailleur
844ca58096 Fix: custom dir is missing 2015-06-17 00:05:41 +02:00
fmarcet
05cb1f7ba7 Fix: Date filter on customer orders 2015-06-16 16:59:48 +02:00
Regis Houssin
3807fafc1a Fix: no error message if extrafield is require 2015-06-16 16:42:33 +02:00
Laurent Destailleur
ceb0d71f54 Merge pull request #3054 from hregis/3.7_photos
Fix: thumb "mini" not deleted
2015-06-16 11:38:39 +02:00
Laurent Destailleur
85fee7ec49 Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts:
	htdocs/product/class/product.class.php
2015-06-16 11:18:10 +02:00
Laurent Destailleur
34468644ef Merge remote-tracking branch 'origin/3.5' into 3.6 2015-06-16 11:15:16 +02:00
Laurent Destailleur
fa8defa1bf Merge pull request #3034 from marcosgdf/bug-2814-2
Fix #2814 JPEG photos are not displayed in Product photos page
2015-06-16 11:10:24 +02:00
Regis Houssin
5e25c69891 Fix: thumb "mini" not deleted 2015-06-16 09:28:31 +02:00
Laurent Destailleur
db4d92ccb6 Merge pull request #3047 from marcosgdf/patch-2
Fixed undefined variable typo
2015-06-15 21:24:57 +02:00
Regis Houssin
d92448a772 Fix: phpcs ? 2015-06-15 12:09:32 +02:00
Marcos García de La Fuente
2d3ab3b658 Merge remote-tracking branch 'upstream/3.5' into bug-2814-2
Conflicts:
	ChangeLog
2015-06-15 09:39:17 +02:00
Marcos García
adc1998b73 Fixed undefined variable typo 2015-06-15 09:18:58 +02:00
Laurent Destailleur
a7cec18081 Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts:
	htdocs/categories/fiche.php
	htdocs/core/tpl/objectline_create.tpl.php
	htdocs/install/upgrade2.php
	htdocs/product/liste.php
2015-06-14 17:11:36 +02:00
Laurent Destailleur
f4da53c300 Merge remote-tracking branch 'origin/3.5' into 3.6
Conflicts:
	htdocs/product/liste.php
	htdocs/product/price.php
2015-06-14 17:04:24 +02:00
Laurent Destailleur
1007aba6a9 Merge branch '3.6' of git@github.com:Dolibarr/dolibarr.git into 3.6 2015-06-14 17:02:11 +02:00
Laurent Destailleur
14a8a2269b FIX End log must use same level then start log. 2015-06-14 16:59:35 +02:00
Laurent Destailleur
1fc4716617 Merge branch 'marcosgdf-bug-2835' into 3.5 2015-06-14 16:07:38 +02:00
Laurent Destailleur
fadc640335 Merge branch 'bug-2835' of https://github.com/marcosgdf/dolibarr into
marcosgdf-bug-2835

Conflicts:
	ChangeLog
2015-06-14 16:07:19 +02:00
Laurent Destailleur
c4ff9c326a Merge branch 'marcosgdf-bug-2837' into 3.5 2015-06-14 16:06:24 +02:00
Laurent Destailleur
d0b2c492a0 Merge branch 'bug-2837' of https://github.com/marcosgdf/dolibarr into
marcosgdf-bug-2837

Conflicts:
	ChangeLog
2015-06-14 16:06:14 +02:00
Laurent Destailleur
288ae5de78 Merge branch 'marcosgdf-bug-2861' into 3.5 2015-06-14 16:04:02 +02:00
Laurent Destailleur
e915a54c39 Merge branch 'bug-2861' of https://github.com/marcosgdf/dolibarr into
marcosgdf-bug-2861

Conflicts:
	ChangeLog
2015-06-14 16:03:44 +02:00
Laurent Destailleur
08a68f2fa3 Merge branch 'marcosgdf-bug-2900' into 3.7 2015-06-14 15:58:59 +02:00
Laurent Destailleur
892ff3b053 Merge branch 'bug-2900' of https://github.com/marcosgdf/dolibarr into
marcosgdf-bug-2900

Conflicts:
	ChangeLog
2015-06-14 15:58:16 +02:00
Laurent Destailleur
f8d2e93878 Merge pull request #3044 from hregis/3.5_bug
Fix: select date problem with mobile device (#3039)
2015-06-14 15:29:35 +02:00
Laurent Destailleur
b42f9a6706 Fix phpcs 2015-06-14 15:16:29 +02:00
Regis Houssin
b96ed08260 Fix: select date problem with mobile device (#3039) 2015-06-14 12:46:27 +02:00
Regis Houssin
0e79bd5c74 Fix: select date problem with mobile device (#3039) 2015-06-14 12:34:28 +02:00
Regis Houssin
cf857b712a Fix: select date problem with mobile device (#3039) 2015-06-14 12:33:26 +02:00
Laurent Destailleur
fdced80a48 Merge pull request #3035 from marcosgdf/bug-2786
FIX #2786 Objectline_add template shows "0" for non-vat suppliers
2015-06-14 02:15:27 +02:00
Laurent Destailleur
aecc5d27a3 Merge pull request #3036 from hregis/3.7_bug
Fix: broken feature: barcode search #3019
2015-06-14 02:09:40 +02:00
Laurent Destailleur
a9bf38b8d3 Merge pull request #3022 from marcosgdf/bug-2976
FIX Close bug #2976: "Report" tab is the current tab but it is not marked as selected by the UI
2015-06-14 02:03:39 +02:00
Laurent Destailleur
4dbb3789a2 Merge pull request #3037 from marcosgdf/bug-1852
Fix [ bug 1852 ] JS error when editing a customer order line
2015-06-14 01:45:57 +02:00
Laurent Destailleur
f67af6dac5 Merge pull request #3026 from marcosgdf/bug-2891
FIX Close bug #2891 Category hooks do not work
2015-06-14 01:40:12 +02:00
Marcos García de La Fuente
6514f418e5 Fix [ bug 1852 ] JS error when editing a customer order line 2015-06-13 11:46:35 +02:00
Regis Houssin
f5168625d8 Fix: broken feature: barcode search #3019 2015-06-13 10:43:55 +02:00
Regis Houssin
296b76603a Merge remote-tracking branch 'origin/3.7' into 3.7_bug 2015-06-13 09:37:55 +02:00
Marcos García de La Fuente
ea625628ce Fix Close bug #2786 Objectline_add template shows "0" for non-vat suppliers 2015-06-13 03:39:06 +02:00
Marcos García de La Fuente
1215502927 Fix Close bug #2814 JPEG photos are not displayed in Product photos page 2015-06-13 03:11:17 +02:00
Marcos García de La Fuente
7bddca94ef Merge branch '3.7' into bug-2900
Conflicts:
	ChangeLog
2015-06-13 02:39:16 +02:00
Juanjo Menent
babd48023f Merge pull request #3032 from simnandez/3.7
Update changelog
2015-06-12 21:33:44 +02:00
Juanjo Menent
f068203a79 Update changelog 2015-06-12 21:31:14 +02:00
Juanjo Menent
da535b08e5 Merge pull request #3027 from marcosgdf/bug-2855
FIX Close bug #2855 Wrong translation key in localtax report page
2015-06-12 21:30:02 +02:00
Juanjo Menent
567dece678 Merge pull request #3011 from GPCsolutions/3.7-3009
FIX #3009: Better filtering to prevent SQL injection
2015-06-12 21:26:14 +02:00
Juanjo Menent
ab3190df25 Merge pull request #3010 from GPCsolutions/3.6-3009
FIX #3009: Better filtering to prevent SQL injection
2015-06-12 21:25:53 +02:00
Juanjo Menent
10d27ea594 Merge pull request #3012 from fmarcet/3.7
Fix: Not reading external barcode numeration module
2015-06-12 21:24:49 +02:00
Marcos García de La Fuente
f9574fa458 FIX Close #2835 Customer prices of a product shows incorrect history order 2015-06-12 19:05:08 +02:00
Marcos García de La Fuente
2051a66cd7 FIX Close #2837 Product list table column header does not match column body 2015-06-12 18:46:05 +02:00
Marcos García de La Fuente
e3aa63f3c3 Added log 2015-06-12 18:33:37 +02:00
Marcos García de La Fuente
0335892521 FIX Close bug #2861 Undefined variable $res when migrating from 3.6.2 to 3.7.0 2015-06-12 18:31:49 +02:00
Marcos García de La Fuente
200eb7b1bb FIX Close bug #2855 Wrong translation key in localtax report page 2015-06-12 16:27:17 +02:00
Marcos García de La Fuente
300cfd2293 FIX Close bug #2891 Category hooks do not work 2015-06-12 16:10:23 +02:00
Marcos García de La Fuente
60711d35b8 FIX Close bug #2900 Courtesy title is not stored in create thirdparty form 2015-06-12 15:53:58 +02:00
Marcos García de La Fuente
87a00d6924 FIX Close bug #2976: "Report" tab is the current tab but it is not marked as selected by the UI 2015-06-12 15:02:05 +02:00
Laurent Destailleur
1a2bde14fb FIX Better management error into the color conversion functions 2015-06-12 14:37:27 +02:00
Laurent Destailleur
4a726f6315 Fix css 2015-06-12 13:44:03 +02:00
Florian HENRY
96ce5ab617 Merge branch '3.6' of git@github.com:Dolibarr/dolibarr.git into 3.6 2015-06-11 12:11:18 +02:00
fmarcet
5783c185bd Fix: Not reading external barcode numeration module 2015-06-11 10:43:12 +02:00
Raphaël Doursenaud
4ee6c1810e FIX #3009: Better filtering to prevent SQL injection 2015-06-11 10:38:29 +02:00
Raphaël Doursenaud
d89955047b FIX #3009: Better filtering to prevent SQL injection 2015-06-11 10:37:30 +02:00
Regis Houssin
14780747fc Merge remote-tracking branch 'dolibarr/3.7' into 3.7 2015-06-10 16:00:42 +02:00
Laurent Destailleur
05a653ee5f Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts:
	htdocs/core/class/html.form.class.php
2015-06-08 18:21:16 +02:00
Laurent Destailleur
f9d85973aa Merge remote-tracking branch 'origin/3.5' into 3.6 2015-06-08 18:18:37 +02:00
Laurent Destailleur
35dd069ec9 Fix #2994 2015-06-08 18:17:13 +02:00
Laurent Destailleur
fd42b17027 Merge pull request #2984 from GPCsolutions/dolibarr-2983
FIX #2983 Load gravatar avatar images securely over HTTPS
2015-06-08 17:53:30 +02:00
Laurent Destailleur
3ed200766c Merge branch '3.7' of git@github.com:Dolibarr/dolibarr.git into 3.7 2015-06-08 17:38:59 +02:00
Laurent Destailleur
9e1dd42b56 Fix #2986 2015-06-08 17:38:33 +02:00
Raphaël Doursenaud
08c9dd358d FIX #2983 Load gravatar avatar images securely over HTTPS 2015-06-08 15:51:41 +02:00
Florian HENRY
ca44070bbe Merge branch '3.6' of git@github.com:Dolibarr/dolibarr.git into 3.6 2015-06-08 15:13:02 +02:00
Laurent Destailleur
7f16eea13b Merge pull request #2978 from hregis/3.7-bug
Fix: use dash instead underscore and add filter for "dol_most_recent_files" for avoid conflict
2015-06-08 10:35:00 +02:00
Regis Houssin
8d824785f0 Merge remote-tracking branch 'dolibarr/3.7' into 3.7 2015-06-08 10:03:34 +02:00
Juanjo Menent
dc3ae22379 Merge pull request #2980 from hregis/3.7_crash
Close #2951
2015-06-08 09:46:39 +02:00
Regis Houssin
792911b14f Revert "Fix: Drop foreign key for avoid Mysql crash"
This reverts commit 65b049fdf5.
2015-06-08 09:28:53 +02:00
Regis Houssin
de0dd5da60 Fix: Drop foreign key for avoid Mysql crash 2015-06-08 09:14:46 +02:00
Regis Houssin
65b049fdf5 Fix: Drop foreign key for avoid Mysql crash 2015-06-08 09:13:21 +02:00
Laurent Destailleur
536f565d4e Fix Return value is always utf8 encoded and without entities. 2015-06-07 02:47:28 +02:00
Regis Houssin
9a812a6c28 Fix: add filter for "dol_most_recent_files" for avoid conflict with
option "Save file on server with name "FA0700034-Original filename""
2015-06-06 13:03:02 +02:00
Laurent Destailleur
b57f0a0e5f Fix option to use old path for product is for compatibility if user come
from 3.6 or lower. Must not be enabled on 3.7.0 or +.
2015-06-05 18:32:49 +02:00
Laurent Destailleur
1252a500ce Merge remote-tracking branch 'origin/3.6' into 3.7
Conflicts:
	htdocs/fourn/class/fournisseur.product.class.php
2015-06-05 16:50:46 +02:00
Laurent Destailleur
51d275ee77 Merge pull request #2941 from atm-gauthier/3.7
FIX : When we clone a propal, if it has a project which is not assign…
2015-06-05 15:56:36 +02:00
Laurent Destailleur
3c8d54d55f Merge pull request #2938 from FHenry/3.6
FIX : If supplier invoice block linked element is display after other  block total HT amount is not reset to 0 and sum other block (like customer orders values)
2015-06-05 15:43:25 +02:00
Laurent Destailleur
a8433aadbe Merge pull request #2962 from hregis/3.7_bug2
Fix: PRODUCT_USE_OLD_PATH_FOR_PHOTO use entity 0 for multicompany
2015-06-05 15:42:41 +02:00
Laurent Destailleur
d138e441f8 Merge pull request #2964 from atm-maxime/3.6
Fix : supplier order clone was buggy if notes contains apostrophe
2015-06-05 15:42:16 +02:00
Maxime Kohlhaas
f7493de50c Fix : supplier order clone was buggy if notes contains apostrophe 2015-06-05 13:42:29 +02:00
Regis Houssin
e78dba809b Fix: PRODUCT_USE_OLD_PATH_FOR_PHOTO use entity 0 for multicompany
Fix: use encrypt/decrypt with llx_const for experimental encryption of
sensitive data
2015-06-05 09:42:21 +02:00
Florian HENRY
d0a1d2c3a5 Merge branch '3.6' of git@github.com:Dolibarr/dolibarr.git into 3.6 2015-06-05 09:38:10 +02:00
Laurent Destailleur
15060d973c Merge pull request #2958 from jfefe/patch-8
FIX #2957 : missing $langs object for trigger
2015-06-05 09:18:25 +02:00
jfefe
195a1b2708 FIX #2957 : missing $langs object for trigger 2015-06-04 18:10:29 +02:00
Regis Houssin
5139954365 Fix: add filter in "dol_most_recent_files" for avoid conflict with
option "Save file on server with name "FA0700034_Original filename""
2015-06-04 16:39:39 +02:00
Regis Houssin
6a3310daf7 Fix: PRODUCT_USE_OLD_PATH_FOR_PHOTO use entity 0 for multicompany
Fix: use encrypt/decrypt with llx_const for experimental encryption of
sensitive data
2015-06-04 15:42:51 +02:00
Laurent Destailleur
f437bd2d6d FIX No check warehouse is provided if module stock is not enabled. 2015-06-03 21:21:20 +02:00
Gauthier
3f4ded4780 FIX : When we clone a propal, if it has a project which is not assigned to a third, it was not on new propal because fk_project was always set to empty string if new propal is for another third. 2015-06-02 16:06:03 +02:00
Florian HENRY
fb29fa486a FIX : total amount in tpl linked object are not reset 2015-06-02 11:20:08 +02:00
Florian HENRY
bdaf83a653 Merge branch '3.6' of git@github.com:Dolibarr/dolibarr.git into 3.6 2015-06-02 08:42:13 +02:00
Florian HENRY
3f1613197e FIX : If supplier invoice block linked element is display after other
block total HT amount is not reset to 0 and sum other block (like
customer orders values)
2015-06-02 08:41:42 +02:00
Laurent Destailleur
6e72d3c8cc FIX Export of tags for contact and member 2015-06-01 21:34:21 +02:00
Laurent Destailleur
4f75ab79db Prepare 3.7.2 2015-06-01 16:32:33 +02:00
Laurent Destailleur
f0257d02b5 Minor fix 2015-06-01 16:31:25 +02:00
Laurent Destailleur
d01a777b3e Merge pull request #2761 from tiaris/3_7_picturepath_script
FIX add a script for migrating pictures of products
2015-06-01 16:17:13 +02:00
Laurent Destailleur
9ed5d817c4 Merge pull request #2936 from atm-gauthier/3.7
FIX : When we automatically create an order from a proposal with workf…
2015-06-01 16:15:37 +02:00
Laurent Destailleur
cc7f2518b6 Merge pull request #2937 from atm-ph/fix_target_list_emailing
FIX : when mailing is deleted, the targets list was kept in database
2015-06-01 16:13:24 +02:00
phf
0523f226cf FIX : when mailing is deleted, the targets list was kept in database 2015-06-01 12:29:10 +02:00
Gauthier
cf4308aa3b FIX : When we automatically creta an order from a proposal with workflow module, if some extrafields of propal don't exist in order object, insertExtraFields() function tries to insert extrafields in unexistant column of commande_extrafields table. 2015-06-01 11:24:30 +02:00
Laurent Destailleur
a60ab7dd29 Merge pull request #2912 from atm-ph/fix_36_reassort_target
FIX top links menu have target attribute with wrong value
2015-05-30 15:06:46 +02:00
Laurent Destailleur
4324ed82b3 Merge pull request #2878 from atm-alexis/fix_multientity_num_check
FIX when multicompany was enabled, isExistingObject check wrong
2015-05-29 17:16:32 +02:00
Alexis Algoud
148c36c9d3 Merge branch 'fix_multientity_num_check' of github.com:atm-alexis/dolibarr into fix_multientity_num_check
Conflicts:
	htdocs/core/class/commonobject.class.php
2015-05-29 15:12:31 +02:00
Alexis Algoud
dd7febe2b9 replace test by getEntity() 2015-05-29 15:10:59 +02:00
Alexis Algoud
ab0f805044 Merge branch '3.6' of https://github.com/Dolibarr/dolibarr into fix_multientity_num_check 2015-05-29 15:09:04 +02:00
Alexis ALGOUD
44c46d68ed Remove the useless if 2015-05-23 23:51:49 +02:00
Alexis Algoud
91885c9d6f FIX when multicompany was enabled, this function didn't check just on the good entity (problem when both company use same mask) 2015-05-22 17:22:57 +02:00
jean
659570a6ab add a script for migrating pictures of products 2015-05-04 11:56:02 +02:00
472 changed files with 2668 additions and 1482 deletions

View File

@@ -1,114 +1,303 @@
# This script is used by Travis CI to run automatically Continuous test integration
# from Dolibarr GitHub repository.
# Command run is phpunit
# For syntax, see http://about.travis-ci.org/docs/user/languages/php/
sudo: required
language: php
php:
- '5.3'
- '5.4'
- '5.5'
- '5.6'
- '7.0'
- nightly
addons:
mariadb: '10.0'
# FIXME: find a way to import a MySQL dump into PostgreSQL
#postgresql: '9.3'
apt:
packages:
# We need a webserver to test the webservices
# Let's install Apache with.
- apache2
# mod_php is not supported by Travis. Add fcgi. We install FPM later on.
- libapache2-mod-fastcgi
# Start on every boot
services:
- memcached
env:
global:
# Set to true for very verbose output
- DEBUG=false
matrix:
# MariaDB overrides MySQL installation so it's not possible to test both yet
#- DB=mysql
- DB=mariadb
# FIXME: find a way to import a MySQL dump into PostgreSQL
#- DB=postgresql
# TODO
#- DB=sqlite
# See https://docs.travis-ci.com/user/languages/php/#Apache-%2B-PHP
#- WS=apache
# See https://github.com/DracoBlue/travis-ci-nginx-php-fpm-test
#- WS=nginx
matrix:
fast_finish: true
allow_failures:
- php: '7.0'
- php: nightly
# FIXME
#- env: DB=postgresql
# TODO
#- env: DB=sqlite
notifications:
email:
on_success: never # [always|never|change] default: change
on_failure: change # [always|never|change] default: always
services:
- memcached # will start memcached
irc:
channels:
- "chat.freenode.net#dolibarr"
on_success: change
on_failure: always
use_notice: true
# This will tell travis to run phpunit
language: php
php:
# - "5.2" is not supported because pyrus to install PHP_Codesniffer is not available
- "5.3"
- "5.4"
- "5.5"
before_install:
- |
echo "Disabling Xdebug for composer"
export PHP_VERSION_NAME=$(phpenv version-name)
cp ~/.phpenv/versions/$PHP_VERSION_NAME/etc/conf.d/xdebug.ini /tmp/xdebug.ini
phpenv config-rm xdebug.ini
echo
env:
- DB=mysql
# - DB=postgres
install:
- |
echo "Updating Composer"
composer self-update
echo
before_script:
- echo Start travis
- echo Current dir is `pwd`
- echo Home dir is `echo ~`
- export PHPV=`phpenv version-name`
- echo PHP version $PHPV
# - echo Update composer
# - ~/.phpenv/versions/$(phpenv version-name)/bin/composer.phar self-update
- echo PHPUnit version
- phpunit --version
- echo Install phpcs then show installed rules
- pyrus install pear/PHP_CodeSniffer
- phpenv rehash
- phpcs --version
- phpcs -i
- echo Create dir $(pwd)/htdocs/documents
- sudo mkdir -p $(pwd)/htdocs/documents/admin/temp;
- sudo touch $(pwd)/htdocs/documents/dolibarr.log;
- sudo chmod a+rwx /home; sudo chmod a+rwx /home/travis; sudo chmod -R a+rwx /home/travis/build;
- sudo chmod -R a+rwx $(pwd);
- sudo chown -R www-data:travis $(pwd)/htdocs/documents;
- find $(pwd)/htdocs/documents -type d -exec ls -alt {} \;
- echo Edit php.ini file
- echo 'date.timezone = "Europe/Paris"' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
# - echo "extension = memcache.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
- echo "extension = memcached.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
- sh -c "if [ '$PHPV' = '5.3' ]; then echo 'extension = apc.so' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi"
- sh -c "if [ '$PHPV' = '5.4' ]; then echo 'extension = apc.so' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi"
- sh -c "if [ '$PHPV' = '5.3' ]; then echo 'zend_extension_ts = xdebug.so' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi"
- sh -c "if [ '$PHPV' = '5.4' ]; then echo 'zend_extension_ts = xdebug.so' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi"
- cat ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
- echo Mysql version
- mysql --version
- echo Init database
- sh -c "if [ '$DB' = 'pgsql' ]; then psql -c 'DROP DATABASE IF EXISTS myapp_test;' -U postgres; fi"
- sh -c "if [ '$DB' = 'pgsql' ]; then psql -c 'CREATE DATABASE myapp_test;' -U postgres; fi"
- sh -c "if [ '$DB' = 'mysql' ]; then mysql -e 'DROP DATABASE IF EXISTS myapp_test;'; fi"
- sh -c "if [ '$DB' = 'mysql' ]; then mysql -e 'CREATE DATABASE IF NOT EXISTS myapp_test;'; fi"
- sh -c "if [ '$DB' = 'mysql' ]; then mysql -D myapp_test < $(pwd)/dev/initdata/mysqldump_dolibarr_3.5.0.sql; fi"
- echo Create config file htdocs/conf/conf.php
- echo '<?php ' > htdocs/conf/conf.php
- sh -c "if [ '$DB' = 'pgsql' ]; then echo '$'dolibarr_main_db_type=\'pgsql\'';' >> htdocs/conf/conf.php; fi"
- sh -c "if [ '$DB' = 'mysql' ]; then echo '$'dolibarr_main_db_type=\'mysqli\'';' >> htdocs/conf/conf.php; fi"
- echo '$'dolibarr_main_url_root=\'http://localhost/\'';' >> htdocs/conf/conf.php
- echo '$'dolibarr_main_document_root=\'$(pwd)/htdocs\'';' >> htdocs/conf/conf.php
- echo '$'dolibarr_main_data_root=\'$(pwd)/htdocs/documents\'';' >> htdocs/conf/conf.php
- echo '$'dolibarr_main_db_host=\'localhost\'';' >> htdocs/conf/conf.php
- echo '$'dolibarr_main_db_name=\'myapp_test\'';' >> htdocs/conf/conf.php
- echo '$'dolibarr_main_db_user=\'travis\'';' >> htdocs/conf/conf.php
- echo '$'dolibarr_main_authentication=\'dolibarr\'';' >> htdocs/conf/conf.php
- echo '?>' >> htdocs/conf/conf.php
- echo Show conf.php content
- cat htdocs/conf/conf.php
- echo Install apache server
- sudo apt-get update
- sudo apt-get install -y --force-yes apache2 libapache2-mod-php5 php5-curl php5-mysql php5-pgsql php5-intl
- sudo sed -i -e "s,/var/www,$(pwd)/htdocs,g" /etc/apache2/sites-available/default
- echo Show default virtual host
- sudo cat /etc/apache2/sites-available/default
- sudo /etc/init.d/apache2 restart
- wget http://localhost/
- cat index.html
- |
echo "Installing Parallel Lint"
composer -n require jakub-onderka/php-parallel-lint ^0
composer -n require jakub-onderka/php-console-highlighter ^0
echo
- |
echo "Installing PHP Unit"
if [ "$TRAVIS_PHP_VERSION" = '5.3' ] || [ "$TRAVIS_PHP_VERSION" = '5.4' ] || [ "$TRAVIS_PHP_VERSION" = '5.5' ]; then
composer -n require phpunit/phpunit ^4
fi
if [ "$TRAVIS_PHP_VERSION" = '5.6' ] || [ "$TRAVIS_PHP_VERSION" = '7.0' ] || [ "$TRAVIS_PHP_VERSION" = 'nightly' ]; then
composer -n require phpunit/phpunit ^5
fi
echo
- |
echo "Installing PHP CodeSniffer"
composer require squizlabs/php_codesniffer ^2
echo
script:
- cd htdocs/install
- date
# - php upgrade.php 3.4.0 3.5.0 ignoredbversion > upgrade.log
# - php upgrade2.php 3.4.0 3.5.0 ignoredbversion > upgrade2.log
- php upgrade.php 3.5.0 3.6.0 ignoredbversion >> upgrade.log
- php upgrade2.php 3.5.0 3.6.0 ignoredbversion >> upgrade2.log
- php upgrade.php 3.6.0 3.7.0 ignoredbversion >> upgrade.log
# - cat upgrade360370.log
- php upgrade2.php 3.6.0 3.7.0 ignoredbversion >> upgrade2.log
# - cat upgrade2.log
- cd ../..
- date
- phpunit -d memory_limit=-1 --configuration test/phpunit/phpunittest.xml test/phpunit/AllTests.php
- date
# - phpcs -p --warning-severity=0 -s --report-summary --standard=dev/codesniffer/ruleset.xml --tab-width=4 --ignore=/build/html/,/dev/vagrant/,/documents/,/includes/,/test/report/ htdocs/core/class/dolgraph.class.php 2>&1
- phpcs -p --warning-severity=0 -s --report-checkstyle --report-summary --standard=dev/codesniffer/ruleset.xml --tab-width=4 --ignore=/htdocs/conf/conf.php,/build/html/,/dev/vagrant/,/documents/,/includes/,/test/report/ . 2>&1
- date
- |
echo "Adding Composer binaries to the path"
export PATH="$TRAVIS_BUILD_DIR/htdocs/includes/bin:$PATH"
echo
before_script:
- |
echo Start travis
echo Current dir is `pwd`
echo Home dir is `echo ~`
echo TRAVIS_BUILD_DIR is $TRAVIS_BUILD_DIR
- |
echo "Re-enabling Xdebug for PHP CodeSniffer and PHP Unit"
phpenv config-add /tmp/xdebug.ini
echo
- |
echo "Setting up PHP"
echo
echo "Set timezone"
echo 'date.timezone = "Europe/Paris"' >> ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php.ini
if [ "$TRAVIS_PHP_VERSION" = '5.3' ] || [ "$TRAVIS_PHP_VERSION" = '5.4' ]; then
echo
echo "Enabling APC for PHP <= 5.4"
# Documentation says it should be available for PHP <= 5.6 but it's not for 5.5 and 5.6!
echo 'extension = apc.so' >> ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php.ini
echo
echo "Enabling Memcached for PHP <= 5.4"
# Documentation says it should be available for all PHP versions but it's not for 5.5 and 5.6, 7.0 and nightly!
echo 'extension = memcached.so' >> ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php.ini
fi
phpenv rehash
echo
- |
if [ "$DEBUG" = true ]; then
# Check PHP
php -i
# Check PHP CodeSniffer installation
which phpcs
phpcs --version
phpcs -i
# Check PHPUnit installation
which phpunit
phpunit --version
# Check MySQL
mysql --version
mysql -e "SELECT VERSION();"
echo
fi
- |
echo "Setting up database"
if [ "$DB" = 'mysql' ] || [ "$DB" = 'mariadb' ]; then
echo "MySQL"
mysql -e 'DROP DATABASE IF EXISTS travis;'
mysql -e 'CREATE DATABASE IF NOT EXISTS travis;'
mysql -D travis < dev/initdata/mysqldump_dolibarr_3.5.0.sql
fi
# FIXME: find a way to import a MySQL dump into PostgreSQL
#if [ "$DB" = 'postgresql' ]; then
# pgsql travis < dev/initdata/mysqldump_dolibarr_3.5.0.sql
#fi
# TODO: SQLite
echo
- |
export CONF_FILE=htdocs/conf/conf.php
echo "Setting up Dolibarr $CONF_FILE"
echo '<?php ' > $CONF_FILE
echo '$'dolibarr_main_url_root=\'http://127.0.0.1\'';' >> $CONF_FILE
echo '$'dolibarr_main_document_root=\'$TRAVIS_BUILD_DIR/htdocs\'';' >> $CONF_FILE
echo '$'dolibarr_main_data_root=\'$TRAVIS_BUILD_DIR/documents\'';' >> $CONF_FILE
echo '$'dolibarr_main_db_host=\'127.0.0.1\'';' >> $CONF_FILE
echo '$'dolibarr_main_db_name=\'travis\'';' >> $CONF_FILE
echo '$'dolibarr_main_db_user=\'travis\'';' >> $CONF_FILE
if [ "$DB" = 'mysql' ] || [ "$DB" = 'mariadb' ]; then
echo '$'dolibarr_main_db_type=\'mysqli\'';' >> $CONF_FILE
fi
# FIXME
#if [ "$DB" = 'postgresql' ]; then
# echo '$'dolibarr_main_db_type=\'pgsql\'';' >> $CONF_FILE
#fi
# TODO: SQLite
echo '$'dolibarr_main_authentication=\'dolibarr\'';' >> $CONF_FILE
cat $CONF_FILE
echo
- |
echo "Create documents directory and set permissions"
# and admin/temp subdirectory needed for unit tests
mkdir -p documents/admin/temp
echo
- |
echo "Setting up Apache + FPM"
# enable php-fpm
cp ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php-fpm.conf.default ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php-fpm.conf
if [ "$TRAVIS_PHP_VERSION" = '7.0' ] || [ "$TRAVIS_PHP_VERSION" = 'nightly' ]; then
# Copy the included pool
cp ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php-fpm.d/www.conf
fi
if [ "$DEBUG" = true ]; then
cat ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php-fpm.conf
fi
sudo a2enmod rewrite actions fastcgi alias
echo "cgi.fix_pathinfo = 1" >> ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php.ini
if [ "$DEBUG" = true ]; then
cat ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php.ini
fi
~/.phpenv/versions/$PHP_VERSION_NAME/sbin/php-fpm
# configure apache virtual hosts
sudo cp -f build/travis-ci/apache.conf /etc/apache2/sites-available/default
sudo sed -e "s?%TRAVIS_BUILD_DIR%?$TRAVIS_BUILD_DIR?g" --in-place /etc/apache2/sites-available/default
if [ "$DEBUG" = true ]; then
sudo cat /etc/apache2/sites-available/default
fi
sudo service apache2 restart
echo
script:
- |
echo "Checking webserver availability"
# Ensure we catch errors
set -e
wget http://127.0.0.1
if [ "$DEBUG" = true ]; then
cat index.html
fi
set +e
echo
- |
echo "Checking PHP syntax errors"
# Ensure we catch errors
set -e
parallel-lint --exclude htdocs/includes --blame .
set +e
echo
# TODO: dev/* checks
- |
echo "Checking coding style"
# Ensure we catch errors
set -e
# Exclusions are defined in the ruleset.xml file
phpcs -s -n -p -d memory_limit=-1 --colors --tab-width=4 --standard=dev/codesniffer/ruleset.xml --encoding=utf-8 .
set +e
echo
# TODO: Check Javascript (jshint?)
# TODO: Check CSS (csslint?)
# TODO: check SQL syntax (pgsanity?)
- |
echo "Upgrading Dolibarr"
# Ensure we catch errors
set -e
cd htdocs/install
php upgrade.php 3.5.0 3.6.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade350360.log
php upgrade2.php 3.5.0 3.6.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade350360-2.log
php upgrade.php 3.6.0 3.7.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade360370.log
php upgrade2.php 3.6.0 3.7.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade360370-2.log
cd -
set +e
echo
- |
echo "Unit testing"
# Ensure we catch errors
set -e
phpunit -d memory_limit=-1 -c test/phpunit/phpunittest.xml test/phpunit/AllTests.php
set +e
echo
after_success:
after_failure:
- |
if [ "$DEBUG" = true ]; then
echo "Debugging informations"
# Upgrade log files
cat *.log
# Dolibarr log file
cat documents/dolibarr.log
# Apache log file
sudo cat /var/log/apache2/error.log
# MariaDB log file
sudo cat /var/log/mysql/error.log
# TODO: PostgreSQL log file
echo
fi
after_script:
# - echo Output dolibarr log file; cat $(pwd)/htdocs/documents/dolibarr.log
- echo Output apache log file; sudo cat /var/log/apache2/error.log
- echo End travis

196
ChangeLog
View File

@@ -9,6 +9,115 @@ Upgrading to any other version or database system is abolutely required BEFORE t
make a Dolibarr upgrade.
***** ChangeLog for 3.7.3 compared to 3.7.2 *****
FIX: #3734 Do not show empty links of deleted source objects in stock movement list
FIX: #3890 Expected transactions bank account page, shows negative numbers
FIX: #3928 Creating a Customer order and a Customer invoice from a project, does not inherit payment conditions and method of payment of customer card
FIX: #3980 Search field in "product by supplier" list sends empty result 3.8 and 3.7
FIX: #4081 Added missing translation
FIX: #4097 Public holiday calculation
FIX: #4242 Allow disabling dashes in documents
FIX: #4243 sql injection
FIX: Can use formated float number on old expense report module.
FIX: Change object statut when closing shipment and remove erratic db commit
FIX: Export with category contact extrafields
FIX: NB task and percent progress in box project
FIX: Not delete a product when have customer price
FIX: Not deleting contrats on element_element table
FIX: Not use localtaxes when invoice some orders
FIX: Product link in project box
FIX: Use "WHERE true" instead of "WHERE 1" #4132
***** ChangeLog for 3.7.2 compared to 3.7.1 *****
FIX: #2957 : missing $langs object for trigger
FIX: #2983 Load gravatar avatar images securely over HTTPS
FIX: #3009: Better filtering to prevent SQL injection
FIX: #3091 TotalHT amount in supplier order is bold unlike the rest of Dolibarr
FIX: #3262 Webservice getProductsForCategory()
FIX: #3318
FIX: [ #3460 ] Selected bank account was not saved when an error happened when trying to create a customer invoice
FIX: #3530
FIX: #3630 - Wrong balance report when module salaries and donation disabled
FIX: #3679 Error when deleting a Localtax2 special payment
FIX: #3707 Thirdparty bank account page table has a glitch
FIX: #3724 Bug: Blank page after cloning proposal with changed client
FIX: #3836 Unable to upload a document to an invoice under some circunstances
FIX: #3841 creation of a task completed has not status set to finished by default
FIX: Add a protection to not make release if ChangeLog was not generated.
FIX: adjusted test for affecting supplier reference
FIX: Admin fiche inter page do not take good action
FIX: Avoid warning strict mode when hosting server do not have php5_curl installed
FIX: bad calculation for stock value
FIX: Bad condition into invoice export request making reporting too many rows.
FIX: bad stock valorisation
FIX: Bad visualization of suppliers name on Incomes-Expenses mode
FIX: Better management error into the color conversion functions
FIX: [ bug 1634 ] Error deleting a project when it had many linked objects
FIX: [ bug 1925 ] "Link to order" option in supplier invoices is not working properly
FIX: [ bug #2893 ] Dolibarr error when viewing an invoice after changing invoice mask
FIX: [ bug #3211 ] Error about sold to pay (Montant encours)
FIX: [ bug #3321 ] Users with certain permissions were shown a "forbidden access" page even if they had the rights
FIX: [ bug #3358 ] Tasks box does not work with PostgreSQL
FIX: [ bug #3383 ] Company name is overlapped with company direction in PDF models
FIX: [ bug #3426 ] Unable to create an invoice from a contract with extrafields
FIX: [ bug #3431 ] Invoice bank account is not respected
FIX: [ bug #3432 ] Spaces should be removed from IBAN when formatting it
FIX: Can create Proposal on close thridparty #3526
FIX: change order date on clone (as everywhere else)
FIX: Close #2835 Customer prices of a product shows incorrect history order
FIX: Close #2837 Product list table column header does not match column body
FIX: Close bug #2855 Wrong translation key in localtax report page
FIX: Close bug #2861 Undefined variable $res when migrating from 3.6.2 to 3.7.0
FIX: Close bug #2891 Category hooks do not work
FIX: Close bug #2900 Courtesy title is not stored in create thirdparty form
FIX: Close bug #2976: "Report" tab is the current tab but it is not marked as selected by the UI
FIX: contact country had wrong display if the country dont have translate
FIX: Display country name instead of country id (display country id makes no sense on vcard files)
FIX: display error on extrafields on ficheinter
FIX: double db escape add too quote
FIX: Email selector contact must not include inactive contact
FIX: End log must use same level then start log.
FIX: error in SQL due to a previous fix
FIX: event's data lost on user assign update
FIX: Export of tags for contact and member
FIX: facturestat bad sql when customer view is limited
FIX: if multicompany enabled, call to undifend method _setCookie instead of setCookie
FIX: If supplier invoice block linked element is display after other block total HT amount is not reset to 0 and sum other block (like customer orders values)
FIX: keep filter by category or by not enough stock if we switch page
FIX: Line break display as a block
FIX: load propal langs for availability traduction
FIX: loss data also if update was cancel by error of ended state with no end date, try a generic patch
FIX: Mass Mailing activity don't display all status
FIX: Missing to set context into workflow actions, so triggers can't know we are creating an invoice from order or an order from a proposal.
FIX: multientity warehouse management
FIX: New adherent from, always redirect on entity
FIX: No check warehouse is provided if module stock is not enabled.
FIX: no need to remove file into mail form, the temp dir will be deleted after any sending
FIX: no projet_task_time id from trigger TASK_TIMESPENT_CREATE
FIX: Not showing task extrafields when creating from left menu
FIX: only active customer should be return into new invoice creation select list
FIX: Payed invoices are showed as canceled FIX: Bad date filter on customer order
FIX: WAP calculation
FIX: Save of filters into export profiles failed.
FIX: supplier rights for orderToInvoice
FIX: Syntax error in Debian Apache configuration
FIX: The hours of date filter aren't correct
FIX: tool export handle the type "select" extrafields and return the value instead of id
FIX: total amount in tpl linked object are not reset
FIX: translate Jabberid on contact page with edit view
FIX: translation for 1 word do not work if product/service module are disabled because the translation search in products.lang
FIX: update2.php test res befre assign it
FIX: When delete actioncomm also delete actioncomm_resources
FIX: when fetch_optionnal_by_label in Extrafields with $this->db cannot work because this->db is never instanciated
FIX: when mailing is deleted, the targets list was kept in database
FIX: when multicompany was enabled, this function didn't check just on the good entity (problem when both company use same mask)
FIX: When we add an user on event in create mode, we lose linked object
FIX: When we automatically creta an order from a proposal with workflow module, if some extrafields of propal don't exist in order object, insertExtraFields() function tries to insert extrafields in unexistant column of commande_extrafields table.
FIX: When we clone a propal, if it has a project which is not assigned to a third, it was not on new propal because fk_project was always set to empty string if new propal is for another third.
FIX: XSS security using the onerror and missing escapement on type of member page.
NEW: Created new ContratLigne::insert function
***** ChangeLog for 3.7.1 compared to 3.7.* *****
FIX Bug in the new photo system
FIX Error management
@@ -32,11 +141,11 @@ FIX send mail, copy sendto don't read the list of contact
FIX Properly escape untrusted data to prevent HTML injection.
FIX send mail, copy sendto don't read the list of contact
Path to save photos of products was moved in 3.7.0 to match path of other attached files. If you had loose
Path to save photos of products was moved in 3.7.0 to match path of other attached files. If you had loose
your photo on the photo tab of products, you can set the constant "PRODUCT_USE_OLD_PATH_FOR_PHOTO" to
restore old path.
WARNING:
WARNING:
Do not try to make any Dolibarr upgrade if you are running Mysql version 5.5.40.
Mysql version 5.5.40 has a very critical bug making your data beeing definitely lost.
@@ -46,7 +155,7 @@ make a Dolibarr upgrade.
***** ChangeLog for 3.7 compared to 3.6.* *****
For users:
- New: Match other auth system: Login can be done entering login or user
- New: Match other auth system: Login can be done entering login or user
email (this open the road for SSO).
- New: Agenda export by project #1967.
- New: Increase length of thirdparty to 128 chars.
@@ -67,14 +176,14 @@ For users:
- New: Can filter on status on interventions.
- New: Add help info of field type into dictionary of payment types.
- New: Add proposals into referer page of thirdparty.
- New: On contact list can set filter on both active and not active (no more exclusive select).
- New: On contact list can set filter on both active and not active (no more exclusive select).
- New: Intervention documents are now available in ECM module.
- New: Can attach supplier order to a customer order.
- New: Supervisor is now visible into user list.
- New: Supervisor is now visible into user list.
- New: Add user of creation and validation on invoice export.
- New: Add info page about browser.
- New: Enable feature developed for 3.6 we forgot to enabled: Adding prefix
on uploaded file names.
on uploaded file names.
- New: No more dependency between contract and service module.
- New: [ task #867 ] Remove ESAEB external module code from core.
- New: Can create proposal from an intervention.
@@ -105,7 +214,7 @@ For users:
Use accesskey on form search.
- New: Intervention documents are now available in ECM module.
- New: Add attachments on user card + in ECM module.
- New: Can add __PROJECT_REF__ and __TIHRPARTY_NAME__ into email topic or content template.
- New: Can add __PROJECT_REF__ and __THIRDPARTY_NAME__ into email topic or content template.
- New: [ task #1204 ] add Numering contrat module free (like leopard in product module).
- New: [ task #712 ] Add warning when creating invoice from proposal or order, when there is already one invoice.
- New: Enable supplier price log table.
@@ -113,8 +222,8 @@ For users:
- New: [ task #1218 ] Can drag and drop an event from calendar to change its day.
- New: Optimize size of image static resources.
- New: Add hourly and daily amount on user card. Add weekly working hours and salary on user card.
- New: Content of predefined email come firstly from table llx_c_email_template, then translation key.
- New: Add option MAIN_GENERATE_INVOICES_WITH_PICTURE to show picture
- New: Content of predefined email come firstly from table llx_c_email_template, then translation key.
- New: Add option MAIN_GENERATE_INVOICES_WITH_PICTURE to show picture
onto PDF like MAIN_GENERATE_PROPOSALS_WITH_PICTURE dir for proposals.
- New: Add more search field in list of cheque deposits.
- New: Add feature to order to invoice on supplier part.
@@ -216,8 +325,8 @@ Dolibarr better:
- Deprecated module "oscommerce" were removed.
- Changed the way parameters are provided to scripts sync_xxx_ldap2dolibarr.php
- Some field into database were renamed from "libelle" to "label".
- Table llx_c_pays were renamed into llx_c_country.
- Triggers *_BUILDDOC are removed. Building a doc is not a business event. For action after
- Table llx_c_pays were renamed into llx_c_country.
- Triggers *_BUILDDOC are removed. Building a doc is not a business event. For action after
creation of a pdf or odt, hook "afterPDFCreation" or "afterODTCreation" must be used instead.
- A lot of pages named fiche.php were renamed into card.php
- A lot of pages named liste.php were renamed into list.php
@@ -226,6 +335,46 @@ Dolibarr better:
- Replaced USER_UPDATE_SESSION trigger with an updateSession hook may break modules using it.
***** ChangeLog for 3.6.5 compared to 3.6.4 *****
FIX: #2957 : missing $langs object for trigger
FIX: #2983 Load gravatar avatar images securely over HTTPS
FIX: #3009: Better filtering to prevent SQL injection
FIX: #3841 creation of a task completed has not status set to finished by default
FIX: #3890 Expected transactions bank account page, shows negative numbers
FIX: #3928 Creating a Customer order and a Customer invoice from a project, does not inherit payment conditions and method of payment of customer card
FIX: bad calculation for stock value
FIX: bad stock valo
FIX: bad stock valorisation
FIX: [ bug #2893 ] Dolibarr error when viewing an invoice after changing invoice mask
FIX: button create payment hide if tax amount is less than 1
FIX: change object statut on close shipping and remove erratic db commit
FIX: change order date on clone (as everywhere else)
FIX: Close #2835 Customer prices of a product shows incorrect history order
FIX: Close #2837 Product list table column header does not match column body
FIX: Close bug #2861 Undefined variable $res when migrating from 3.6.2 to 3.7.0
FIX: Close bug #2891 Category hooks do not work
FIX: Close bug #2976: "Report" tab is the current tab but it is not marked as selected by the UI
FIX: contact country had wrong display if the country dont have translate
FIX: double db escape add too quote
FIX: End log must use same level then start log.
FIX: error in SQL due to a previous fix
FIX: event for restricted user was restricted if company null
FIX: facturestat bad sql when customer view is limited
FIX: If supplier invoice block linked element is display after other block total HT amount is not reset to 0 and sum other block (like customer orders values)
FIX: keep filter by category or by not enough stock if we switch page
FIX: no need to remove file into mail form, the temp dir will be deleted after any sending
FIX: no projet_task_time id from trigger TASK_TIMESPENT_CREATE
FIX: pmp
FIX: send mail, copy sendto don't read the list of contact
FIX: The hours of date filter aren't correct
FIX: tool export handle the type "select" extrafields and return the value instead of id
FIX: top links menu have target attribute with wrong value
FIX: total amount in tpl linked object are not reset
FIX: when multicompany was enabled, this function didn't check just on the good entity (problem when both company use same mask)
***** ChangeLog for 3.6.4 compared to 3.6.3 *****
- Fix: [ bug #2893 ] Dolibarr error when viewing an invoice after changing invoice mask
***** ChangeLog for 3.6.3 compared to 3.6.2 *****
- Fix: ref_ext was not saved when recording a customer order from web service
- Fix: withdrawal create error if in the same month are deleted previus withdrawals.
@@ -262,6 +411,12 @@ Dolibarr better:
- Fix: [ bug #2545 ] Missing object_margin.png in Amarok theme
- Fix: [ bug #2542 ] Contracts store localtax preferences
- Fix: Bad permission assignments for stock movements actions
- Fix: [ bug #2891 ] Category hooks do not work
- Fix: [ bug #2696 ] Adding complementary attribute fails if code is numerics
- Fix: [ bug #3074 ] Accruals accounting use payment date instead of commitment date in turnover reports for salaries
- Fix: Not showing product supplier reference when page break
- Fix: [ bug #3341 ] Missing translation in /compta/paiement_charge.php
- Fix: [ bug #3342 ] Taxes dictionary page does not accept localized decimals for localtax2 rate
***** ChangeLog for 3.6.2 compared to 3.6.1 *****
- Fix: fix ErrorBadValueForParamNotAString error message in price customer multiprice.
@@ -372,7 +527,7 @@ For users:
- Fix: Add actions events not implemented.
- Fix: Price min of composition is not supplier price min by quantity.
- Fix: [ bug #1356 ] Bank accountancy number is limited to 8 numbers.
- Fix: [ bug #1439 ] impossible to remove a a translation (multilanguage-feature)
- Fix: [ bug #1439 ] impossible to remove a a translation (multilanguage-feature)
- New: If multilangue is enabled, mail (from propal, invoice, etc...) message is pre-defaulted in Customer language
- Fix: [ bug #1459 ] _ADD_CONTACT and _DEL_CONTACT triggers do not intercept insertion when reported an error
- Fix: [ bug #1478 ] BILL_PAYED trigger action does not intercept failure under some circumstances
@@ -402,8 +557,8 @@ For developers:
- New: A module can disable a standard ECM view.
- New: Add multilang support into product webservice.
- New: Add hooks on project card page.
- New: Add call_trigger method on CommonObject class. So new trigger call within object is just :
$result = $this->call_trigger($trigger_name, $user)
- New: Add call_trigger method on CommonObject class. So new trigger call within object is just :
$result = $this->call_trigger($trigger_name, $user)
WARNING: Following change may create regression for some external modules, but was necessary to make
Dolibarr better:
@@ -436,6 +591,19 @@ Fix: [ bug #2577 ] Incorrect invoice status in "Linked objects" page of a projec
Fix: [ bug #2576 ] Unable to edit a dictionary entry that has # in its ref
Fix: [ bug #2758 ] Product::update sets product note to "null" when $prod->note is null
Fix: [ bug #2757 ] Deleting product category photo gives "Forbidden access" error
Fix: [ bug #2976 ] "Report" tab is the current tab but it is not marked as selected by the UI
Fix: [ bug #2861 ] Undefined variable $res when migrating
Fix: [ bug #2837 ] Product list table column header does not match column body
Fix: [ bug #2835 ] Customer prices of a product shows incorrect history order
Fix: [ bug #2814 ] JPEG photos are not displayed in Product photos page
Fix: [ bug #2715 ] Statistics page has broken layout with long thirdparty names
Fix: [ bug #2570 ] [Contacts] Page should not process if ID is invalid
Fix: [ bug #3268 ] SQL error when accessing thirdparty log page without a socid parameter
Fix: [ bug #3180 ] formObjectOptions hook when editing thirdparty card does not print result
Fix: [ bug #1791 ] Margin menu not available if any Finance module is not enabled
Fix: [ bug #3310 ] OrderLine::fetch, FactureLigne::fetch and PropaleLigne::fetch do not return anything
Fix: [ bug #3206 ] PropaleLigne, OrderLine and FactureLigne given to triggers through update function does not contain all the information
Fix: [ bug #3313 ] Error enabling module with PostgreSQL database
***** ChangeLog for 3.5.6 compared to 3.5.5 *****
Fix: Avoid missing class error for fetch_thirdparty method #1973

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Script build for hudson CI -->
<project name="dolibarr" default="hudson" basedir=".">
fdfds
<!-- Exclude/ignore paths -->
<property name="ignorepaths" value="${basedir}/htdocs/conf,${basedir}/htdocs/core/filemanagerdol,${basedir}/htdocs/includes" />
<property name="ignoreregexp" value="**/PEAR/*,**/NET/*,**/HTTP/*,**/zendgdata/*,**/reportico/*" />

0
build/.gitignore vendored Executable file → Normal file
View File

0
build/aps/APP-META-1.1.xml Executable file → Normal file
View File

0
build/aps/APP-META-1.2.xml Executable file → Normal file
View File

0
build/aps/README Executable file → Normal file
View File

1
build/aps/install.forced.php.install Executable file → Normal file
View File

@@ -21,4 +21,3 @@ $force_install_databaserootpass='';
$force_install_dolibarrlogin='admin';
$force_install_nophpinfo='1';
$force_install_lockinstall='444';
?>

View File

@@ -15,7 +15,7 @@ Alias /dolibarr /usr/share/dolibarr/htdocs
# Require all granted
# </IfVersion>
# <IfVersion < 2.3>
# Order allow, deny
# Order allow,deny
# Allow from all
# </IfVersion>
#
@@ -27,7 +27,7 @@ Alias /dolibarr /usr/share/dolibarr/htdocs
Require all granted
</IfVersion>
<IfVersion < 2.3>
Order allow, deny
Order allow,deny
Allow from all
</IfVersion>

View File

@@ -1,4 +1,4 @@
dolibarr (3.7.1-3) UNRELEASED; urgency=low
dolibarr (__VERSION__) UNRELEASED; urgency=low
[ Laurent Destailleur (eldy) ]
* New upstream release.

2
build/debian/conf.php.install Executable file → Normal file
View File

@@ -226,5 +226,3 @@ $dolibarr_main_prod='0';
# Default value: 0 (use database value if exist)
# Examples:
# $dolibarr_mailing_limit_sendbyweb='0';
?>

0
build/debian/dolibarr.install Executable file → Normal file
View File

0
build/debian/dolibarr.lintian-overrides Executable file → Normal file
View File

0
build/debian/dolibarr.templates.futur Executable file → Normal file
View File

2
build/debian/install.forced.php.install Executable file → Normal file
View File

@@ -42,5 +42,3 @@ $force_install_lockinstall='444';
//$force_dolibarr_js_JQUERY_UI='/javascript/jquery-ui';
//$force_dolibarr_js_JQUERY_FLOT='/javascript/flot';
//$force_dolibarr_font_DOL_DEFAULT_TTF_BOLD='/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf';
?>

0
build/debian/po/POTFILES.in Executable file → Normal file
View File

0
build/debian/po/fr.po Executable file → Normal file
View File

0
build/doxygen/doxygen_footer.html Executable file → Normal file
View File

0
build/doxygen/doxygen_header.html Executable file → Normal file
View File

View File

@@ -22,7 +22,8 @@ $PUBLISHSTABLE="eldy,dolibarr\@frs.sourceforge.net:/home/frs/project/dolibarr";
$PUBLISHBETARC="ldestailleur\@asso.dolibarr.org:/home/dolibarr/dolibarr.org/httpdocs/files";
@LISTETARGET=("TGZ","ZIP","RPM_GENERIC","RPM_FEDORA","RPM_MANDRIVA","RPM_OPENSUSE","DEB","APS","EXEDOLIWAMP","SNAPSHOT"); # Possible packages
#@LISTETARGET=("TGZ","ZIP","RPM_GENERIC","RPM_FEDORA","RPM_MANDRIVA","RPM_OPENSUSE","DEB","APS","EXEDOLIWAMP","SNAPSHOT"); # Possible packages
@LISTETARGET=("TGZ","ZIP","RPM_GENERIC","RPM_FEDORA","RPM_MANDRIVA","RPM_OPENSUSE","DEB","EXEDOLIWAMP","SNAPSHOT"); # Possible packages
%REQUIREMENTPUBLISH=(
"SF"=>"git ssh rsync",
"ASSO"=>"git ssh rsync"
@@ -64,6 +65,13 @@ $DIR||='.'; $DIR =~ s/([^\/\\])[\\\/]+$/$1/;
$SOURCE="$DIR/..";
$DESTI="$SOURCE/build";
if ($SOURCE !~ /^\//)
{
print "Error: Launch the script $PROG.$Extension with its full path from /.\n";
print "$PROG.$Extension aborted.\n";
sleep 2;
exit 1;
}
if (! $ENV{"DESTIBETARC"} || ! $ENV{"DESTISTABLE"})
{
print "Error: Missing environment variables.\n";
@@ -337,13 +345,35 @@ foreach my $target (sort keys %CHOOSEDPUBLISH) {
if ($nboftargetok) {
# Update CVS if required
#-----------------------
# Update GIT tag if required
#---------------------------
if ($nbofpublishneedtag)
{
print "Go to directory $SOURCE\n";
$olddir=getcwd();
chdir("$SOURCE");
# Test that the ChangeLog is ok
$ret=`grep "ChangeLog for $MAJOR.$MINOR\.$BUILD" "$SOURCE/ChangeLog" 2>&1`;
if (! $ret)
{
print "Error: The ChangeLogFile was not updated. Run the following command first:\n";
if (! $BUILD)
{
print 'cd ~/git/dolibarr_'.$MAJOR.'.'.$MINOR.'; git log `git rev-list --boundary '.$MAJOR.'.'.$MINOR.'..origin/develop | grep ^- | cut -c2- | head -n`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e \'^FIX\|NEW\' | sort -u | sed \'s/FIXED:/FIX:/g\' | sed \'s/FIXED :/FIX:/g\' | sed \'s/FIX :/FIX:/g\' | sed \'s/FIX /FIX: /g\' | sed \'s/NEW :/NEW:/g\' | sed \'s/NEW /NEW: /g\' > /tmp/aaa';
}
else
{
print 'cd ~/git/dolibarr_'.$MAJOR.'.'.$MINOR.'; git log '.$MAJOR.'.'.$MINOR.'.'.($BUILD-1).'.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e \'^FIX\|NEW\' | sort -u | sed \'s/FIXED:/FIX:/g\' | sed \'s/FIXED :/FIX:/g\' | sed \'s/FIX :/FIX:/g\' | sed \'s/FIX /FIX: /g\' | sed \'s/NEW :/NEW:/g\' | sed \'s/NEW /NEW: /g\' > /tmp/aaa';
}
print "\n";
exit;
}
else
{
print "ChangeLog for $MAJOR.$MINOR\.$BUILD was found into '$SOURCE/ChangeLog'\n";
}
print 'Run git tag -a -m "'.$MAJOR.'.'.$MINOR.'.'.$BUILD.'" "'.$MAJOR.'.'.$MINOR.'.'.$BUILD.'"'."\n";
$ret=`git tag -a -m "$MAJOR.$MINOR.$BUILD" "$MAJOR.$MINOR.$BUILD" 2>&1`;
if ($ret =~ /already exists/)
@@ -420,6 +450,7 @@ if ($nboftargetok) {
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/install/mssql`;
$ret=`rm -fr $BUILDROOT/$PROJECT/dev/ansible`;
$ret=`rm -fr $BUILDROOT/$PROJECT/dev/codesniffer`;
$ret=`rm -fr $BUILDROOT/$PROJECT/dev/codetemplates`;
$ret=`rm -fr $BUILDROOT/$PROJECT/dev/dbmodel`;
@@ -428,6 +459,7 @@ if ($nboftargetok) {
$ret=`rm -fr $BUILDROOT/$PROJECT/dev/ldap`;
$ret=`rm -fr $BUILDROOT/$PROJECT/dev/licence`;
$ret=`rm -fr $BUILDROOT/$PROJECT/dev/mail`;
$ret=`rm -fr $BUILDROOT/$PROJECT/dev/multitail`;
$ret=`rm -fr $BUILDROOT/$PROJECT/dev/phpcheckstyle`;
$ret=`rm -fr $BUILDROOT/$PROJECT/dev/phpunit`;
$ret=`rm -fr $BUILDROOT/$PROJECT/dev/security`;
@@ -455,23 +487,28 @@ if ($nboftargetok) {
$ret=`rm -fr $BUILDROOT/$PROJECT/documents`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/document`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/documents`;
# Removed known external modules to avoir any error when packaging on test env
# Removed known external modules to avoid any error when packaging from env where external modules are tested
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/custom/*`; # For custom we want to keep dir
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/allscreens*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/ancotec*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/cabinetmed*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/calling*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/bootstrap*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/custom*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/factory*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/lead*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/management*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/multicompany*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/ndf*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/nltechno*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/oscim*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/pos*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/public/test`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/teclib*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/timesheet*`;
# Removed other test files
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/themes/oblyon*`;
# Removed other test files
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/themes/eldy/*.new`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/public/api/explorer`; # This is a dev tool
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/public/test`;
$ret=`rm -fr $BUILDROOT/$PROJECT/test`;
$ret=`rm -fr $BUILDROOT/$PROJECT/Thumbs.db $BUILDROOT/$PROJECT/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/*/*/Thumbs.db`;
@@ -485,16 +522,29 @@ if ($nboftargetok) {
#$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/ckeditor/_source`; # _source must be kept into tarball
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/jquery/plugins/datatables/extras/TableTools/swf`; # Source of this flash is not available
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/jquery/plugins/multiselect/MIT-LICENSE.txt`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/jquery/plugins/multiselect/MIT-LICENSE.txt`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/mike42/escpos-php/doc`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/mike42/escpos-php/example`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/mike42/escpos-php/test`;
$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/php-iban/docs`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpexcel/license.txt`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpexcel/PHPExcel/Shared/PDF`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpexcel/PHPExcel/Shared/PCLZip`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/license.txt`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/Examples`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/PHPExcel/Shared/PDF`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/PHPExcel/Shared/PCLZip`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpoffice/phpexcel/unitTests`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/dejavu-fonts-ttf-*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/freefont-*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/utils`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/LICENSE.TXT`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/LICENSE.TXT`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/dejavu-fonts-ttf-*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/utils`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/LICENSE.TXT`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/savant`;
}
@@ -679,7 +729,7 @@ if ($nboftargetok) {
use Date::Language;
$lang=Date::Language->new('English');
$datestring = $lang->time2str("%a %b %e %Y", time);
$changelogstring="* ".$datestring." Laurent Destailleur $MAJOR.$MINOR.$REL1-$RPMSUBVERSION\n- Upstream release\n";
$changelogstring="* ".$datestring." Laurent Destailleur (eldy) $MAJOR.$MINOR.$REL1-$RPMSUBVERSION\n- Upstream release\n";
print "Generate file $BUILDROOT/$BUILDFIC from $SOURCE/build/rpm/${BUILDFICSRC}\n";
open (SPECFROM,"<$SOURCE/build/rpm/${BUILDFICSRC}") || die "Error";
@@ -711,7 +761,7 @@ if ($nboftargetok) {
$ret=`$cmd`;
print "Move $RPMDIR/SOURCES/".$FILENAMETGZ2.".tgz into $NEWDESTI/".$FILENAMETGZ2.".tgz\n";
$cmd="mv \"$RPMDIR/SOURCES/".$FILENAMETGZ2.".tgz\" \"$NEWDESTI/".$FILENAMETGZ2.".tgz\"";
$ret=`$cmd`;
#$ret=`$cmd`;
next;
}
@@ -801,8 +851,17 @@ if ($nboftargetok) {
print "Create directory $BUILDROOT/$PROJECT.tmp/debian\n";
$ret=`mkdir "$BUILDROOT/$PROJECT.tmp/debian"`;
print "Copy $SOURCE/build/debian/xxx to $BUILDROOT/$PROJECT.tmp/debian\n";
# Add files for dpkg-source (changelog)
#$ret=`cp -f "$SOURCE/build/debian/changelog" "$BUILDROOT/$PROJECT.tmp/debian"`;
open (SPECFROM,"<$SOURCE/build/debian/changelog") || die "Error";
open (SPECTO,">$BUILDROOT/$PROJECT.tmp/debian/changelog") || die "Error";
while (<SPECFROM>) {
$_ =~ s/__VERSION__/$MAJOR.$MINOR.$newbuild/;
print SPECTO $_;
}
close SPECFROM;
close SPECTO;
# Add files for dpkg-source
$ret=`cp -f "$SOURCE/build/debian/changelog" "$BUILDROOT/$PROJECT.tmp/debian"`;
$ret=`cp -f "$SOURCE/build/debian/compat" "$BUILDROOT/$PROJECT.tmp/debian"`;
$ret=`cp -f "$SOURCE/build/debian/control" "$BUILDROOT/$PROJECT.tmp/debian"`;
$ret=`cp -f "$SOURCE/build/debian/copyright" "$BUILDROOT/$PROJECT.tmp/debian"`;

View File

@@ -8,15 +8,16 @@ This files describe steps made by Dolibarr packaging team to make a
beta version of Dolibarr, step by step.
- Check all files are commited.
- Update version/info in ChangeLog. To generate a changelog, you can do "git log x.y.z..HEAD --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIXED\|NEW'"
- Update version/info in ChangeLog.
To generate a changelog of a major new version x.y.0, you can do "cd ~/git/dolibarr_x.y; git log `git rev-list --boundary x.y..origin/develop | grep ^- | cut -c2- | head -n 1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
To generate a changelog of a maintenance version x.y.z, you can do "cd ~/git/dolibarr_x.y; git log x.y.z-1.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
- Update version number with x.y.z-w in htdocs/filefunc.inc.php
- Update version number with x.y.z-w in build/debian/changelog
- Commit all changes.
- Add a Tag (x.y.betaz_YYYYMMDD) and push it: git push --tags
- Create a branch (x.y).
- Run makepack-dolibarr.pl to generate all packages.
- Create a branch (x.y), if version seems stable enough.
- Move build files into www.dolibarr.org web site
(/home/dolibarr/wwwroot/files/lastbuild).
@@ -29,9 +30,10 @@ This files describe steps made by Dolibarr packaging team to make a
complete release of Dolibarr, step by step.
- Check all files are commited.
- Update version/info in ChangeLog. To generate a changelog, you can do "git log x.y.z..HEAD --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^Fix\|New\|Sec'"
- Update version/info in ChangeLog.
To generate a changelog of a major new version x.y.0, you can do "cd ~/git/dolibarr_x.y; git log `git rev-list --boundary x.y..origin/develop | grep ^- | cut -c2- | head -n 1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
To generate a changelog of a maintenance version x.y.z, you can do "cd ~/git/dolibarr_x.y; git log x.y.z-1.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
- Update version number with x.y.z in htdocs/filefunc.inc.php
- Update version number with x.y.z in build/debian/changelog
- Commit all changes.
- Run makepack-dolibarr.pl to generate all packages.

View File

@@ -1,7 +1,7 @@
#----------------------------------------------------------------------------
# \file dolibarr.pl
# \brief Dolibarr script install for Virtualmin Pro
# \author (c)2009-2012 Regis Houssin <regis.houssin@capnetworks.com>
# \author (c)2009-2015 Regis Houssin <regis.houssin@capnetworks.com>
#----------------------------------------------------------------------------
@@ -30,8 +30,7 @@ return "Regis Houssin";
# script_dolibarr_versions()
sub script_dolibarr_versions
{
# TODO Replace this with version of Dolibar we want to install
return ( "x.y.z", "3.6.0");
return ( "3.7.2", "3.6.3", "3.5.6" );
}
sub script_dolibarr_category
@@ -57,6 +56,26 @@ local ($d, $ver) = @_;
return ("mysql", "postgres");
}
# script_dolibarr_depends(&domain, version)
sub script_dolibarr_depends
{
local ($d, $ver, $sinfo, $phpver) = @_;
local @rv;
if ($ver >= 3.6) {
# Check for PHP 5.3+
local $phpv = &get_php_version($phpver || 5, $d);
if (!$phpv) {
push(@rv, "Could not work out exact PHP version");
}
elsif ($phpv < 5.3) {
push(@rv, "Dolibarr requires PHP version 5.3 or later");
}
}
return @rv;
}
# script_dolibarr_params(&domain, version, &upgrade-info)
# Returns HTML for table rows for options for installing dolibarr
sub script_dolibarr_params
@@ -78,8 +97,7 @@ else {
$rv .= &ui_table_row("Database for Dolibarr tables",
&ui_database_select("db", undef, \@dbs, $d, "dolibarr"));
$rv .= &ui_table_row("Install sub-directory under <tt>$hdir</tt>",
&ui_opt_textbox("dir", "dolibarr", 30,
"At top level"));
&ui_opt_textbox("dir", &substitute_scriptname_template("dolibarr", $d), 30, "At top level"));
if ($d->{'ssl'} && $ver >= 3.0) {
$rv .= &ui_table_row("Force https connection?",
&ui_yesno_radio("forcehttps", 0));
@@ -159,7 +177,8 @@ if ($opts->{'newdb'} && !$upgrade) {
local ($dbtype, $dbname) = split(/_/, $opts->{'db'}, 2);
local $dbuser = $dbtype eq "mysql" ? &mysql_user($d) : &postgres_user($d);
local $dbpass = $dbtype eq "mysql" ? &mysql_pass($d) : &postgres_pass($d, 1);
local $dbphptype = $dbtype eq "mysql" ? "mysqli" : "pgsql";
local $dbphptype = $dbtype eq "mysql" && $version >= 3.6 ? "mysql" :
$dbtype eq "mysql" ? "mysqli" : "pgsql";
local $dbhost = &get_database_host($dbtype);
local $dberr = &check_script_db_connection($dbtype, $dbname, $dbuser, $dbpass);
return (0, "Database connection failed : $dberr") if ($dberr);
@@ -201,12 +220,10 @@ if ($opts->{'path'} =~ /\w/) {
if (!$upgrade) {
local $cdef = "$opts->{'dir'}/conf/conf.php.example";
&run_as_domain_user($d, "cp ".quotemeta($cdef)." ".quotemeta($cfile));
&set_ownership_permissions(undef, undef, 0777, $cfiledir);
&set_ownership_permissions(undef, undef, 0666, $cfile);
&set_permissions_as_domain_user($d, 0777, $cfiledir);
&set_permissions_as_domain_user($d, 0666, $cfile);
&run_as_domain_user($d, "mkdir ".quotemeta($docdir));
&set_ownership_permissions(undef, undef, 0777, $docdir);
&run_as_domain_user($d, "mkdir ".quotemeta($altdir));
&set_ownership_permissions(undef, undef, 0777, $altdir);
&set_permissions_as_domain_user($d, 0777, $docdir);
}
else {
# Preserve old config file, documents and custom directory
@@ -289,8 +306,8 @@ else {
local $dinstall = "$opts->{'dir'}/install";
$dinstall =~ s/\/$//;
$out = &run_as_domain_user($d, "rm -rf ".quotemeta($dinstall));
&set_ownership_permissions(undef, undef, 0644, $cfile);
&set_ownership_permissions(undef, undef, 0755, $cfiledir);
&set_permissions_as_domain_user($d, 0644, $cfile);
&set_permissions_as_domain_user($d, 0755, $cfiledir);
}
# Return a URL for the user
@@ -309,6 +326,7 @@ local $ipage = $opts->{'path'}."/install/".$page.".php";
local ($iout, $ierror);
&post_http_connection($d, $ipage, $params, \$iout, \$ierror);
print STDERR $iout;
if ($ierror) {
return $ierror;
@@ -329,10 +347,10 @@ local $derr = &delete_script_install_directory($d, $opts);
return (0, $derr) if ($derr);
# Remove all llx_ tables from the database
# 3 times because of constraints
&cleanup_script_database($d, $opts->{'db'}, "llx_");
&cleanup_script_database($d, $opts->{'db'}, "llx_");
&cleanup_script_database($d, $opts->{'db'}, "llx_");
# 4 times because of constraints
for(my $i=0; $i<4; $i++) {
&cleanup_script_database($d, $opts->{'db'}, "llx_");
}
# Take out the DB
if ($opts->{'newdb'}) {

0
build/rpm/conf.php Executable file → Normal file
View File

0
build/rpm/dolibarr-forrpm.patch Executable file → Normal file
View File

0
build/rpm/dolibarr.desktop Executable file → Normal file
View File

0
build/rpm/file_contexts.dolibarr Executable file → Normal file
View File

2
build/rpm/install.forced.php.fedora Executable file → Normal file
View File

@@ -31,5 +31,3 @@ $force_dolibarr_lib_TCPDF_PATH='';
//$force_dolibarr_js_JQUERY_UI='/javascript/jquery-ui';
//$force_dolibarr_js_JQUERY_FLOT='/javascript/flot';
$force_dolibarr_font_DOL_DEFAULT_TTF_BOLD='/usr/share/fonts/dejavu/DejaVuSans-Bold.ttf';
?>

1
build/rpm/install.forced.php.generic Executable file → Normal file
View File

@@ -20,4 +20,3 @@ $force_install_lockinstall='444';
// Value to overwrite path to use shared libraries/fonts instead of embedded one
// We don't force any external lib with generic package
?>

2
build/rpm/install.forced.php.mandriva Executable file → Normal file
View File

@@ -31,5 +31,3 @@ $force_dolibarr_lib_TCPDF_PATH='';
//$force_dolibarr_js_JQUERY_UI='/javascript/jquery-ui';
//$force_dolibarr_js_JQUERY_FLOT='/javascript/flot';
$force_dolibarr_font_DOL_DEFAULT_TTF_BOLD='/usr/share/fonts/TTF/dejavu/DejaVuSans-Bold.ttf';
?>

2
build/rpm/install.forced.php.opensuse Executable file → Normal file
View File

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

View File

@@ -0,0 +1,18 @@
<VirtualHost *:80>
DocumentRoot %TRAVIS_BUILD_DIR%/htdocs
<Directory "%TRAVIS_BUILD_DIR%/htdocs">
Options FollowSymLinks MultiViews ExecCGI
AllowOverride All
Order deny,allow
Allow from all
</Directory>
# Wire up Apache to use Travis CI's php-fpm.
<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization
</IfModule>
</VirtualHost>

View File

@@ -6,26 +6,34 @@
"homepage": "http://www.dolibarr.org",
"license": "GPL-3.0+",
"support": {
"issues": "https://doliforge.org/projects/dolibarr",
"issues": "https://github.com/Dolibarr/dolibarr/issues",
"forum": "http://www.dolibarr.org/forum",
"wiki": "http://wiki.dolibarr.org"
"wiki": "http://wiki.dolibarr.org",
"irc": "irc://chat.freenode.net/dolibarr",
"source": "https://github.com/Dolibarr/dolibarr"
},
"require": {
"php": ">=5.3.0",
"ext-gd": "*",
"ext-curl": "*"
},
"suggest": {
"ext-mysqli": "*",
"ext-pgsql": "*",
"ext-mssql": "*",
"ext-pdo_sqlite": "*",
"ext-imagick": "*",
"ext-mcrypt": "*",
"ext-openssl": "*",
"ext-mbstring": "*",
"ext-soap": "*",
"ext-zip": "*",
"ext-xml": "*"
"ext-mysqlnd": "To use with MySQL or MariaDB",
"ext-mysqli": "To use with MySQL or MariaDB",
"ext-pgsql": "To use with PostgreSQL",
"ext-mssql": "To use with MSSQL (experimental)",
"ext-pdo_sqlite": "To use with SQLite (experimental)",
"ext-gd": "Image manipulation (Required but maybe built-in PHP)",
"ext-imagick": "Image manipulation (TCPDF)",
"ext-mcrypt": "(Required but maybe built-in PHP)",
"ext-openssl": "Secure connections (Emails, SOAP…)",
"ext-mbstring": "Handle non UTF-8 databases",
"ext-soap": "Native SOAP",
"ext-zip": "ODT and Excel support",
"ext-xml": "Excel support",
"firephp/firephp-core": "Logging to Firebug console support",
"raven/raven": "Sentry logging server support"
},
"config": {
"vendor-dir": "htdocs/includes"
}
}

0
dev/codesniffer/README Executable file → Normal file
View File

0
dev/codesniffer/php.ini Executable file → Normal file
View File

0
dev/codesniffer/ruleset.dtd Executable file → Normal file
View File

169
dev/codesniffer/ruleset.xml Executable file → Normal file
View File

@@ -173,138 +173,44 @@
<!-- Rules from PEAR Standard -->
<!-- Rules from PEAR Standard -->
<rule ref="PEAR.Classes.ClassDeclaration" />
<rule ref="PEAR.Classes.ClassDeclaration" />
<!-- Check for duplicate class names -->
<!-- <rule ref="Generic.Classes.DuplicateClassName" /> -->
<rule ref="PEAR.Commenting.ClassComment" />
<rule ref="PEAR.Commenting.ClassComment.MissingTag">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.ClassComment.Missing@authorTag">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.ClassComment.Missing@categoryTag">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.ClassComment.Missing@licenseTag">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.ClassComment.Missing@linkTag">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.ClassComment.Missing@packageTag">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamType">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamName">
<severity>0</severity>
</rule>
<!-- TODO Remove this and fix reported errors -->
<rule ref="PEAR.Commenting.ClassComment.Missing">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment.MissingReturn">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment.ReturnNotRequired">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment.Missing">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.ClassComment.Missing@authorTag">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.ClassComment.Missing@categoryTag">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.ClassComment.Missing@licenseTag">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.ClassComment.Missing@linkTag">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.ClassComment.Missing@packageTag">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamType">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamName">
<severity>0</severity>
</rule>
<!-- TODO Remove this and fix reported errors -->
<rule ref="PEAR.Commenting.ClassComment.Missing">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment.MissingReturn">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment.ReturnNotRequired">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment.Missing">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.ClassComment.Missing@authorTag">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.ClassComment.Missing@categoryTag">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.ClassComment.Missing@licenseTag">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.ClassComment.Missing@linkTag">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.ClassComment.Missing@packageTag">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.ClassComment.MissingTag" />
<rule ref="PEAR.Commenting.ClassComment.MissingAuthorTag">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.ClassComment.MissingCategoryTag">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.ClassComment.MissingLicenseTag">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.ClassComment.MissingLinkTag">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.ClassComment.MissingPackageTag">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamType">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamName">
<severity>0</severity>
</rule>
<!-- TODO Remove this and fix reported errors -->
<rule ref="PEAR.Commenting.ClassComment.Missing">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment.MissingReturn">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment.ReturnNotRequired">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment.Missing">
<severity>0</severity>
</rule>
<!--
<rule ref="PEAR.Commenting.FileComment" />
<rule ref="PEAR.Commenting.FileComment.WrongStyle">
@@ -317,15 +223,40 @@
<severity>0</severity>
</rule>
-->
<rule ref="PEAR.Commenting.FunctionComment.WrongStyle">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment" />
<rule ref="PEAR.Commenting.FunctionComment.Empty">
<severity>5</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment" />
<rule ref="PEAR.Commenting.FunctionComment.MissingReturn">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment.Missing">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamType" />
<rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamName">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamType">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment.SpacingAfterParamName" />
<rule ref="PEAR.Commenting.FunctionComment.ReturnNotRequired">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment.WrongStyle">
<severity>0</severity>
</rule>
<rule ref="PEAR.Commenting.FunctionComment.SpacingBeforeParamType">
<severity>0</severity>
</rule>
@@ -358,6 +289,15 @@
<rule ref="PEAR.Functions.FunctionCallSignature" />
<rule ref="PEAR.Functions.FunctionCallSignature.CloseBracketLine">
<severity>0</severity>
</rule>
<rule ref="PEAR.Functions.FunctionCallSignature.ContentAfterOpenBracket">
<severity>0</severity>
</rule>
<rule ref="PEAR.Functions.FunctionCallSignature.EmptyLine">
<severity>0</severity>
</rule>
<rule ref="PEAR.Functions.FunctionCallSignature.Indent">
<severity>0</severity>
</rule>
@@ -373,12 +313,6 @@
<rule ref="PEAR.Functions.FunctionCallSignature.SpaceAfterCloseBracket">
<severity>0</severity>
</rule>
<rule ref="PEAR.Functions.FunctionCallSignature.CloseBracketLine">
<severity>0</severity>
</rule>
<rule ref="PEAR.Functions.FunctionCallSignature.ContentAfterOpenBracket">
<severity>0</severity>
</rule>
<rule ref="PEAR.Functions.ValidDefaultValue" />
@@ -419,6 +353,11 @@
</rule>
<rule ref="PEAR.NamingConventions.ValidVariableName" />
<!-- This is not in PSR2 -->
<rule ref="PEAR.NamingConventions.ValidVariableName.PrivateNoUnderscore">
<severity>0</severity>
</rule>
<rule ref="PEAR.WhiteSpace.ObjectOperatorIndent" />
<!-- Need to be commented to be disabled

0
dev/codetemplates/README Executable file → Normal file
View File

0
dev/codetemplates/codetemplates.dtd Executable file → Normal file
View File

0
dev/codetemplates/codetemplates.xml Executable file → Normal file
View File

0
dev/examples/README Executable file → Normal file
View File

0
dev/iso-normes/GURULABS-RPM-GUIDE-v1.0.PDF Executable file → Normal file
View File

0
dev/iso-normes/address_format.txt Executable file → Normal file
View File

0
dev/iso-normes/banknumber_format.txt Executable file → Normal file
View File

0
dev/iso-normes/xmlexport.txt Executable file → Normal file
View File

0
dev/phpunit/README Executable file → Normal file
View File

0
dev/phpunit/eclipse_setup_for_pti_phpunit.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 67 KiB

0
dev/skeletons/build_webservice_from_class.php Normal file → Executable file
View File

0
dev/test/testtcpdf.php Executable file → Normal file
View File

0
doc/images/appicon_128.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

0
doc/images/appicon_16.ico Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

0
doc/images/appicon_16.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 544 B

After

Width:  |  Height:  |  Size: 544 B

0
doc/images/appicon_32.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 867 B

After

Width:  |  Height:  |  Size: 867 B

0
doc/images/appicon_48.ico Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

0
doc/images/appicon_64.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

0
doc/images/dolibarr_73x73.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

0
doc/images/dolibarr_logo.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

12
htdocs/.gitignore vendored
View File

@@ -1,12 +1,16 @@
/test.php
/extensions*
/nltechno*
/ancot*
/teclib*
/bootstrap*
/extensions*
/google*
/multicompany*
/ndf*
/numberingpack*
/nltechno*
/ovh*
/pos
/teclib*
/test.php
/ultimatepdf*
/lead
/dolimed*
/allscreens*

View File

@@ -145,13 +145,13 @@ if ($action == 'create')
print '<table class="border" width="100%">';
print '<tr><td width="25%">' . $langs->trans("AccountNumber") . '</td>';
print '<tr><td width="25%"><span class="fieldrequired">' . $langs->trans("AccountNumber") . '</span></td>';
print '<td><input name="account_number" size="30" value="' . $accounting->account_number . '"</td></tr>';
print '<tr><td>' . $langs->trans("Label") . '</td>';
print '<tr><td><span class="fieldrequired">' . $langs->trans("Label") . '</span></td>';
print '<td><input name="label" size="70" value="' . $accounting->label . '"</td></tr>';
print '<tr><td>' . $langs->trans("Accountparent") . '</td>';
print '<td>';
print $htmlacc->select_account($accounting->account_parent, 'account_parent');
print $htmlacc->select_account($accounting->account_parent, 'account_parent', 1);
print '</td></tr>';
print '<tr><td>' . $langs->trans("Pcgtype") . '</td>';
print '<td>';
@@ -195,13 +195,13 @@ else if ($id)
print '<table class="border" width="100%">';
print '<tr><td width="25%">' . $langs->trans("AccountNumber") . '</td>';
print '<tr><td width="25%"><span class="fieldrequired">' . $langs->trans("AccountNumber") . '</span></td>';
print '<td><input name="account_number" size="30" value="' . $accounting->account_number . '"</td></tr>';
print '<tr><td>' . $langs->trans("Label") . '</td>';
print '<tr><td><span class="fieldrequired">' . $langs->trans("Label") . '</span></td>';
print '<td><input name="label" size="70" value="' . $accounting->label . '"</td></tr>';
print '<tr><td>' . $langs->trans("Accountparent") . '</td>';
print '<td>';
print $htmlacc->select_account($accounting->account_parent, 'account_parent');
print $htmlacc->select_account($accounting->account_parent, 'account_parent', 1);
print '</td></tr>';
print '<tr><td>' . $langs->trans("Pcgtype") . '</td>';
print '<td>';

View File

@@ -1,7 +1,7 @@
<?php
/* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
* Copyright (C) 2013-2014 Alexandre Spangaro <alexandre.spangaro@gmail.com>
* Copyright (C) 2013-2015 Alexandre Spangaro <alexandre.spangaro@gmail.com>
* Copyright (C) 2013-2014 Florian Henry <florian.henry@open-concept.pro>
*
* This program is free software; you can redistribute it and/or modify
@@ -225,6 +225,8 @@ class BookKeeping
*/
function create($user='')
{
global $conf;
$this->piece_num = 0;
// first check if line not yet in bookkeeping
@@ -278,13 +280,45 @@ class BookKeeping
$this->date_create = $now;
}
$sql = "INSERT INTO " . MAIN_DB_PREFIX . "accounting_bookkeeping (doc_date, ";
$sql .= "doc_type, doc_ref,fk_doc,fk_docdet,code_tiers,numero_compte,label_compte,";
$sql .= "debit,credit,montant,sens,fk_user_author,import_key,code_journal,piece_num)";
$sql .= " VALUES ('" . $this->doc_date . "','" . $this->doc_type . "','" . $this->doc_ref . "'," . $this->fk_doc . ",";
$sql .= $this->fk_docdet . ",'" . $this->code_tiers . "','" . $this->numero_compte . "','" . $this->db->escape($this->label_compte) . "',";
$sql .= $this->debit . "," . $this->credit . "," . $this->montant . ",'" . $this->sens . "'," . $user->id . ", '";
$sql .= $this->date_create . "','" . $this->code_journal . "'," . $this->piece_num . ")";
$sql = "INSERT INTO " . MAIN_DB_PREFIX . "accounting_bookkeeping (";
$sql .= "doc_date";
$sql .= ", doc_type";
$sql .= ", doc_ref";
$sql .= ", fk_doc";
$sql .= ", fk_docdet";
$sql .= ", code_tiers";
$sql .= ", numero_compte";
$sql .= ", label_compte";
$sql .= ", debit";
$sql .= ", credit";
$sql .= ", montant";
$sql .= ", sens";
$sql .= ", fk_user_author";
$sql .= ", import_key";
$sql .= ", code_journal";
$sql .= ", piece_num";
$sql .= ") VALUES (";
$sql .= "'" . $this->doc_date . "'";
$sql .= ",'" . $this->doc_type . "'";
$sql .= ",'" . $this->doc_ref . "'";
$sql .= "," . $this->fk_doc;
$sql .= "," . $this->fk_docdet;
$sql .= ",'" . $this->code_tiers . "'";
$sql .= ",'" . $this->numero_compte . "'";
$sql .= ",'" . $this->db->escape($this->label_compte) . "'";
$sql .= "," . $this->debit;
$sql .= "," . $this->credit;
$sql .= "," . $this->montant;
$sql .= ",'" . $this->sens . "'";
$sql .= ",'" . $this->fk_user_author."'";
$sql .= ",'" . $this->date_create . "'";
$sql .= ",'" . $this->code_journal . "'";
$sql .= "," . $this->piece_num;
$sql .= ")";
dol_syslog(get_class($this) . ":: create sql=" . $sql, LOG_DEBUG);
$resql = $this->db->query($sql);
@@ -296,19 +330,19 @@ class BookKeeping
$result = 0;
} else {
$result = - 2;
dol_syslog("BookKeeping::Create Erreur $result lecture ID");
dol_syslog("BookKeeping::Create Error $result lecture ID");
}
} else {
$result = - 1;
dol_syslog("BookKeeping::Create Erreur $result INSERT Mysql");
dol_syslog("BookKeeping::Create Error $result INSERT Mysql");
}
} else {
$result = - 3;
dol_syslog("BookKeeping::Create Erreur $result SELECT Mysql");
dol_syslog("BookKeeping::Create Error $result SELECT Mysql");
}
} else {
$result = - 5;
dol_syslog("BookKeeping::Create Erreur $result SELECT Mysql");
dol_syslog("BookKeeping::Create Error $result SELECT Mysql");
}
return $result;

View File

@@ -1,7 +1,7 @@
<?PHP
<?php
/* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
* Copyright (C) 2013-2014 Florian Henry <florian.henry@open-concept.pro>
* Copyright (C) 2013-2014 Alexandre Spangaro <alexandre.spangaro@gmail.com>
* Copyright (C) 2013-2015 Alexandre Spangaro <alexandre.spangaro@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -19,7 +19,7 @@
/**
* \file htdocs/accountancy/customer/card.php
* \ingroup Accounting Expert
* \ingroup Accountancy
* \brief Card customer ventilation
*/
@@ -84,7 +84,11 @@ if (! empty($id)) {
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product";
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accountingaccount as aa ON l.fk_code_ventilation = aa.rowid";
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = l.fk_facture";
$sql .= " WHERE f.fk_statut > 0 AND l.rowid = " . $id;
$sql .= " WHERE f.fk_statut > 0";
$sql .= " AND l.rowid = " . $id;
if (! empty($conf->multicompany->enabled)) {
$sql .= " AND f.entity = '" . $conf->entity . "'";
}
if (! empty($conf->multicompany->enabled)) {
$sql .= " AND f.entity = '" . $conf->entity . "'";

View File

@@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
* Copyright (C) 2013-2014 Alexandre Spangaro <alexandre.spangaro@gmail.com>
* Copyright (C) 2013-2015 Alexandre Spangaro <alexandre.spangaro@gmail.com>
* Copyright (C) 2014 Ari Elbaz (elarifr) <github@accedinfo.com>
* Copyright (C) 2013-2014 Florian Henry <florian.henry@open-concept.pro>
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
@@ -21,7 +21,7 @@
/**
* \file htdocs/accountancy/customer/list.php
* \ingroup Accounting Expert
* \ingroup Accountancy
* \brief Ventilation page from customers invoices
*/
@@ -121,7 +121,7 @@ if (! empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION)) {
$offset = $limit * $page;
$sql = "SELECT f.facnumber, f.rowid as facid, l.fk_product, l.description, l.total_ht, l.rowid, l.fk_code_ventilation,";
$sql = "SELECT f.facnumber, f.rowid as facid, l.fk_product, l.description, l.total_ht, l.rowid, l.fk_code_ventilation, l.product_type,";
$sql .= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.fk_product_type as type, p.accountancy_code_sell as code_sell";
$sql .= " , aa.rowid as aarowid";
$sql .= " FROM " . MAIN_DB_PREFIX . "facture as f";
@@ -129,7 +129,9 @@ $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "facturedet as l ON f.rowid = l.fk_fac
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product";
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accountingaccount as aa ON p.accountancy_code_sell = aa.account_number";
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_system as accsys ON accsys.pcg_version = aa.fk_pcg_version";
$sql .= " WHERE f.fk_statut > 0 AND fk_code_ventilation <= 0";
$sql .= " WHERE f.fk_statut > 0";
$sql .= " AND fk_code_ventilation <= 0";
$sql .= " AND product_type <= 2";
$sql .= " AND (accsys.rowid='" . $conf->global->CHARTOFACCOUNTS . "' OR p.accountancy_code_sell IS NULL OR p.accountancy_code_sell ='')";
if (! empty($conf->multicompany->enabled)) {
$sql .= " AND f.entity = '" . $conf->entity . "'";

View File

@@ -55,7 +55,7 @@ $langs->load("bank");
$langs->load('bills');
$langs->load("accountancy");
$id_accountancy_journal = GETPOST('id_account');
$id_bank_account = GETPOST('id_account','int');
$date_startmonth = GETPOST('date_startmonth');
$date_startday = GETPOST('date_startday');
@@ -66,17 +66,12 @@ $date_endyear = GETPOST('date_endyear');
$action = GETPOST('action');
// Security check
if ($user->societe_id > 0)
if ($user->societe_id > 0 && empty($id_bank_account))
accessforbidden();
/*
* View
*/
if (empty($id_accountancy_journal))
{
accessforbidden();
}
$year_current = strftime("%Y", dol_now());
$pastmonth = strftime("%m", dol_now()) - 1;
$pastmonthyear = $year_current;
@@ -103,7 +98,7 @@ $sql .= " FROM " . MAIN_DB_PREFIX . "bank as b";
$sql .= " JOIN " . MAIN_DB_PREFIX . "bank_account as ba on b.fk_account=ba.rowid";
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "bank_url as bu1 ON bu1.fk_bank = b.rowid AND bu1.type='company'";
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "societe as soc on bu1.url_id=soc.rowid";
$sql .= " WHERE ba.rowid=".$id_accountancy_journal;
$sql .= " WHERE ba.rowid=".$id_bank_account;
if (! empty($conf->multicompany->enabled)) {
$sql .= " AND ba.entity = " . $conf->entity;
}
@@ -119,6 +114,11 @@ $chargestatic = new ChargeSociales($db);
$paymentvatstatic = new TVA($db);
$paymentsalstatic = new PaymentSalary($db);
// Get code of finance journal
$bank_code_journal = new Account($db);
$result=$bank_code_journal->fetch($id_bank_account);
$journal=$bank_code_journal->accountancy_journal;
dol_syslog("accountancy/journal/bankjournal.php:: sql=" . $sql, LOG_DEBUG);
$result = $db->query($sql);
if ($result) {
@@ -264,7 +264,7 @@ if ($result) {
*/
// Write bookkeeping
if ($action == 'writeBookKeeping')
if ($action == 'writebookkeeping')
{
$error = 0;
foreach ( $tabpay as $key => $val )
@@ -285,7 +285,8 @@ if ($action == 'writeBookKeeping')
$bookkeeping->sens = ($mt >= 0) ? 'D' : 'C';
$bookkeeping->debit = ($mt >= 0 ? $mt : 0);
$bookkeeping->credit = ($mt < 0 ? - $mt : 0);
$bookkeeping->code_journal = $conf->global->ACCOUNTING_BANK_JOURNAL;
$bookkeeping->code_journal = $journal;
$bookkeeping->fk_user_author = $user->id;
if ($tabtype[$key] == 'payment') {
@@ -335,7 +336,8 @@ if ($action == 'writeBookKeeping')
$bookkeeping->sens = ($mt < 0) ? 'D' : 'C';
$bookkeeping->debit = ($mt < 0 ? - $mt : 0);
$bookkeeping->credit = ($mt >= 0) ? $mt : 0;
$bookkeeping->code_journal = $conf->global->ACCOUNTING_BANK_JOURNAL;
$bookkeeping->code_journal = $journal;
$bookkeeping->fk_user_author = $user->id;
if ($tabtype[$key] == 'sc') {
$bookkeeping->code_tiers = '';
@@ -400,14 +402,12 @@ if ($action == 'writeBookKeeping')
}
if (empty($error)) {
setEventMessage($langs->trans('Success'), 'mesgs');
setEventMessage($langs->trans("GeneralLedgerIsWritten"),'mesgs');
}
}
// Export
if ($action == 'export_csv')
{
if ($action == 'export_csv') {
$sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV;
$bank_journal = $conf->global->ACCOUNTING_BANK_JOURNAL;
header('Content-Type: text/csv');
header('Content-Disposition: attachment;filename=journal_banque.csv');
@@ -419,16 +419,16 @@ if ($action == 'export_csv')
$sep = ";";
foreach ( $tabpay as $key => $val ) {
$date = dol_print_date($db->jdate($val["date"]), '%d%m%Y');
$companystatic->id = $tabcompany[$key]['id'];
$companystatic->name = $tabcompany[$key]['name'];
$companystatic->client = $tabcompany[$key]['code_client'];
$date = dol_print_date($db->jdate($val["date"]), '%d%m%Y');
// Bank
foreach ( $tabbq[$key] as $k => $mt ) {
print $date . $sep;
print $bank_journal . $sep;
print $journal . $sep;
print length_accountg(html_entity_decode($k)) . $sep;
print $sep;
print ($mt < 0 ? 'C' : 'D') . $sep;
@@ -446,7 +446,7 @@ if ($action == 'export_csv')
if ($mt)
{
print $date . $sep;
print $bank_journal . $sep;
print $journal . $sep;
if ($val["lib"] == '(SupplierInvoicePayment)') {
print length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER) . $sep;
} else {
@@ -468,8 +468,8 @@ if ($action == 'export_csv')
if (1)
{
print $date . $sep;
print $bank_journal . $sep;
print $conf->global->ACCOUNTING_ACCOUNT_SUSPENSE . $sep;
print $journal . $sep;
print length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE) . $sep;
print $sep;
print ($mt < 0 ? 'D' : 'C') . $sep;
print ($mt <= 0 ? price(- $mt) : $mt) . $sep;
@@ -480,8 +480,7 @@ if ($action == 'export_csv')
}
}
}
} else // Model Classic Export
{
} else { // Model Classic Export
foreach ( $tabpay as $key => $val ) {
$date = dol_print_date($db->jdate($val["date"]), 'day');
@@ -523,7 +522,7 @@ if ($action == 'export_csv')
{
print '"' . $date . '"' . $sep;
print '"' . $val["ref"] . '"' . $sep;
print '"' . $conf->global->ACCOUNTING_ACCOUNT_SUSPENSE . '"' . $sep;
print '"' . length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE) . '"' . $sep;
print '"' . $langs->trans("Bank") . '"' . $sep;
print '"' . ($mt < 0 ? price(- $mt) : '') . '"' . $sep;
print '"' . ($mt >= 0 ? price($mt) : '') . '"';
@@ -533,67 +532,22 @@ if ($action == 'export_csv')
}
}
}
}
else
{
} else {
$form = new Form($db);
llxHeader('', $langs->trans("BankJournal"));
llxHeader('', $langs->trans("FinanceJournal"));
$namereport = $langs->trans("BankJournal");
$description = $langs->trans("DescBankJournal");
$nom = $langs->trans("FinanceJournal" . ' - ' . $journal);
$builddate = time();
$description = $langs->trans("DescFinanceJournal") . '<br>';
$period = $form->select_date($date_start, 'date_start', 0, 0, 0, '', 1, 0, 1) . ' - ' . $form->select_date($date_end, 'date_end', 0, 0, 0, '', 1, 0, 1);
// Report
$h=0;
$head[$h][0] = $_SERVER["PHP_SELF"].'?id_account='.$id_accountancy_journal;
$head[$h][1] = $langs->trans("Report");
$head[$h][2] = 'report';
dol_fiche_head($head, $hselected);
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'?id_account='.$id_accountancy_journal.'">';
print '<table width="100%" class="border">';
// Title
print '<tr>';
print '<td valign="top" width="110">'.$langs->trans("ReportName").'</td>';
print '<td colspan="3">'.$namereport.'</td>';
print '</td>';
print '</tr>';
// Period report
print '<tr>';
print '<td>'.$langs->trans("ReportPeriod").'</td>';
if (! $periodlink) print '<td colspan="3">';
else print '<td>';
if ($period) print $period;
if ($periodlink) print '</td><td colspan="2">'.$periodlink;
print '</td>';
print '</tr>';
// Description
print '<tr>';
print '<td valign="top">'.$langs->trans("ReportDescription").'</td>';
print '<td colspan="3">'.$description.'</td>';
print '</tr>';
print '<tr>';
print '<td colspan="4" align="center"><input type="submit" class="button" name="submit" value="'.$langs->trans("Refresh").'"></td>';
print '</tr>';
print '</table>';
print '</form>';
print '</div>';
// End report
$varlink = 'id_account='.$id_bank_account;
report_header($nom, $nomlink, $period, $periodlink, $description, $builddate, $exportlink, array('action' => ''), '', $varlink);
print '<input type="button" class="button" style="float: right;" value="' . $langs->trans("Export") . '" onclick="launch_export();" />';
print '<input type="button" class="button" value="' . $langs->trans("WriteBookKeeping") . '" onclick="writeBookKeeping();" />';
print '<input type="button" class="button" value="' . $langs->trans("WriteBookKeeping") . '" onclick="writebookkeeping();" />';
print '
<script type="text/javascript">
function launch_export() {
@@ -601,8 +555,8 @@ else
$("div.fiche div.tabBar form input[type=\"submit\"]").click();
$("div.fiche div.tabBar form input[name=\"action\"]").val("");
}
function writeBookKeeping() {
$("div.fiche div.tabBar form input[name=\"action\"]").val("writeBookKeeping");
function writebookkeeping() {
$("div.fiche div.tabBar form input[name=\"action\"]").val("writebookkeeping");
$("div.fiche div.tabBar form input[type=\"submit\"]").click();
$("div.fiche div.tabBar form input[name=\"action\"]").val("");
}
@@ -672,8 +626,9 @@ else
print "<tr " . $bc[$var] . ">";
print "<td>" . $date . "</td>";
print "<td>" . $reflabel . "</td>";
print "<td>" . $conf->global->ACCOUNTING_ACCOUNT_SUSPENSE . "</td>";
print "<td>" . length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE) . "</td>";
print "<td>" . $langs->trans('ThirdParty') . "</td>";
print "<td>&nbsp;</td>";
print "<td align='right'>" . ($mt < 0 ? price(- $mt) : '') . "</td>";
print "<td align='right'>" . ($mt >= 0 ? price($mt) : '') . "</td>";
print "</tr>";

View File

@@ -157,6 +157,7 @@ if ($result) {
// Bookkeeping Write
if ($action == 'writebookkeeping') {
$now = dol_now();
$error = 0;
foreach ( $tabfac as $key => $val ) {
foreach ( $tabttc[$key] as $k => $mt ) {
@@ -177,8 +178,13 @@ if ($action == 'writebookkeeping') {
$bookkeeping->debit = ($mt <= 0) ? $mt : 0;
$bookkeeping->credit = ($mt > 0) ? $mt : 0;
$bookkeeping->code_journal = $conf->global->ACCOUNTING_PURCHASE_JOURNAL;
$bookkeeping->fk_user_author = $user->id;
$bookkeeping->create();
$result = $bookkeeping->create();
if ($result < 0) {
$error ++;
setEventMessage($object->errors, 'errors');
}
}
// Product / Service
@@ -202,8 +208,13 @@ if ($action == 'writebookkeeping') {
$bookkeeping->debit = ($mt > 0) ? $mt : 0;
$bookkeeping->credit = ($mt <= 0) ? $mt : 0;
$bookkeeping->code_journal = $conf->global->ACCOUNTING_PURCHASE_JOURNAL;
$bookkeeping->fk_user_author = $user->id;
$bookkeeping->create();
$result = $bookkeeping->create();
if ($result < 0) {
$error ++;
setEventMessage($object->errors, 'errors');
}
}
}
}
@@ -228,11 +239,20 @@ if ($action == 'writebookkeeping') {
$bookkeeping->debit = ($mt > 0) ? $mt : 0;
$bookkeeping->credit = ($mt <= 0) ? $mt : 0;
$bookkeeping->code_journal = $conf->global->ACCOUNTING_PURCHASE_JOURNAL;
$bookkeeping->fk_user_author = $user->id;
$bookkeeping->create();
$result = $bookkeeping->create();
if ($result < 0) {
$error ++;
setEventMessage($object->errors, 'errors');
}
}
}
}
if (empty($error)) {
setEventMessage($langs->trans("GeneralLedgerIsWritten"),'mesgs');
}
}

View File

@@ -170,6 +170,7 @@ if ($result) {
// Bookkeeping Write
if ($action == 'writebookkeeping') {
$now = dol_now();
$error = 0;
foreach ( $tabfac as $key => $val ) {
foreach ( $tabttc[$key] as $k => $mt ) {
@@ -188,8 +189,13 @@ if ($action == 'writebookkeeping') {
$bookkeeping->debit = ($mt >= 0) ? $mt : 0;
$bookkeeping->credit = ($mt < 0) ? $mt : 0;
$bookkeeping->code_journal = $conf->global->ACCOUNTING_SELL_JOURNAL;
$bookkeeping->fk_user_author = $user->id;
$bookkeeping->create();
$result = $bookkeeping->create();
if ($result < 0) {
$error ++;
setEventMessage($object->errors, 'errors');
}
}
// Product / Service
@@ -213,8 +219,13 @@ if ($action == 'writebookkeeping') {
$bookkeeping->debit = ($mt < 0) ? $mt : 0;
$bookkeeping->credit = ($mt >= 0) ? $mt : 0;
$bookkeeping->code_journal = $conf->global->ACCOUNTING_SELL_JOURNAL;
$bookkeeping->fk_user_author = $user->id;
$bookkeeping->create();
$result = $bookkeeping->create();
if ($result < 0) {
$error ++;
setEventMessage($object->errors, 'errors');
}
}
}
}
@@ -238,11 +249,20 @@ if ($action == 'writebookkeeping') {
$bookkeeping->debit = ($mt < 0) ? $mt : 0;
$bookkeeping->credit = ($mt >= 0) ? $mt : 0;
$bookkeeping->code_journal = $conf->global->ACCOUNTING_SELL_JOURNAL;
$bookkeeping->fk_user_author = $user->id;
$bookkeeping->create();
$result = $bookkeeping->create();
if ($result < 0) {
$error ++;
setEventMessage($object->errors, 'errors');
}
}
}
}
if (empty($error)) {
setEventMessage($langs->trans("GeneralLedgerIsWritten"),'mesgs');
}
}
// Export
if ($action == 'export_csv') {

View File

@@ -1,7 +1,7 @@
<?php
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2005 Simon TOSSER <simon@kornog-computing.com>
* Copyright (C) 2013-2014 Alexandre Spangaro <alexandre.spangaro@gmail.com>
* Copyright (C) 2013-2015 Alexandre Spangaro <alexandre.spangaro@gmail.com>
* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
* Copyright (C) 2013-2014 Florian Henry <florian.henry@open-concept.pro>
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
@@ -22,7 +22,7 @@
*/
/**
* \file htdocs/accountancy/supplier/card.php
* \ingroup Accounting Expert
* \ingroup Accountancy
* \brief Card supplier ventilation
*/
@@ -85,7 +85,8 @@ if ($_GET["id"]) {
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product";
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accountingaccount as aa ON l.fk_code_ventilation = aa.rowid";
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "facture_fourn as f ON f.rowid = l.fk_facture_fourn ";
$sql .= " WHERE f.fk_statut > 0 AND l.rowid = " . $id;
$sql .= " WHERE f.fk_statut > 0";
$sql .= " AND l.rowid = " . $id;
if (! empty($conf->multicompany->enabled)) {
$sql .= " AND f.entity = '" . $conf->entity . "'";
}

View File

@@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
* Copyright (C) 2013-2014 Alexandre Spangaro <alexandre.spangaro@gmail.com>
* Copyright (C) 2013-2015 Alexandre Spangaro <alexandre.spangaro@gmail.com>
* Copyright (C) 2014 Ari Elbaz (elarifr) <github@accedinfo.com>
* Copyright (C) 2013-2014 Florian Henry <florian.henry@open-concept.pro>
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>s
@@ -21,7 +21,7 @@
/**
* \file htdocs/accountancy/supplier/list.php
* \ingroup Accounting Expert
* \ingroup Accountancy
* \brief Ventilation page from suppliers invoices
*/
@@ -124,16 +124,17 @@ if (! empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION)) {
$offset = $limit * $page;
$sql = "SELECT f.ref, f.rowid as facid, f.ref_supplier, l.fk_product, l.description, l.total_ht as price, l.rowid, l.fk_code_ventilation, ";
$sql = "SELECT f.ref, f.rowid as facid, f.ref_supplier, l.fk_product, l.description, l.total_ht as price, l.rowid, l.fk_code_ventilation, l.product_type,";
$sql .= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.fk_product_type as type, p.accountancy_code_buy as code_buy";
$sql .= " FROM " . MAIN_DB_PREFIX . "facture_fourn as f";
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "facture_fourn_det as l ON f.rowid = l.fk_facture_fourn";
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = l.fk_product";
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accountingaccount as aa ON p.accountancy_code_buy = aa.account_number";
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_system as accsys ON accsys.pcg_version = aa.fk_pcg_version";
$sql .= " WHERE f.fk_statut > 0 AND fk_code_ventilation <= 0";
$sql .= " WHERE f.fk_statut > 0";
$sql .= " AND fk_code_ventilation <= 0";
$sql .= " AND product_type <= 2";
$sql .= " AND (accsys.rowid='".$conf->global->CHARTOFACCOUNTS."' OR p.accountancy_code_sell IS NULL OR p.accountancy_code_buy ='')";
if (! empty($conf->multicompany->enabled)) {
$sql .= " AND f.entity = '" . $conf->entity . "'";
}

View File

@@ -164,7 +164,7 @@ print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<tr '.$bc[$var].' id="tramount"><td>';
print $langs->trans("DefaultAmount");
print '</td><td align="right">';
print '<input type="text" id="MEMBER_NEWFORM_AMOUNT" name="MEMBER_NEWFORM_AMOUNT" size="5" value="'.(! empty($conf->global->MEMBER_NEWFORM_AMOUNT)?$conf->global->MEMBER_NEWFORM_AMOUNT:'').'">';;
print '<input type="text" id="MEMBER_NEWFORM_AMOUNT" name="MEMBER_NEWFORM_AMOUNT" size="5" value="'.(! empty($conf->global->MEMBER_NEWFORM_AMOUNT)?$conf->global->MEMBER_NEWFORM_AMOUNT:'').'">';
print "</td></tr>\n";
// Can edit
@@ -197,7 +197,7 @@ if (! empty($conf->paybox->enabled) || ! empty($conf->paypal->enabled))
print '<tr '.$bc[$var].' id="tremail"><td>';
print $langs->trans("MEMBER_PAYONLINE_SENDEMAIL");
print '</td><td align="right">';
print '<input type="text" id="MEMBER_PAYONLINE_SENDEMAIL" name="MEMBER_PAYONLINE_SENDEMAIL" size="24" value="'.(! empty($conf->global->MEMBER_PAYONLINE_SENDEMAIL)?$conf->global->MEMBER_PAYONLINE_SENDEMAIL:'').'">';;
print '<input type="text" id="MEMBER_PAYONLINE_SENDEMAIL" name="MEMBER_PAYONLINE_SENDEMAIL" size="24" value="'.(! empty($conf->global->MEMBER_PAYONLINE_SENDEMAIL)?$conf->global->MEMBER_PAYONLINE_SENDEMAIL:'').'">';
print "</td></tr>\n";
}
@@ -215,7 +215,12 @@ dol_fiche_end();
print '<br>';
//print $langs->trans('FollowingLinksArePublic').'<br>';
print img_picto('','object_globe.png').' '.$langs->trans('BlankSubscriptionForm').':<br>';
print '<a target="_blank" href="'.DOL_URL_ROOT.'/public/members/new.php">'.DOL_MAIN_URL_ROOT.'/public/members/new.php</a>';
if ($conf->multicompany->enabled) {
$entity_qr='?entity='.$conf->entity;
} else {
$entity_qr='';
}
print '<a target="_blank" href="'.DOL_URL_ROOT.'/public/members/new.php'.$entity_qr.'">'.DOL_MAIN_URL_ROOT.'/public/members/new.php'.$entity_qr.'</a>';
/*
print '<table class="border" cellspacing="0" cellpadding="3">';

View File

@@ -249,7 +249,7 @@ if (empty($reshook))
}
$lastname=$_POST["lastname"];
$firstname=$_POST["firstname"];
$morphy=$morphy=$_POST["morphy"];;
$morphy=$morphy=$_POST["morphy"];
if ($morphy != 'mor' && empty($lastname)) {
$error++;
$langs->load("errors");

View File

@@ -51,6 +51,12 @@ $pagenext = $page + 1;
if (! $sortorder) { $sortorder="DESC"; }
if (! $sortfield) { $sortfield="d.lastname"; }
$label=GETPOST("libelle","alpha");
$cotisation=GETPOST("cotisation","int");
$vote=GETPOST("vote","int");
$comment=GETPOST("comment");
$mail_valid=GETPOST("mail_valid");
// Security check
$result=restrictedArea($user,'adherent',$rowid,'adherent_type');
@@ -81,11 +87,11 @@ if ($action == 'add' && $user->rights->adherent->configurer)
{
$adht = new AdherentType($db);
$adht->libelle = trim($_POST["libelle"]);
$adht->cotisation = trim($_POST["cotisation"]);
$adht->note = trim($_POST["comment"]);
$adht->mail_valid = trim($_POST["mail_valid"]);
$adht->vote = trim($_POST["vote"]);
$adht->libelle = trim($label);
$adht->cotisation = trim($cotisation);
$adht->note = trim($comment);
$adht->mail_valid = trim($mail_valid);
$adht->vote = trim($vote);
// Fill array 'array_options' with data from add form
$ret = $extrafields->setOptionalsFromPost($extralabels,$adht);
@@ -118,12 +124,12 @@ if ($action == 'update' && $user->rights->adherent->configurer)
if ($_POST["button"] != $langs->trans("Cancel"))
{
$adht = new AdherentType($db);
$adht->id = $_POST["rowid"];
$adht->libelle = trim($_POST["libelle"]);
$adht->cotisation = trim($_POST["cotisation"]);
$adht->note = trim($_POST["comment"]);
$adht->mail_valid = trim($_POST["mail_valid"]);
$adht->vote = trim($_POST["vote"]);
$adht->id = $rowid;
$adht->libelle = trim($label);
$adht->cotisation = trim($cotisation);
$adht->note = trim($comment);
$adht->mail_valid = trim($mail_valid);
$adht->vote = trim($vote);
// Fill array 'array_options' with data from add form
$ret = $extrafields->setOptionalsFromPost($extralabels,$adht);
@@ -196,7 +202,7 @@ if (! $rowid && $action != 'create' && $action != 'edit')
$var=!$var;
print "<tr ".$bc[$var].">";
print '<td><a href="'.$_SERVER["PHP_SELF"].'?rowid='.$objp->rowid.'">'.img_object($langs->trans("ShowType"),'group').' '.$objp->rowid.'</a></td>';
print '<td>'.$objp->libelle.'</td>';
print '<td>'.dol_escape_htmltag($objp->libelle).'</td>';
print '<td align="center">'.yn($objp->cotisation).'</td>';
print '<td align="center">'.yn($objp->vote).'</td>';
print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=edit&rowid='.$objp->rowid.'">'.img_edit().'</a></td>';
@@ -314,7 +320,7 @@ if ($rowid > 0)
print '</td></tr>';
// Label
print '<tr><td width="15%">'.$langs->trans("Label").'</td><td>'.$adht->libelle.'</td></tr>';
print '<tr><td width="15%">'.$langs->trans("Label").'</td><td>'.dol_escape_htmltag($adht->libelle).'</td></tr>';
print '<tr><td>'.$langs->trans("SubscriptionRequired").'</td><td>';
print yn($adht->cotisation);
@@ -491,15 +497,15 @@ if ($rowid > 0)
print '<tr class="liste_titre">';
print '<td class="liste_titre" align="left">';
print '<input class="flat" type="text" name="search_lastname" value="'.$search_lastname.'" size="12"></td>';
print '<input class="flat" type="text" name="search_lastname" value="'.dol_escape_htmltag($search_lastname).'" size="12"></td>';
print '<td class="liste_titre" align="left">';
print '<input class="flat" type="text" name="search_login" value="'.$search_login.'" size="7"></td>';
print '<input class="flat" type="text" name="search_login" value="'.dol_escape_htmltag($search_login).'" size="7"></td>';
print '<td class="liste_titre">&nbsp;</td>';
print '<td class="liste_titre" align="left">';
print '<input class="flat" type="text" name="search_email" value="'.$search_email.'" size="12"></td>';
print '<input class="flat" type="text" name="search_email" value="'.dol_escape_htmltag($search_email).'" size="12"></td>';
print '<td class="liste_titre">&nbsp;</td>';
@@ -561,7 +567,7 @@ if ($rowid > 0)
if ($datefin)
{
print '<td align="center" class="nowrap">';
if ($datefin < time() && $objp->statut > 0)
if ($datefin < dol_now() && $objp->statut > 0)
{
print dol_print_date($datefin,'day')." ".img_warning($langs->trans("SubscriptionLate"));
}
@@ -641,7 +647,7 @@ if ($rowid > 0)
print '<tr><td width="15%">'.$langs->trans("Ref").'</td><td>'.$adht->id.'</td></tr>';
print '<tr><td>'.$langs->trans("Label").'</td><td><input type="text" name="libelle" size="40" value="'.$adht->libelle.'"></td></tr>';
print '<tr><td>'.$langs->trans("Label").'</td><td><input type="text" name="libelle" size="40" value="'.dol_escape_htmltag($adht->libelle).'"></td></tr>';
print '<tr><td>'.$langs->trans("SubscriptionRequired").'</td><td>';
print $form->selectyesno("cotisation",$adht->cotisation,1);
@@ -672,7 +678,16 @@ if ($rowid > 0)
print '<br><br><table class="border" width="100%">';
foreach($extrafields->attribute_label as $key=>$label)
{
$value=(isset($_POST["options_".$key])?$_POST["options_".$key]:(isset($adht->array_options['options_'.$key])?$adht->array_options['options_'.$key]:''));
if (isset($_POST["options_" . $key])) {
if (is_array($_POST["options_" . $key])) {
// $_POST["options"] is an array but following code expects a comma separated string
$value = implode(",", $_POST["options_" . $key]);
} else {
$value = $_POST["options_" . $key];
}
} else {
$value = $adht->array_options["options_" . $key];
}
print '<tr><td width="30%">'.$label.'</td><td>';
print $extrafields->showInputField($key,$value);
print "</td></tr>\n";
@@ -687,6 +702,7 @@ if ($rowid > 0)
}
}
$db->close();
llxFooter();
$db->close();

View File

@@ -551,7 +551,7 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
$i=0;
foreach ($listfieldinsert as $f => $value)
{
if ($value == 'price' || preg_match('/^amount/i',$value)) {
if ($value == 'price' || preg_match('/^amount/i',$value) || preg_match('/^localtax/i',$value) || $value == 'taux') {
$_POST[$listfieldvalue[$i]] = price2num($_POST[$listfieldvalue[$i]],'MU');
}
else if ($value == 'entity') {
@@ -599,7 +599,7 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
$i = 0;
foreach ($listfieldmodify as $field)
{
if ($field == 'price' || preg_match('/^amount/i',$field)) {
if ($field == 'price' || preg_match('/^amount/i',$field) || preg_match('/^localtax/i',$field) || $field == 'taux') {
$_POST[$listfieldvalue[$i]] = price2num($_POST[$listfieldvalue[$i]],'MU');
}
else if ($field == 'entity') {
@@ -913,7 +913,7 @@ if ($id)
print "</tr>";
$colspan=count($fieldlist)+2;
if ($id == 4) $colspan++;;
if ($id == 4) $colspan++;
if (! empty($alabelisused)) // Si un des champs est un libelle
{
@@ -1181,17 +1181,20 @@ if ($id)
$align="center";
}
else if ($fieldlist[$field]=='localtax1') {
$valuetoshow = price($valuetoshow, 0, $langs, 0, 0);
if ($obj->localtax1 == 0)
$valuetoshow = '';
$align="right";
}
else if ($fieldlist[$field]=='localtax2') {
$valuetoshow = price($valuetoshow, 0, $langs, 0, 0);
if ($obj->localtax2 == 0)
$valuetoshow = '';
$align="right";
}
else if (in_array($fieldlist[$field],array('taux','localtax1','localtax2')))
{
$valuetoshow = price($valuetoshow, 0, $langs, 0, 0);
$align="right";
}
else if (in_array($fieldlist[$field],array('recuperableonly')))

View File

@@ -203,7 +203,6 @@ else if ($action == 'set_FICHINTER_FREE_TEXT')
else if ($action == 'set_FICHINTER_DRAFT_WATERMARK')
{
$draft= GETPOST('FICHINTER_DRAFT_WATERMARK','alpha');
$res = dolibarr_set_const($db, "FICHINTER_DRAFT_WATERMARK",trim($draft),'chaine',0,'',$conf->entity);
if (! $res > 0) $error++;
@@ -538,7 +537,7 @@ print '<input size="50" class="flat" type="text" name="FICHINTER_DRAFT_WATERMARK
print '</td><td align="right">';
print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">';
print "</td></tr>\n";
print '</form>';
// print products on fichinter
$var=! $var;
print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';

View File

@@ -164,7 +164,7 @@ if (! empty($conf->service->enabled))
$var=! $var;
print '<tr '.$bc[$var].'><td>';
print $langs->trans("CashdeskShowServices");
print '<td colspan="2">';;
print '<td colspan="2">';
print $form->selectyesno("CASHDESK_SERVICES",$conf->global->CASHDESK_SERVICES,1);
print "</td></tr>\n";
}

View File

@@ -1,6 +1,7 @@
<?php
/* Copyright (C) 2007-2008 Jeremie Ollivier <jeremie.o@laposte.net>
* Copyright (C) 2008-2009 Laurent Destailleur <eldy@uers.sourceforge.net>
/* Copyright (C) 2007-2008 Jeremie Ollivier <jeremie.o@laposte.net>
* Copyright (C) 2008-2009 Laurent Destailleur <eldy@uers.sourceforge.net>
* Copyright (C) 2015 Regis Houssin <regis.houssin@capnetworks.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -41,8 +42,10 @@ require_once DOL_DOCUMENT_ROOT.'/cashdesk/include/environnement.php';
//header("Content-type: text/html; charset=UTF-8");
header("Content-type: text/html; charset=".$conf->file->character_set_client);
$search = GETPOST("code", "alpha");
// Search from criteria
if (dol_strlen($_GET["code"]) >= 0) // If search criteria is on char length at least
if (dol_strlen($search) >= 0) // If search criteria is on char length at least
{
$sql = "SELECT p.rowid, p.ref, p.label, p.tva_tx";
if (! empty($conf->stock->enabled) && !empty($conf_fkentrepot)) $sql.= ", ps.reel";
@@ -54,11 +57,15 @@ if (dol_strlen($_GET["code"]) >= 0) // If search criteria is on char length at l
// Add criteria on ref/label
if (! empty($conf->global->PRODUCT_DONOTSEARCH_ANYWHERE))
{
$sql.= " AND (p.ref LIKE '".$_GET['code']."%' OR p.label LIKE '".$_GET['code']."%')";
$sql.= " AND (p.ref LIKE '".$db->escape($search)."%' OR p.label LIKE '".$db->escape($search)."%'";
if (! empty($conf->barcode->enabled)) $sql.= " OR p.barcode LIKE '".$db->escape($search)."%'";
$sql.= ")";
}
else
{
$sql.= " AND (p.ref LIKE '%".$_GET['code']."%' OR p.label LIKE '%".$_GET['code']."%')";
$sql.= " AND (p.ref LIKE '%".$db->escape($search)."%' OR p.label LIKE '%".$db->escape($search)."%'";
if (! empty($conf->barcode->enabled)) $sql.= " OR p.barcode LIKE '%".$db->escape($search)."%'";
$sql.= ")";
}
$sql.= " ORDER BY label";

View File

@@ -1,5 +1,6 @@
/* Copyright (C) 2007-2008 Jeremie Ollivier <jeremie.o@laposte.net>
/* Copyright (C) 2007-2008 Jeremie Ollivier <jeremie.o@laposte.net>
* Copyright (C) 2015 Regis Houssin <regis.houssin@capnetworks.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -59,8 +60,8 @@ function afficheDonnees(aId, aTexte) {
// aCible : id du bloc de destination; aCode : argument a passer a la page php chargee du traitement et de l'affichage
function verifResultat(aCible, aCode) {
if (aCode != '') {
function verifResultat(aCible, aCode, iLimit = 1) {
if (aCode != '' && aCode.length >= iLimit) {
if (texte = file ('facturation_dhtml.php?code='+escape(aCode))) {

View File

@@ -2,6 +2,7 @@
/* Copyright (C) 2007-2008 Jeremie Ollivier <jeremie.o@laposte.net>
* Copyright (C) 2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2015 Regis Houssin <regis.houssin@capnetworks.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -43,8 +44,8 @@ $langs->load("cashdesk");
<!-- Affichage de la reference et de la designation -->
<td><input class="texte_ref" type="text" id ="txtRef" name="txtRef" value="<?php echo $obj_facturation->ref() ?>"
onchange="javascript: setSource('REF');"
onkeyup="javascript: verifResultat('resultats_dhtml', this.value);"
onfocus="javascript: this.select(); verifResultat('resultats_dhtml', this.value);"
onkeyup="javascript: verifResultat('resultats_dhtml', this.value, <?php echo (isset($conf->global->BARCODE_USE_SEARCH_TO_SELECT) ? (int) $conf->global->BARCODE_USE_SEARCH_TO_SELECT : 1) ?>);"
onfocus="javascript: this.select(); verifResultat('resultats_dhtml', this.value, <?php echo (isset($conf->global->BARCODE_USE_SEARCH_TO_SELECT) ? (int) $conf->global->BARCODE_USE_SEARCH_TO_SELECT : 1) ?>);"
onBlur="javascript: document.getElementById('resultats_dhtml').innerHTML = '';"/>
</td>
<td class="select_design">

View File

@@ -64,6 +64,10 @@ $object = new Categorie($db);
$extrafields = new ExtraFields($db);
$extralabels=$extrafields->fetch_name_optionals_label($object->table_element);
// Initialize technical object to manage hooks. Note that conf->hooks_modules contains array array
$hookmanager->initHooks(array('categorycard'));
/*
* Actions
*/

View File

@@ -410,7 +410,7 @@ else if ($id || $ref)
// Ref
print '<tr><td width="20%">'.$langs->trans("Ref").'</td>';
print '<td class="valeur">';
print $form->showrefnav($member,'id');
print $form->showrefnav($member,'id','','1','rowid','ref','','&type=3');
print '</td></tr>';
// Login

View File

@@ -1164,7 +1164,7 @@ class Categorie extends CommonObject
{
$cats = array();
$typeid=-1; $table='';;
$typeid=-1; $table='';
if ($type == '0' || $type == 'product') { $typeid=0; $table='product'; $type='product'; }
else if ($type == '1' || $type == 'supplier') { $typeid=1; $table='societe'; $type='fournisseur'; }
else if ($type == '2' || $type == 'customer') { $typeid=2; $table='societe'; $type='societe'; }

View File

@@ -56,6 +56,9 @@ $object = new Categorie($db);
$extrafields = new ExtraFields($db);
$extralabels=$extrafields->fetch_name_optionals_label($object->table_element);
// Initialize technical object to manage hooks. Note that conf->hooks_modules contains array array
$hookmanager->initHooks(array('categorycard'));
/*
* Actions
*/

View File

@@ -63,6 +63,9 @@ $type=$object->type;
$extrafields = new ExtraFields($db);
$extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
// Initialize technical object to manage hooks. Note that conf->hooks_modules contains array array
$hookmanager->initHooks(array('categorycard'));
/*
* Actions
*/

View File

@@ -88,7 +88,7 @@ $hookmanager->initHooks(array('actioncard','globalcard'));
/*
* Actions
*/
$listUserAssignedUpdated = false;
// Remove user to assigned list
if (GETPOST('removedassigned') || GETPOST('removedassigned') == '0')
{
@@ -106,6 +106,8 @@ if (GETPOST('removedassigned') || GETPOST('removedassigned') == '0')
$donotclearsession=1;
if ($action == 'add') $action = 'create';
if ($action == 'update') $action = 'edit';
$listUserAssignedUpdated = true;
}
// Add user to assigned list
@@ -125,6 +127,8 @@ if (GETPOST('addassignedtouser') || GETPOST('updateassignedtouser'))
$donotclearsession=1;
if ($action == 'add') $action = 'create';
if ($action == 'update') $action = 'edit';
$listUserAssignedUpdated = true;
}
// Add event
@@ -751,6 +755,8 @@ if ($action == 'create')
print '<td colspan="3">'.dolGetElementUrl($originid,$origin,1).'</td></tr>';
print '<input type="hidden" name="fk_element" size="10" value="'.GETPOST('originid').'">';
print '<input type="hidden" name="elementtype" size="10" value="'.GETPOST('origin').'">';
print '<input type="hidden" name="originid" size="10" value="'.GETPOST('originid').'">';
print '<input type="hidden" name="origin" size="10" value="'.GETPOST('origin').'">';
}
if (GETPOST("datep") && preg_match('/^([0-9][0-9][0-9][0-9])([0-9][0-9])([0-9][0-9])$/',GETPOST("datep"),$reg))
@@ -801,6 +807,28 @@ if ($id > 0)
$result4=$object->fetch_userassigned();
$result5=$object->fetch_optionals($id,$extralabels);
if($listUserAssignedUpdated || $donotclearsession) {
$datep=dol_mktime($fulldayevent?'00':$aphour, $fulldayevent?'00':$apmin, 0, $_POST["apmonth"], $_POST["apday"], $_POST["apyear"]);
$datef=dol_mktime($fulldayevent?'23':$p2hour, $fulldayevent?'59':$p2min, $fulldayevent?'59':'0', $_POST["p2month"], $_POST["p2day"], $_POST["p2year"]);
$object->fk_action = dol_getIdFromCode($db, GETPOST("actioncode"), 'c_actioncomm');
$object->label = GETPOST("label");
$object->datep = $datep;
$object->datef = $datef;
$object->percentage = $percentage;
$object->priority = GETPOST("priority");
$object->fulldayevent= GETPOST("fullday")?1:0;
$object->location = GETPOST('location');
$object->socid = GETPOST("socid");
$object->contactid = GETPOST("contactid",'int');
//$object->societe->id = $_POST["socid"]; // deprecated
//$object->contact->id = $_POST["contactid"]; // deprecated
$object->fk_project = GETPOST("projectid",'int');
$object->note = GETPOST("note");
}
if ($result1 < 0 || $result2 < 0 || $result3 < 0 || $result4 < 0 || $result5 < 0)
{
dol_print_error($db,$object->error);
@@ -1200,7 +1228,16 @@ if ($id > 0)
print '<br><br><table class="border" width="100%">';
foreach($extrafields->attribute_label as $key=>$label)
{
$value=(isset($_POST["options_".$key])?$_POST["options_".$key]:(isset($object->array_options['options_'.$key])?$object->array_options['options_'.$key]:''));
if (isset($_POST["options_" . $key])) {
if (is_array($_POST["options_" . $key])) {
// $_POST["options"] is an array but following code expects a comma separated string
$value = implode(",", $_POST["options_" . $key]);
} else {
$value = $_POST["options_" . $key];
}
} else {
$value = $object->array_options["options_" . $key];
}
print '<tr><td width="30%">'.$label.'</td><td>';
print $extrafields->showOutputField($key,$value);
print "</td></tr>\n";

View File

@@ -106,8 +106,8 @@ class ActionComm extends CommonObject
var $note; // Description
var $userassigned = array(); // Array of user ids
var $userownerid; // Id of user owner
var $userdoneid; // Id of user done
var $userownerid; // Id of user owner = fk_user_action into table
var $userdoneid; // Id of user done (deprecated)
/**
* Object user of owner
@@ -376,11 +376,12 @@ class ActionComm extends CommonObject
/**
* Load object from database
*
* @param int $id Id of action to get
* @param string $ref Ref of action to get
* @return int <0 if KO, >0 if OK
* @param int $id Id of action to get
* @param string $ref Ref of action to get
* @param string $ref_ext Ref ext to get
* @return int <0 if KO, >0 if OK
*/
function fetch($id, $ref='')
function fetch($id, $ref='',$ref_ext='')
{
global $langs;
@@ -404,11 +405,12 @@ class ActionComm extends CommonObject
$sql.= " s.nom as socname,";
$sql.= " u.firstname, u.lastname as lastname";
$sql.= " FROM ".MAIN_DB_PREFIX."actioncomm as a ";
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_actioncomm as c ON a.fk_action=c.id ";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_actioncomm as c ON a.fk_action=c.id ";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u on u.rowid = a.fk_user_author";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s on s.rowid = a.fk_soc";
$sql.= " WHERE ";
if ($ref) $sql.= " a.id=".$ref; // No field ref, we use id
if ($ref) $sql.= " a.id=".$ref; // No field ref, we use id
elseif ($ref_ext) $sql.= " a.ref_ext='".$this->db->escape($ref_ext)."'";
else $sql.= " a.id=".$id;
dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
@@ -540,7 +542,19 @@ class ActionComm extends CommonObject
$this->error=$this->db->lasterror();
$error++;
}
if (! $error) {
$sql = "DELETE FROM ".MAIN_DB_PREFIX."actioncomm_resources";
$sql.= " WHERE fk_actioncomm=".$this->id;
dol_syslog(get_class($this)."::delete", LOG_DEBUG);
$res=$this->db->query($sql);
if ($res < 0) {
$this->error=$this->db->lasterror();
$error++;
}
}
// Removed extrafields
if (! $error) {
$result=$this->deleteExtraFields();

View File

@@ -828,25 +828,25 @@ if ($id > 0)
print '<div class="tabsAction">';
if (! empty($conf->propal->enabled) && $user->rights->propal->creer)
if (! empty($conf->propal->enabled) && $user->rights->propal->creer && $object->status==1)
{
$langs->load("propal");
print '<div class="inline-block divButAction"><a class="butAction" href="'.DOL_URL_ROOT.'/comm/propal.php?socid='.$object->id.'&amp;action=create">'.$langs->trans("AddProp").'</a></div>';
}
if (! empty($conf->commande->enabled) && $user->rights->commande->creer)
if (! empty($conf->commande->enabled) && $user->rights->commande->creer && $object->status==1)
{
$langs->load("orders");
print '<div class="inline-block divButAction"><a class="butAction" href="'.DOL_URL_ROOT.'/commande/card.php?socid='.$object->id.'&amp;action=create">'.$langs->trans("AddOrder").'</a></div>';
}
if ($user->rights->contrat->creer)
if ($user->rights->contrat->creer && $object->status==1)
{
$langs->load("contracts");
print '<div class="inline-block divButAction"><a class="butAction" href="'.DOL_URL_ROOT.'/contrat/card.php?socid='.$object->id.'&amp;action=create">'.$langs->trans("AddContract").'</a></div>';
}
if (! empty($conf->ficheinter->enabled) && $user->rights->ficheinter->creer)
if (! empty($conf->ficheinter->enabled) && $user->rights->ficheinter->creer && $object->status==1)
{
$langs->load("fichinter");
print '<div class="inline-block divButAction"><a class="butAction" href="'.DOL_URL_ROOT.'/fichinter/card.php?socid='.$object->id.'&amp;action=create">'.$langs->trans("AddIntervention").'</a></div>';
@@ -855,7 +855,7 @@ if ($id > 0)
// Add invoice
if ($user->societe_id == 0)
{
if (! empty($conf->deplacement->enabled))
if (! empty($conf->deplacement->enabled) && $object->status==1)
{
$langs->load("trips");
print '<div class="inline-block divButAction"><a class="butAction" href="'.DOL_URL_ROOT.'/compta/deplacement/card.php?socid='.$object->id.'&amp;action=create">'.$langs->trans("AddTrip").'</a></div>';
@@ -863,7 +863,7 @@ if ($id > 0)
if (! empty($conf->facture->enabled))
{
if ($user->rights->facture->creer)
if ($user->rights->facture->creer && $object->status==1)
{
$langs->load("bills");
$langs->load("orders");

View File

@@ -421,7 +421,7 @@ class Mailing extends CommonObject
$resql=$this->db->query($sql);
if ($resql)
{
return 1;
return $this->delete_targets();
}
else
{
@@ -429,6 +429,29 @@ class Mailing extends CommonObject
return -1;
}
}
/**
* Delete targets emailing
*
* @return int 1 if OK, 0 if error
*/
function delete_targets()
{
$sql = "DELETE FROM ".MAIN_DB_PREFIX."mailing_cibles";
$sql.= " WHERE fk_mailing = ".$this->id;
dol_syslog("Mailing::delete_targets", LOG_DEBUG);
$resql=$this->db->query($sql);
if ($resql)
{
return 1;
}
else
{
$this->error=$this->db->lasterror();
return 0;
}
}
/**

View File

@@ -166,8 +166,7 @@ if ($result)
print '<td align="right" class="nowrap">';
if ($filteremail)
{
if ($obj->sendstatut==-1) print $langs->trans("MailingStatusError").' '.img_error();
if ($obj->sendstatut==1) print $langs->trans("MailingStatusSent").' '.img_picto($langs->trans("MailingStatusSent"),'statut6');
print $email::libStatutDest($obj->sendstatut,2);
}
else
{

View File

@@ -115,7 +115,7 @@ if (empty($reshook))
// Action clone object
if ($action == 'confirm_clone' && $confirm == 'yes')
{
if (1 == 0 && ! GETPOST('clone_content') && ! GETPOST('clone_receivers'))
if (! GETPOST('socid', 3))
{
setEventMessage($langs->trans("NoCloneOptionsSpecified"), 'errors');
}
@@ -127,7 +127,7 @@ if (empty($reshook))
header("Location: " . $_SERVER['PHP_SELF'] . '?id=' . $result);
exit();
} else {
setEventMessage($object->error, 'errors');
if (count($object->errors) > 0) setEventMessage($object->errors, 'errors');
$action = '';
}
}
@@ -1267,7 +1267,7 @@ if ($action == 'create')
print '</td>';
} else {
print '<td colspan="2">';
print $form->select_company('', 'socid', 's.client = 1 OR s.client = 2 OR s.client = 3', 1);
print $form->select_company('', 'socid', '(s.client = 1 OR s.client = 2 OR s.client = 3) AND status=1', 1);
print '</td>';
}
print '</tr>' . "\n";
@@ -2194,7 +2194,7 @@ if ($action == 'create')
$ref = dol_sanitizeFileName($object->ref);
include_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
$fileparams = dol_most_recent_file($conf->propal->dir_output . '/' . $ref, preg_quote($ref, '/'));
$fileparams = dol_most_recent_file($conf->propal->dir_output . '/' . $ref, preg_quote($ref, '/').'([^\-])+');
$file = $fileparams ['fullname'];
// Define output language
@@ -2219,7 +2219,7 @@ if ($action == 'create')
dol_print_error($db, $result);
exit();
}
$fileparams = dol_most_recent_file($conf->propal->dir_output . '/' . $ref, preg_quote($ref, '/'));
$fileparams = dol_most_recent_file($conf->propal->dir_output . '/' . $ref, preg_quote($ref, '/').'([^\-])+');
$file = $fileparams ['fullname'];
}
@@ -2255,7 +2255,7 @@ if ($action == 'create')
$formmail->substit['__PROPREF__'] = $object->ref;
$formmail->substit['__SIGNATURE__'] = $user->signature;
$formmail->substit['__REFCLIENT__'] = $object->ref_client;
$formmail->substit['__THIRPARTY_NAME__'] = $object->thirdparty->name;
$formmail->substit['__THIRDPARTY_NAME__'] = $object->thirdparty->name;
$formmail->substit['__PROJECT_REF__'] = (is_object($object->projet)?$object->projet->ref:'');
$formmail->substit['__PERSONALIZED__'] = '';
$formmail->substit['__CONTACTCIVNAME__'] = '';

View File

@@ -368,7 +368,7 @@ class Propal extends CommonObject
$localtaxes_type=getLocalTaxesFromRate($txtva,0,$this->thirdparty,$mysoc);
$tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type, '', $localtaxes_type);
$tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type, $mysoc, $localtaxes_type);
$total_ht = $tabprice[0];
$total_tva = $tabprice[1];
$total_ttc = $tabprice[2];
@@ -547,16 +547,16 @@ class Propal extends CommonObject
$price = $pu - $remise;
}
// Update line
$this->line=new PropaleLigne($this->db);
//Fetch current line from the database and then clone the object and set it in $oldline property
$line = new PropaleLigne($this->db);
$line->fetch($rowid);
$staticline = clone $line;
$line->oldline = $staticline;
$this->line = $line;
$this->line->context = $this->context;
// Stock previous line records
$staticline=new PropaleLigne($this->db);
$staticline->fetch($rowid);
$this->line->oldline = $staticline;
// Reorder if fk_parent_line change
if (! empty($fk_parent_line) && ! empty($staticline->fk_parent_line) && $fk_parent_line != $staticline->fk_parent_line)
{
@@ -959,7 +959,9 @@ class Propal extends CommonObject
*/
function createFromClone($socid=0)
{
global $user,$langs,$conf,$hookmanager;
global $db, $user,$langs,$conf,$hookmanager;
dol_include_once('/projet/class/project.class.php');
$this->context['createfromclone']='createfromclone';
@@ -972,35 +974,42 @@ class Propal extends CommonObject
foreach($this->lines as $line)
$line->fetch_optionals($line->rowid);
// Load source object
$objFrom = dol_clone($this);
// Load dest object
$clonedObj = clone $this;
$objsoc=new Societe($this->db);
// Change socid if needed
if (! empty($socid) && $socid != $this->socid)
if (! empty($socid) && $socid != $clonedObj->socid)
{
if ($objsoc->fetch($socid) > 0)
{
$this->socid = $objsoc->id;
$this->cond_reglement_id = (! empty($objsoc->cond_reglement_id) ? $objsoc->cond_reglement_id : 0);
$this->mode_reglement_id = (! empty($objsoc->mode_reglement_id) ? $objsoc->mode_reglement_id : 0);
$this->fk_project = '';
$this->fk_delivery_address = '';
$clonedObj->socid = $objsoc->id;
$clonedObj->cond_reglement_id = (! empty($objsoc->cond_reglement_id) ? $objsoc->cond_reglement_id : 0);
$clonedObj->mode_reglement_id = (! empty($objsoc->mode_reglement_id) ? $objsoc->mode_reglement_id : 0);
$clonedObj->fk_delivery_address = '';
$project = new Project($db);
if ($this->fk_project > 0 && $project->fetch($this->fk_project)) {
if ($project->socid <= 0) $clonedObj->fk_project = $this->fk_project;
else $clonedObj->fk_project = '';
} else {
$clonedObj->fk_project = '';
}
}
// reset ref_client
$this->ref_client = '';
$clonedObj->ref_client = '';
// TODO Change product price if multi-prices
}
else
{
$objsoc->fetch($this->socid);
$objsoc->fetch($clonedObj->socid);
}
$this->id=0;
$this->statut=0;
$clonedObj->id=0;
$clonedObj->statut=0;
if (empty($conf->global->PROPALE_ADDON) || ! is_readable(DOL_DOCUMENT_ROOT ."/core/modules/propale/".$conf->global->PROPALE_ADDON.".php"))
{
@@ -1009,32 +1018,32 @@ class Propal extends CommonObject
}
// Clear fields
$this->user_author = $user->id;
$this->user_valid = '';
$this->date = $now;
$this->datep = $now; // deprecated
$this->fin_validite = $this->date + ($this->duree_validite * 24 * 3600);
if (empty($conf->global->MAIN_KEEP_REF_CUSTOMER_ON_CLONING)) $this->ref_client = '';
$clonedObj->user_author = $user->id;
$clonedObj->user_valid = '';
$clonedObj->date = $now;
$clonedObj->datep = $now; // deprecated
$clonedObj->fin_validite = $clonedObj->date + ($clonedObj->duree_validite * 24 * 3600);
if (empty($conf->global->MAIN_KEEP_REF_CUSTOMER_ON_CLONING)) $clonedObj->ref_client = '';
// Set ref
require_once DOL_DOCUMENT_ROOT ."/core/modules/propale/".$conf->global->PROPALE_ADDON.'.php';
$obj = $conf->global->PROPALE_ADDON;
$modPropale = new $obj;
$this->ref = $modPropale->getNextValue($objsoc,$this);
$clonedObj->ref = $modPropale->getNextValue($objsoc,$clonedObj);
// Create clone
$result=$this->create($user);
$result=$clonedObj->create($user);
if ($result < 0) $error++;
else
{
// copy internal contacts
if ($this->copy_linked_contact($objFrom, 'internal') < 0)
if ($clonedObj->copy_linked_contact($this, 'internal') < 0)
$error++;
// copy external contacts if same company
elseif ($objFrom->socid == $this->socid)
elseif ($this->socid == $clonedObj->socid)
{
if ($this->copy_linked_contact($objFrom, 'external') < 0)
if ($clonedObj->copy_linked_contact($this, 'external') < 0)
$error++;
}
}
@@ -1044,9 +1053,9 @@ class Propal extends CommonObject
// Hook of thirdparty module
if (is_object($hookmanager))
{
$parameters=array('objFrom'=>$objFrom);
$parameters=array('objFrom'=>$this,'clonedObj'=>$clonedObj);
$action='';
$reshook=$hookmanager->executeHooks('createFrom',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
$reshook=$hookmanager->executeHooks('createFrom',$parameters,$clonedObj,$action); // Note that $action and $object may have been modified by some hooks
if ($reshook < 0) $error++;
}
@@ -1062,7 +1071,7 @@ class Propal extends CommonObject
if (! $error)
{
$this->db->commit();
return $this->id;
return $clonedObj->id;
}
else
{
@@ -2895,10 +2904,12 @@ class PropaleLigne extends CommonObject
$this->date_end = $this->db->jdate($objp->date_end);
$this->db->free($result);
return 1;
}
else
{
dol_print_error($this->db);
return -1;
}
}
@@ -2926,11 +2937,12 @@ class PropaleLigne extends CommonObject
if (empty($this->total_localtax2)) $this->total_localtax2=0;
if (empty($this->rang)) $this->rang=0;
if (empty($this->remise)) $this->remise=0;
if (empty($this->remise_percent)) $this->remise_percent=0;
if (empty($this->remise_percent) || ! is_numeric($this->remise_percent)) $this->remise_percent=0;
if (empty($this->info_bits)) $this->info_bits=0;
if (empty($this->special_code)) $this->special_code=0;
if (empty($this->fk_parent_line)) $this->fk_parent_line=0;
if (empty($this->fk_fournprice)) $this->fk_fournprice=0;
if (! is_numeric($this->qty)) $this->qty = 0;
if (empty($this->pa_ht)) $this->pa_ht=0;

View File

@@ -48,7 +48,7 @@ class PropaleStats extends Stats
* Constructor
*
* @param DoliDB $db Database handler
* @param int $socid Id third party for filter
* @param int $socid Id third party for filter. This value must be forced during the new to external user company if user is an external user.
* @param int $userid Id user for filter (creation user)
*/
function __construct($db, $socid=0, $userid=0)
@@ -66,7 +66,7 @@ class PropaleStats extends Stats
$this->field='total_ht';
$this->field_line='total_ht';
$this->where.= " p.fk_statut > 0";
//$this->where.= " AND p.fk_soc = s.rowid AND p.entity = ".$conf->entity;
$this->where.= " AND p.entity = ".$conf->entity;
@@ -183,7 +183,7 @@ class PropaleStats extends Stats
return $this->_getAllByYear($sql);
}
/**
* Return nb, amount of predefined product for year
@@ -193,9 +193,11 @@ class PropaleStats extends Stats
*/
function getAllByProduct($year)
{
global $user;
$sql = "SELECT product.ref, COUNT(product.ref) as nb, SUM(tl.".$this->field_line.") as total, AVG(tl.".$this->field_line.") as avg";
$sql.= " FROM ".$this->from.", ".$this->from_line.", ".MAIN_DB_PREFIX."product as product";
//if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
if (!$user->rights->societe->client->voir && !$user->socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
$sql.= " WHERE ".$this->where;
$sql.= " AND p.rowid = tl.fk_propal AND tl.fk_product = product.rowid";
$sql.= " AND p.datep BETWEEN '".$this->db->idate(dol_get_first_day($year,1,false))."' AND '".$this->db->idate(dol_get_last_day($year,12,false))."'";
@@ -204,5 +206,5 @@ class PropaleStats extends Stats
//$sql.= $this->db->plimit(20);
return $this->_getAllByProduct($sql);
}
}
}

View File

@@ -2,7 +2,7 @@
/* Copyright (C) 2003-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005 Marc Barilley / Ocebo <marc@ocebo.com>
* Copyright (C) 2005-2013 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2005-2015 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2006 Andre Cianfarani <acianfa@free.fr>
* Copyright (C) 2010-2013 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2011 Philippe Grand <philippe.grand@atoo-net.com>
@@ -1239,6 +1239,9 @@ if ($action == 'create' && $user->rights->commande->creer) {
if ($socid > 0)
$res = $soc->fetch($socid);
$projectid = 0;
$remise_absolue = 0;
if (! empty($origin) && ! empty($originid)) {
// Parse element/subelement (ex: project_task)
$element = $subelement = $origin;
@@ -1249,6 +1252,20 @@ if ($action == 'create' && $user->rights->commande->creer) {
if ($element == 'project') {
$projectid = $originid;
if (!$cond_reglement_id) {
$cond_reglement_id = $soc->cond_reglement_id;
}
if (!$mode_reglement_id) {
$mode_reglement_id = $soc->mode_reglement_id;
}
if (!$remise_percent) {
$remise_percent = $soc->remise_percent;
}
if (!$dateorder) {
// Do not set 0 here (0 for a date is 1970)
$dateorder = (empty($dateinvoice)?(empty($conf->global->MAIN_AUTOFILL_DATE_ODER)?-1:''):$dateorder);
}
} else {
// For compatibility
if ($element == 'order' || $element == 'commande') {
@@ -1492,9 +1509,23 @@ if ($action == 'create' && $user->rights->commande->creer) {
print '<input type="hidden" name="origin" value="' . $objectsrc->element . '">';
print '<input type="hidden" name="originid" value="' . $objectsrc->id . '">';
$newclassname = $classname;
if ($newclassname == 'Propal')
$newclassname = 'CommercialProposal';
switch ($classname) {
case 'Propal':
$newclassname = 'CommercialProposal';
break;
case 'Commande':
$newclassname = 'Order';
break;
case 'Expedition':
$newclassname = 'Sending';
break;
case 'Contrat':
$newclassname = 'Contract';
break;
default:
$newclassname = $classname;
}
print '<tr><td>' . $langs->trans($newclassname) . '</td><td colspan="2">' . $objectsrc->getNomUrl(1) . '</td></tr>';
print '<tr><td>' . $langs->trans('TotalHT') . '</td><td colspan="2">' . price($objectsrc->total_ht) . '</td></tr>';
print '<tr><td>' . $langs->trans('TotalVAT') . '</td><td colspan="2">' . price($objectsrc->total_tva) . "</td></tr>";
@@ -2285,7 +2316,7 @@ if ($action == 'create' && $user->rights->commande->creer) {
$ref = dol_sanitizeFileName($object->ref);
include_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
$fileparams = dol_most_recent_file($conf->commande->dir_output . '/' . $ref, preg_quote($ref, '/'));
$fileparams = dol_most_recent_file($conf->commande->dir_output . '/' . $ref, preg_quote($ref, '/').'([^\-])+');
$file = $fileparams ['fullname'];
// Define output language
@@ -2310,7 +2341,7 @@ if ($action == 'create' && $user->rights->commande->creer) {
dol_print_error($db, $result);
exit();
}
$fileparams = dol_most_recent_file($conf->commande->dir_output . '/' . $ref, preg_quote($ref, '/'));
$fileparams = dol_most_recent_file($conf->commande->dir_output . '/' . $ref, preg_quote($ref, '/').'([^\-])+');
$file = $fileparams ['fullname'];
}
@@ -2345,7 +2376,7 @@ if ($action == 'create' && $user->rights->commande->creer) {
$formmail->substit ['__ORDERREF__'] = $object->ref;
$formmail->substit ['__SIGNATURE__'] = $user->signature;
$formmail->substit ['__REFCLIENT__'] = $object->ref_client;
$formmail->substit ['__THIRPARTY_NAME__'] = $object->thirdparty->name;
$formmail->substit ['__THIRDPARTY_NAME__'] = $object->thirdparty->name;
$formmail->substit ['__PROJECT_REF__'] = (is_object($object->projet)?$object->projet->ref:'');
$formmail->substit ['__PERSONALIZED__'] = '';
$formmail->substit ['__CONTACTCIVNAME__'] = '';

View File

@@ -393,7 +393,7 @@ class Commande extends CommonOrder
{
$mouvP = new MouvementStock($this->db);
// We increment stock of product (and sub-products)
$result=$mouvP->reception($user, $this->lines[$i]->fk_product, $idwarehouse, $this->lines[$i]->qty, $this->lines[$i]->subprice, $langs->trans("OrderBackToDraftInDolibarr",$this->ref));
$result=$mouvP->reception($user, $this->lines[$i]->fk_product, $idwarehouse, $this->lines[$i]->qty, 0, $langs->trans("OrderBackToDraftInDolibarr",$this->ref));
if ($result < 0) { $error++; }
}
}
@@ -576,7 +576,7 @@ class Commande extends CommonOrder
{
$mouvP = new MouvementStock($this->db);
// We increment stock of product (and sub-products)
$result=$mouvP->reception($user, $this->lines[$i]->fk_product, $idwarehouse, $this->lines[$i]->qty, $this->lines[$i]->subprice, $langs->trans("OrderCanceledInDolibarr",$this->ref));
$result=$mouvP->reception($user, $this->lines[$i]->fk_product, $idwarehouse, $this->lines[$i]->qty, 0, $langs->trans("OrderCanceledInDolibarr",$this->ref)); // price is 0, we don't want WAP to be changed
if ($result < 0)
{
$error++;
@@ -920,6 +920,7 @@ class Commande extends CommonOrder
// Clear fields
$this->user_author_id = $user->id;
$this->user_valid = '';
$this->date = dol_now();
$this->date_creation = '';
$this->date_validation = '';
$this->ref_client = '';
@@ -976,7 +977,9 @@ class Commande extends CommonOrder
*/
function createFromProposal($object)
{
global $conf,$user,$langs,$hookmanager;
global $db, $conf,$user,$langs,$hookmanager;
dol_include_once('/core/class/extrafields.class.php');
$error=0;
@@ -1040,15 +1043,21 @@ class Commande extends CommonOrder
$this->ref_client = $object->ref_client;
$this->note_private = $object->note_private;
$this->note_public = $object->note_public;
$this->origin = $object->element;
$this->origin_id = $object->id;
// get extrafields from original line
$object->fetch_optionals($object->id);
foreach($object->array_options as $options_key => $value)
$this->array_options[$options_key] = $value;
$e = new ExtraFields($db);
$element_extrafields = $e->fetch_name_optionals_label($this->element);
foreach($object->array_options as $options_key => $value) {
if(array_key_exists(str_replace('options_', '', $options_key), $element_extrafields)){
$this->array_options[$options_key] = $value;
}
}
// Possibility to add external linked objects with hooks
$this->linked_objects[$this->origin] = $this->origin_id;
if (is_array($object->other_linked_objects) && ! empty($object->other_linked_objects))
@@ -1124,7 +1133,7 @@ class Commande extends CommonOrder
{
global $mysoc, $conf, $langs;
dol_syslog(get_class($this)."::addline commandeid=$this->id, desc=$desc, pu_ht=$pu_ht, qty=$qty, txtva=$txtva, fk_product=$fk_product, remise_percent=$remise_percent, info_bits=$info_bits, fk_remise_except=$fk_remise_except, price_base_type=$price_base_type, pu_ttc=$pu_ttc, date_start=$date_start, date_end=$date_end, type=$type", LOG_DEBUG);
dol_syslog(get_class($this)."::addline commandeid=$this->id, desc=$desc, pu_ht=$pu_ht, qty=$qty, txtva=$txtva, fk_product=$fk_product, remise_percent=$remise_percent, info_bits=$info_bits, fk_remise_except=$fk_remise_except, price_base_type=$price_base_type, pu_ttc=$pu_ttc, date_start=$date_start, date_end=$date_end, type=$type special_code=$special_code", LOG_DEBUG);
include_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php';
@@ -1657,6 +1666,7 @@ class Commande extends CommonOrder
$i++;
}
$this->db->free($result);
return 1;
@@ -2412,16 +2422,16 @@ class Commande extends CommonOrder
$price = ($pu - $remise);
}
// Update line
$this->line=new OrderLine($this->db);
//Fetch current line from the database and then clone the object and set it in $oldline property
$line = new OrderLine($this->db);
$line->fetch($rowid);
$staticline = clone $line;
$line->oldline = $staticline;
$this->line = $line;
$this->line->context = $this->context;
// Stock previous line records
$staticline=new OrderLine($this->db);
$staticline->fetch($rowid);
$this->line->oldline = $staticline;
// Reorder if fk_parent_line change
if (! empty($fk_parent_line) && ! empty($staticline->fk_parent_line) && $fk_parent_line != $staticline->fk_parent_line)
{
@@ -3347,10 +3357,12 @@ class OrderLine extends CommonOrderLine
$this->date_end = $this->db->jdate($objp->date_end);
$this->db->free($result);
return 1;
}
else
{
dol_print_error($this->db);
return -1;
}
}

View File

@@ -48,7 +48,7 @@ class CommandeStats extends Stats
* Constructor
*
* @param DoliDB $db Database handler
* @param int $socid Id third party for filter
* @param int $socid Id third party for filter. This value must be forced during the new to external user company if user is an external user.
* @param string $mode Option ('customer', 'supplier')
* @param int $userid Id user for filter (creation user)
*/

View File

@@ -6,6 +6,7 @@
* Copyright (C) 2012 Andreu Bisquerra Gaya <jove@bisquerra.com>
* Copyright (C) 2012 David Rodriguez Martinez <davidrm146@gmail.com>
* Copyright (C) 2012 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2015 Ferran Marcet <fmarcet@2byte.es>
*
* 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
@@ -179,6 +180,7 @@ if (($action == 'create' || $action == 'add') && !$error)
$object->origin_id = $orders_id[$ii];
$object->linked_objects = $orders_id;
$id = $object->create($user);
$object->fetch_thirdparty();
if ($id>0)
{
@@ -505,7 +507,7 @@ if ($action == 'create' && !$error)
//Mode liste
if (($action != 'create' && $action != 'add') || !$error)
if (($action != 'create' && $action != 'add') && !$error)
{
llxHeader();
?>

View File

@@ -437,7 +437,7 @@ else
// State
print '<tr><td>'.$langs->trans('State').'</td><td>';
if ($account->fk_departement > 0) print getState($account->fk_departement);
if ($account->state_id > 0) print getState($account->state_id);
print '</td></tr>';
// Conciliate

View File

@@ -1136,7 +1136,6 @@ class AccountLine extends CommonObject
}
else
{
dol_print_error($this->db);
return -1;
}
}
@@ -1155,7 +1154,7 @@ class AccountLine extends CommonObject
if ($this->rappro)
{
// Protection to avoid any delete of consolidated lines
$this->error="DeleteNotPossibleLineIsConsolidated";
$this->error="ErrorDeleteNotPossibleLineIsConsolidated";
return -1;
}

View File

@@ -343,7 +343,7 @@ else
elseif ($links[$key]['type']=='payment_supplier')
{
$paymentsupplierstatic->id=$links[$key]['url_id'];
$paymentsupplierstatic->ref=$langs->trans("Payment");;
$paymentsupplierstatic->ref=$langs->trans("Payment");
print ' '.$paymentsupplierstatic->getNomUrl(1);
$newline=0;
}

View File

@@ -2,6 +2,7 @@
/* Copytight (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2008-2009 Laurent Destailleur (Eldy) <eldy@users.sourceforge.net>
* Copyright (C) 2008 Raphael Bertrand (Resultic) <raphael.bertrand@resultic.fr>
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -312,7 +313,7 @@ if ($_REQUEST["account"] || $_REQUEST["ref"])
print "</td>";
print "<td>".$ref."</td>";
print "<td>".$refcomp."</td>";
if ($obj->total_ttc < 0) { print "<td align=\"right\">".price($total_ttc)."</td><td>&nbsp;</td>"; };
if ($obj->total_ttc < 0) { print "<td align=\"right\">".price(abs($total_ttc))."</td><td>&nbsp;</td>"; };
if ($obj->total_ttc >= 0) { print "<td>&nbsp;</td><td align=\"right\">".price($total_ttc)."</td>"; };
print '<td align="right">'.price($solde).'</td>';
print "</tr>";

View File

@@ -1,7 +1,7 @@
<?php
/* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net>
* Copytight (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com>
* Copytight (C) 2005-2015 Regis Houssin <regis.houssin@capnetworks.com>
* Copytight (C) 2012 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
*
@@ -176,7 +176,7 @@ $form->select_comptes($account_to,'account_to',0,'',1);
print "</td>\n";
print "<td>";
$form->select_date($dateo,'','','','','add');
$form->select_date((! empty($dateo)?$dateo:''),'','','','','add');
print "</td>\n";
print '<td><input name="label" class="flat" type="text" size="40" value="'.$label.'"></td>';
print '<td><input name="amount" class="flat" type="text" size="8" value="'.$amount.'"></td>';

View File

@@ -115,7 +115,7 @@ else if ($action == 'add' && $user->rights->deplacement->creer)
$error=0;
$object->date = dol_mktime(12, 0, 0, GETPOST('remonth','int'), GETPOST('reday','int'), GETPOST('reyear','int'));
$object->km = GETPOST('km','int');
$object->km = price2num(GETPOST('km','alpha'), 'MU'); // Not 'int', it may be a formated amount
$object->type = GETPOST('type','alpha');
$object->socid = GETPOST('socid','int');
$object->fk_user = GETPOST('fk_user','int');
@@ -174,7 +174,7 @@ else if ($action == 'update' && $user->rights->deplacement->creer)
$result = $object->fetch($id);
$object->date = dol_mktime(12, 0, 0, GETPOST('remonth','int'), GETPOST('reday','int'), GETPOST('reyear','int'));
$object->km = GETPOST('km','int');
$object->km = price2num(GETPOST('km','alpha'), 'MU'); // Not 'int', it may be a formated amount
$object->type = GETPOST('type','alpha');
$object->socid = GETPOST('socid','int');
$object->fk_user = GETPOST('fk_user','int');

View File

@@ -3,7 +3,7 @@
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
* Copyright (C) 2004-2014 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005 Marc Barilley / Ocebo <marc@ocebo.com>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2005-2015 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2006 Andre Cianfarani <acianfa@free.fr>
* Copyright (C) 2010-2015 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2012-2013 Christophe Battarel <christophe.battarel@altairis.fr>
@@ -1743,6 +1743,8 @@ if ($action == 'create')
$res = $soc->fetch($socid);
// Load objectsrc
$remise_absolue = 0;
if (! empty($origin) && ! empty($originid))
{
// Parse element/subelement (ex: project_task)
@@ -1754,6 +1756,20 @@ if ($action == 'create')
if ($element == 'project') {
$projectid = $originid;
if (!$cond_reglement_id) {
$cond_reglement_id = $soc->cond_reglement_id;
}
if (!$mode_reglement_id) {
$mode_reglement_id = $soc->mode_reglement_id;
}
if (!$remise_percent) {
$remise_percent = $soc->remise_percent;
}
if (!$dateinvoice) {
// Do not set 0 here (0 for a date is 1970)
$dateinvoice = (empty($dateinvoice)?(empty($conf->global->MAIN_AUTOFILL_DATE)?-1:''):$dateinvoice);
}
} else {
// For compatibility
if ($element == 'order' || $element == 'commande') {
@@ -1798,7 +1814,6 @@ if ($action == 'create')
$objectsrc->fetch_optionals($originid);
$object->array_options = $objectsrc->array_options;
}
$dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE) ? -1 : ''; // Dot not set 0 here (0 for a date is 1970)
}
else
{
@@ -1809,6 +1824,7 @@ if ($action == 'create')
$remise_absolue = 0;
$dateinvoice = (empty($dateinvoice)?(empty($conf->global->MAIN_AUTOFILL_DATE)?-1:''):$dateinvoice); // Do not set 0 here (0 for a date is 1970)
}
$absolute_discount = $soc->getAvailableDiscounts();
if (! empty($conf->use_javascript_ajax))
@@ -1855,7 +1871,7 @@ if ($action == 'create')
else
{
print '<td colspan="2">';
print $form->select_company('', 'socid', 's.client = 1 OR s.client = 3', 1);
print $form->select_company('', 'socid', '(s.client = 1 OR s.client = 3) AND status=1', 1);
print '</td>';
}
print '</tr>' . "\n";
@@ -2121,6 +2137,10 @@ if ($action == 'create')
print '</td></tr>';
// Bank Account
if (isset($_POST['fk_account'])) {
$fk_account = $_POST['fk_account'];
}
print '<tr><td>' . $langs->trans('BankAccount') . '</td><td colspan="2">';
$form->select_comptes($fk_account, 'fk_account', 0, '', 1);
print '</td></tr>';
@@ -3561,7 +3581,7 @@ if ($action == 'create')
$ref = dol_sanitizeFileName($object->ref);
include_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
$fileparams = dol_most_recent_file($conf->facture->dir_output . '/' . $ref, preg_quote($ref, '/'));
$fileparams = dol_most_recent_file($conf->facture->dir_output . '/' . $ref, preg_quote($ref, '/').'([^\-])+');
$file = $fileparams ['fullname'];
// Define output language
@@ -3586,7 +3606,7 @@ if ($action == 'create')
dol_print_error($db, $result);
exit();
}
$fileparams = dol_most_recent_file($conf->facture->dir_output . '/' . $ref, preg_quote($ref, '/'));
$fileparams = dol_most_recent_file($conf->facture->dir_output . '/' . $ref, preg_quote($ref, '/').'([^\-])+');
$file = $fileparams ['fullname'];
}
@@ -3623,7 +3643,7 @@ if ($action == 'create')
$formmail->substit['__FACREF__'] = $object->ref;
$formmail->substit['__SIGNATURE__'] = $user->signature;
$formmail->substit['__REFCLIENT__'] = $object->ref_client;
$formmail->substit['__THIRPARTY_NAME__'] = $object->thirdparty->name;
$formmail->substit['__THIRDPARTY_NAME__'] = $object->thirdparty->name;
$formmail->substit['__PROJECT_REF__'] = (is_object($object->projet)?$object->projet->ref:'');
$formmail->substit['__PERSONALIZED__'] = '';
$formmail->substit['__CONTACTCIVNAME__'] = '';

View File

@@ -1761,7 +1761,7 @@ class Facture extends CommonInvoice
$mouvP = new MouvementStock($this->db);
$mouvP->origin = &$this;
// We decrease stock for product
if ($this->type == self::TYPE_CREDIT_NOTE) $result=$mouvP->reception($user, $this->lines[$i]->fk_product, $idwarehouse, $this->lines[$i]->qty, $this->lines[$i]->subprice, $langs->trans("InvoiceValidatedInDolibarr",$num));
if ($this->type == self::TYPE_CREDIT_NOTE) $result=$mouvP->reception($user, $this->lines[$i]->fk_product, $idwarehouse, $this->lines[$i]->qty, 0, $langs->trans("InvoiceValidatedInDolibarr",$num));
else $result=$mouvP->livraison($user, $this->lines[$i]->fk_product, $idwarehouse, $this->lines[$i]->qty, $this->lines[$i]->subprice, $langs->trans("InvoiceValidatedInDolibarr",$num));
if ($result < 0) {
$error++;
@@ -2185,16 +2185,26 @@ class Facture extends CommonInvoice
$pu_tva = $tabprice[4];
$pu_ttc = $tabprice[5];
// Update line into database
$this->line=new FactureLigne($this->db);
// Old properties: $price, $remise (deprecated)
$price = $pu;
$remise = 0;
if ($remise_percent > 0)
{
$remise = round(($pu * $remise_percent / 100),2);
$price = ($pu - $remise);
}
$price = price2num($price);
//Fetch current line from the database and then clone the object and set it in $oldline property
$line = new FactureLigne($this->db);
$line->fetch($rowid);
$staticline = clone $line;
$line->oldline = $staticline;
$this->line = $line;
$this->line->context = $this->context;
// Stock previous line records
$staticline=new FactureLigne($this->db);
$staticline->fetch($rowid);
$this->line->oldline = $staticline;
// Reorder if fk_parent_line change
if (! empty($fk_parent_line) && ! empty($staticline->fk_parent_line) && $fk_parent_line != $staticline->fk_parent_line)
{
@@ -2562,15 +2572,16 @@ class Facture extends CommonInvoice
$numref = "";
$numref = $obj->getNextValue($soc,$this,$mode);
if ($numref != "")
{
return $numref;
}
else
{
/**
* $numref can be empty in case we ask for the last value because if there is no invoice created with the
* set up mask.
*/
if ($mode != 'last' && !$numref) {
dol_print_error($db,"Facture::getNextNumRef ".$obj->error);
return "";
}
return $numref;
}
else
{
@@ -3496,10 +3507,12 @@ class FactureLigne extends CommonInvoiceLine
$this->product_desc = $objp->product_desc;
$this->db->free($result);
return 1;
}
else
{
dol_print_error($this->db);
return -1;
}
}

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