Compare commits

...

1454 Commits

Author SHA1 Message Date
Rushabh Mehta
2c8dc1d273 Merge branch 'develop' 2016-03-03 13:02:23 +05:30
Rushabh Mehta
a8d04b11c3 bumped to version 6.24.2 2016-03-03 13:32:23 +06:00
Rushabh Mehta
756e518bc1 [fix] recurring 2016-03-03 13:00:30 +05:30
Rushabh Mehta
c72267b98b Merge pull request #4919 from agusputra/patch-24
Update item-price.md
2016-03-03 11:30:01 +05:30
Rushabh Mehta
526f042bb7 Merge pull request #4915 from jayala/patch-1
Update concepts-and-terms.md
2016-03-03 11:29:54 +05:30
Rushabh Mehta
a289ab75bf Merge branch 'develop' 2016-03-03 11:27:42 +05:30
Rushabh Mehta
14b83cf391 bumped to version 6.24.1 2016-03-03 11:57:42 +06:00
Rushabh Mehta
d627af2c97 [translations] 2016-03-03 11:25:46 +05:30
Rushabh Mehta
fe3f78b0f6 Merge branch 'develop' 2016-03-03 11:05:22 +05:30
Rushabh Mehta
cf6b786950 bumped to version 6.24.0 2016-03-03 11:35:22 +06:00
Rushabh Mehta
a12eb686a5 [change-log] 6.24.0 2016-03-03 11:03:38 +05:30
Rushabh Mehta
07263462f6 [minor] add translated get_formatted 2016-03-03 10:48:45 +05:30
Rushabh Mehta
69cfab8559 [fix] [patch] recurring 2016-03-03 10:37:45 +05:30
Agus Syahputra
32362f14f4 Update item-price.md 2016-03-03 08:03:59 +07:00
Jesús Ayala
18bfad5a66 Update concepts-and-terms.md 2016-03-02 10:05:45 -03:00
Rushabh Mehta
5839a8d7f0 [fixes] usability cleanup of recurring document and added explicit submit_on_creation 2016-03-02 17:51:52 +05:30
Rushabh Mehta
f1ad694356 Merge pull request #4912 from ShashaQin/patch-31
minor improvement on item query
2016-03-02 16:19:21 +05:30
Rushabh Mehta
aac4dcedc8 [fix] print language and contact_email fields and removed translations 2016-03-02 15:45:09 +05:30
Rushabh Mehta
b0f0aaf5b1 [minor] added chart of accounts, cost centers buttons on Company 2016-03-02 13:08:40 +05:30
Rushabh Mehta
fe6eadfe22 [cleanup] job opening and job applicant 2016-03-02 12:53:19 +05:30
ShashaQin
425ab6bb1e Update queries.py 2016-03-02 13:07:58 +08:00
Rushabh Mehta
cbed331047 Merge pull request #4909 from rohitwaghchaure/multilingual_print_format_test
Multilingual print format test
2016-03-01 17:10:50 +05:30
rohitwaghchaure
4151e3dc92 [enhancement] Multi-lingual print format 2016-03-01 16:33:08 +05:30
Rushabh Mehta
6020e9ceb3 Merge pull request #4906 from smorele/doc_fixes
fixe broken links
2016-03-01 16:15:56 +05:30
Rushabh Mehta
5b9d6494a6 Merge pull request #4900 from rmehta/minor-fixes
[minor] fix notification for material request, splash icon, cleanup project form layout
2016-03-01 16:15:25 +05:30
Rushabh Mehta
e670525c55 Merge pull request #4899 from nabinhait/seriailized_stock_valuation
Seriailized stock valuation
2016-03-01 16:13:09 +05:30
Rushabh Mehta
39a6f804bf Merge pull request #4871 from ShashaQin/patch-27
Improvements about recurring documents
2016-03-01 16:06:33 +05:30
Rushabh Mehta
ddeb576d52 Merge pull request #4849 from rasos/patch-1
Create at_austria_chart_Einheitskontenrahmen.json
2016-03-01 16:05:13 +05:30
smorele
0a58d9e0f4 fixe broken links 2016-03-01 09:53:23 +01:00
Rushabh Mehta
7bdd9979aa Merge pull request #4905 from KanchanChauhan/web-forms
[fix] added web form fixtures
2016-03-01 11:42:40 +05:30
Kanchan Chauhan
1f3d5b7ee9 [fix] added web form fixtures 2016-03-01 11:33:49 +05:30
Rushabh Mehta
45fd073094 Merge pull request #4897 from agusputra/patch-23
Update withdrawing-salary-from-owners-equity-account.md
2016-02-29 17:35:18 +05:30
Rushabh Mehta
980a00d9d7 Merge pull request #4892 from agusputra/patch-22
Update update-stock-option-in-sales-invoice.md
2016-02-29 17:34:54 +05:30
Rushabh Mehta
95ffe3bc7b [docs] added work-in-progress for Spanish manual 2016-02-29 17:22:25 +05:30
paulocoronado
18d465dc0d Adding WORK IN PROGRESS 2016-02-29 17:22:25 +05:30
paulocoronado
23ef60a467 work in progress
Spanish Transalation
2016-02-29 17:22:24 +05:30
paulocoronado
8f6b1e0549 Páginas de inicio de la traducción al español.
First commit of Spanish translation
2016-02-29 17:22:24 +05:30
Rushabh Mehta
ae7dc31d14 Merge pull request #4846 from KanchanChauhan/job-applicant
Added feature to allow people to apply for job from website
2016-02-29 17:22:01 +05:30
Rushabh Mehta
aabefe4b7c Merge branch 'develop' 2016-02-29 14:50:54 +05:30
Rushabh Mehta
6fa497c87a bumped to version 6.23.7 2016-02-29 15:20:54 +06:00
Rushabh Mehta
a4decc2c59 [minor] [test] fix for leap year 2016-02-29 14:44:20 +05:30
Rushabh Mehta
f1083c9a74 [minor] fix messages in material request 2016-02-29 14:38:25 +05:30
Rushabh Mehta
e1f68b9904 Merge pull request #4901 from nabinhait/time_log_overlap_fix
[fix] Time Log overlap validation and test cases
2016-02-29 14:16:59 +05:30
Nabin Hait
94a1f3eb90 [fix] Time Log overlap validation and test cases 2016-02-29 13:15:27 +05:30
Nabin Hait
5a4c7d3b62 [patch] repost valuation rate for serialized items 2016-02-29 12:07:42 +05:30
Nabin Hait
2620bf402f [fix] Stock Valuation for serialized items 2016-02-29 12:07:42 +05:30
Agus Syahputra
1b28f58829 Update withdrawing-salary-from-owners-equity-account.md 2016-02-29 08:04:02 +07:00
Agus Syahputra
034fcb3410 Update update-stock-option-in-sales-invoice.md 2016-02-28 11:49:00 +07:00
Rushabh Mehta
4403853828 [minor] fix notification for material request, splash icon, cleanup project form layout 2016-02-27 16:24:34 +05:30
ShashaQin
8d1dea6aad Update recurring_document.py 2016-02-27 14:00:58 +08:00
Nabin Hait
f34e63123f Merge pull request #4877 from agusputra/patch-18
Update period-closing-voucher.md
2016-02-27 10:11:20 +05:30
Nabin Hait
598c9c4679 Merge pull request #4884 from umairsy/feb-2nd
updated manual
2016-02-27 10:10:34 +05:30
Nabin Hait
2174790545 Merge pull request #4886 from saurabh6790/add_projected_qty_on_quotation
[fixes] set projected qty in Quotaion Item table
2016-02-27 10:04:20 +05:30
Nabin Hait
f9103b1b0b Merge pull request #4887 from sbkolate/patch-3
enable uom in BOM Table View
2016-02-27 10:02:59 +05:30
Nabin Hait
e0cc597f70 Merge pull request #4888 from agusputra/patch-19
Update freeze-accounting-entries.md
2016-02-27 10:02:24 +05:30
Nabin Hait
ab40cd8d08 Merge pull request #4889 from agusputra/patch-21
Update managing-transactions-in-multiple-currency.md
2016-02-27 10:02:10 +05:30
Agus Syahputra
8fa6f79f7e Update managing-transactions-in-multiple-currency.md 2016-02-27 07:22:50 +07:00
Agus Syahputra
f7face6384 Update freeze-accounting-entries.md 2016-02-27 07:08:20 +07:00
Anand Doshi
3ef8d066b9 Merge branch 'develop' 2016-02-26 20:58:26 +05:30
Anand Doshi
18e988e4ce bumped to version 6.23.6 2016-02-26 21:28:26 +06:00
Anand Doshi
7b52dc9f32 [hotfix] added back comment_feed_communication patch 2016-02-26 20:51:33 +05:30
sbkolate
a897882434 enable uom in BOM Table View
reference 
https://discuss.erpnext.com/t/uom-in-item-tables/10733/4
2016-02-26 19:32:11 +05:30
Saurabh
cc7132763f [fixes] set projected qty in Quotaion Item table 2016-02-26 18:33:53 +05:30
Nabin Hait
593bfddb74 Merge branch 'develop' 2016-02-26 17:34:46 +05:30
Nabin Hait
658b3260c2 bumped to version 6.23.5 2016-02-26 18:04:46 +06:00
Nabin Hait
6c30972931 Merge pull request #4883 from nabinhait/time_log_fix
[fix] Time log overlap validation
2016-02-26 17:33:11 +05:30
Umair Sayyed
d1029b54c2 updated manual 2016-02-26 17:32:44 +05:30
Nabin Hait
56f7fa66ad [fix] Time log overlap validation 2016-02-26 17:19:11 +05:30
Nabin Hait
bdf0f0a08d [fix] Show debit note button in purchase invoice 2016-02-26 16:26:28 +05:30
Nabin Hait
8f810c55d2 Merge branch 'develop' 2016-02-26 15:21:02 +05:30
Nabin Hait
eb0c08f328 bumped to version 6.23.4 2016-02-26 15:51:02 +06:00
Nabin Hait
c37c7ed5c6 Merge pull request #4881 from nabinhait/develop
[fix] Show credit note button in sales invoice
2016-02-26 15:18:52 +05:30
Nabin Hait
0f6eac3b35 [fix] Show credit note button in sales invoice 2016-02-26 13:01:32 +05:30
Agus Syahputra
91bd4ce3e1 Update period-closing-voucher.md 2016-02-26 07:45:14 +07:00
Nabin Hait
36c0faa744 Merge branch 'develop' 2016-02-25 19:13:31 +05:30
Nabin Hait
cd3b37dcfe bumped to version 6.23.3 2016-02-25 19:43:31 +06:00
Nabin Hait
55f0834e99 [fix] Show payment button in purchase invoice 2016-02-25 19:12:37 +05:30
Nabin Hait
a45a6005b8 Merge branch 'develop' 2016-02-25 15:18:42 +05:30
Nabin Hait
6107ccd5ea bumped to version 6.23.2 2016-02-25 15:48:42 +06:00
Nabin Hait
737849a0f5 [patch] Update stopped status to close 2016-02-25 15:16:02 +05:30
ShashaQin
ed71e6cea6 Update test_recurring_document.py 2016-02-25 15:47:25 +08:00
ShashaQin
5afca21571 Update test_recurring_document.py 2016-02-25 15:21:14 +08:00
Nabin Hait
7f8a5fe6d2 Merge branch 'develop' 2016-02-25 11:59:39 +05:30
Nabin Hait
6c7c1223c3 bumped to version 6.23.1 2016-02-25 12:29:39 +06:00
Nabin Hait
a1d5494fb3 Merge pull request #4867 from KanchanChauhan/item-group
Added pagination to Products web page
2016-02-25 11:56:30 +05:30
Nabin Hait
e9065677c6 Merge pull request #4866 from neilLasrado/develop
Fixes in Setup Wizard
2016-02-25 11:06:14 +05:30
Nabin Hait
1a9c1c4243 Merge pull request #4868 from nabinhait/bom_fix
[fix] validate BOMs in BOM Replace Tool
2016-02-25 10:41:38 +05:30
Nabin Hait
eb9a794993 Merge pull request #4869 from sbkolate/patch-2
opportunities status fix in Sales Funnel report
2016-02-25 10:41:11 +05:30
ShashaQin
6071ddc3dd Update recurring_document.py 2016-02-25 11:25:24 +08:00
ShashaQin
73c71f9dd5 Update sales_order.json 2016-02-25 11:22:27 +08:00
ShashaQin
2f0a14bda0 Update purchase_order.json 2016-02-25 11:19:56 +08:00
ShashaQin
ae629ad29f Update purchase_invoice.json 2016-02-25 11:17:13 +08:00
ShashaQin
02a38e8b5e Update sales_invoice.json
Add 'Notify by Email' check box and set next_date can be changed by user
2016-02-25 11:13:19 +08:00
sbkolate
f9a9754dab opportunities status fix in Sales Funnel report
reference https://discuss.erpnext.com/t/sales-funnel-not-showing-updated-opportunities/10702/4
2016-02-24 19:25:35 +05:30
Nabin Hait
baa6d96a82 [fix] validate BOMs in BOM Replace Tool 2016-02-24 18:51:13 +05:30
Nabin Hait
980f68a5fa Merge branch 'develop' 2016-02-24 18:19:23 +05:30
Nabin Hait
ed08e88de4 bumped to version 6.23.0 2016-02-24 18:49:22 +06:00
Nabin Hait
40505dcfb1 [change-log] 2016-02-24 18:17:14 +05:30
Neil Trini Lasrado
3c0d5cbab5 Fixes in Setup Wizard 2016-02-24 18:02:08 +05:30
Nabin Hait
ef3d18f127 Merge pull request #4859 from saurabh6790/cart_fixes
Shopping Cart with multi currency and checkout fixes
2016-02-24 17:29:55 +05:30
Kanchan Chauhan
0d6db633f7 Added pagination to Products web page 2016-02-24 17:29:25 +05:30
Saurabh
00212a23e1 [fixes] removed base_grand_total from payment request 2016-02-24 16:50:19 +05:30
Saurabh
6d1dbd6384 [fixes] currency exchange rate and payment gateway account fixes for multicurrency 2016-02-24 15:07:26 +05:30
Saurabh
4a6bbf9b72 [fixes] added filters company and currency to get account, removed account name wise comparison 2016-02-24 15:07:26 +05:30
Saurabh
f54be2c7f0 [fixes] test case fixes for multi-currency check 2016-02-24 15:07:25 +05:30
Saurabh
1864879b91 [fixes] fix grand total calculation for Payment Request and set visibility of Resend Payment Email button 2016-02-24 15:07:25 +05:30
Saurabh
3a2682919a [enhance] set customer payable account to new customer as per payment gateway account currency via cart if cart and checkout is enable 2016-02-24 15:07:25 +05:30
Saurabh
2dc2d671da [clean-up] 2016-02-24 15:07:25 +05:30
Saurabh
7d5b47e113 [fixes] minor fix in test-case 2016-02-24 15:07:25 +05:30
Saurabh
fa32588e72 [fixes] minor fix in test-case 2016-02-24 15:07:25 +05:30
Saurabh
1e800a9ef0 [fixes] multi-currency via payment request 2016-02-24 15:07:25 +05:30
Saurabh
da9e9cdb13 [fixes] minor get_payment_gateway_account 2016-02-24 15:07:24 +05:30
Saurabh
dca6302e15 [fixes] field renaming, cart checkout fixes, JE fixes for multi-currency payment 2016-02-24 15:07:24 +05:30
Saurabh
883cc04701 [fixes] compare attributes in lower case 2016-02-24 15:07:24 +05:30
Nabin Hait
da297dcfc5 [translations] 2016-02-24 14:37:38 +05:30
Anand Doshi
acd1bcffde [fix] changed field type to Code 2016-02-24 12:38:08 +05:30
Nabin Hait
57b30430e4 Merge pull request #4695 from neilLasrado/develop
Material Request of type Manufcture
2016-02-24 12:30:53 +05:30
Nabin Hait
d2d261dc87 Merge pull request #4854 from patilsangram/develop
Removed Stop Button from SO and PO
2016-02-24 11:21:17 +05:30
Nabin Hait
38f470288f Merge pull request #4806 from creador30/productbundle_improvement
Product Bundle improvement
2016-02-24 11:12:47 +05:30
Nabin Hait
1a16a4f394 Merge pull request #4863 from agusputra/patch-17
Update opening-accounts.md
2016-02-24 11:11:06 +05:30
Nabin Hait
5f6e76ee03 Merge pull request #4862 from agusputra/patch-16
Update multi-currency-accounting.md
2016-02-24 11:10:45 +05:30
Agus Syahputra
6338f407d9 Update opening-accounts.md 2016-02-24 07:28:46 +07:00
Agus Syahputra
eeda0460d4 Update multi-currency-accounting.md 2016-02-24 07:26:06 +07:00
creador
4b6b6fe5a8 [fix] unify packing description and packed item description 2016-02-23 22:12:02 +02:00
saurabh
64ec677cf7 deleted extra doctype 2016-02-24 01:07:49 +05:30
patilsangram
a812d67837 [fixes] 2016-02-23 19:04:29 +05:30
Nabin Hait
cfb05e429f Merge pull request #4825 from saurabh6790/git-issues
[enhance] Displaying stock balance while creating quotation
2016-02-23 18:41:14 +05:30
Neil Trini Lasrado
f79760ce2d Mumtiple fixes 2016-02-23 18:35:45 +05:30
Neil Trini Lasrado
0dd8500393 Fixed Documentation 2016-02-23 18:35:44 +05:30
Neil Trini Lasrado
d5e15eaadf Added test cases 2016-02-23 18:35:44 +05:30
Neil Trini Lasrado
fd9dc5e9f5 refactor code in Production Planning Tool 2016-02-23 18:35:44 +05:30
Neil Trini Lasrado
877e2ebff8 Fixed Production PLanning Tool 2016-02-23 18:35:44 +05:30
Neil Trini Lasrado
43114bab71 renamed label of Quantity Requested for Purchase to Requested Quantity in Bin 2016-02-23 18:35:44 +05:30
Neil Trini Lasrado
dddf42560f Added code to update Material Request on Submission of Production Order 2016-02-23 18:35:44 +05:30
Neil Trini Lasrado
abd9248ba6 Rename sales_order_no to sales_order in Material Request Item 2016-02-23 18:35:43 +05:30
Neil Trini Lasrado
0b40ccc43c Removed unwanted code 2016-02-23 18:35:43 +05:30
Neil Trini Lasrado
695bf47a1d changed image feild (type attach) to attach image, removed Image view 2016-02-23 18:35:43 +05:30
Neil Trini Lasrado
e9cd22aff9 Fixed make Prod_order from Material Request 2016-02-23 18:35:43 +05:30
Neil Trini Lasrado
9739dc3639 Added make Production Order button against Material Request 2016-02-23 18:35:42 +05:30
Neil Trini Lasrado
cc23bc0549 Removed Material Request type validation 2016-02-23 18:35:42 +05:30
Neil Trini Lasrado
966e5643c9 Added Material Request Link to Production Order 2016-02-23 18:35:42 +05:30
Neil Trini Lasrado
3353b5ee62 Added material request type Manufacture 2016-02-23 18:35:42 +05:30
Saurabh
ac33724656 [fixes] removed no copy for warehouse field 2016-02-23 18:18:04 +05:30
Saurabh
3724448cd3 [fixes] typo-fixes and fix in balance qty fetching 2016-02-23 18:18:04 +05:30
Saurabh
dcb72c6be7 [enhance] Displaying stock balance while creating quotation 2016-02-23 18:18:04 +05:30
Nabin Hait
3b06aeaffd Merge pull request #4860 from nabinhait/target_variance_fix
[fix] Sales Person target variance report: based on lft and rgt of item group
2016-02-23 18:00:08 +05:30
Nabin Hait
8a59c33e2f [fix] Sales Person target variance report: based on lft and rgt of item group 2016-02-23 15:23:24 +05:30
saurabh
42d5d8390d Resolved conflicts 2016-02-23 13:15:02 +05:30
saurabh
fb71f32ebf conflicts resolved 2016-02-23 02:26:37 +05:30
saurabh
2e2dd0fb42 Documentation of multilingual print format and minor fixes 2016-02-23 02:17:04 +05:30
rohit waghchaure
da321b44cb removed translator 2016-02-23 02:17:04 +05:30
saurabh
9364f35a2c fixed issue of stock_uom translator 2016-02-23 02:17:04 +05:30
saurabh
724b4b17a5 changed method to set code of language 2016-02-23 02:17:03 +05:30
saurabh
fbcf44657c test case for translation doctype 2016-02-23 02:17:03 +05:30
saurabh
c422c23813 import method to load all languages in language field on customer form 2016-02-23 02:17:03 +05:30
saurabh
f703198082 replaced methd 2016-02-23 02:17:03 +05:30
saurabh
ca3e7152d6 removed add fetch method 2016-02-23 02:17:03 +05:30
saurabh
8e49951821 fetch customer or supplier language and set on sales and purchase flow's form 2016-02-23 02:17:03 +05:30
saurabh
65820ed013 added new field language for users 2016-02-23 02:17:03 +05:30
saurabh
533a0f6527 created new file 2016-02-23 02:17:03 +05:30
saurabh
60def66644 added translator into print format 2016-02-23 02:17:02 +05:30
saurabh
24358db7bf changed fieldname from print_language to language 2016-02-23 02:17:02 +05:30
saurabh
648fd33576 removed languages filled methods, added this methods into new file 2016-02-23 02:17:02 +05:30
saurabh
5265aa43e4 added add_fetch method 2016-02-23 02:17:02 +05:30
saurabh
4db3b3cf1e removed add_fetch method 2016-02-23 02:17:02 +05:30
saurabh
29d77be648 pulled languages into the field print language 2016-02-23 02:17:02 +05:30
saurabh
cc7c9e4d0f on selection of supplier pulled default print language 2016-02-23 02:17:02 +05:30
saurabh
b1efceccd4 added field print languages 2016-02-23 02:17:02 +05:30
Nabin Hait
195619e6d4 Merge pull request #4855 from sbkolate/patch-1
better validation example for developer
2016-02-22 18:06:02 +05:30
sbkolate
b17d4035c1 better validation example for developer
throw "past date selected" will freeze the form and user can not correct value of  from_date.
but validated false will just throw the pop-up and user can correct value of from_date and save the form.

Example changed from Event to Task because same is available in Custom Script Help for desk user
2016-02-22 17:16:34 +05:30
Nabin Hait
22230afa0a Merge pull request #4852 from nabinhait/fixes72
Fixes
2016-02-22 16:51:20 +05:30
Nabin Hait
e32f9c3a24 Update reorder_item.py 2016-02-22 16:50:13 +05:30
Nabin Hait
22d8198058 Merge branch 'creador30-reorder_level_zero' into develop 2016-02-22 16:24:55 +05:30
patilsangram
bf2b511988 [Removed Stop Button from SO and PO] 2016-02-22 16:24:23 +05:30
Nabin Hait
38be62c7e3 [fix] Allow auto reorder based on reorder qty, even if reordeer level is zero 2016-02-22 16:24:23 +05:30
Nabin Hait
7736e092e7 Merge branch 'reorder_level_zero' of https://github.com/creador30/erpnext into creador30-reorder_level_zero 2016-02-22 16:19:33 +05:30
Nabin Hait
db746f5bc7 [fix] Condition for Payment and Return button visibility 2016-02-22 16:17:10 +05:30
Nabin Hait
68eb689450 [fix] UOM fixed in Item-wise Purchase History report 2016-02-22 16:17:10 +05:30
Nabin Hait
65ec1bfa81 Merge pull request #4843 from nabinhait/delete_company_trans
minor fix
2016-02-22 15:48:50 +05:30
Roland
ed2849adf9 Create at_austria_chart_Einheitskontenrahmen.json
Austrian Chart of Accounts compiled by fairkom.eu from various sources, among them the official "Österreichishcer Kontenrahmen" published by ÖPWZ - Fachsenat für Betriebswirtschaft und Organisation der Kammer der Wirtschaftstreuhänder Version May 2014. Numbering scheme has been slightly adapted to fit best with ERPnext setup of a company, where the most important accounts are automatically assigned. When using this chart of accounts, feel free to reduce / adapt the accounts - it is not legally binding.
2016-02-22 09:26:54 +01:00
Kanchan Chauhan
49c4aa6ce3 Minor fix 2016-02-19 17:36:52 +05:30
Kanchan Chauhan
2e8cc89e34 Added webform for Job Opening 2016-02-19 17:31:13 +05:30
Nabin Hait
ddcd8c58bf minor fix 2016-02-19 16:09:11 +05:30
Anand Doshi
8fdd4e7b54 Merge branch 'develop' 2016-02-19 13:13:01 +05:30
Anand Doshi
8fc643a815 bumped to version 6.22.1 2016-02-19 13:43:01 +06:00
Anand Doshi
626e8fc03b [change-log] 2016-02-19 13:11:02 +05:30
Anand Doshi
52780cb937 Merge pull request #4841 from nabinhait/escape
[fix] Escaping strings with percentage
2016-02-19 13:01:00 +05:30
Anand Doshi
3bce3f412a Merge pull request #4838 from nabinhait/rounding_gle
[fix] GLE for Rounding loss allowed upto 1 for all transactions except JE
2016-02-19 12:59:54 +05:30
Nabin Hait
1a99cb8bfe [fix] Escaping strings with percentage 2016-02-19 12:45:57 +05:30
rohit waghchaure
ff321763cf removed translator 2016-02-19 12:02:02 +05:30
saurabh
5a265408a3 fixed issue of stock_uom translator 2016-02-19 11:46:29 +05:30
saurabh
c26c6c368c changed method to set code of language 2016-02-19 11:46:29 +05:30
saurabh
f1949781d6 test case for translation doctype 2016-02-19 11:46:29 +05:30
saurabh
755fefbfd4 import method to load all languages in language field on customer form 2016-02-19 11:46:29 +05:30
saurabh
3c2a10bf9f replaced methd 2016-02-19 11:46:28 +05:30
saurabh
49c9746816 removed add fetch method 2016-02-19 11:46:28 +05:30
saurabh
c2dae35966 fetch customer or supplier language and set on sales and purchase flow's form 2016-02-19 11:46:28 +05:30
saurabh
a1c3ea2f86 added new field language for users 2016-02-19 11:46:28 +05:30
saurabh
3dcd4f3682 created new file 2016-02-19 11:46:28 +05:30
saurabh
a6f57e1c4b added translator into print format 2016-02-19 11:46:28 +05:30
saurabh
2192ffe5af changed fieldname from print_language to language 2016-02-19 11:46:28 +05:30
saurabh
6b6977a090 removed languages filled methods, added this methods into new file 2016-02-19 11:46:28 +05:30
saurabh
c14f2c29b9 added add_fetch method 2016-02-19 11:46:27 +05:30
saurabh
5d45176a1d removed add_fetch method 2016-02-19 11:46:27 +05:30
saurabh
b4079095fb pulled languages into the field print language 2016-02-19 11:46:27 +05:30
saurabh
3ec7649bae on selection of supplier pulled default print language 2016-02-19 11:46:27 +05:30
saurabh
844cb5c810 added field print languages 2016-02-19 11:46:27 +05:30
Anand Doshi
6e8eaf097a [fix] test case of Leave Application 2016-02-19 00:27:02 +05:30
Anand Doshi
6dc83b356a Merge pull request #4839 from neilLasrado/typos
Typo Fixes
2016-02-18 19:55:43 +05:30
Neil Trini Lasrado
f5a39d628f Typo Fixes 2016-02-18 19:19:07 +05:30
Nabin Hait
fb24a27201 [fix] GLE for Rounding loss allowed upto 1 for all transactions except JE 2016-02-18 19:18:07 +05:30
Nabin Hait
fa413bbab2 Update accounts_controller.py 2016-02-18 18:23:31 +05:30
Anand Doshi
d843ec5fee Merge pull request #4831 from neilLasrado/typos
Typo fixes in Accounts Module
2016-02-18 17:24:17 +05:30
Nabin Hait
67f40775ff Update accounts_controller.py 2016-02-18 17:10:42 +05:30
Nabin Hait
7209cff29a Merge pull request #4832 from revant/patch-1
Need to use set_balance_in_account_currency
2016-02-18 17:02:43 +05:30
Revant Nandgaonkar
78a62fe123 change args of set_balance_in_account_currency
https://github.com/frappe/erpnext/pull/4832
2016-02-18 16:48:35 +05:30
Anand Doshi
d9dc9e4616 Merge pull request #4827 from anandpdoshi/fix/bank-reconciliation-grid
[fix] Show Debit/Credit in Bank Reconciliation table
2016-02-18 16:14:56 +05:30
Revant Nandgaonkar
5da941b82c Need to use set_balance_in_account_currency
b9ad5178e4
needed to make GL Entry
2016-02-18 16:02:05 +05:30
Anand Doshi
bd0086c1c7 Merge pull request #4826 from anandpdoshi/fix/return-warehouse-mandatory
[fix] Warehouse not mandatory for Purchase Invoice or a Sales Invoice without Update Stock
2016-02-18 15:02:11 +05:30
Anand Doshi
deccbabcc1 Merge pull request #4824 from vjFaLk/att-report-fix
"Left" Employees now show up in Monthly Attendance Report
2016-02-18 14:54:28 +05:30
Neil Trini Lasrado
8e7240a556 Typo fixes in Accounts Module 2016-02-18 14:38:36 +05:30
Anand Doshi
828d5ffaab [fix] Show Debit/Credit in Bank Reconciliation table 2016-02-17 18:31:58 +05:30
Anand Doshi
ed8d9dadfa [fix] Warehouse not mandatory for Purchase Invoice or a Sales Invoice without Update Stock 2016-02-17 17:14:11 +05:30
Valmik Jangla
7ae844f0a0 Minor fix 2016-02-17 15:06:30 +05:30
Valmik Jangla
b7ae1c1076 Inactive employees show up in report 2016-02-17 15:05:35 +05:30
Anand Doshi
5136a64d12 Merge pull request #4822 from neilLasrado/hr-fix
[minor] - fixed image view issues in Employee master.
2016-02-17 13:27:25 +05:30
Anand Doshi
123ca0fdcd Merge branch 'develop' 2016-02-17 13:02:26 +05:30
Anand Doshi
1d77452fe0 bumped to version 6.22.0 2016-02-17 13:32:25 +06:00
Neil Trini Lasrado
25ab93a881 Changed image in employee from Attach to Attach Image, removed image view 2016-02-17 13:00:37 +05:30
Anand Doshi
9c0983f1b6 [translations] 2016-02-17 12:59:54 +05:30
Anand Doshi
9aaa6e3ea0 [change-log] 2016-02-17 12:26:28 +05:30
Anand Doshi
65397f6de1 Merge branch 'vjFaLk-make-employee' into develop 2016-02-16 15:53:18 +05:30
Anand Doshi
870d0441a8 [minor] moved make_employee from Employee to Offer Letter 2016-02-16 15:53:09 +05:30
Valmik Jangla
5e771c5678 Changed doclist to doc 2016-02-16 15:33:35 +05:30
Valmik Jangla
93b1072cba Improved code 2016-02-16 15:33:35 +05:30
Valmik Jangla
bddc80bc66 Make Employee from Offer Letter 2016-02-16 15:33:35 +05:30
Anand Doshi
1b8ca1712c Merge branch 'ShashaQin-patch-25' into develop 2016-02-16 15:30:31 +05:30
Anand Doshi
9a933788be [cleanup] Compact Item Print 2016-02-16 15:30:17 +05:30
ShashaQin
541abf5687 Update item_table_description.html 2016-02-16 15:07:09 +05:30
ShashaQin
fd08750e1c Update print_settings.py 2016-02-16 15:07:09 +05:30
ShashaQin
426bf4b5bb Update features_setup.json 2016-02-16 15:07:09 +05:30
ShashaQin
2331d4f9a1 Update features_setup.json 2016-02-16 15:07:09 +05:30
ShashaQin
c77669f3d1 Update item_table_description.html 2016-02-16 15:07:09 +05:30
ShashaQin
429ab205d4 Update print_settings.py 2016-02-16 15:07:09 +05:30
Javier Wong
3d1f01ffc1 Fixed Get Open Sales Orders with Item Filter
Previously Get Open Sales Orders with Item Filter does not filter properly and instead returns Sales Orders with all Items.
2016-02-16 14:40:18 +05:30
Anand Doshi
1d866e8ae0 Merge pull request #4815 from makeen/fix_add_subscribers
[fix] add subscribers even though some emails are invalid
2016-02-16 14:36:31 +05:30
Anand Doshi
d4069fa634 Merge pull request #4814 from rmehta/exclude-bom-from-delete-company
[fix] exclude BOM from delete company records and unset company in others
2016-02-16 14:33:21 +05:30
Anand Doshi
a8ad388fba Merge pull request #4811 from anandpdoshi/fix/trial-balance-fiscal-year
[fix] validate Fiscal Year in Trial Balance
2016-02-16 14:31:57 +05:30
Anand Doshi
c83802fae1 [fix] Setup Wizard: use correct customer, supplier name in create contact. Fixes #4804. 2016-02-16 13:30:17 +05:30
Anand Doshi
efef236fdf Merge pull request #4800 from agusputra/patch-15
Update payment-request.md
2016-02-16 13:18:29 +05:30
Anand Doshi
561e6cd27b [fix] Trial Balance to General Ledger: use data.from_date and data.to_date 2016-02-16 11:56:53 +05:30
Anand Doshi
5f72504de1 [enhancement] Expense Claim - View Bank Entries 2016-02-15 18:02:38 +05:30
makeen
4741182b25 [fix] add subscribers even though some emails are invalid 2016-02-15 10:58:12 +01:00
Rushabh Mehta
771568f42a [fix] exclude BOM from delete company records and unset company in others 2016-02-15 15:17:34 +05:30
Anand Doshi
620252cadb [fix] validate Fiscal Year in Trial Balance 2016-02-15 12:03:04 +05:30
Anand Doshi
6921894f8e Merge branch 'develop' 2016-02-15 11:53:57 +05:30
Anand Doshi
0e553aa6b8 bumped to version 6.21.6 2016-02-15 12:23:57 +06:00
Anand Doshi
39a289145c [fix] fetch price list rate 2016-02-15 11:42:18 +05:30
creador
e156cd6379 Product Bundle improvement
This change allows addition of multiple instances of the same product
inside a product bundle, if each has a different description in the
bundle list (thus no duplicates).

We use product bundles to include scrap material into our stock
calculations. Here we need to enter the same product with different
quantities into the same bundle. We explicitly specify scrap in the
description of each line in product bundle.
2016-02-14 12:22:10 +02:00
creador
e71fa9210f Allow reorder_level to be set to 0
For items you don’t want to keep in stock, you can set the
reorder_level to 0 and define reorder_qty.

If there is e.g. a sales order for that item, the projected quantity
will fall below 0, which will trigger an automatic material request.
2016-02-14 11:58:21 +02:00
Agus Syahputra
e9a1f1c5d8 Update payment-request.md 2016-02-13 10:35:42 +07:00
Rushabh Mehta
f69b79fd16 Merge branch 'develop' 2016-02-12 13:12:49 +05:30
Rushabh Mehta
2e9f10934f bumped to version 6.21.5 2016-02-12 13:42:48 +06:00
Rushabh Mehta
cc57088f5c Merge pull request #4792 from anandpdoshi/optimize/stock-balance-report
[optimization] stock balance report - force index + improve memory usage
2016-02-12 13:09:15 +05:30
Anand Doshi
4b249fe8ec [optimization] stock balance report - force index + improve memory usage 2016-02-11 20:38:01 +05:30
Rushabh Mehta
eab1671214 [fix] [pos] refresh party field, fixes #4789 2016-02-11 18:35:59 +05:30
Rushabh Mehta
6f574cd60f [minor] do not commit pay-to-recd from in journal entry 2016-02-11 14:27:28 +05:30
Rushabh Mehta
4bef7a3a52 Merge branch 'develop' 2016-02-11 12:41:22 +05:30
Rushabh Mehta
580933998e bumped to version 6.21.4 2016-02-11 13:11:22 +06:00
Rushabh Mehta
b4a56bc45e Merge pull request #4790 from rmehta/map-custom-fields
[minor] map custom fields from delivery note to packing slip
2016-02-11 12:18:04 +05:30
Rushabh Mehta
adee283caf [minor] map custom fields from delivery note to packing slip 2016-02-11 11:58:50 +05:30
Rushabh Mehta
f2763d7abe [cleanup] warranty claim form 2016-02-11 11:06:15 +05:30
Rushabh Mehta
1652839086 [minor] [fix] address trigger in warranty claim 2016-02-11 11:06:15 +05:30
Nabin Hait
abfadce7d9 Merge branch 'develop' 2016-02-10 16:11:58 +05:30
Nabin Hait
1ec626f39b bumped to version 6.21.3 2016-02-10 16:41:58 +06:00
Nabin Hait
9bc0d18996 Merge pull request #4785 from nabinhait/fix55
[fix] Test case fixed
2016-02-10 16:08:42 +05:30
Nabin Hait
7e02831897 [fix] Test case fixed 2016-02-10 15:54:52 +05:30
Rushabh Mehta
c54d7ec445 Merge pull request #4768 from umairsy/feb-1st-week
Updated help on manufacturing module.
2016-02-10 15:44:42 +05:30
Rushabh Mehta
a4faffb813 Merge pull request #4783 from nabinhait/fixes54
[fix] call get_party_account only if party is set
2016-02-10 15:24:03 +05:30
Umair Sayyed
4715df1518 Removed current directory 2016-02-10 15:19:35 +05:30
Umair Sayyed
fc8d0f6ac7 help on manufacturing module 2016-02-10 15:19:35 +05:30
Rushabh Mehta
dc83bb8d18 Merge branch 'develop' 2016-02-10 14:51:18 +05:30
Rushabh Mehta
477ddf9119 bumped to version 6.21.2 2016-02-10 15:21:18 +06:00
Nabin Hait
ef864403a1 [fix] call get_party_account only if party is set 2016-02-10 14:47:25 +05:30
Anand Doshi
4fcf7bf01a [minor] Setup Wizard sample data: Clear Fiscal Year Error message 2016-02-10 14:35:48 +05:30
Anand Doshi
bb514467f6 Merge branch 'develop' 2016-02-10 13:19:17 +05:30
Anand Doshi
bec7e79ee8 bumped to version 6.21.1 2016-02-10 13:49:17 +06:00
Anand Doshi
247a8eedce [minor] fix add_comment 2016-02-10 13:17:40 +05:30
Rushabh Mehta
cc35f62514 Merge pull request #4781 from nabinhait/develop
Payment Request Fixes
2016-02-10 13:13:27 +05:30
Rushabh Mehta
8d1c7a2524 [fix] call get_party_account only if party is set 2016-02-10 13:08:42 +05:30
Nabin Hait
3070deb295 Packing Slip layout changes 2016-02-10 13:07:42 +05:30
Nabin Hait
e1f6e60cea [fix] Payment Request Fixes 2016-02-10 13:07:42 +05:30
Rushabh Mehta
3aa14f54b7 [fix] installation note item description to Text Editor 2016-02-10 11:56:05 +05:30
Rushabh Mehta
75de2238d1 Merge branch 'develop' 2016-02-09 12:45:25 +05:30
Rushabh Mehta
826900822c bumped to version 6.21.0 2016-02-09 13:15:24 +06:00
Rushabh Mehta
6584240277 [change log] 2016-02-09 12:35:51 +05:30
Rushabh Mehta
dd408d82da [translations] 2016-02-09 12:24:56 +05:30
Rushabh Mehta
5ddb8ea124 Merge pull request #4773 from agusputra/patch-14
Update search-record-by-specific-field.md
2016-02-09 11:20:19 +05:30
Rushabh Mehta
7f3983a3d6 Merge pull request #4769 from rmehta/pricing-rule-on-variant
[fix] pricing rule for variant, if rule for template available, use it
2016-02-09 11:20:00 +05:30
Rushabh Mehta
0c70a4ceb3 Merge pull request #4775 from nabinhait/advance32
[fix] validate advance only if invoice total is positive
2016-02-09 10:36:29 +05:30
Nabin Hait
adc0923c7e [fix] validate advance only if invoice total is positive 2016-02-09 10:32:41 +05:30
Agus Syahputra
cb7337f466 Update search-record-by-specific-field.md 2016-02-09 09:20:26 +07:00
Rushabh Mehta
b38fac8bf1 Merge pull request #4770 from agusputra/patch-13
Update managing-dynamic-link-fields.md
2016-02-09 07:45:20 +05:30
Agus Syahputra
68e6919d41 Update managing-dynamic-link-fields.md 2016-02-09 01:04:01 +07:00
Rushabh Mehta
57ebde2b9e Merge pull request #4765 from agusputra/patch-12
Update allow-fields-to-be-changed-after-submit.md
2016-02-08 18:53:51 +05:30
Rushabh Mehta
10663ab37f Merge pull request #4762 from nabinhait/multifixes3
Advance adjustment in invoice cannot be greater than grand total
2016-02-08 18:53:27 +05:30
Rushabh Mehta
0a67c9715c Merge pull request #4766 from nabinhait/permlevel1
[fix] Read permission to All for permlevel 1 fields
2016-02-08 18:52:03 +05:30
Rushabh Mehta
c403ce3b4f Merge pull request #4763 from rmehta/leave-app-cleanup
[cleanup] leave application
2016-02-08 18:51:29 +05:30
Rushabh Mehta
3cdf9e4105 Merge pull request #4764 from rmehta/remove-default-warehouse
[enhancement] default warehouse not mandatory in time, re-order level and re-order qty must always be set per warehosue
2016-02-08 18:51:01 +05:30
Rushabh Mehta
3cdf3544fb [enhancement] default warehouse not mandatory in time, re-order level and re-order qty must always be set per warehosue 2016-02-08 18:50:40 +05:30
Rushabh Mehta
faf9b589c4 [fix] pricing rule for variant, if rule for template available, use it 2016-02-08 18:49:27 +05:30
Rushabh Mehta
060f32d452 [fix] [minor] reset naming series in delete_company_transactions.py 2016-02-08 17:57:14 +05:30
Nabin Hait
4c6af87ad0 [fix] Read permission to All for permlevel 1 fields 2016-02-08 16:56:19 +05:30
Rushabh Mehta
a064e3a200 [minor] validate address template before saving 2016-02-08 14:51:14 +05:30
Anand Doshi
1106524121 Merge pull request #4644 from anandpdoshi/enhancement/comment-feed-communication-merge
[enhancement] Merge Comment and Feed into Communication 💥
2016-02-08 13:54:48 +05:30
Agus Syahputra
451ee87e9f Update allow-fields-to-be-changed-after-submit.md 2016-02-08 15:16:42 +07:00
Anand Doshi
17d4fc4fa7 [enhancement] Merge Comment and Feed into Communication 💥
Depends on frappe/frappe#1532
2016-02-08 13:06:56 +05:30
Rushabh Mehta
6bd9f7f5f0 [minor] catch duplicate entry error in bank account creation 2016-02-08 12:09:01 +05:30
Nabin Hait
289ffb788c [fix] Advance adjustment in invoice cannot be greater than grand total 2016-02-08 11:07:00 +05:30
Nabin Hait
45805622e4 [fix] Serial no query in Quality Inspection 2016-02-08 11:06:59 +05:30
Rushabh Mehta
467f5c7a75 Merge pull request #4751 from agusputra/patch-11
Update calendar.md
2016-02-08 10:59:06 +05:30
Rushabh Mehta
ca2ce13817 Merge pull request #4748 from vjFaLk/Monthly-attendance-fix
Employees with no attendance show up as blank now
2016-02-08 10:58:45 +05:30
Rushabh Mehta
57fb74f262 Merge pull request #4742 from nabinhait/multifixes1
Multi fixes
2016-02-08 10:55:48 +05:30
Rushabh Mehta
cde997edfa [cleanup] leave application 2016-02-08 10:53:22 +05:30
Nabin Hait
2b8472fe54 Merge pull request #4744 from ccfiel/develop
undo bank recon.
2016-02-08 10:45:55 +05:30
Rushabh Mehta
65ade073a9 Merge pull request #4733 from ShashaQin/patch-15
Update leave_application.py
2016-02-08 10:22:09 +05:30
Rushabh Mehta
e881b40ab2 Merge pull request #4759 from Tropicalrambler/patch-2
Corrected typo while translating
2016-02-08 10:10:57 +05:30
Rushabh Mehta
903f675b32 Merge pull request #4761 from Tropicalrambler/patch-4
Duplicate last line delete
2016-02-08 09:12:47 +05:30
Tropicalrambler
3ebd956090 Duplicate last line delete
Deleted the last line which was duplicated. Both read exactly the same.  Only one line is necessary.
2016-02-07 18:56:44 -06:00
Tropicalrambler
b01f1d2486 Corrected typo while translating
Found a switch of letters:  "wrokstation" instead of "workstation".  Corrected the item appropriately.  Found this while translating my fork of this page to spanish.
2016-02-07 16:39:12 -06:00
Agus Syahputra
4c0c69b388 Update calendar.md 2016-02-07 11:45:10 +07:00
Rushabh Mehta
16d58560a0 Merge pull request #4750 from agusputra/patch-10
Update wesite-home-page.md
2016-02-06 09:40:05 +05:30
Rushabh Mehta
dd556e7a89 Merge pull request #4749 from agusputra/patch-9
Update blogger.md
2016-02-06 09:39:36 +05:30
Agus Syahputra
12acd11814 Update wesite-home-page.md 2016-02-06 08:13:29 +07:00
Agus Syahputra
c4d3283879 Update blogger.md 2016-02-06 07:21:42 +07:00
Valmik Jangla
de7e760788 Employees with no attendance show up as blank 2016-02-05 17:46:14 +05:30
Nabin Hait
c2268caaf7 Merge pull request #4740 from vjFaLk/holiday-report-improvements
Added From and To date to Holiday Report
2016-02-05 15:13:11 +05:30
Valmik Jangla
235de6566e Minor fix 2016-02-05 15:07:16 +05:30
Nabin Hait
acd9040346 Merge pull request #4746 from agusputra/patch-8
Update overwriting-data-from-data-import-tool.md
2016-02-05 14:38:22 +05:30
Agus Syahputra
e24cfdc556 Update overwriting-data-from-data-import-tool.md 2016-02-05 08:27:20 +07:00
Chris Ian Fiel
53a46f68a2 Merge pull request #1 from ccfiel/ccfiel-patch-1
Update bank_reconciliation.py
2016-02-04 22:12:41 +08:00
Chris Ian Fiel
af667f77e6 Update bank_reconciliation.py
set to null if clearance_date is blank because if not it will set it just 0000-00-00.
2016-02-04 22:10:36 +08:00
Nabin Hait
ce4e8ec178 Merge pull request #4737 from ShashaQin/patch-18
Gross Profit report improvement
2016-02-04 17:26:20 +05:30
Nabin Hait
4129ae5395 [fix] Translations in Stock balance report 2016-02-04 17:22:57 +05:30
Nabin Hait
92c6c617de [fix] Remove filters on item group in territory and sales person target settings 2016-02-04 17:22:57 +05:30
Nabin Hait
a731ad4433 [fix] Set party account on chnage of company 2016-02-04 17:22:57 +05:30
Nabin Hait
3110c4a772 [fix] Make bank entry from expense claim 2016-02-04 17:22:57 +05:30
Rushabh Mehta
d50356dbab [docs] remove /docs/current from repo, they are re-built anyways 2016-02-04 17:10:24 +05:30
Rushabh Mehta
d1ba86a952 Merge branch 'develop' of github.com:frappe/erpnext into develop 2016-02-04 17:09:18 +05:30
Nabin Hait
03f7aa9dab Merge pull request #4741 from ShashaQin/patch-20
Report Improvement -  Item Wise Sales/Purchase History report
2016-02-04 14:38:29 +05:30
ShashaQin
8c63697f41 Update item_wise_purchase_history.json 2016-02-04 16:46:46 +08:00
ShashaQin
e7dccca782 Update item_wise_sales_history.json 2016-02-04 16:44:18 +08:00
Valmik Jangla
8d0ed21c04 Added From and To date to Holiday Report
Changed HD to H in Monthly Attendance Report
2016-02-04 12:18:55 +05:30
ShashaQin
bcc56a4557 Update gross_profit.py
Gross Profit report improvement
2016-02-04 11:45:00 +08:00
Rushabh Mehta
7bb2f3a27b [fix] newsletter priority 2016-02-03 16:20:59 +05:30
Nabin Hait
2d4cc7e71f Merge branch 'develop' 2016-02-03 15:23:56 +05:30
Nabin Hait
fba61abd2a bumped to version 6.20.0 2016-02-03 15:53:56 +06:00
Nabin Hait
94bfe8ea0d [change-log] 2016-02-03 15:14:17 +05:30
Nabin Hait
31619f0a83 [docs] 2016-02-03 15:13:55 +05:30
Nabin Hait
34037e0d88 [translations] 2016-02-03 13:11:06 +05:30
Nabin Hait
647102fc94 Merge pull request #4729 from vjFaLk/doc-update
Updated documentation for new features
2016-02-03 13:01:02 +05:30
Nabin Hait
a533b33fc6 Merge pull request #4730 from nabinhait/ShashaQin-patch-8
Financial Statements: Accumulated periodic balance based on filters
2016-02-03 12:55:36 +05:30
ShashaQin
995a71c854 Update leave_application.py
fix half day leave issue
2016-02-03 13:10:15 +08:00
Nabin Hait
bd7f48cfd4 [report] Financial Statements: Accumulated periodic balance based on filters 2016-02-02 19:05:43 +05:30
Nabin Hait
82cef59fb3 [fix] Purchase Return warehouse validation 2016-02-02 19:05:43 +05:30
ShashaQin
cc6ce5beac Update financial_statements.py 2016-02-02 19:05:42 +05:30
ShashaQin
15d7224335 Update balance_sheet.py 2016-02-02 19:05:42 +05:30
ShashaQin
1f51e71827 Update profit_and_loss_statement.py 2016-02-02 19:05:42 +05:30
ShashaQin
539a826b37 Update financial_statements.js
Adding Accumulated Values check box on Profit and Loss, Balance Sheet
2016-02-02 19:05:42 +05:30
Valmik Jangla
0ec9b90113 Updated documentation 2016-02-02 18:29:09 +05:30
Nabin Hait
49b275ad1d Merge pull request #4704 from chaoyee/develop
Update material_request.py
2016-02-02 16:11:35 +05:30
Nabin Hait
7957f0ecea Merge pull request #4726 from nabinhait/develop
Multiple fixes
2016-02-02 16:08:40 +05:30
Nabin Hait
3c55d89f7f [minor] Reference doctype in Item-wise price List Rate report 2016-02-01 15:55:09 +05:30
Nabin Hait
d5fda57297 [fix] Ignore permissions and made Customer warehouse field hidden in selling cycle 2016-02-01 15:55:09 +05:30
Nabin Hait
a85a1ff145 [fix] Validate rate with reference doc 2016-02-01 15:55:09 +05:30
Nabin Hait
afb8ec9cb6 [fix] Validate company abbr 2016-02-01 15:55:09 +05:30
Nabin Hait
8b92de26f0 Merge pull request #4718 from vjFaLk/holiday-fix
Fixed issue where no Holidays would cause the report to break
2016-02-01 15:49:15 +05:30
Nabin Hait
fcd4f2b86b Merge pull request #4706 from vrms/vrms-patch-1
Update implementation-strategy.md
2016-02-01 15:47:57 +05:30
Nabin Hait
1277a61dad Merge pull request #4720 from agusputra/patch-7
Update delete-a-company-and-all-related-transactions.md
2016-02-01 15:47:07 +05:30
Nabin Hait
767d5e48e7 Merge pull request #4723 from ShashaQin/patch-12
Stock Reconciliation Improvements
2016-02-01 15:38:48 +05:30
ShashaQin
ed11e93b25 Update stock_reconciliation.py
exclude 'disabled' item when get items
2016-02-01 16:54:19 +08:00
ShashaQin
1d702bf112 Update stock_reconciliation_item.json
Update valuation rate description. This description will be shown on downloaded template in order to input valuation rate correct.
2016-02-01 16:51:01 +08:00
Anand Doshi
43cdf792f9 Merge pull request #4715 from agusputra/patch-6
Update stock-reconciliation-for-non-serialized-item.md
2016-02-01 14:17:24 +05:30
Anand Doshi
687888133b Merge pull request #4716 from agusputra/patch-5
Update authorization-rule.md
2016-02-01 14:17:04 +05:30
Agus Syahputra
e0825aaea9 Update delete-a-company-and-all-related-transactions.md 2016-02-01 08:20:36 +07:00
Valmik Jangla
0a76b8b29a Fixed issue where no Holidays would cause the report to break 2016-01-30 10:59:40 +05:30
Agus Syahputra
0277dbc6b6 Update stock-reconciliation-for-non-serialized-item.md 2016-01-30 07:28:28 +07:00
Agus Syahputra
93a69e9485 Update authorization-rule.md 2016-01-29 23:41:46 +07:00
Anand Doshi
6e33d91443 [minor] fixes to attendance tool and employee holiday attendance 2016-01-29 16:57:54 +05:30
Valmik Jangla
07364f5ece Feature - Employee Attendance Tool 2016-01-29 16:57:54 +05:30
Valmik Jangla
1890c794d7 Added Employee Report Attendance Report
Made Holiday details mandatory
2016-01-29 16:57:54 +05:30
Chao-Yee Hsu 許朝益
71a9be8add Update material_request.py
Add "order by mr_item.item_code ASC" to 'get_material_requests_based_on_supplier(supplier)' in order to get material request item sorted by ascending order.
2016-01-29 18:45:22 +08:00
Anand Doshi
fd131a4210 Merge pull request #4699 from neilLasrado/tl-fix
Fixes in Time Log list view
2016-01-29 15:51:24 +05:30
shreyas
1a943151d7 [Refactor/Cleanup] Cleaned debug print statement
Refactored code to use format() instead of string formatting using %s
2016-01-29 15:41:45 +05:30
shreyas
c761f1b0a1 [Minor] Cleanup 2016-01-29 15:41:44 +05:30
shreyas
e970ddcee9 [Fix]
1. Sales Person wise transaction report
2. Sales Person wise target variance report
3. Sales order trend report generation for selection in group by feild
2016-01-29 15:41:44 +05:30
shreyas
51db2ba22a [Partial]Fixed Sales person target variance report 2016-01-29 15:41:44 +05:30
shreyas
cbc18ffdbf [Partial] Fixed the issue for Territory Item Group Variance report 2016-01-29 15:41:44 +05:30
Neil Trini Lasrado
5b7d0a960e Fixed indicators & List view in Time Log, Time Log Batch 2016-01-29 15:20:22 +05:30
Neil Trini Lasrado
172efb1e87 Fixed error messages while making Time Log Batch from Time Log List view 2016-01-29 14:27:03 +05:30
Anand Doshi
95760a7db6 Merge pull request #4680 from shyjuk/patch-1
Update index.md
2016-01-29 12:19:14 +05:30
Anand Doshi
9c24bec654 Merge branch 'nabinhait-mc_fix_5' into develop 2016-01-29 12:16:35 +05:30
Anand Doshi
7c0a58ac3f [fix] show formatted currency value in advance paid validation 2016-01-29 12:16:24 +05:30
Anand Doshi
77e4f6b774 [fix] strip item_code before autoname 2016-01-29 11:29:36 +05:30
Nabin Hait
5bedd649df Merge pull request #4691 from anandpdoshi/cleanup/remove-is-service-item
[cleanup] Removed 'Is Service Item' checkbox and filters
2016-01-29 11:10:54 +05:30
Anand Doshi
7207d21962 Merge pull request #4694 from umairsy/21-jan
Updated articles
2016-01-29 11:09:35 +05:30
Chao-Yee Hsu 許朝益
c118fc9343 Update material_request.py
Add "order by mr_item.item_code ASC" to 'get_material_requests_based_on_supplier(supplier)' in order to get material request item sorted by ascending order.
2016-01-29 10:38:33 +08:00
Rushabh Mehta
bad13369d4 [minor] added abbreviate function in company 2016-01-27 18:58:21 +05:30
Umair Sayyed
bf225c11b4 fixed articles 2016-01-27 18:19:31 +05:30
Umair Sayyed
694edbc89a updated articles 2016-01-27 18:19:31 +05:30
Umair Sayyed
6406f8bda0 discount article 2016-01-27 18:19:30 +05:30
Umair Sayyed
2901e14c59 articles 2016-01-27 18:19:30 +05:30
Umair Sayyed
5204eeedf7 articles 2016-01-27 18:19:30 +05:30
Nabin Hait
ee8f88d641 [patch] Set party account currency in existing orders 2016-01-27 16:01:31 +05:30
Nabin Hait
b2206d1155 [fix] Multi currency advance payment against Order 2016-01-27 15:43:24 +05:30
Anand Doshi
c54e25b5c7 Merge branch 'develop' 2016-01-27 14:20:19 +05:30
Anand Doshi
6e36a48521 bumped to version 6.19.0 2016-01-27 14:50:19 +06:00
Anand Doshi
eca2e42ecb [fix] patch title field of Pricing Rule 2016-01-27 12:36:36 +05:30
Anand Doshi
d7f7d5c9db [translations] 2016-01-27 12:36:36 +05:30
Anand Doshi
37b0f7ca47 [language] Added Estonian, Telugu and Urdu. Fixes frappe/translator#64 and frappe/translator#66 2016-01-27 12:36:35 +05:30
Anand Doshi
f4d5a66162 [change log] 2016-01-27 12:36:35 +05:30
Anand Doshi
a84186c209 Merge pull request #4692 from agusputra/patch-3
Update terms-and-conditions.md
2016-01-27 12:26:34 +05:30
Agus Syahputra
eb4c299bdb Update terms-and-conditions.md 2016-01-27 09:34:00 +07:00
Anand Doshi
5b1b2fb858 Merge branch 'shreyasp-disable_cust_supp' into develop 2016-01-26 16:41:11 +05:30
shreyas
eba9ca4d66 [Minor]Change to maintain args ordering convention 2016-01-26 16:29:26 +05:30
Anand Doshi
01de945388 [cleanup] Removed 'Is Service Item' checkbox and filters
'Is Service Item' checkbox only worked for filtering Items in Maintenance Schedule and Maintenance Visit, and validating that Items in a Maintenance type Order were of type 'Service'. However, it doesn't fit an actual use case where any Sales Item could be given for Maintenance, making the checkbox an unnecessary addition.
2016-01-26 16:22:51 +05:30
shreyas
79872bf62c [Refactor]Changed variable name to avoid conflict between args and local variable 2016-01-26 13:57:06 +05:30
shreyas
c8ac3b042b [Minor]Refactored code for better readability 2016-01-26 13:23:38 +05:30
shreyas
f76853a8d9 [Minor]Changed CustomerDisabled and CustomerFrozen to PartyDisabled and PartyFrozen 2016-01-25 21:25:11 +05:30
shreyas
323dc96c99 [Travis] Fixed reference failure in party.py 2016-01-25 18:19:14 +05:30
shreyas
2563f404d2 [Minor Change] Updated queries.py 2016-01-25 18:19:14 +05:30
shreyas
29b565fdf5 Added Disabled field to Supplier and Customer doctype
Frozen field is moved to More Information section for Customer and Supplier. Any Supplier/Customer which is disabled will not be shown while creating PO/SO
2016-01-25 18:19:13 +05:30
Anand Doshi
2ea5c6913d Merge pull request #4685 from shreyasp/supplier-credit-fix
Added the credit_days_based_on field to Supplier and Supplier Type doctype
2016-01-25 17:58:21 +05:30
Anand Doshi
5dcb40bc96 Merge pull request #4687 from anandpdoshi/fix/recurring-docs-no-copy
[fix] obey no_copy while creating recurring documents
2016-01-25 17:27:04 +05:30
Anand Doshi
c07489a096 [fix] Journal Entry: init debit/credit in account currency 2016-01-25 17:23:36 +05:30
Anand Doshi
39e2c2bb09 [fix] obey no_copy while creating recurring documents 2016-01-25 17:03:50 +05:30
Rushabh Mehta
e1a1c8ac31 [minor] clean up message if no Customer from Quotation > Sales Order, fixes #3854 2016-01-25 13:08:32 +05:30
shreyas
28a6578ba2 Added the credit_days_based_on field to Supplier and Supplier Type doctype 2016-01-25 12:44:14 +05:30
Shyju Kanaprath
932cf08aee Update index.md 2016-01-24 10:00:29 +05:30
Anand Doshi
47c2aa179b [fix] test case for get_item_details 2016-01-21 23:18:08 +05:30
Anand Doshi
f7e9a9d786 Merge branch 'develop' 2016-01-21 22:32:08 +05:30
Anand Doshi
04230cb656 bumped to version 6.18.4 2016-01-21 23:02:08 +06:00
Anand Doshi
54abf025b7 [hotfix] get_price_list_rate 2016-01-21 22:28:55 +05:30
Anand Doshi
39ac535bdb Merge branch 'develop' 2016-01-21 21:06:34 +05:30
Anand Doshi
dd74b5d44f bumped to version 6.18.3 2016-01-21 21:36:34 +06:00
Anand Doshi
afe85bdd04 [hotfix] use me.frm.doc in get_item_details 2016-01-21 21:04:16 +05:30
Nabin Hait
e4b44a86a6 Merge branch 'develop' 2016-01-21 18:53:36 +05:30
Nabin Hait
a1ccab81a0 bumped to version 6.18.2 2016-01-21 19:23:36 +06:00
Nabin Hait
cf3b318f7d Changes modified date 2016-01-21 18:52:25 +05:30
Nabin Hait
568054ab96 [fix] Make Delivery Note from Sales Invoice 2016-01-21 18:50:28 +05:30
Nabin Hait
0d207706c1 [fix] Get item details 2016-01-21 18:47:09 +05:30
Nabin Hait
3d5a6af1ae Delete Screenshot from 2014-11-18 18:13:22.png 2016-01-21 17:42:41 +05:30
Nabin Hait
79a994e895 Delete Screenshot from 2014-11-18 18:09:42.png 2016-01-21 17:42:35 +05:30
Nabin Hait
20cdaadcd4 Delete Screenshot from 2014-11-18 18:00:57.png 2016-01-21 17:42:28 +05:30
Nabin Hait
a2eccf08a1 Delete Screenshot from 2014-11-18 17:56:19.png 2016-01-21 17:42:22 +05:30
Nabin Hait
6f62ecab73 Delete Screenshot from 2014-11-18 18:09:42.png 2016-01-21 17:41:34 +05:30
Nabin Hait
463f71c6eb Delete Screenshot from 2014-11-18 18:13:22.png 2016-01-21 17:41:09 +05:30
Nabin Hait
cea6b09d44 Delete Screenshot from 2014-11-18 18:00:57.png 2016-01-21 17:40:41 +05:30
Nabin Hait
b4be679639 Delete Screenshot from 2014-11-18 17:56:19.png 2016-01-21 17:40:01 +05:30
Nabin Hait
c51ef85dd8 Merge branch 'develop' 2016-01-21 17:10:15 +05:30
Nabin Hait
3fc4e7c53f bumped to version 6.18.1 2016-01-21 17:40:14 +06:00
Nabin Hait
1d21274d65 Update manufacturer.json 2016-01-21 17:01:23 +05:30
Nabin Hait
ccddc48ced Merge branch 'develop' 2016-01-21 16:52:22 +05:30
Nabin Hait
c9b7824573 bumped to version 6.18.0 2016-01-21 17:22:22 +06:00
Nabin Hait
e50c5321df [docs] 2016-01-21 16:47:51 +05:30
Nabin Hait
c690b24a7d [change-log] 2016-01-21 16:32:09 +05:30
Nabin Hait
9a24abe5e9 [translations] 2016-01-21 16:32:08 +05:30
Nabin Hait
c5d41eb22a Merge pull request #4664 from saurabh6790/variant_fixes
[fixes] compare variants in lower case
2016-01-21 16:06:42 +05:30
Saurabh
47fd5e0ff0 [fixes] compare variants in lower case 2016-01-21 15:46:55 +05:30
Nabin Hait
bb7e499cbd Merge pull request #4662 from ccfiel/develop
undo reconciled journal entry record
2016-01-21 15:32:33 +05:30
Chris Ian Fiel
cb66d3a8c9 undo reconciled journal entry record
https://github.com/frappe/erpnext/issues/4661
2016-01-21 16:26:22 +08:00
Chris Ian Fiel
43a62ad0f0 undo reconciled journal entry record 2016-01-21 06:50:13 +08:00
Nabin Hait
e6b52bbb43 Update create_manufacturer_records.py 2016-01-21 00:30:39 +05:30
Nabin Hait
6811e73b53 Merge pull request #4658 from umairsy/20-jan
Updated articles in Buying
2016-01-20 22:28:50 +05:30
Umair Sayyed
5cd9193a2b Updated articles in Buying 2016-01-20 18:47:33 +05:30
Nabin Hait
a613ea8abf [patch] Create manufacturer records 2016-01-20 18:32:37 +05:30
Dominik
d737390b80 Changed Manufacturer from Data to its own DocType, copied most of the logic from Customer but used short_name for namig series. 2016-01-20 18:32:37 +05:30
Nabin Hait
20bf7375f4 Merge pull request #4655 from nabinhait/rounding_issue
Rounding based on smallest circulating currency fraction value
2016-01-20 18:12:36 +05:30
Nabin Hait
fb0b24af78 Rounding based on smallest circulating currency fraction value 2016-01-20 17:07:35 +05:30
Nabin Hait
002fa6c1d9 Merge pull request #4650 from RicardoJohann/patch-2
Accounts - Bank reconciliation - Workflow and labeling improvements
2016-01-20 17:03:06 +05:30
Nabin Hait
dbbc3eb8a6 Merge pull request #4656 from nabinhait/gle_rounding
[fix] Round off gle due to currency conversion
2016-01-20 16:48:42 +05:30
Nabin Hait
c2c9124af8 Merge pull request #4643 from nabinhait/status_button
[fix] Close button visible in all sumitted PR and DN
2016-01-20 16:47:17 +05:30
Nabin Hait
5b19aeecb4 Merge pull request #4642 from nabinhait/return_fix1
[fix] Accept return items in any warehouse
2016-01-20 16:46:33 +05:30
Nabin Hait
dd2f0330a6 Merge pull request #4641 from nabinhait/report-currency
[fix] Currency in Gross Profit report
2016-01-20 16:45:57 +05:30
Nabin Hait
61673aafd4 Merge pull request #4640 from nabinhait/fix50
Fixes
2016-01-20 16:35:46 +05:30
Nabin Hait
d4507ac6a0 [fix] Round off gle due to currency conversion 2016-01-20 16:14:27 +05:30
Nabin Hait
7c8dc38f15 Merge pull request #4654 from agusputra/patch-1
Update adding-users.md
2016-01-20 14:43:14 +05:30
Agus Syahputra
aa8745378a Update adding-users.md 2016-01-20 15:45:16 +07:00
Nabin Hait
2b986d3b02 Merge pull request #4651 from RicardoJohann/patch-4
Update queries.py - Added item_group
2016-01-20 13:11:44 +05:30
RicardoJohann
3fb5340188 Update queries.py 2016-01-20 14:32:59 +08:00
RicardoJohann
05aa3b391e Update bank_reconciliation.py 2016-01-20 13:38:20 +08:00
RicardoJohann
e095eeb084 Update bank_reconciliation_statement.py 2016-01-20 13:36:36 +08:00
Rushabh Mehta
7633aca7c1 Merge pull request #4645 from umairsy/16-jan
updated stock articles
2016-01-20 10:27:24 +05:30
RicardoJohann
6f9afffd8a Update bank_reconciliation_statement.html 2016-01-20 12:15:20 +08:00
RicardoJohann
7425af6968 Update bank_reconciliation_detail.json
Accounts - Bank reconciliation - Workflow and labeling improvements
2016-01-20 12:02:20 +08:00
Umair Sayyed
de15a26cab updated stock articles 2016-01-19 18:39:27 +05:30
Nabin Hait
5ac22ce6a1 [fix] Close button visible in all sumitted PR and DN 2016-01-19 18:30:02 +05:30
Nabin Hait
20105d8a0d [fix] Accept return items in any warehouse 2016-01-19 18:05:28 +05:30
Nabin Hait
6d8688f8b4 [fix] Currency in Gross Profit report 2016-01-19 17:27:06 +05:30
Nabin Hait
9824e22ce1 [fix] Price list rate applied via set_missing_values 2016-01-19 16:48:32 +05:30
Nabin Hait
34d2822483 Fixes in get_item_details and test cases 2016-01-19 16:48:32 +05:30
Nabin Hait
787e59c37e [fix] BOM Autonaming 2016-01-19 16:48:31 +05:30
Nabin Hait
77532cc8db [fix] Total Amount in Journal Entry 2016-01-19 16:48:31 +05:30
Rushabh Mehta
c978b9c36a [minor] [fix] in Item > Add / Edit Prices, go to list view instead of report, fixes #4639 2016-01-19 16:34:49 +05:30
Nabin Hait
31608a82f8 Merge pull request #4632 from nabinhait/pos_fix
Calculate change in POS based on smallest currency fraction value
2016-01-19 11:46:13 +05:30
Nabin Hait
4f0bfcd287 Merge pull request #4621 from neilLasrado/develop
Fixed time log overlap validation. Fixed test case in time log
2016-01-19 11:13:00 +05:30
Rushabh Mehta
54673f8d1d Merge pull request #4635 from MaxMorais/patch-2
Add localization in the on_submit event
2016-01-19 10:45:51 +05:30
Maxwell
4da17348fd Add localization in the on_submit event 2016-01-18 23:29:21 -02:00
Rushabh Mehta
aee26219ed [fix] get warehouse details on selection 2016-01-18 18:57:49 +05:30
Nabin Hait
8b63b1221f Calculate change in POS based on smallest currency fraction value 2016-01-18 17:56:55 +05:30
Rushabh Mehta
6bf3c7453b [fix] payment request 2016-01-18 14:29:26 +05:30
Rushabh Mehta
681c9dde84 [ui] payment request cleanup 2016-01-18 14:21:45 +05:30
Rushabh Mehta
34fb5cf0e2 [fix] make setup_wizard.create_bank_account multi-company safe 2016-01-18 12:35:24 +05:30
Rushabh Mehta
0e2f9ee44c [docs] fix 2016-01-18 12:35:24 +05:30
Anand Doshi
0bcd9efa88 [fix] value returned by frappe._ will always be unicode 2016-01-18 12:30:31 +05:30
Rushabh Mehta
b46069d44b [cleanup] contextual buttons in sales & purchase and fix rate setting in opp -> quotation and material request -> purchase order 2016-01-15 16:59:26 +05:30
Neil Trini Lasrado
329e7783bc Fixed time log overlap validation. Fixed test case in time log 2016-01-15 16:34:06 +05:30
Rushabh Mehta
2e3d2b8426 Merge pull request #4613 from nabinhait/fixes
[fix] Item query and exchange rate
2016-01-15 11:19:44 +05:30
Rushabh Mehta
66eaf7e1c3 Merge pull request #4607 from saurabh6790/group_custom_buttons
[enhance] merge customize buttons under groups
2016-01-15 11:15:23 +05:30
Rushabh Mehta
23ee568564 Merge pull request #4620 from nabinhait/fixes12
Minor fixes
2016-01-15 11:15:10 +05:30
Nabin Hait
ad42d2f67a Minor fixes 2016-01-15 11:09:41 +05:30
Rushabh Mehta
1bf440b03a [fix] module ordering 2016-01-14 18:19:21 +05:30
Rushabh Mehta
9bf2df9303 [minor] [layout] cleaned up Time Log layout 2016-01-14 18:19:21 +05:30
Rushabh Mehta
986f6a71ec [minor] fix new customer link in POS 2016-01-14 18:15:56 +05:30
Rushabh Mehta
26cb8baef0 Merge pull request #4618 from neilLasrado/develop
Added additional cost to time log
2016-01-14 17:11:53 +05:30
Neil Trini Lasrado
975dcc2bf3 Added additional cost to time log. Fixed issues in Time log billing amount calculation and billing amount calculation while making time log batch 2016-01-14 16:09:35 +05:30
Rushabh Mehta
1bc6a73878 Merge pull request #4614 from saurabh6790/cart_fixes
[fixes] redirect uri fixes
2016-01-14 11:47:29 +05:30
Saurabh
f7caad8ecb [fixes] redirect uri fixes 2016-01-14 11:30:47 +05:30
Rushabh Mehta
27e8ae0ff9 Merge pull request #4612 from rmehta/sales-partner-address-fix
[fix] set sales partner from previous document, fixes #4611
2016-01-14 10:48:03 +05:30
Nabin Hait
a88912a2f5 [fix] Item query and exchange rate 2016-01-14 10:43:17 +05:30
Rushabh Mehta
10d634b016 [fix] set sales partner from previous document, fixes #4611 2016-01-14 10:34:18 +05:30
Saurabh
e23e99f4bd [enhance] merge customize buttons under groups 2016-01-13 09:18:31 +05:30
Rushabh Mehta
075b9626cf [docs] update 2016-01-12 17:08:33 +05:30
Rushabh Mehta
025a407e13 Merge pull request #4595 from saurabh6790/payment_request_vai_cart
Payment request via cart
2016-01-12 14:23:42 +05:30
Saurabh
cbebb4b8ba [fixes] code cleanup 2016-01-12 14:13:35 +05:30
Saurabh
3ade883fd9 [fixes] place cart button via js 2016-01-12 14:09:52 +05:30
Saurabh
403ad48364 [fixes] display cart count only if item exist in cart 2016-01-12 14:09:52 +05:30
Saurabh
69f9975748 [fixes] show link to visit cart after adding item, hide cart button on cart view 2016-01-12 14:09:52 +05:30
Saurabh
df2783dbb0 [enhance] i. facility to send PR email; ii. update cart, item view and order view; 2016-01-12 14:09:52 +05:30
Saurabh
a940b6d149 [fixes] handle cancled payment requests 2016-01-12 14:09:51 +05:30
Saurabh
0a0c78729f [enhace] display payment status on order 2016-01-12 14:09:51 +05:30
Saurabh
276d3e60bd [enhance] pay via cart 2016-01-12 14:09:51 +05:30
Saurabh
c22e525a14 [Fixes] payment request url fixes 2016-01-12 14:09:51 +05:30
Saurabh
2ffea6ba94 [document & fixes] document and test case rewrite 2016-01-12 14:09:51 +05:30
Saurabh
6fc408e974 [fixes] conmify account details and validate gateway currency 2016-01-12 14:09:51 +05:30
Saurabh
ed0723c6fe [fixes] Create payment gateway account 2016-01-12 14:09:50 +05:30
Saurabh
766f6a43d5 [fixes] test case for Payment request 2016-01-12 14:09:50 +05:30
Saurabh
1664668b0e [fixes] multi-currency fixes 2016-01-12 14:09:50 +05:30
Saurabh
3ba22676bf [fixes] Create and manage payment request 2016-01-12 14:09:50 +05:30
Saurabh
db7a56b453 [fixes] fieldtype, message fixes on Payment Request 2016-01-12 14:09:50 +05:30
Saurabh
cb98d9ec5f [fixes] print format listing 2016-01-12 14:09:50 +05:30
Saurabh
b109ee96de [fixes] Base structure for Payment Request 2016-01-12 14:09:49 +05:30
Saurabh
eba7aa496c [enhace] basic structure for payment gateway 2016-01-12 14:09:49 +05:30
Rushabh Mehta
108bc78693 Merge branch 'develop' 2016-01-12 12:25:18 +05:30
Rushabh Mehta
c85112b093 bumped to version 6.17.0 2016-01-12 12:55:17 +06:00
Rushabh Mehta
4a3140102c Merge pull request #4606 from nabinhait/report_currency
[fix] Currency symbol based on account/company currency, not based on Global Defaults
2016-01-12 12:12:43 +05:30
Rushabh Mehta
6ef1fb6b39 Merge pull request #4605 from umairsy/docs
[docs] added articles in manufacturing, stock, website
2016-01-12 12:12:08 +05:30
Rushabh Mehta
de6b30c7ac Merge pull request #4604 from anandpdoshi/fix/duplicate-region-setup-wizard
[fix] removed duplicate 'region' section as it is already in Frappe Framework
2016-01-12 12:11:41 +05:30
Rushabh Mehta
1c32d05601 [translations] update 2016-01-12 12:02:26 +05:30
Rushabh Mehta
659bc1aca4 [minor] fixes reported on support 2016-01-12 11:57:25 +05:30
Nabin Hait
226a101119 [fix] Currency symbol based on account/company currency, not based on Global Defaults 2016-01-12 11:56:40 +05:30
Rushabh Mehta
5dfd1d48fa [minor] disabled in terms and conditions, fixes #4602 2016-01-12 10:29:29 +05:30
Umair Sayyed
c9af48af35 [docs] added articles in manufacturing, stock, website 2016-01-11 18:35:28 +05:30
Anand Doshi
d8ac0f3df7 [fix] removed duplicate 'region' section as it is already in Frappe Framework 2016-01-11 18:22:02 +05:30
Nabin Hait
af2bf7541f Merge pull request #4603 from ccfiel/develop
note added equity
2016-01-11 13:13:15 +05:30
Chris Ian Fiel
d070d56f72 note added equity 2016-01-11 15:34:24 +08:00
Anand Doshi
cc5632a99c [minor] removed image_view from in list view 2016-01-11 13:03:14 +05:30
Rushabh Mehta
7be0b47778 [minor] [fix] validate fiscal year in trial balance 2016-01-11 11:59:08 +05:30
Rushabh Mehta
5facb60bbe [fix] cleanup old style js in email digest 2016-01-11 10:37:20 +05:30
Rushabh Mehta
56b5387dbd [minor] README 2016-01-11 10:37:20 +05:30
Rushabh Mehta
9743d688d0 Merge pull request #4597 from makeen/fixEditButtonAddressContact
fix button "Edit" encode url in address and contact template
2016-01-11 10:33:18 +05:30
Raul Viveros
1d5f8d4436 fix button "Edit" encode url in address and contact template 2016-01-09 22:18:14 +01:00
vrms
063a88f057 Update implementation-strategy.md 2016-01-09 19:45:39 +08:00
Anand Doshi
6cb8662bec Merge branch 'develop' 2016-01-07 18:27:21 +05:30
Anand Doshi
74dfabbe21 bumped to version 6.16.4 2016-01-07 18:57:21 +06:00
Anand Doshi
4096603656 [fix] add index on so_detail in Delivery Note Item 2016-01-07 17:10:09 +05:30
Anand Doshi
574415b59b Merge branch 'develop' 2016-01-06 18:56:03 +05:30
Anand Doshi
0eee6bbf7e bumped to version 6.16.3 2016-01-06 19:26:03 +06:00
Anand Doshi
ed72a28e41 [minor] patch for billed in DN and PR 2016-01-06 18:53:12 +05:30
Anand Doshi
4e0908d055 [change-log] 2016-01-06 18:23:25 +05:30
Anand Doshi
3c2ffde95b Merge pull request #4573 from anandpdoshi/fix/stock-entry-calculate-amount-in-js
[fix] Stock Entry: calculate amount in javascript
2016-01-06 18:04:53 +05:30
Anand Doshi
2c021dcdcd [fix] Stock Entry: calculate amount in javascript 2016-01-06 17:47:39 +05:30
Rushabh Mehta
1ee5ae1e25 [fix] [minor] don't show cancelled sales orders 2016-01-06 16:47:18 +05:30
Anand Doshi
0aadb9e213 Merge pull request #4584 from nabinhait/last_pur_rate
Get last purchase rate button in Purchase Order
2016-01-06 16:33:07 +05:30
Anand Doshi
a0693983cc Merge branch 'nabinhait-billing_status' into develop 2016-01-06 16:32:19 +05:30
Anand Doshi
6b71ef5843 [refactor] changed set_modified, change_modified to update_modified like in the framework 2016-01-06 16:32:06 +05:30
Nabin Hait
602683fdc0 Get last purchase rate button in Purchase Order 2016-01-06 16:03:58 +05:30
Nabin Hait
1eea26fc5c [patch] Update billing status in Delivery Note and Purchase Receipt 2016-01-06 15:42:44 +05:30
Nabin Hait
c040075bd4 [patch] Update billing status in Delivery Note and Purchase Receipt 2016-01-06 15:42:44 +05:30
Nabin Hait
a2afb16f6b [testcase] Billing status in Purchase Receipt 2016-01-06 15:42:44 +05:30
Nabin Hait
bdab0eea0f Billing status in Purchase Receipt 2016-01-06 15:42:43 +05:30
Nabin Hait
ba5d6b5004 [test-case] for billing status in DN 2016-01-06 15:42:27 +05:30
Nabin Hait
5b13b99441 Update billing status in Delivery Note if directly invoiced against SO 2016-01-06 15:42:27 +05:30
Anand Doshi
a3e87c7af1 Merge branch 'umairsy-develop' into develop 2016-01-06 15:06:27 +05:30
Umair Sayyed
31e2a709d5 updated articles in Accounts 2016-01-06 15:06:11 +05:30
Umair Sayyed
e083cde3d7 updated articles 2016-01-06 15:05:31 +05:30
Anand Doshi
09fc4a456e Merge pull request #4582 from nabinhait/develop
Chart of accounts added for Singapore and some other fixes
2016-01-06 15:01:49 +05:30
Anand Doshi
4774c41958 [fix] validate_multi_currency 2016-01-06 14:16:10 +05:30
Anand Doshi
03e7e581d8 [minor] removed Communication table 2016-01-06 13:23:45 +05:30
Anand Doshi
e88ffe032e [fix] show fields like sales_order, against_sales_order, schedule_date in item grid if In List View is checked 2016-01-06 12:54:59 +05:30
Nabin Hait
ea8bc8ecb0 Chart of accounts added for Singapore and some other fixes 2016-01-06 12:32:48 +05:30
Anand Doshi
a40c6282a1 [fix] don't allow import for child tables 2016-01-06 12:20:25 +05:30
Anand Doshi
570d1783f9 Merge branch 'develop' 2016-01-05 19:09:36 +05:30
Anand Doshi
2076203fc1 bumped to version 6.16.2 2016-01-05 19:39:35 +06:00
Anand Doshi
d7b7f74ac9 [docs] 2016-01-05 19:08:09 +05:30
Anand Doshi
d27308d1cd Merge pull request #4575 from nabinhait/report_fix_1
[fix] minor fix in stock projected qty
2016-01-05 18:41:48 +05:30
Anand Doshi
06a82d4e1f Merge pull request #4574 from rmehta/translations
Translation fixes
2016-01-05 18:41:18 +05:30
Anand Doshi
f9eff57531 [fix] credit limit 2016-01-05 16:00:33 +05:30
Rushabh Mehta
e64fbd6d3c [minor] fixes for chart_of_accounts_builder app 2016-01-04 18:11:21 +05:30
Anand Doshi
88e709e1f0 Merge branch 'develop' 2016-01-04 17:58:13 +05:30
Anand Doshi
988a1ab419 bumped to version 6.16.1 2016-01-04 18:28:13 +06:00
Anand Doshi
13bf123b24 [hotfix] item on web 2016-01-04 17:51:35 +05:30
Anand Doshi
22b956d33c Merge branch 'develop' 2016-01-04 16:55:20 +05:30
Anand Doshi
10be112e85 bumped to version 6.16.0 2016-01-04 17:25:20 +06:00
Anand Doshi
bb256e41d7 [translations] 2016-01-04 16:51:24 +05:30
Nabin Hait
d35d74346d [fix] minor fix in stock projected qty 2016-01-04 16:16:49 +05:30
Rushabh Mehta
969d48a554 [translations] fixes #4534-38 2016-01-04 16:09:40 +05:30
Anand Doshi
d8b15ebaf7 Merge pull request #4572 from nabinhait/multi-currency-docs
[fix] Updated multi currency docs
2016-01-04 16:06:02 +05:30
Anand Doshi
b55dd5b284 [fix] BOM validate quantity > 0 2016-01-04 16:02:04 +05:30
Rushabh Mehta
5760b79747 [translations] fixes #4533 2016-01-04 15:57:01 +05:30
Rushabh Mehta
eb961370ff [translations] fixes #4532 2016-01-04 15:48:37 +05:30
Nabin Hait
cb08d576f6 Merge pull request #4571 from anandpdoshi/fix/payment-reconciliation-date
[fix] Payment Reconciliation: use the date and amount filters only for Invoice
2016-01-04 15:24:10 +05:30
Nabin Hait
9f40a252fc [fix] Updated multi currency docs 2016-01-04 15:20:37 +05:30
Anand Doshi
aee8b5bcad [fix] Purchase Receipt: Show row no. against the Rejected Warehouse mandatory error 2016-01-04 13:16:09 +05:30
Anand Doshi
f7980927a1 [fix] Payment Reconciliation: use the date and amount filters only for Invoice 2016-01-04 13:00:14 +05:30
Anand Doshi
c1e1026486 [fix] validate 'cannot change fiscal year dates' only if not new 2016-01-04 12:20:25 +05:30
Anand Doshi
7ae53657f9 Merge pull request #4565 from nabinhait/leave_docs
[docs] Leave Management
2016-01-04 12:11:00 +05:30
Anand Doshi
a6a71216a8 Merge pull request #4566 from rmehta/website-cleanup
[cleanup] [website]
2016-01-04 11:41:20 +05:30
Rushabh Mehta
51008f2abc [cleanup] [website] 2016-01-01 17:24:37 +05:30
Nabin Hait
c1e5cbb55d [docs] Leave Management 2016-01-01 17:08:57 +05:30
Nabin Hait
f41da5cfab Merge branch 'develop' 2015-12-31 16:14:17 +05:30
Nabin Hait
2d0ef63e72 bumped to version 6.15.1 2015-12-31 16:44:17 +06:00
Nabin Hait
884d4cbc48 Merge pull request #4560 from nabinhait/item_variants
[fix] Disable atrribute table in variant item record
2015-12-31 15:58:41 +05:30
Nabin Hait
9602c394dd Merge branch 'gabtzi-develop' into develop 2015-12-31 15:49:20 +05:30
Nabin Hait
51ff2658cb [fix] Minor changes in item naming 2015-12-31 15:49:00 +05:30
Nabin Hait
dd1c3ba164 Merge branch 'develop' of https://github.com/gabtzi/erpnext into gabtzi-develop 2015-12-31 15:46:15 +05:30
Nabin Hait
6b068e1367 [fix] Disable atrribute table in variant item record 2015-12-31 15:44:12 +05:30
Nabin Hait
b9dcf7f857 Merge pull request #4554 from umairsy/develop
Updated Articles
2015-12-31 15:37:46 +05:30
Nabin Hait
9ebbec5d9a Merge pull request #4558 from nabinhait/item_variants
[fix] Disable atrribute table in variant item record
2015-12-31 15:18:06 +05:30
Nabin Hait
bb9f59a051 Merge pull request #4556 from nabinhait/setup_bank
[fix] Create bank accounts from setup wizard #4546
2015-12-31 15:17:51 +05:30
Nabin Hait
f8de94b7c6 Merge pull request #4557 from nabinhait/po_fix
[fix] Update ordered qty in SO, if PO is made against SO
2015-12-31 15:17:41 +05:30
Nabin Hait
6626e32719 [fix] Disable atrribute table in variant item record 2015-12-31 14:54:57 +05:30
Rushabh Mehta
d55bdcf921 [fix] before_install returns False if setup wizard has been completed, fixes frappe/frappe#1488 2015-12-31 11:12:48 +05:30
Umair Sayyed
40a79de34d updating articles under Accounts 2015-12-30 18:27:08 +05:30
Nabin Hait
82a1561120 [fix] Create bank accounts from setup wizard #4546 2015-12-30 15:32:57 +05:30
Nabin Hait
3505de037e [fix] Update ordered qty in SO, if PO is made against SO 2015-12-30 15:03:34 +05:30
Umair Sayyed
d548ef8158 updated Articles in Customization and Accounting section 2015-12-29 16:25:26 +05:30
Umair Sayyed
3ad37363ed update artciles in customization section 2015-12-28 17:24:51 +05:30
gabtzi
d46abb49f3 Fix for Issue #4543: Suffix now uses attribute abbreviation if it exists or value for numeric attributes 2015-12-28 12:03:24 +02:00
Nabin Hait
c57517b201 Merge branch 'develop' 2015-12-28 15:09:44 +05:30
Nabin Hait
8efeea9c59 bumped to version 6.15.0 2015-12-28 15:39:43 +06:00
Nabin Hait
bf9e8cfbcc [translations] 2015-12-28 14:38:22 +05:30
gabtzi
096fc88200 Fix for Issue #4543: Improved code to check if it's a variant only once. 2015-12-28 11:07:10 +02:00
Nabin Hait
d5dedb1808 Merge pull request #4548 from nabinhait/fix1
[fix] Ignore permissions while creating fiscal year automatically
2015-12-28 14:23:01 +05:30
Nabin Hait
e50f80302a Merge pull request #4549 from saurabh6790/bin_update
[fixes] flag to identify actual qty update
2015-12-28 14:22:46 +05:30
gabtzi
9d44ac88f2 Fix for Issue #4543: Automatic item_code generation for variants when parent item is named after a Naming Series 2015-12-28 10:26:42 +02:00
Nabin Hait
892a782e59 docs 2015-12-28 13:27:41 +05:30
Saurabh
b166bcf50b [fixes] flag to trigger actual qty update 2015-12-28 13:25:35 +05:30
Nabin Hait
0e2d1bd4ed [fix] Ignore permissions while creating fiscal year automatically 2015-12-28 13:04:19 +05:30
Nabin Hait
f080003415 Merge pull request #4542 from umairsy/develop
updated Articles under Customization section
2015-12-28 12:43:18 +05:30
Nabin Hait
96e7c5a3bd Merge pull request #4541 from neilLasrado/develop
Added education as a domain in Company
2015-12-28 12:42:16 +05:30
Umair Sayyed
4bad150cf0 updated customization related articles 2015-12-24 20:40:37 +05:30
Anand Doshi
76568f0e8e [fix] log newsletter sending error 2015-12-24 15:13:54 +05:30
Neil Trini Lasrado
49febea6f5 Added education as a domain in Company 2015-12-24 15:10:35 +05:30
Rushabh Mehta
a59e1792b5 Merge pull request #4535 from nabinhait/defaults
[fix] Get defaults based on doctype or fieldname
2015-12-24 11:50:08 +05:30
Rushabh Mehta
28d6987455 Merge pull request #4537 from umairsy/develop
updated help articles  in the setup section
2015-12-24 11:47:27 +05:30
Umair Sayyed
56e19f3a8b updated articles in the setup section 2015-12-23 18:58:07 +05:30
Nabin Hait
b6b56453e1 [fix] Get defaults based on doctype or fieldname 2015-12-23 16:37:06 +05:30
Rushabh Mehta
d55d0c06e3 Merge branch 'develop' 2015-12-23 16:29:34 +05:30
Rushabh Mehta
8681a95010 bumped to version 6.14.1 2015-12-23 16:59:34 +06:00
Rushabh Mehta
1f63747916 [minor] [fix] add child in sales browser 2015-12-23 16:23:37 +05:30
Rushabh Mehta
332ec15dd7 Merge pull request #4525 from nabinhait/jv_fix_10
[fix] Validate advance entry based on party
2015-12-23 16:09:29 +05:30
Nabin Hait
6f8dafbb5e [fix] Validate advance entry based on party 2015-12-23 13:03:31 +05:30
Rushabh Mehta
d4073d50b2 Merge pull request #4530 from umairsy/develop
Updated screenshots in some articles
2015-12-23 13:01:30 +05:30
Rushabh Mehta
88bcee78a7 Merge pull request #4524 from nabinhait/jv_fix_9
[fix] Set debit/credit in company currency
2015-12-23 12:59:02 +05:30
Rushabh Mehta
cc2796e676 Merge pull request #4520 from partzsch/develop
Time Log now down to seconds
2015-12-23 12:56:44 +05:30
Umair Sayyed
dbaf6b569b Updated screenshots in some articles 2015-12-23 12:11:53 +05:30
Nabin Hait
d37cef7f60 [fix] Set debit/credit in company currency 2015-12-22 15:13:01 +05:30
Rushabh Mehta
01293bb3a3 [fix] [minor] fix available qty even if 0 2015-12-22 12:57:42 +05:30
partzsch
55ad42cfd0 Time Log now down to seconds
according to request of @anadpdoshi
new branch new commit new PR
2015-12-21 17:51:42 +01:00
Anand Doshi
381cec7b87 [fix] added Shopping Cart and Report Builder in Learn module 2015-12-21 18:56:20 +05:30
Anand Doshi
4c87497b7c Merge branch 'develop' 2015-12-21 18:34:08 +05:30
Anand Doshi
9fdf2a8bfe bumped to version 6.14.0 2015-12-21 19:04:08 +06:00
Anand Doshi
f773f1f539 [videos] added missing videos 2015-12-21 18:32:23 +05:30
Anand Doshi
7b8a224dd0 Merge pull request #4519 from umairsy/develop
video help page on report builder and shopping cart
2015-12-21 18:16:26 +05:30
Umair Sayyed
e1482f1acc video help page on report builder and shopping cart 2015-12-21 18:06:15 +05:30
Anand Doshi
c98d244af0 [change-log] 2015-12-21 17:31:09 +05:30
Anand Doshi
ee19fc0c7f [translations] + added Gujarati - Fixes frappe/translator#63 2015-12-21 17:10:20 +05:30
Anand Doshi
ee2129ce1c Merge pull request #4513 from nabinhait/discount_percentage
Additional Discount amount based on percentage
2015-12-21 16:13:17 +05:30
Anand Doshi
beed9ae4f8 Merge pull request #4510 from nabinhait/account_merge
[fix] Group account merging with sub-ordinate group
2015-12-21 16:03:19 +05:30
Anand Doshi
50ddf921be [minor] UOM message 2015-12-21 10:58:33 +05:30
Nabin Hait
3769d87240 Additional Discount amount based on percentage 2015-12-18 13:12:08 +05:30
Anand Doshi
15050e326c Merge pull request #4509 from anandpdoshi/fix/validate-total-transfer-in-material-request
[fix] Validate transfer qty cannot be greater than qty
2015-12-18 10:50:36 +05:30
Anand Doshi
0f809426d2 [fix] Validate transfer qty cannot be greater than qty 2015-12-17 22:35:03 +05:30
Nabin Hait
adab5d308c [fix] Group account merging with sub-ordinate group 2015-12-17 12:53:25 +05:30
Nabin Hait
824122c42a Merge branch 'ccfiel-develop' into develop 2015-12-17 12:20:40 +05:30
Nabin Hait
afda26e4f3 Fixed conflict 2015-12-17 12:19:58 +05:30
Chris Ian Fiel
d6d354b5c3 By: nabinhait
Depreciation account is an expense account, it is debited while booking depreciation. Thats why Depreciation amount is coming as negative, I think it should be positive and added to the "Net Profit and Loss".
2015-12-17 09:42:12 +08:00
Chris Ian Fiel
7d310bd182 Merge branch 'develop' of https://github.com/frappe/erpnext into develop 2015-12-17 09:18:24 +08:00
Nabin Hait
8b33a6cdc0 Cleanup in cash flow 2015-12-16 16:09:43 +05:30
Anand Doshi
1abe550e65 Merge branch 'develop' 2015-12-16 13:18:41 +05:30
Anand Doshi
5605f8f20e bumped to version 6.13.1 2015-12-16 13:48:40 +06:00
Anand Doshi
a1580f2781 [language] Added Malayalam - Fixes frappe/translator#62 2015-12-16 13:17:24 +05:30
Anand Doshi
dfdededcf0 [fix] product search limit = 12 instead of 10, since we show it in a grid of 12 2015-12-16 12:57:02 +05:30
Rushabh Mehta
5aa744893d Merge pull request #4504 from venetanji/master
Changelog file naming issue
2015-12-16 10:32:52 +05:30
Giovanni Lion
55cca49371 Changelog file naming issue 2015-12-16 12:29:15 +08:00
Nabin Hait
5e173c7106 Merge branch 'develop' of https://github.com/ccfiel/erpnext into ccfiel-develop 2015-12-15 17:39:55 +05:30
Anand Doshi
cf3da35d67 Merge branch 'develop' 2015-12-15 17:33:02 +05:30
Anand Doshi
a17ddcfe89 bumped to version 6.13.0 2015-12-15 18:03:01 +06:00
Anand Doshi
088826f6f0 [change-log] 2015-12-15 17:28:34 +05:30
Anand Doshi
f89eaa96d1 [docs] Fixed heading and added attribution to 'CWT Connector & Wire Technology GmbH' for german docs 2015-12-15 17:22:15 +05:30
Martin Ender
e526cfe7ec Update concepts-and-terms.md 2015-12-15 17:22:15 +05:30
Martin Ender
21c189184d Update concepts-and-terms.md 2015-12-15 17:22:15 +05:30
Martin Ender
2aaebdbe11 Update concepts-and-terms.md 2015-12-15 17:22:14 +05:30
Martin Ender
cda3174a57 Update concepts-and-terms.md 2015-12-15 17:22:14 +05:30
Martin Ender
91eeb76f7b Update concepts-and-terms.md 2015-12-15 17:22:14 +05:30
Martin Ender
df18c29fb7 Update concepts-and-terms.md 2015-12-15 17:22:14 +05:30
Martin Ender
7aebb39003 Update implementation-strategy.md 2015-12-15 17:22:14 +05:30
Martin Ender
91bb25d0c9 Update implementation-strategy.md 2015-12-15 17:22:14 +05:30
Martin Ender
b89d7eb558 Update implementation-strategy.md 2015-12-15 17:22:14 +05:30
Martin Ender
ba004aab83 Update the-champion.md 2015-12-15 17:22:14 +05:30
Martin Ender
4c3762989b Update the-champion.md 2015-12-15 17:22:14 +05:30
Martin Ender
225b907a03 Update getting-started-with-erpnext.md 2015-12-15 17:22:14 +05:30
Martin Ender
b543861cbe Update getting-started-with-erpnext.md 2015-12-15 17:22:14 +05:30
Martin Ender
fc6595b92b Update getting-started-with-erpnext.md 2015-12-15 17:22:14 +05:30
Martin Ender
d11df3645b Update getting-started-with-erpnext.md 2015-12-15 17:22:13 +05:30
Martin Ender
ea4c83dcb3 Update open-source.md 2015-12-15 17:22:13 +05:30
Martin Ender
3d05635d7a Update open-source.md 2015-12-15 17:22:13 +05:30
Martin Ender
90b0db2d18 Update open-source.md 2015-12-15 17:22:13 +05:30
Martin Ender
91a71d4f2c Update open-source.md 2015-12-15 17:22:13 +05:30
Martin Ender
36ab7f01b4 Update do-i-need-an-erp.md 2015-12-15 17:22:13 +05:30
Martin Ender
130dd2da61 Update do-i-need-an-erp.md 2015-12-15 17:22:13 +05:30
Martin Ender
6d15d36639 Update do-i-need-an-erp.md 2015-12-15 17:22:13 +05:30
Martin Ender
4395d0bc4d Update do-i-need-an-erp.md 2015-12-15 17:22:13 +05:30
Martin Ender
6e4e2152af Update print-format.md 2015-12-15 17:22:13 +05:30
Martin Ender
fc5d5d1600 Create print-format.md 2015-12-15 17:22:13 +05:30
Martin Ender
180d7e9ceb Create hiding-modules-and-features.md 2015-12-15 17:22:12 +05:30
Martin Ender
7be281e712 Create document-title.md 2015-12-15 17:22:12 +05:30
Martin Ender
9d5f4f729e Update customize-form.md 2015-12-15 17:22:12 +05:30
Martin Ender
b68087d690 Update customize-form.md 2015-12-15 17:22:12 +05:30
Martin Ender
a970e72819 Create customize-form.md 2015-12-15 17:22:12 +05:30
Martin Ender
4d0c5a51c9 Create custom-button.md 2015-12-15 17:22:12 +05:30
Martin Ender
41e1eb6af7 Create update-field-based-on-value-in-other-date-field.md 2015-12-15 17:22:12 +05:30
Martin Ender
1761004bd5 Create sales-invoice-id-based-on-sales-order-id.md 2015-12-15 17:22:12 +05:30
Martin Ender
c8fc5a2048 Create restrict-user-based-on-child-record.md 2015-12-15 17:22:12 +05:30
Martin Ender
9b639b82cf Create restrict-purpose-of-stock-entry.md 2015-12-15 17:22:12 +05:30
Martin Ender
314fa2bdad Create restrict-cancel-rights.md 2015-12-15 17:22:12 +05:30
Martin Ender
bff501c401 Create make-read-only-after-saving.md 2015-12-15 17:22:12 +05:30
Martin Ender
89d64f5b12 Update generate-code-based-on-custom-logic.md 2015-12-15 17:22:11 +05:30
Martin Ender
670269f85c Create generate-code-based-on-custom-logic.md 2015-12-15 17:22:11 +05:30
Martin Ender
38a15ab4fc Update date-validation.md 2015-12-15 17:22:11 +05:30
Martin Ender
8dfb35bb79 Create date-validation.md 2015-12-15 17:22:11 +05:30
Martin Ender
20e97c9dbc Create index.txt 2015-12-15 17:22:11 +05:30
Martin Ender
909f6da868 Create index.md 2015-12-15 17:22:11 +05:30
Martin Ender
0ffc350f57 Create custom-script-fetch-values-from-master.md 2015-12-15 17:22:11 +05:30
Martin Ender
fea9357741 Update index.md 2015-12-15 17:22:11 +05:30
Martin Ender
2fbc3b7259 Create index.txt 2015-12-15 17:22:11 +05:30
Martin Ender
f99923dc08 Create index.md 2015-12-15 17:22:11 +05:30
Martin Ender
d5781b5de8 Create custom-doctype.md 2015-12-15 17:22:11 +05:30
Martin Ender
81adb7dec9 Create custom-field.md 2015-12-15 17:22:10 +05:30
Martin Ender
46d4ba904a Create index.txt 2015-12-15 17:22:10 +05:30
Martin Ender
8c48c36be6 Create index.md 2015-12-15 17:22:10 +05:30
Martin Ender
f52b3090a9 Create tags.md 2015-12-15 17:22:10 +05:30
Martin Ender
e8703298ed Update assignment.md 2015-12-15 17:22:10 +05:30
Martin Ender
98eba6b9ba Create assignment.md 2015-12-15 17:22:10 +05:30
Martin Ender
34dc5bc812 Create calendar.md 2015-12-15 17:22:10 +05:30
Martin Ender
ba9b85c1a6 Update notes.md 2015-12-15 17:22:10 +05:30
Martin Ender
4eefd2218a Create notes.md 2015-12-15 17:22:10 +05:30
Martin Ender
d58d56f4d4 Create messages.md 2015-12-15 17:22:10 +05:30
Martin Ender
1d7d055d16 Create collaborating-around-forms.md 2015-12-15 17:22:09 +05:30
Martin Ender
2e7dca8693 Create to-do.md 2015-12-15 17:22:09 +05:30
Martin Ender
746e21f283 Create index.txt 2015-12-15 17:22:09 +05:30
Martin Ender
60eed43269 Create index.md 2015-12-15 17:22:09 +05:30
Martin Ender
b2b7d91010 Create social-login-keys.md 2015-12-15 17:22:09 +05:30
Martin Ender
1641f0815e Create website-settings.md 2015-12-15 17:22:09 +05:30
Martin Ender
e3f4b6ce6f Create index.txt 2015-12-15 17:22:09 +05:30
Martin Ender
7a6ec814b9 Create index.md 2015-12-15 17:22:09 +05:30
Martin Ender
4325a8c82f Create blogger.md 2015-12-15 17:22:09 +05:30
Martin Ender
6bff33b949 Create web-form.md 2015-12-15 17:22:09 +05:30
Martin Ender
99c244c834 Create blog-post.md 2015-12-15 17:22:08 +05:30
Martin Ender
838db977fe Create web-page.md 2015-12-15 17:22:08 +05:30
Martin Ender
837b656c45 Create index.txt 2015-12-15 17:22:08 +05:30
Martin Ender
7641a957eb Create index.md 2015-12-15 17:22:08 +05:30
Martin Ender
f8a383b339 Create issues.md 2015-12-15 17:22:08 +05:30
Martin Ender
d144bfe2ca Create sign-up.md 2015-12-15 17:22:08 +05:30
Martin Ender
b5edc6676e Update portal-login.md 2015-12-15 17:22:08 +05:30
Martin Ender
f72a1eb782 Create portal-login.md 2015-12-15 17:22:08 +05:30
Martin Ender
a574979ebc Create customer-orders-invoices-and-shipping.md 2015-12-15 17:22:08 +05:30
Martin Ender
49b3c0c064 Create index.txt 2015-12-15 17:22:08 +05:30
Martin Ender
d32a43c39f Create index.md 2015-12-15 17:22:08 +05:30
Martin Ender
3162f31fd8 Create holyday-list.md 2015-12-15 17:22:08 +05:30
Martin Ender
952c336f70 Create leave-type.md 2015-12-15 17:22:07 +05:30
Martin Ender
2f6a29b060 Update leave-allocation.md 2015-12-15 17:22:07 +05:30
Martin Ender
55e467dc20 Create leave-allocation.md 2015-12-15 17:22:07 +05:30
Martin Ender
df5aa98d00 Create deduction-type.md 2015-12-15 17:22:07 +05:30
Martin Ender
ffa18f4dc8 Create earning-type.md 2015-12-15 17:22:07 +05:30
Martin Ender
cea952c1c4 Create designation.md 2015-12-15 17:22:07 +05:30
Martin Ender
92a3aa9fad Update branch.md 2015-12-15 17:22:07 +05:30
Martin Ender
3b7f626c0b Update branch.md 2015-12-15 17:22:07 +05:30
Martin Ender
8d71597c03 Update branch.md 2015-12-15 17:22:07 +05:30
Martin Ender
786779fd5c Create department.md 2015-12-15 17:22:07 +05:30
Martin Ender
0c30c9cccb Update branch.md 2015-12-15 17:22:07 +05:30
Martin Ender
6479f0e82a Update and rename department.md to branch.md 2015-12-15 17:22:07 +05:30
Martin Ender
f8da1ff59f Create department.md 2015-12-15 17:22:06 +05:30
Martin Ender
043ab0c47e Create employment-type.md 2015-12-15 17:22:06 +05:30
Martin Ender
6e982264db Update hr-settings.md 2015-12-15 17:22:06 +05:30
Martin Ender
ed9f8de78c Create hr-settings.md 2015-12-15 17:22:06 +05:30
Martin Ender
80f1fc4fcb Create index.txt 2015-12-15 17:22:06 +05:30
Martin Ender
c26b090c72 Create index.md 2015-12-15 17:22:06 +05:30
Martin Ender
a637010af1 Create human-resources-report.md 2015-12-15 17:22:06 +05:30
Martin Ender
108c1f8783 Create leave-allocation-tool.md 2015-12-15 17:22:06 +05:30
Martin Ender
cfb0b3d371 Create upload-attendance.md 2015-12-15 17:22:06 +05:30
Martin Ender
e1a3b369e8 Create index.txt 2015-12-15 17:22:06 +05:30
Martin Ender
f0f54d53f4 Create index.md 2015-12-15 17:22:06 +05:30
Martin Ender
fdf61e40f3 Create offer-letter.md 2015-12-15 17:22:06 +05:30
Martin Ender
9a12221d72 Create job-opening.md 2015-12-15 17:22:05 +05:30
Martin Ender
6bea8c7bc2 Create job-applicant.md 2015-12-15 17:22:05 +05:30
Martin Ender
7bfba0fb0e Create appraisal.md 2015-12-15 17:22:05 +05:30
Martin Ender
15597d7f60 Update salary-and-payroll.md 2015-12-15 17:22:05 +05:30
Martin Ender
19fb4f231d Create salary-and-payroll.md 2015-12-15 17:22:05 +05:30
Martin Ender
fc70f4c9e8 Update attendance.md 2015-12-15 17:22:05 +05:30
Martin Ender
b0fc040dcc Create attendance.md 2015-12-15 17:22:05 +05:30
Martin Ender
26018adff4 Create expense-claim.md 2015-12-15 17:22:05 +05:30
Martin Ender
73933c1195 Create leave-application.md 2015-12-15 17:22:05 +05:30
Martin Ender
1d3d0ed595 Create employee.md 2015-12-15 17:22:05 +05:30
Martin Ender
9d80e47d27 Create index.txt 2015-12-15 17:22:05 +05:30
Martin Ender
f2fc91b73e Create index.md 2015-12-15 17:22:04 +05:30
Martin Ender
b77eb6d383 Create maintenance-schedule.md 2015-12-15 17:22:04 +05:30
Martin Ender
6ced0da90b Create maintenance-visit.md 2015-12-15 17:22:04 +05:30
Martin Ender
6aaec8e874 Create warranty-claim.md 2015-12-15 17:22:04 +05:30
Martin Ender
e4ba4d0efd Update issue.md 2015-12-15 17:22:04 +05:30
Martin Ender
acef1eaa9d Create issue.md 2015-12-15 17:22:04 +05:30
Martin Ender
75960296c9 Create index.txt 2015-12-15 17:22:04 +05:30
Martin Ender
924b9c1763 Update index.md 2015-12-15 17:22:04 +05:30
Martin Ender
92f2771ae2 Create index.md 2015-12-15 17:22:04 +05:30
Martin Ender
88a2580ec5 Create activity-cost.md 2015-12-15 17:22:04 +05:30
Martin Ender
95a2e2f5e4 Create activity-type.md 2015-12-15 17:22:04 +05:30
Martin Ender
90f44ba6ac Create time-log-batch.md 2015-12-15 17:22:04 +05:30
Martin Ender
b32d97f071 Create time-log.md 2015-12-15 17:22:03 +05:30
Martin Ender
8cb9cfdb81 Create project.md 2015-12-15 17:22:03 +05:30
Martin Ender
44420e4df7 Create tasks.md 2015-12-15 17:22:03 +05:30
Martin Ender
55bd4f7d06 Create index.txt 2015-12-15 17:22:03 +05:30
Martin Ender
1d1e03b792 Create index.md 2015-12-15 17:22:03 +05:30
Martin Ender
bb4fcd9438 Create manufacturing-settings.md 2015-12-15 17:22:03 +05:30
Martin Ender
b61345c040 Create index.md 2015-12-15 17:22:03 +05:30
Martin Ender
1827c3bc5f Create index.txt 2015-12-15 17:22:03 +05:30
Martin Ender
e65df29aed Update bom-replace-tool.md 2015-12-15 17:22:03 +05:30
Martin Ender
c9588f5aa3 Create bom-replace-tool.md 2015-12-15 17:22:03 +05:30
Martin Ender
6a2a290194 Create production-planning-tool.md 2015-12-15 17:22:03 +05:30
Martin Ender
8c95b5492c Create index.txt 2015-12-15 17:22:02 +05:30
Martin Ender
3cf31eaefe Create index.md 2015-12-15 17:22:02 +05:30
Martin Ender
0349c8e96d Create subcontracting.md 2015-12-15 17:22:02 +05:30
Martin Ender
666b63aa5e Create operation.md 2015-12-15 17:22:02 +05:30
Martin Ender
16fca942bb Create workstation.md 2015-12-15 17:22:02 +05:30
Martin Ender
bf5f7425bb Create production-order.md 2015-12-15 17:22:02 +05:30
Martin Ender
a165451b84 Create bill-of-materials.md 2015-12-15 17:22:02 +05:30
Martin Ender
5f7ac05af3 Create introduction.md 2015-12-15 17:22:02 +05:30
Martin Ender
afc9afa01f Create index.txt 2015-12-15 17:22:02 +05:30
Martin Ender
fe032bfb6f Create index.md 2015-12-15 17:22:02 +05:30
Martin Ender
71f5792f02 Create supplier-type.md 2015-12-15 17:22:02 +05:30
Martin Ender
0c70bd4b10 Create buying-settings.md 2015-12-15 17:22:02 +05:30
Martin Ender
f8ee7e12ef Create index.txt 2015-12-15 17:22:01 +05:30
Martin Ender
f8a93b6cb1 Create index.md 2015-12-15 17:22:01 +05:30
Martin Ender
612ec6c289 Create purchase-order.md 2015-12-15 17:22:01 +05:30
Martin Ender
2fe811695c Create supplier-quotation.md 2015-12-15 17:22:01 +05:30
Martin Ender
3cedb81670 Create supplier.md 2015-12-15 17:22:01 +05:30
Martin Ender
393afdaa1f Create index.md 2015-12-15 17:22:01 +05:30
Martin Ender
80b1ff7744 Create index.txt 2015-12-15 17:22:01 +05:30
Martin Ender
0689d27072 Create sales-return.md 2015-12-15 17:22:01 +05:30
Martin Ender
e44372ca6b Create purchase-return.md 2015-12-15 17:22:01 +05:30
Martin Ender
a94073d37d Create item-attribute.md 2015-12-15 17:22:01 +05:30
Martin Ender
5d9a9473d3 Create item-group.md 2015-12-15 17:22:01 +05:30
Martin Ender
6854d66cdc Create stock-settings.md 2015-12-15 17:22:00 +05:30
Martin Ender
29675f8bbd Create index.txt 2015-12-15 17:22:00 +05:30
Martin Ender
2ffb4a7a8d Create index.md 2015-12-15 17:22:00 +05:30
Martin Ender
692e465829 Create uom-replacement-tool.md 2015-12-15 17:22:00 +05:30
Martin Ender
eaed755e0f Create landed-cost-voucher.md 2015-12-15 17:22:00 +05:30
Martin Ender
f32d3716b8 Create quality-inspection.md 2015-12-15 17:22:00 +05:30
Martin Ender
e493a9252b Update packing-slip.md 2015-12-15 17:22:00 +05:30
Martin Ender
e005662cf0 Create packing-slip.md 2015-12-15 17:22:00 +05:30
Martin Ender
e83697c21c Create index.txt 2015-12-15 17:22:00 +05:30
Martin Ender
c3c654c672 Create index.md 2015-12-15 17:22:00 +05:30
Martin Ender
c6a445fa8e Update migrate-to-perpetual-inventory.md 2015-12-15 17:22:00 +05:30
Martin Ender
6ebf5b0bbb Create migrate-to-perpetual-inventory.md 2015-12-15 17:22:00 +05:30
Martin Ender
668ea8a161 Update perpetual-inventory.md 2015-12-15 17:21:59 +05:30
Martin Ender
49c58975d9 Update perpetual-inventory.md 2015-12-15 17:21:59 +05:30
Martin Ender
3d9ef3202e Update perpetual-inventory.md 2015-12-15 17:21:59 +05:30
Martin Ender
4dd13fd81e Update perpetual-inventory.md 2015-12-15 17:21:59 +05:30
Martin Ender
edc5a79fbf Update perpetual-inventory.md 2015-12-15 17:21:59 +05:30
Martin Ender
a3bb3cded0 Update perpetual-inventory.md 2015-12-15 17:21:59 +05:30
Martin Ender
c8e88f5bba Update perpetual-inventory.md 2015-12-15 17:21:59 +05:30
Martin Ender
c4ffa9ceb0 Update perpetual-inventory.md 2015-12-15 17:21:59 +05:30
Martin Ender
b8834c3c1c Update perpetual-inventory.md 2015-12-15 17:21:59 +05:30
Martin Ender
c384bc8045 Create perpetual-inventory.md 2015-12-15 17:21:59 +05:30
Martin Ender
9d0e4c841b Create index.txt 2015-12-15 17:21:59 +05:30
Martin Ender
3097e73e5a Create index.md 2015-12-15 17:21:59 +05:30
Martin Ender
eec101dffb Create projected-quantity.md 2015-12-15 17:21:58 +05:30
Martin Ender
40e5b0589a Create batch.md 2015-12-15 17:21:58 +05:30
Martin Ender
ee343c8c77 Create serial-no.md 2015-12-15 17:21:58 +05:30
Martin Ender
079ac113fb Create warehouse.md 2015-12-15 17:21:58 +05:30
Martin Ender
285ec76130 Delete article-variants.mg 2015-12-15 17:21:58 +05:30
Martin Ender
e1eb761807 Create article-variants.md 2015-12-15 17:21:58 +05:30
Martin Ender
ae8974b627 Create article-variants.mg 2015-12-15 17:21:58 +05:30
Martin Ender
ea18cc464a Create article-coding.md 2015-12-15 17:21:58 +05:30
Martin Ender
064da78734 Create index.txt 2015-12-15 17:21:58 +05:30
Martin Ender
c87dc4771c Create index.md 2015-12-15 17:21:58 +05:30
Martin Ender
c5aede5b4c Create installation-note.md 2015-12-15 17:21:58 +05:30
Martin Ender
d8785dde0c Create purchase-receipt.md 2015-12-15 17:21:58 +05:30
Martin Ender
669e4df639 Create delivery-note.md 2015-12-15 17:21:57 +05:30
Martin Ender
e7894fab39 Create stock-entry.md 2015-12-15 17:21:57 +05:30
Martin Ender
f8be4394dc Create material-request.md 2015-12-15 17:21:57 +05:30
Martin Ender
384f620c9d Create index.txt 2015-12-15 17:21:57 +05:30
Martin Ender
ba0ae97fdf Create index.md 2015-12-15 17:21:57 +05:30
Martin Ender
a95a189592 Update product-bundle.md 2015-12-15 17:21:57 +05:30
Martin Ender
5ede3a8a6f Create product-bundle.md 2015-12-15 17:21:57 +05:30
Martin Ender
49e8628627 Create shipping-rule.md 2015-12-15 17:21:57 +05:30
Martin Ender
05521ee102 Create sales-partner.md 2015-12-15 17:21:57 +05:30
Martin Ender
11e9c18b51 Update selling-settings.md 2015-12-15 17:21:57 +05:30
Martin Ender
5fcb3d7775 Update selling-settings.md 2015-12-15 17:21:57 +05:30
Martin Ender
84226006dd Create selling-settings.md 2015-12-15 17:21:56 +05:30
Martin Ender
4fc998d0f9 Create index.txt 2015-12-15 17:21:56 +05:30
Martin Ender
938b9b2097 Create index.md 2015-12-15 17:21:56 +05:30
Martin Ender
61c2d88781 Create sales-order.md 2015-12-15 17:21:56 +05:30
Martin Ender
fdba12d355 Update quotation.md 2015-12-15 17:21:56 +05:30
Martin Ender
8e1014565e Create quotation.md 2015-12-15 17:21:56 +05:30
Martin Ender
040c565a44 Create index.txt 2015-12-15 17:21:56 +05:30
Martin Ender
54f7616cf8 Create index.md 2015-12-15 17:21:56 +05:30
Martin Ender
b27f2dc012 Create tax-rule.md 2015-12-15 17:21:56 +05:30
Martin Ender
7bf3d908ba Create account-settings.md 2015-12-15 17:21:56 +05:30
Martin Ender
17caf1f6e5 Create cost-center.md 2015-12-15 17:21:56 +05:30
Martin Ender
b1c5f385bf Create fiscal-year.md 2015-12-15 17:21:56 +05:30
Martin Ender
457cfb7b60 Create index.txt 2015-12-15 17:21:55 +05:30
Martin Ender
46e0166d1f Create index.md 2015-12-15 17:21:55 +05:30
Martin Ender
0b55567b44 Create payment-tool.md 2015-12-15 17:21:55 +05:30
Martin Ender
f3ca6d0ac3 Create period-closing-voucher.md 2015-12-15 17:21:55 +05:30
Martin Ender
06ff0e42d9 Create payment-reconciliation.md 2015-12-15 17:21:55 +05:30
Martin Ender
1727bdb2b8 Create bank-reconciliation.md 2015-12-15 17:21:55 +05:30
Martin Ender
80300b321d Create index.md 2015-12-15 17:21:55 +05:30
Martin Ender
5c8c606b50 Create index.txt 2015-12-15 17:21:55 +05:30
Martin Ender
7b8e9a39e7 Update multi-currency-accounting.md 2015-12-15 17:21:55 +05:30
Martin Ender
054d63c94e Create multi-currency-accounting.md 2015-12-15 17:21:55 +05:30
Martin Ender
4deb7aaea2 Create point-of-sales-invoice.md 2015-12-15 17:21:55 +05:30
Martin Ender
f146046845 Create item-wise-tax.md 2015-12-15 17:21:55 +05:30
Martin Ender
f8942dd060 Update opening-accounts.md 2015-12-15 17:21:54 +05:30
Martin Ender
ee1f66bc86 Create opening-accounts.md 2015-12-15 17:21:54 +05:30
Martin Ender
ae77cb4959 Create budgeting.md 2015-12-15 17:21:54 +05:30
Martin Ender
6ba0f7bf75 Create accounting-entries.md 2015-12-15 17:21:54 +05:30
Martin Ender
3e2ebe5972 Update accounting-reports.md 2015-12-15 17:21:54 +05:30
Martin Ender
5f2f82de56 Create accounting-reports.md 2015-12-15 17:21:54 +05:30
Martin Ender
9d0d426ed6 Update opening-entry.md 2015-12-15 17:21:54 +05:30
Martin Ender
d7ea4ec2b6 Create opening-entry.md 2015-12-15 17:21:54 +05:30
Martin Ender
4d35ef149f Create credit-limit.md 2015-12-15 17:21:54 +05:30
Martin Ender
34fe511260 Create advance-payment-entry.md 2015-12-15 17:21:54 +05:30
Martin Ender
03a3d5089c Create making-payments.md 2015-12-15 17:21:54 +05:30
Martin Ender
8af11201d9 Update chart-of-accounts.md 2015-12-15 17:21:54 +05:30
Martin Ender
cd35d45628 Create chart-of-accounts.md 2015-12-15 17:21:53 +05:30
Martin Ender
dd09f67e75 Create purchase-invoice.md 2015-12-15 17:21:53 +05:30
Martin Ender
a51c4403a5 Update sales-invoice.md 2015-12-15 17:21:53 +05:30
Martin Ender
5656c6e969 Create sales-invoice.md 2015-12-15 17:21:53 +05:30
Martin Ender
635528e186 Create journal-entry.md 2015-12-15 17:21:53 +05:30
Martin Ender
49e39f0cde Create index.md 2015-12-15 17:21:53 +05:30
Martin Ender
e9784d1280 Create index.txt 2015-12-15 17:21:53 +05:30
Martin Ender
82e3e08650 Create sales-person.md 2015-12-15 17:21:53 +05:30
Martin Ender
721de2629e Create customer-group.md 2015-12-15 17:21:53 +05:30
Martin Ender
19d627c51f Create campaign.md 2015-12-15 17:21:53 +05:30
Martin Ender
a1d129f836 Create index.txt 2015-12-15 17:21:53 +05:30
Martin Ender
79f52a54ef Create index.md 2015-12-15 17:21:52 +05:30
Martin Ender
92091ce22d Create newsletter.md 2015-12-15 17:21:52 +05:30
Martin Ender
019196894c Create contact.md 2015-12-15 17:21:52 +05:30
Martin Ender
fbce19b2c6 Create opportunity.md 2015-12-15 17:21:52 +05:30
Martin Ender
84a9b6c816 Create customer.md 2015-12-15 17:21:52 +05:30
Martin Ender
aeb0934da0 Create lead.md 2015-12-15 17:21:52 +05:30
Martin Ender
347a580883 Create index.md 2015-12-15 17:21:52 +05:30
Martin Ender
2891c5ebca Create index.txt 2015-12-15 17:21:52 +05:30
Martin Ender
fc1bb3ee1d Create company-setup.md 2015-12-15 17:21:52 +05:30
Martin Ender
bd194a9fb7 Create bar-code.md 2015-12-15 17:21:52 +05:30
Martin Ender
4bd999cbc5 Update workflows.md 2015-12-15 17:21:52 +05:30
Martin Ender
bb154ad6c9 Create workflows.md 2015-12-15 17:21:52 +05:30
Martin Ender
f7d133f4a0 Update third-party-backups.md 2015-12-15 17:21:51 +05:30
Martin Ender
b79151ccac Create third-party-backups.md 2015-12-15 17:21:51 +05:30
Martin Ender
5b509ca194 Update territory.md 2015-12-15 17:21:51 +05:30
Martin Ender
38aa8982f8 Create territory.md 2015-12-15 17:21:51 +05:30
Martin Ender
c46504dfdf Update stock-reconciliation-for-non-serialized-item.md 2015-12-15 17:21:51 +05:30
Martin Ender
279fc35cb2 Create stock-reconciliation-for-non-serialized-item.md 2015-12-15 17:21:51 +05:30
Martin Ender
4887292513 Update sms-setting.md 2015-12-15 17:21:51 +05:30
Martin Ender
a056a7e390 Create sms-setting.md 2015-12-15 17:21:51 +05:30
Martin Ender
d82fec317e Create authorization-rule.md 2015-12-15 17:21:51 +05:30
Martin Ender
2545651a77 Create price-lists.md 2015-12-15 17:21:51 +05:30
Martin Ender
43029c2754 Create pos-setting.md 2015-12-15 17:21:51 +05:30
Martin Ender
3adcca8238 Update setting-up-taxes.md 2015-12-15 17:21:51 +05:30
Martin Ender
a76f957345 Update setting-up-taxes.md 2015-12-15 17:21:50 +05:30
Martin Ender
6935ae7f60 Create setting-up-taxes.md 2015-12-15 17:21:50 +05:30
Martin Ender
72e3741b44 Create terms-and-conditions.md 2015-12-15 17:21:50 +05:30
Martin Ender
609568d6d5 Create address-template.md 2015-12-15 17:21:50 +05:30
Martin Ender
576c76f71c Create letter-head.md 2015-12-15 17:21:50 +05:30
Martin Ender
a952fef53d Create print-headings.md 2015-12-15 17:21:50 +05:30
Martin Ender
5dc46b6096 Delete print-headings.md3 2015-12-15 17:21:50 +05:30
Martin Ender
463bd7b742 Create print-headings.md3 2015-12-15 17:21:50 +05:30
Martin Ender
e5cb6ab319 Create print-format-builder.md 2015-12-15 17:21:50 +05:30
Martin Ender
eeb280e06d Create print-settings.md 2015-12-15 17:21:50 +05:30
Martin Ender
2799039eec Create index.txt 2015-12-15 17:21:50 +05:30
Martin Ender
84f47e54af Create index.md 2015-12-15 17:21:50 +05:30
Martin Ender
3cd67c9e9b Create sending-email.md 2015-12-15 17:21:49 +05:30
Martin Ender
6b3d94a5df Update email-digest.md 2015-12-15 17:21:49 +05:30
Martin Ender
218cc5d1f2 Create email-digest.md 2015-12-15 17:21:49 +05:30
Martin Ender
f53407b76e Update concepts-and-terms.md 2015-12-15 17:21:49 +05:30
Martin Ender
92988591fc Update user-permissions.md 2015-12-15 17:21:49 +05:30
Martin Ender
9b69827d2c Update role-based-permissions.md 2015-12-15 17:21:49 +05:30
Martin Ender
4136b3170a Update adding-users.md 2015-12-15 17:21:49 +05:30
Martin Ender
f3459158c6 Delete globals-defaults.md 2015-12-15 17:21:49 +05:30
Martin Ender
a82056f424 Create global-defaults.md 2015-12-15 17:21:49 +05:30
Martin Ender
a440125ef2 Update system-settings.md 2015-12-15 17:21:49 +05:30
Martin Ender
3e8aec4d64 Update naming-series.md 2015-12-15 17:21:49 +05:30
Martin Ender
97a27f3d46 Update naming-series.md 2015-12-15 17:21:48 +05:30
Martin Ender
0eb0f59194 Update module-settings.md 2015-12-15 17:21:48 +05:30
Martin Ender
fce8780c08 Update globals-defaults.md 2015-12-15 17:21:48 +05:30
Martin Ender
48d45869ab Update email-alerts.md 2015-12-15 17:21:48 +05:30
Martin Ender
349360b3a1 Update email-alerts.md 2015-12-15 17:21:48 +05:30
Martin Ender
5e646cd8ad Update email-alerts.md 2015-12-15 17:21:48 +05:30
Martin Ender
8bcd104cec Create email-alerts.md 2015-12-15 17:21:48 +05:30
Martin Ender
5e91280912 Create email-account.md 2015-12-15 17:21:48 +05:30
Martin Ender
5fec1751a7 Create index.txt 2015-12-15 17:21:48 +05:30
Martin Ender
91802f914c Create index.md 2015-12-15 17:21:48 +05:30
Martin Ender
f779df2737 Create bulk-rename.md 2015-12-15 17:21:48 +05:30
Martin Ender
fad1363756 Update data-import-tool.md 2015-12-15 17:21:47 +05:30
Martin Ender
b041b905d0 Rename data-import-tool.md2.4.1 Werkzeug zum Datenimport Das Werkzeug zum Datenimport ist ein großartiger Weg um große Mengen an Daten, speziell Stammdaten, in das System hochzuladen oder zu bearbeiten. Um das Werkzeug zum Datenimport zu öffnen, gehen Sie entweder zu den Einstellungen oder zur Transaktion, für die Sie importieren wollen. Wenn der Datenimport erlaubt ist, sehen Sie eine Importschaltfläche: Das Werkzeug hat zwei Abschnitte, einen um eine Vorlage herunter zu laden, und einen zweiten um Daten hoch zu laden. (Anmerkung: Für den Import sind nur die DocTypes zugelassen, deren Dokumenttyp "Stammdaten" ist, oder bei denen die Einstellung "Import erlauben" aktiviert ist.) 1. Herunterladen der Vorlage Daten werden in ERPNext in Tabellen gespeichert, sehr ähnlich einer Tabellenkalkulation mit Spalten und Zeilen voller Daten. Jede Instanz in ERPNext kann mehrere verschiedene mit Ihr verbundene Untertabellen haben. Die Untertabellen sind mit Ihren übergeordneten Tabellen verknüpft und werden dort eingesetzt, wo es für eine Eigenschaft mehrere verschiedene Werte gibt. So kann z. B. ein Artikel mehrere verschiedene Preise haben, eine Rechnung hat mehrere verschiedene Artikel usw. - Klicken Sie auf die Tabelle, die Sie herunter laden wollen, oder auf "Alle Tabellen". - Für Massenbearbeitung klicken Sie auf "Mit Daten herunterladen". 2. Füllen Sie die Vorlage aus Öffnen Sie die Vorlage nach dem Herunterladen in einer Tabellenkalkulationsanwendung und fügen Sie die Daten unterhalb der Spaltenköpfe ein. Exportieren Sie dann Ihre Vorlage oder speichern Sie sie im CSV-Format (Comma Separated Values). 3. Hochladen der CSV-Datei Fügen Sie abschliessend die CSV-Datei im Abschnitt Import hinzu. Klicken Sie auf die Schaltfläche "Hochladen und Importieren". Anmerkungen: 1. Stellen Sie sicher, dass Sie als Verschlüsselung UTF-8 verwenden, wenn Ihre Anwendung das zulässt. 2. Lassen Sie die Spalte ID für einen neuen Datensatz leer. 4. Hochladen aller Tabellen (übergeordnete und Untertabellen) Wenn Sie alle Tabellen auswählen, dann erhalten Sie Spalten für alle Tabellen in einer Zeile gertrennt durch ~ Spalten. Wenn Sie mehrere verschiedene Unterzeilen haben, dann müssen Sie einen neuen Hauptartikel in einer neuen Zeile eintragen. Sehen Sie hierzu das Beispiel unten: Main Table ~ Child Table Column 1 Column 2 Column 3 ~ Column 1 Column 2 Column 3 v11 v12 v13 c11 c12 c13 c14 c15 c17 v21 v22 v23 c21 c22 c23 Um zu sehen, wie das gemacht wird, geben Sie manuell über Formulare einige Datensätze ein und exportieren Sie "Alle Tabellen" über "Mit Daten herunterladen". 5. Überschreiben ERPNext ermöglicht es Ihnen auch alle oder bestimmte Spalten zu überschreiben. Wenn Sie bestimmte Spalten aktualisieren möchten, können Sie die Vorlage mit Daten herunter laden. Vergessen Sie nicht die Box "Überschreiben" zu markieren, bevor sie hochladen. Anmerkung: Wenn Sie "Überschreiben" auswählen, werden alle Unterdatensätze eines übergeordneten Elements gelöscht. 6. Einschränkungen beim Hochladen ERPNext begrenzt die Menge an Daten, die Sie in einer Datei hochladen können. Die Menge kann sich je nach Datentyp unterscheiden. Normalerweise kann man problemlos ungefähr 1.000 Zeilen einer Tabelle in einem Vorgang hochladen. Wenn das System den Vorgang nicht akzeptiert, sehen Sie eine Fehlermeldung. Warum das alles? Wenn Sie zuviele Daten hochladen, kann das System abstürzen, im Besonderen dann, wenn andere Benutzer parallel arbeiten. Daher begrenzt ERPNext die Anzahl von Schreibvorgängen, die Sie mit einer Eingabe verarbeiten können. Wie fügen Sie Dateien an? Wenn Sie ein Formular öffnen, dann sehen Sie in der Seitenleiste rechts einen Abschnitt zum Anfügen von Dateien. Klicken Sie auf "Hinzufügen" und wählen Sie die Datei aus, die Sie anfügen möchten. Klicken Sie auf "Hochladen" und die Sache ist erledigt. Was ist eine CSV-Datei? Eine CSV (Durch Kommas getrennte Werte)-Datei ist ein Datensatz, den Sie in ERPNext hochladen können um verschiedene Daten zu aktualisieren. Jedes gebräuchliche Tabellenkalkulationsprogramm wie MS-Excel oder OpenOffice Spreadsheet kann im CSV-Format abspeichern. Wenn Sie Microsoft Excel benutzen und nicht-englische Zeichen verwenden, dann sollten Sie Ihre Datei UTF-8-kodiert abspeichern. Bei älteren Versionen von Excel gibt es keinen eindeutigen Weg als UTF-8 zu speichern. Deshalb können Sie die Datei auch ganz einfach als CSV abspeichern, dann mit Notepad öffnen und als UTF-8 abspeichern. (Microsoft Excel kann das leider nicht.) to data-import-tool.md 2015-12-15 17:21:47 +05:30
Martin Ender
ed4e85bf97 Create index.md 2015-12-15 17:21:47 +05:30
Martin Ender
1a8e484542 Create index.txt 2015-12-15 17:21:47 +05:30
Martin Ender
8794bb9c5f Delete system-settings.md 2015-12-15 17:21:47 +05:30
Martin Ender
1cd13ce2d5 Delete naming-series.md 2015-12-15 17:21:47 +05:30
Martin Ender
c1bdc108c8 Delete index.txt 2015-12-15 17:21:47 +05:30
Martin Ender
6549710eaa Delete module-settings.md 2015-12-15 17:21:47 +05:30
Martin Ender
4634194009 Delete index.md 2015-12-15 17:21:47 +05:30
Martin Ender
14006ad8c8 Delete global-defaults.md 2015-12-15 17:21:47 +05:30
Martin Ender
89a7730406 Create system-settings.md 2015-12-15 17:21:47 +05:30
Martin Ender
c2e913e0ca Create naming-series.md 2015-12-15 17:21:47 +05:30
Martin Ender
afbf3296d4 Create module-settings.md 2015-12-15 17:21:46 +05:30
Martin Ender
75963505dc Create index.md 2015-12-15 17:21:46 +05:30
Martin Ender
9ec61cf150 Create globals-defaults.md 2015-12-15 17:21:46 +05:30
Martin Ender
699feb0384 Create index.txt 2015-12-15 17:21:46 +05:30
Martin Ender
da00bacb55 Create global-defaults.md 2015-12-15 17:21:46 +05:30
Martin Ender
8ca8b14720 Create naming-series.md 2015-12-15 17:21:46 +05:30
Martin Ender
64b47ade3b Create module-settings.md 2015-12-15 17:21:46 +05:30
Martin Ender
423791a1cd Create system-settings.md 2015-12-15 17:21:46 +05:30
Martin Ender
9b09fea692 Create index.txt 2015-12-15 17:21:46 +05:30
Martin Ender
098cb65a54 Create index.md 2015-12-15 17:21:46 +05:30
Martin Ender
2cf2f48c02 Create sharing.md 2015-12-15 17:21:46 +05:30
Martin Ender
85febb969e Update user-permissions.md 2015-12-15 17:21:46 +05:30
Martin Ender
952e19a9bb Create user-permissions.md 2015-12-15 17:21:45 +05:30
Martin Ender
451ad3fe93 Update role-based-permissions.md 2015-12-15 17:21:45 +05:30
Martin Ender
cec0728bba Update role-based-permissions.md 2015-12-15 17:21:45 +05:30
Martin Ender
44838ea239 Update role-based-permissions.md 2015-12-15 17:21:45 +05:30
Martin Ender
3c29d6faa2 Update role-based-permissions.md 2015-12-15 17:21:45 +05:30
Martin Ender
5c4fdfce44 Create role-based-permissions.md 2015-12-15 17:21:45 +05:30
Martin Ender
19bed183b0 Update adding-users.md 2015-12-15 17:21:45 +05:30
Martin Ender
53523539f4 Create adding-users.md 2015-12-15 17:21:45 +05:30
Martin Ender
a5488e43ad Create index.md 2015-12-15 17:21:45 +05:30
Martin Ender
f8a2587cf4 Create index.txt 2015-12-15 17:21:45 +05:30
Martin Ender
337972eada Create step-10-item.md 2015-12-15 17:21:45 +05:30
Martin Ender
e5944e8866 Create step-9-suppliers.md 2015-12-15 17:21:45 +05:30
Martin Ender
ee17a60872 Create step-8-customer-names.md 2015-12-15 17:21:44 +05:30
Martin Ender
35ad87bb14 Create step-7-tax-details.md 2015-12-15 17:21:44 +05:30
Martin Ender
421bef2db4 Update step-6-add-users.md 2015-12-15 17:21:44 +05:30
Martin Ender
0048d29799 Create step-6-add-users.md 2015-12-15 17:21:44 +05:30
Martin Ender
5029670657 Update step-1-language.md 2015-12-15 17:21:44 +05:30
Martin Ender
d40ec15f1c Update step-2-currency-and-timezone.md 2015-12-15 17:21:44 +05:30
Martin Ender
9873c4029b Update step-3-user-details.md 2015-12-15 17:21:44 +05:30
Martin Ender
78b4ae02cb Update step-4-company-details.md 2015-12-15 17:21:44 +05:30
Martin Ender
9fa9b34930 Update step-5-letterhead-and-logo.md 2015-12-15 17:21:44 +05:30
Martin Ender
61b6918e73 Create step-5-letterhead-and-logo.md 2015-12-15 17:21:44 +05:30
Martin Ender
755d14b004 Create step-4-company-details.md 2015-12-15 17:21:44 +05:30
Martin Ender
2d3670b6a4 Create step-3-user-details.md 2015-12-15 17:21:44 +05:30
Martin Ender
8ff1c7b3e0 Create step-2-currency-and-timezone.md 2015-12-15 17:21:43 +05:30
Martin Ender
8df03c6e30 Create step-1-language.md 2015-12-15 17:21:43 +05:30
Martin Ender
cab2fc6e73 Create index.txt 2015-12-15 17:21:43 +05:30
Martin Ender
a5b9008088 Create index.md 2015-12-15 17:21:43 +05:30
Martin Ender
0a5ccb008a Create index.md 2015-12-15 17:21:43 +05:30
Martin Ender
83b8d33e78 Create index.txt 2015-12-15 17:21:43 +05:30
Martin Ender
9c2a20a67b Update the-champion.md 2015-12-15 17:21:43 +05:30
Martin Ender
a7465f8fd6 Update open-source.md 2015-12-15 17:21:43 +05:30
Martin Ender
49b476b9e5 Update key-workflows.md 2015-12-15 17:21:43 +05:30
Martin Ender
7f7f77f4d7 Create index.txt 2015-12-15 17:21:43 +05:30
Martin Ender
356c552b41 Update index.md 2015-12-15 17:21:43 +05:30
Martin Ender
1ccbd82b35 Update implementation-strategy.md 2015-12-15 17:21:43 +05:30
Martin Ender
e606678b8f Update getting-started-with-erpnext.md 2015-12-15 17:21:42 +05:30
Martin Ender
45db6156c7 Update getting-started-with-erpnext.md 2015-12-15 17:21:42 +05:30
Martin Ender
9d3da40351 Update getting-started-with-erpnext.md 2015-12-15 17:21:42 +05:30
Martin Ender
3f51a8aed4 Update do-i-need-an-erp.md 2015-12-15 17:21:42 +05:30
Martin Ender
e7d09edc0d Update do-i-need-an-erp.md 2015-12-15 17:21:42 +05:30
Martin Ender
94c7fa0141 Update concepts-and-terms.md 2015-12-15 17:21:42 +05:30
Martin Ender
abe9abc90b Update concepts-and-terms.md 2015-12-15 17:21:42 +05:30
Martin Ender
dbb25b67a5 Update concepts-and-terms.md 2015-12-15 17:21:42 +05:30
Martin Ender
d4e8e05749 Create concepts-and-terms.md 2015-12-15 17:21:42 +05:30
Martin Ender
02d28f1422 Create key-workflows.md 2015-12-15 17:21:42 +05:30
Martin Ender
a97265c8af Create implementation-strategy.md 2015-12-15 17:21:42 +05:30
Martin Ender
0480ad45f6 Create the-champion.md 2015-12-15 17:21:42 +05:30
Martin Ender
c8ea02d745 Update getting-started-with-erpnext.md 2015-12-15 17:21:41 +05:30
Martin Ender
028f246cae Update getting-started-with-erpnext.md 2015-12-15 17:21:41 +05:30
Martin Ender
f683bbee59 Create getting-started-with-erpnext.md 2015-12-15 17:21:41 +05:30
Martin Ender
e01309f07e Update open-source.md 2015-12-15 17:21:41 +05:30
Martin Ender
d7786190e6 Create open-source.md 2015-12-15 17:21:41 +05:30
Martin Ender
5bce109e8e Create do-i-need-an-erp.md 2015-12-15 17:21:41 +05:30
Martin Ender
a2531995f9 Create index.md 2015-12-15 17:21:41 +05:30
Martin Ender
98ccde84fb Create Beispiel.md 2015-12-15 17:21:41 +05:30
CWTGMBH
a12840f803 Create index.md 2015-12-15 17:21:41 +05:30
CWTGMBH
3e2f36034f Delete de 2015-12-15 17:21:41 +05:30
Martin Ender
d8c6213828 Create de 2015-12-15 17:21:41 +05:30
Anand Doshi
dd56b5f4ac Merge pull request #4503 from nabinhait/target_warehouse_patch
[patch] Repost entries with wrongly selected target warehouse
2015-12-15 17:01:37 +05:30
Nabin Hait
8444febbda [patch] Repost entries with wrongly selected target warehouse 2015-12-15 15:55:06 +05:30
Anand Doshi
b26c3f2263 Merge pull request #4502 from nabinhait/general_ledger_fix
[fix][report] General Ledger
2015-12-15 15:18:20 +05:30
Anand Doshi
03791fceee [translations] 2015-12-15 15:17:11 +05:30
Anand Doshi
542782e400 [fix] delete lead addresses in delete company transactions 2015-12-15 15:17:04 +05:30
Nabin Hait
8bdf8e675f [fix][report] General Ledger 2015-12-15 15:02:04 +05:30
Anand Doshi
2da81732eb Merge pull request #4500 from rmehta/fixes-to-tree
[fix] rename tree item fixes #2524
2015-12-15 14:38:26 +05:30
Anand Doshi
e1f46be230 Merge branch 'ShashaQin-patch-60' into develop 2015-12-15 14:37:11 +05:30
ShashaQin
81b8627250 Update serial_no.json 2015-12-15 14:14:51 +05:30
ShashaQin
79586775b2 Update serial_no.json
change "delivery_document_type" to Link and ""delivery_document_no" to Dynamic link will be more convenient, like "purchase_document_type" and "purchase_document_no".
2015-12-15 14:14:26 +05:30
Anand Doshi
8ee5498fe0 [fix] delete lead addresses in delete company transaction 2015-12-15 13:14:38 +05:30
Rushabh Mehta
e8ab320028 [fix] rename tree item fixes #2524 2015-12-15 12:06:37 +05:30
Chris Ian Fiel
c80796cdd5 Cash Flow Report 2015-12-12 11:26:54 +08:00
Chris Ian Fiel
fde03453e4 Cash Flow Report 2015-12-12 10:54:56 +08:00
Chris Ian Fiel
826e18a29f Cash Flow Report 2015-12-12 10:33:01 +08:00
Nabin Hait
bdd1ee2185 Merge branch 'develop' 2015-12-11 15:06:29 +05:30
Nabin Hait
660f479ec8 bumped to version 6.12.11 2015-12-11 15:36:29 +06:00
Nabin Hait
fa557f494b Merge pull request #4481 from nabinhait/develop
[fix] Ignore user permission in target warehouse in SO
2015-12-11 15:04:38 +05:30
Anand Doshi
695d09f9cd [fix] typo 2015-12-11 15:03:26 +05:30
Anand Doshi
66c9940d73 [fix] [validation] website url should be public 2015-12-11 15:02:58 +05:30
Nabin Hait
204af3ce90 [fix] Ignore user permission in target warehouse in SO 2015-12-11 15:01:02 +05:30
Nabin Hait
4a9f6ba520 Merge branch 'develop' 2015-12-11 14:35:41 +05:30
Nabin Hait
83f9f93015 bumped to version 6.12.10 2015-12-11 15:05:41 +06:00
Nabin Hait
53804c5bed Merge pull request #4472 from umairsy/develop
[docs] Added new videos
2015-12-11 14:31:35 +05:30
Nabin Hait
d3d4fe45c6 Merge pull request #4473 from nabinhait/sms_logs
[fix] Ignore permissions while creating sms logs
2015-12-11 14:31:26 +05:30
Nabin Hait
fae4f0269b Merge pull request #4478 from nabinhait/website_image
[fix] Website Image validation
2015-12-11 14:31:18 +05:30
Nabin Hait
fc4eca5cc7 [fix] Website Image validation 2015-12-11 11:47:05 +05:30
Rushabh Mehta
a1a712b0c6 [minor] [fix] task close button condition 2015-12-11 11:16:03 +05:30
Nabin Hait
2164595933 [fix] Ignore permissions while creating sms logs 2015-12-10 18:09:57 +05:30
Umair Sayyed
8eaf5eee74 [docs] Added videos 2015-12-10 17:58:12 +05:30
Nabin Hait
09e5306825 Merge branch 'develop' 2015-12-10 14:41:02 +05:30
Nabin Hait
9cca3494c0 bumped to version 6.12.9 2015-12-10 15:11:02 +06:00
Nabin Hait
360b057b0a [chnage-log] 2015-12-10 14:37:28 +05:30
Nabin Hait
56ae9481a0 Merge pull request #4466 from rmehta/task-notification-on-overdue
[enhancement] task status will be set to overdue when it crosses expected end date
2015-12-10 14:30:34 +05:30
Nabin Hait
12425e22a6 Merge pull request #4462 from nabinhait/sal_slip_fix
[fix] Payment days calculation in salary slip
2015-12-10 14:23:31 +05:30
Nabin Hait
da80a649fc Merge pull request #4465 from anandpdoshi/fix/validate-website-image-public
[fix] validate that Item's website image is public
2015-12-10 14:23:14 +05:30
Rushabh Mehta
13ec41abb2 [enhancement] task status will be set to overdue when it crosses expected end date 2015-12-10 12:59:02 +05:30
Anand Doshi
b3051ab84d [fix] validate that Item's website image is public 2015-12-10 11:46:20 +05:30
Nabin Hait
533aba02c5 [fix] Payment days calculation in salary slip 2015-12-10 10:50:42 +05:30
Rushabh Mehta
a5cf8a86c1 [minor] lang fixes for email digest 2015-12-10 10:38:46 +05:30
Rushabh Mehta
c819fd4ee8 [translations] for #4461 2015-12-10 10:34:32 +05:30
Anand Doshi
2af44ffd06 [fix] setup wizard is_private 2015-12-09 17:29:11 +05:30
Nabin Hait
cff91abd8d Merge pull request #4456 from nabinhait/drop_ship_fix1
[fix] Reload SO Item in patch
2015-12-09 17:06:54 +05:30
Nabin Hait
5d39a9594d [fix] Reload SO Item in patch 2015-12-09 17:06:09 +05:30
Nabin Hait
b1caeba0b4 Merge branch 'develop' 2015-12-09 15:32:30 +05:30
Nabin Hait
7290c79fdf bumped to version 6.12.8 2015-12-09 16:02:30 +06:00
Nabin Hait
547e916b00 Merge pull request #4452 from saurabh6790/drop-ship-fixes-3
[fixes] pull customer details only if drop shipping is marked
2015-12-09 15:31:49 +05:30
Nabin Hait
e4c0388b68 Merge pull request #4453 from nabinhait/translation_fix
suomalainen translation fixed for Extra Small
2015-12-09 15:30:11 +05:30
Nabin Hait
783e63a8e6 suomalainen translation fixed for Extra Small and Large 2015-12-09 15:29:21 +05:30
Saurabh
f6891975d5 [fixes] pull customer details only if drop shipping is marked 2015-12-09 15:04:12 +05:30
Nabin Hait
45a8f9d006 Merge branch 'develop' 2015-12-09 14:59:44 +05:30
Nabin Hait
1b0c797817 bumped to version 6.12.7 2015-12-09 15:29:44 +06:00
Nabin Hait
c119cbcb50 Merge pull request #4449 from nabinhait/coa_fix
[fix] Stock account identified in COA of Guatamala
2015-12-09 13:58:09 +05:30
Nabin Hait
d595534431 Merge pull request #4450 from venetanji/develop
Fix dynamic link in reports to generate correct link when user language is not english
2015-12-09 13:57:45 +05:30
Giovanni Lion
5de53eb0eb Voucher dynamic link fix to allow links to work if user language is not english 2015-12-09 15:45:40 +08:00
Giovanni Lion
5ccaf6f9d7 Merge remote-tracking branch 'frappe/develop' into develop 2015-12-09 15:25:47 +08:00
Anand Doshi
29fe53f63c [fix] use pip parse requirements in setup.py 2015-12-09 12:15:22 +05:30
Nabin Hait
49fe7af6de [fix] Stock account identified in COA of Guatamala 2015-12-09 11:27:10 +05:30
Nabin Hait
a68a3b5cc1 Merge branch 'develop' 2015-12-08 18:06:25 +05:30
Nabin Hait
3931a35e27 bumped to version 6.12.6 2015-12-08 18:36:25 +06:00
Nabin Hait
56595ecda0 Merge pull request #4445 from nabinhait/patch_fix1
[patch][fix] Fixed drop ship status and tax rule patch
2015-12-08 18:05:33 +05:30
Nabin Hait
466ff3d31b Merge pull request #4446 from nabinhait/translation_fix
[fix] Hungary translation for chart of accounts
2015-12-08 18:05:12 +05:30
Nabin Hait
61c6552434 [fix] Hungary translation for chart of accounts 2015-12-08 18:03:23 +05:30
Nabin Hait
4ad0963ee8 [patch][fix] Fixed drop ship status and tax rule patch 2015-12-08 16:51:04 +05:30
Nabin Hait
aa99fe2c4e Merge branch 'develop' 2015-12-08 15:40:17 +05:30
Nabin Hait
d56ec92682 bumped to version 6.12.5 2015-12-08 16:10:17 +06:00
Nabin Hait
90852d334f Merge branch 'nabinhait-tax_rule_patch' into develop 2015-12-08 15:30:32 +05:30
Nabin Hait
694373d022 Fixed conflict 2015-12-08 15:30:15 +05:30
Nabin Hait
40d49ccf98 Merge pull request #4444 from nabinhait/get_incoming_rate_fix
[fix] Get incoming rate if args as json
2015-12-08 15:17:32 +05:30
Nabin Hait
4372ac559a Merge pull request #4443 from nabinhait/bank_reco_print
[fix] Print format for bank reco statement
2015-12-08 15:17:24 +05:30
Nabin Hait
01478b3fc1 Merge pull request #4439 from saurabh6790/drop-ship-fixes-3
[fixes] Drop Shipping - Purchase Order Cancellation - Sales Order Status
2015-12-08 15:16:38 +05:30
Nabin Hait
41c8cf645a [fix] Get incoming rate if args as json 2015-12-08 14:50:24 +05:30
Saurabh
70ed6ede5c [fixes] patch to update delivery status for drop ship item 2015-12-08 14:48:19 +05:30
Nabin Hait
7af5c4aefc [fix] Print format for bank reco statement 2015-12-08 14:25:10 +05:30
Saurabh
01ca354d52 [fixes] Drop Shipping - Purchase Order Cancellation - Sales Order Status 2015-12-08 14:03:09 +05:30
Nabin Hait
a974ab3dc5 [fix][patch] Create Tax Rule based on default taxes and charges template in Customer and Supplier 2015-12-08 12:56:14 +05:30
Anand Doshi
cc24d28ddc [fix] address creation for new user 2015-12-08 12:34:13 +05:30
Rushabh Mehta
441b2c7657 [minor] limit pos search to 24 items at a time 2015-12-08 12:16:53 +05:30
Anand Doshi
51d07dfca2 [docs] rename perm level error article 2015-12-07 16:22:57 +05:30
Nabin Hait
5e6757f197 Merge branch 'develop' 2015-12-07 14:25:00 +05:30
Nabin Hait
6a8ff42a5a bumped to version 6.12.4 2015-12-07 14:54:59 +06:00
Nabin Hait
06db236aa0 [fix] Allow Production Order, by default unchecked in item 2015-12-07 14:19:13 +05:30
Nabin Hait
733680bc3f [translations] 2015-12-07 14:12:41 +05:30
Rushabh Mehta
14a0441b4b [fix] removed temp_highlight 2015-12-07 12:28:03 +05:30
Rushabh Mehta
a311e706b0 [docs] home.png 2015-12-07 12:13:17 +05:30
Rushabh Mehta
e6a16c29df [docs] index fix 2015-12-07 12:07:01 +05:30
Nabin Hait
92bb480fc3 Merge pull request #4432 from bohlian/develop
Purchase Invoice - Show Payment Button when Outstanding Amount !=0
2015-12-07 11:12:11 +05:30
Nabin Hait
7dc0da18b5 Merge pull request #4433 from nabinhait/expense_allow_import
[fix] Allowed import for Expense Claim
2015-12-07 11:11:35 +05:30
Nabin Hait
c8a2b94200 Merge pull request #4434 from nabinhait/whitelist_fix
[fix] get_incoming_rate function whitelisted
2015-12-07 11:11:21 +05:30
Nabin Hait
203d4088fa Merge pull request #4435 from saurabh6790/drop-ship-fixes-3
[fixes] recreate print format, shipping address on po for drop ship, …
2015-12-07 11:10:11 +05:30
Nabin Hait
5eefff13a1 [fix] get_incoming_rate function whitelisted 2015-12-07 10:44:56 +05:30
Nabin Hait
9421e9873a [fix] Allowed import for Expense Claim 2015-12-07 10:40:13 +05:30
bohlian
5e4c8a52ee Payment To Be Shown When Outstanding Amount != 0
Payment button should be shown when outstanding amount != 0.
2015-12-07 12:06:08 +08:00
bohlian
41f62f7250 Merge pull request #1 from frappe/develop
7/12/2015 Merge
2015-12-07 12:04:34 +08:00
Saurabh
4f39fd243e [fixes] recreate print format, shipping address on po for drop ship, validate update stock 2015-12-06 10:09:06 +05:30
Nabin Hait
c43a11a313 Merge pull request #4431 from nabinhait/leave_fix
[fix] Don't validate balance for lwp and in balance consider all leaves in the allocation period
2015-12-05 12:43:38 +05:30
Nabin Hait
1bffb42809 Merge pull request #4428 from nabinhait/get_exchange_rate
[fix] Get exchange rate as 1 if same currency
2015-12-05 12:43:13 +05:30
Nabin Hait
4660f820da Merge pull request #4427 from nabinhait/offer_letter_fix
[fix] Offer letter print format fixed
2015-12-05 12:42:39 +05:30
Nabin Hait
1a19c05ef0 Merge pull request #4425 from nabinhait/bank_reco_fix
[fix] Fixed amounts not reflected in bank
2015-12-05 12:42:20 +05:30
Nabin Hait
d53e780fb8 [fix] Don't validate balance for lwp and in balance consider all leaves in the allocation period 2015-12-05 12:15:49 +05:30
Nabin Hait
0f5d97a156 [fix] Get exchange rate as 1 if same currency 2015-12-04 16:47:34 +05:30
Rushabh Mehta
2f273674e9 [docs] fixed links 2015-12-04 16:00:38 +05:30
Nabin Hait
734a40ad62 [fix] Offer letter print format fixed 2015-12-04 12:19:21 +05:30
Nabin Hait
9547b774f7 [fix] Fixed amounts not reflected in bank 2015-12-04 11:05:25 +05:30
Rushabh Mehta
e1f8b1d695 [minor] [production planning tool] include non production items without default BOM in multi-level BOM 2015-12-04 10:53:15 +05:30
Rushabh Mehta
7be2e985b0 [docs] updated generated docs 2015-12-03 18:28:19 +05:30
Rushabh Mehta
3b6287d849 [docs] updated generated docs 2015-12-03 18:27:13 +05:30
Rushabh Mehta
ab7021ce64 [docs] merged kb and cleanup. warning: don't see the commit 2015-12-03 17:59:34 +05:30
Rushabh Mehta
ca4c663e07 Merge branch 'develop' 2015-12-03 17:58:58 +05:30
Rushabh Mehta
275b3eec0d bumped to version 6.12.3 2015-12-03 18:28:57 +06:00
Rushabh Mehta
acaef538c2 Merge pull request #4420 from rmehta/stock-entry-fix
[minor] allow stock entry for manufacture without production order
2015-12-03 17:58:07 +05:30
Rushabh Mehta
041b062014 Merge pull request #4419 from nabinhait/salary_payment_days
[fix] Payment Days and holidays considering joining and relieving dates
2015-12-03 17:57:24 +05:30
Rushabh Mehta
39e603a154 Merge pull request #4413 from nabinhait/bank_transfer_exchange_rate
Bank transfer exchange rate and account balance in COA
2015-12-03 17:56:03 +05:30
Nabin Hait
a4eeb919e6 [fix] Set payment days considering joinging date, reliving date and applicable holidays 2015-12-03 15:10:30 +05:30
Nabin Hait
c4d9554a05 [fix] Payment Days and holidays considering joining and relieving dates 2015-12-03 15:10:30 +05:30
Rushabh Mehta
2e1c8f27c4 Merge pull request #4421 from nabinhait/tax_rule_fix
[fix] Toggle required for sales and purchase tax template based on tax type
2015-12-03 11:50:09 +05:30
Nabin Hait
4c7a32e446 [fix] Toggle required for sales and purchase tax template based on tax type 2015-12-03 11:47:38 +05:30
Rushabh Mehta
2c069a418a [minor] allow stock entry for manufacture without production order 2015-12-03 11:10:23 +05:30
Rushabh Mehta
ba2596a7e0 [minor] validate email id before inviting user 2015-12-03 10:35:11 +05:30
Rushabh Mehta
f7911687a0 [minor] fixes to patch 2015-12-03 08:09:42 +05:30
Rushabh Mehta
ceb82324ad Merge branch 'develop' 2015-12-02 14:54:45 +05:30
Rushabh Mehta
5dd1aa9f31 bumped to version 6.12.2 2015-12-02 15:24:45 +06:00
Rushabh Mehta
80ada3eddd Merge pull request #4415 from nabinhait/salary_slip_fix
[fix] Inactive salary structure validation
2015-12-02 14:52:11 +05:30
Nabin Hait
8df5900f98 [fix] Inactive salary structure validation 2015-12-02 14:50:08 +05:30
Nabin Hait
f58a3726a7 Balance in chart of accounts in both company and account currency 2015-12-02 12:28:06 +05:30
Nabin Hait
1c77506e80 [fix] Don't overwrite exchange rate on saving for bank transfer 2015-12-02 12:28:06 +05:30
Rushabh Mehta
f1f556c0ac Merge pull request #4409 from nabinhait/reorder_level
[fix] Reorder Qty mandatory if reorder level entered
2015-12-02 12:25:09 +05:30
Rushabh Mehta
4a1b9ac793 Merge pull request #4407 from nabinhait/develop
[fix] Mapping allowed for negative quantity
2015-12-02 12:24:49 +05:30
Nabin Hait
20abc2d0e8 [fix] Reorder Qty mandatory if reorder level entered 2015-12-01 19:01:19 +05:30
Rushabh Mehta
4f9fe9c856 Merge branch 'develop' 2015-12-01 18:18:28 +05:30
Rushabh Mehta
4496cc1e80 bumped to version 6.12.1 2015-12-01 18:48:28 +06:00
Rushabh Mehta
29cca2352c [hot] [fix] trial balance report 2015-12-01 18:17:33 +05:30
Nabin Hait
d793fc9446 [fix] Mapping allowed for negative quantity 2015-12-01 17:28:12 +05:30
Rushabh Mehta
84f44ad5eb Merge pull request #4345 from nabinhait/stock_reco
[fix] Get items in stock reconciliation based on default warehouse
2015-12-01 16:50:32 +05:30
Nabin Hait
5b73dea9f6 [fix] Get items in stock reconciliation based on default warehouse or existing bin 2015-12-01 16:47:17 +05:30
Rushabh Mehta
cd90478c6d Merge pull request #4406 from nabinhait/recurring_test_fix
[fix] Recurring test case fixed for the 1st day of the month
2015-12-01 16:43:27 +05:30
Nabin Hait
c4edcf1532 [fix] Recurring test case fixed for the 1st day of the month 2015-12-01 16:28:35 +05:30
Rushabh Mehta
70885f63a5 Merge branch 'develop' 2015-12-01 16:24:13 +05:30
Rushabh Mehta
48b1633ff5 bumped to version 6.12.0 2015-12-01 16:54:13 +06:00
Rushabh Mehta
4140fa59c5 [translations] 2015-12-01 16:02:15 +05:30
Rushabh Mehta
afacc3d779 [minor] catch illegal reference, via error report 2015-12-01 15:53:07 +05:30
Rushabh Mehta
87b0bec2cf Merge pull request #4405 from rmehta/get-product-bundle-fixes
[fixes] [ux] get product bundle items only on po, mr and button on toolbar
2015-12-01 15:14:23 +05:30
Rushabh Mehta
29f9f6c147 [fixes] [ux] get product bundle items only on po, mr and button on toolbar 2015-12-01 11:36:22 +05:30
Rushabh Mehta
37d9d6fdea Merge pull request #4402 from nabinhait/allow_root_accounts
[feature] Allowed custom root accounts in Chart of Accounts
2015-12-01 10:59:44 +05:30
Rushabh Mehta
0cc177f73c Merge pull request #4400 from nabinhait/total_amount_in_jv
[fix] Total Amount in Journal Entry in bank currency
2015-12-01 10:58:34 +05:30
Nabin Hait
8c4e043747 [feature] Allowed custom root accounts in Chart of Accounts 2015-12-01 10:34:43 +05:30
Rushabh Mehta
3617942ff7 Merge pull request #4395 from nabinhait/drop_ship
[fix] Invoicing against drop-ship Purchase Order
2015-12-01 10:26:25 +05:30
Nabin Hait
ddc295b4b3 [minor] Set expense account as Stock RBNB for perpetual inventory after mapping 2015-11-30 18:40:28 +05:30
Nabin Hait
621f4cd7c9 [fix] Invoicing against drop-ship Purchase Order 2015-11-30 18:40:28 +05:30
Rushabh Mehta
4750b1fdb7 Merge pull request #4397 from rmehta/setup-wizard-fixes
[minor] system settings in setup wizard moved to frappe
2015-11-30 17:17:16 +05:30
Rushabh Mehta
e7bb6544f5 Merge pull request #4401 from nabinhait/pr-for-non-stock-items
[fix] Show 'Make Purchase Receipt' button in PO even if all items are non-stock items
2015-11-30 16:56:28 +05:30
Nabin Hait
72e348daf5 [fix] Show 'Make Purchase Receipt' button in PO even if all items are non-stock items 2015-11-30 16:26:49 +05:30
Nabin Hait
6c173e9730 [fix] Total Amount in Journal Entry in bank currency 2015-11-30 16:13:42 +05:30
Rushabh Mehta
0547a7668e Merge pull request #4398 from nabinhait/bank_reco
[fix] Bank Reconciliation in account currency
2015-11-30 16:06:06 +05:30
Nabin Hait
ec1695dbe3 [fix] Bank Reconciliation in account currency 2015-11-30 15:23:46 +05:30
Rushabh Mehta
7909102edd [minor] system settings in setup wizard moved to frappe 2015-11-30 15:12:45 +05:30
Rushabh Mehta
3f10e0ba2d Merge pull request #4396 from rmehta/stock-reco-fixes
[fixes] stock reco, must always set qty and rate
2015-11-30 14:18:09 +05:30
Rushabh Mehta
9f7de868ef [fixes] stock reco, must always set qty and rate 2015-11-30 14:16:36 +05:30
Rushabh Mehta
d6c5235d58 [minor] [translation] fix #4343 2015-11-30 11:33:01 +05:30
Rushabh Mehta
32e55e174d [minor] fix error message 2015-11-30 10:51:29 +05:30
Anand Doshi
8d968ceb94 Merge branch 'develop' 2015-11-27 17:38:46 +05:30
Anand Doshi
47e82d1a49 bumped to version 6.11.3 2015-11-27 18:08:46 +06:00
Anand Doshi
563c243ec6 Revert "[hotfix] total amount in journal entry"
This reverts commit 5b03a75970.
2015-11-27 17:38:17 +05:30
Anand Doshi
7781763efa Merge branch 'develop' 2015-11-27 17:24:49 +05:30
Anand Doshi
711e675987 bumped to version 6.11.2 2015-11-27 17:54:49 +06:00
Anand Doshi
5b03a75970 [hotfix] total amount in journal entry 2015-11-27 17:24:06 +05:30
Anand Doshi
f4c3819134 Merge branch 'develop' 2015-11-27 15:08:57 +05:30
Anand Doshi
b8591da62c bumped to version 6.11.1 2015-11-27 15:38:57 +06:00
Anand Doshi
a5f0a7ce06 [change-log] 2015-11-27 15:08:36 +05:30
Rushabh Mehta
9785cd35dc [minor] quote optional in email digest 2015-11-27 14:50:15 +05:30
Anand Doshi
e38a53443a Merge pull request #4386 from rmehta/bank-reco-bulk-edit
[enhancement] bulk edit in bank reconciliation, #4356
2015-11-27 14:46:58 +05:30
Anand Doshi
70f57eb7f0 [fix] call apply price list, apply pricing rule only if price list is mentioned or there are items in the table 2015-11-27 14:38:01 +05:30
Rushabh Mehta
2d70887aaf [enhancement] bulk edit in bank reconciliation, #4356 2015-11-27 11:37:18 +05:30
Anand Doshi
15b22c9d7d Merge pull request #4383 from anandpdoshi/fix/auto-material-request-template
[fix] Show Item Name in re-order email. Fixes #4381
2015-11-27 11:31:36 +05:30
Anand Doshi
4b12740e8d [fix] Shipment in portal. Fixes #4291 2015-11-26 18:22:03 +05:30
Anand Doshi
f942d97a18 [fix] removed UOM Replace Utility from message 2015-11-26 16:08:09 +05:30
Anand Doshi
5cf7a0bf72 [fix] Show Item Name in re-order email. Fixes #4381 2015-11-26 15:11:18 +05:30
Anand Doshi
49abb18928 Merge branch 'develop' 2015-11-26 12:42:07 +05:30
Anand Doshi
7c016d2ee2 bumped to version 6.11.0 2015-11-26 13:12:06 +06:00
Anand Doshi
666fbaff8c [translations] 2015-11-26 12:40:13 +05:30
Anand Doshi
6674d1dc2b [change-log] 2015-11-26 12:37:52 +05:30
Anand Doshi
5225a9752b Merge pull request #4377 from rmehta/jv-print-fix
[fix] total amount in journal entry
2015-11-26 11:05:35 +05:30
Rushabh Mehta
0fd67b23f4 [minor] duplicate button on BOM cancel 2015-11-26 10:37:24 +05:30
Rushabh Mehta
b82bdd6f1f [fix] total amount in journal entry 2015-11-26 09:08:07 +05:30
Rushabh Mehta
131bec67bc Merge pull request #4373 from anandpdoshi/fix/status-updater-after-not-null
[fix] status update - update qty after int float not null change
2015-11-25 18:09:13 +05:30
Anand Doshi
ebae726237 [fix] status update - update qty after int float not null change 2015-11-25 17:55:47 +05:30
Anand Doshi
3314f1cba7 Merge pull request #4374 from rmehta/reorder-fix
[minor] re-order at re-order level, not below
2015-11-25 17:54:36 +05:30
Anand Doshi
a4870118ea Merge pull request #4365 from anandpdoshi/fix/print-hide-if-0
[fix] Show Credit/Debit as blank in Journal Entry Account if its value is 0
2015-11-25 17:28:54 +05:30
Rushabh Mehta
03b3d66b90 [minor] re-order at re-order level, not below 2015-11-25 17:23:00 +05:30
Anand Doshi
5c968abcef [fix] Show Credit/Debit as blank in Journal Entry Account if its value is 0 2015-11-25 16:33:00 +05:30
Anand Doshi
699d9be4b7 Merge pull request #4369 from bohlian/develop
Removed Warehouse Requirement for SerialNo Listing
2015-11-25 15:19:47 +05:30
Anand Doshi
ad5cf9b22e Merge pull request #4370 from rmehta/manual-contribs
[manual] contributions via Robert Becht
2015-11-25 15:18:56 +05:30
Anand Doshi
cdb63fd52a Merge pull request #4366 from anandpdoshi/fix/setup-wizard-fiscal-year
[fix] validate fiscal year dates and company name
2015-11-25 15:18:28 +05:30
Rushabh Mehta
bf07cba6a8 [manual] contributions via Robert Becht 2015-11-25 14:42:02 +05:30
bohlian
ff1ab26088 Removed Warehouse Requirement for SerialNo Listing
Removed the requirement that Warehouse has to be assigned for Serial Number to appear in the listing.
2015-11-25 16:06:20 +08:00
Anand Doshi
5c3469a01e [fix] validate fiscal year dates and company name 2015-11-24 17:06:54 +05:30
Anand Doshi
625592e997 Merge pull request #4363 from anandpdoshi/fix/web-form-customization
[fix] Changed Country fieldtype to Link in Web Form
2015-11-24 13:26:23 +05:30
Anand Doshi
7221805587 [fix] Changed Country fieldtype to Link in Web Form 2015-11-23 19:20:51 +05:30
Anand Doshi
a0961bc0cf Merge pull request #4360 from nabinhait/bom_fix
[fix] Update exploded materials table from 'Update Cost' button
2015-11-23 16:55:31 +05:30
Nabin Hait
cf3cf2ca1f [fix] Update exploded materials table from 'Update Cost' button 2015-11-23 15:12:18 +05:30
Anand Doshi
17e9b9444d Merge pull request #4355 from nabinhait/items_from_product_bundle
Get Items from Product Bundle button in purchase cycle
2015-11-23 12:59:41 +05:30
Nabin Hait
c4f4c09e42 Get Items from Product Bundle button in purchase cycle 2015-11-23 12:51:37 +05:30
Anand Doshi
fe1e5884b8 Merge pull request #4354 from nabinhait/pcv
[fix] Period closing account should be of type Liability / Equity
2015-11-23 12:35:06 +05:30
Nabin Hait
072c540ae3 [fix] Period closing account should be of type Liability / Equity 2015-11-23 09:52:08 +05:30
Anand Doshi
3012f0d39a Merge branch 'develop' 2015-11-20 18:10:04 +05:30
Anand Doshi
c6d91b8fb2 bumped to version 6.10.2 2015-11-20 18:40:04 +06:00
Anand Doshi
019111b05c [translations] 2015-11-20 18:00:11 +05:30
Anand Doshi
ddad05dab3 [fix] Customer de-duplication sql 2015-11-20 17:29:40 +05:30
Nabin Hait
9e425863a1 Merge pull request #4342 from revant/patch-2
fix frappe call to update_purchase_receipt_status
2015-11-20 12:47:35 +05:30
Revant Nandgaonkar
bde324a90f fix frappe call to update_purchase_receipt_status
changed update_purchase_order_status to update_purchase_receipt_status
2015-11-20 12:41:58 +05:30
Anand Doshi
b133240298 Merge branch 'develop' 2015-11-20 00:42:15 +05:30
Anand Doshi
56c605f36e bumped to version 6.10.1 2015-11-20 01:12:15 +06:00
Anand Doshi
8c56adf42b [hotfix] drop ship patch 2015-11-20 00:41:28 +05:30
Nabin Hait
690023538e Merge branch 'develop' 2015-11-19 14:34:29 +05:30
Nabin Hait
19ce11aa9c bumped to version 6.10.0 2015-11-19 15:04:29 +06:00
Nabin Hait
f649013079 Merge pull request #4329 from anandpdoshi/int-float-not-null
[enhancement] Int, Currency, Float, Percent as not null and default to 0
2015-11-19 14:30:58 +05:30
Anand Doshi
120ea62acc [fix] get_balance_on: convert date to string 2015-11-19 14:24:39 +05:30
Anand Doshi
602e8253be [enhancement] Int, Currency, Float, Percent as not null and default to 0 2015-11-19 13:23:36 +05:30
Nabin Hait
06df19b56a Reload PO Item before patch 2015-11-19 12:46:37 +05:30
Nabin Hait
0f72750fc8 Merge pull request #4338 from anandpdoshi/fix/salary-slip-earning-deduction
[fix] pull earning and deduction on change of employee
2015-11-19 12:06:37 +05:30
Nabin Hait
5f0b93ed71 Merge pull request #4337 from nabinhait/payment_tool_fix
[fix] Mapping from Payment Tool
2015-11-19 12:05:38 +05:30
Nabin Hait
5284b22c53 [fix] Mapping from negative outstanding invoice 2015-11-19 11:42:23 +05:30
Nabin Hait
343c1a5cbd [fix] Mapping from Payment Tool 2015-11-19 11:42:22 +05:30
Nabin Hait
6daa5746f8 Merge pull request #4335 from saurabh6790/drop-ship-fixes-1
Move Drop Ship from Purchase Order to Purchase Order Items
2015-11-19 11:40:06 +05:30
Anand Doshi
7763bb5c15 [fix] pull earning and deduction on change of employee 2015-11-18 19:04:03 +05:30
Saurabh
b65c69f9eb [fixes] drop ship test case fixes 2015-11-18 17:39:26 +05:30
Saurabh
2e292060c5 [fix] Reserved and ordered qty fix for drop ship orders 2015-11-18 17:39:26 +05:30
Saurabh
a4bf02de6c [fixes] overlapping allocation 2015-11-18 17:39:26 +05:30
Saurabh
3bcf82c7a6 [fixes] test leave allocation record creation 2015-11-18 17:39:26 +05:30
Saurabh
55222a5b82 [fixes] test case fixes 2015-11-18 17:39:26 +05:30
Saurabh
2c85efe31a [fixes] hide drop ship section and typo 2015-11-18 17:39:26 +05:30
Saurabh
20628f5bd8 [patch] mo drop shipment from purchase order to purchase order item 2015-11-18 17:39:25 +05:30
Saurabh
caf122f015 [fixes] dropship fixes 2015-11-18 17:39:25 +05:30
Nabin Hait
b73f3da02c Merge pull request #4332 from nabinhait/pi_fix
[fix] Check Purchase Receipt mandatory only for stock items
2015-11-18 17:30:29 +05:30
Nabin Hait
f0607b45c5 Merge pull request #4334 from revant/patch-1
Mode of Payment validate
2015-11-18 17:29:54 +05:30
Nabin Hait
b45ca3ada0 Merge pull request #4331 from nabinhait/pcv_fix
[fix] Allowed Equity accounts in closing account in Period Closing Voucher
2015-11-18 17:15:57 +05:30
Nabin Hait
11e8728715 Merge pull request #4336 from nabinhait/offer_letter_print_format
[fix] Don't add pagebreak in print format if terms contains only spaces and newlines
2015-11-18 17:15:34 +05:30
Rushabh Mehta
edc8ab03b5 [minor] fixed description 2015-11-18 16:48:19 +05:30
Revant Nandgaonkar
27c266b081 improve mode_of_payment validate_accounts
using frappe.db.get_value instead of frappe.get_list
2015-11-18 13:28:09 +05:30
Nabin Hait
c7fc11a812 [fix] Don't add pagebreak in print format if terms contains only spaces and newlines 2015-11-18 12:59:00 +05:30
Rushabh Mehta
d962d1c96f [minor] remove feedback line from digest 2015-11-18 10:53:03 +05:30
Revant Nandgaonkar
11f8a0033a Mode of Payment validate
Error when Same Company is entered multiple times in accounts
Error when Company of Ledger account doesn't match with Company Selected
2015-11-17 21:15:00 +05:30
Anand Doshi
da79740cdf [fix] injection 2015-11-17 18:27:50 +05:30
Nabin Hait
2cf1699937 [fix] Check Purchase Receipt mandatory only for stock items 2015-11-17 17:32:07 +05:30
Nabin Hait
1a3413875f [fix] Allowed Equity accounts in closing account in Period Closing Voucher 2015-11-17 17:12:44 +05:30
Anand Doshi
3667da1053 [fix] Set user_id as Reply-To in birthday reminder emails 2015-11-16 19:31:20 +05:30
Nabin Hait
a5ac1f024e Merge branch 'develop' 2015-11-16 18:12:03 +05:30
Nabin Hait
d9e57978b8 bumped to version 6.9.2 2015-11-16 18:42:03 +06:00
Nabin Hait
fee95f1135 Merge pull request #4328 from nabinhait/hotfix1
[hotfix]
2015-11-16 18:11:18 +05:30
Nabin Hait
e8f4790d0a [hotfix] 2015-11-16 18:10:15 +05:30
Nabin Hait
e1feab1d70 Merge branch 'develop' 2015-11-16 17:07:38 +05:30
Nabin Hait
6826ca19b1 bumped to version 6.9.1 2015-11-16 17:37:38 +06:00
Nabin Hait
de46fd62d8 Delete v6_9_1.md 2015-11-16 17:06:51 +05:30
Nabin Hait
c7c2d17823 Merge pull request #4327 from nabinhait/item_fix
[change-log] Added change log
2015-11-16 17:05:45 +05:30
Nabin Hait
6f7cd47ac6 [change-log] Added change log 2015-11-16 17:04:48 +05:30
Nabin Hait
11fc0723c9 Merge pull request #4326 from nabinhait/item_fix
Item fix and change log
2015-11-16 17:02:02 +05:30
Nabin Hait
94e90bddaa [change-log] Added change log 2015-11-16 17:01:12 +05:30
Nabin Hait
43ce642649 [fix] Uncheck 'Is Production Item' if it is a non-stock item 2015-11-16 16:50:59 +05:30
Nabin Hait
a975fea3ac Merge branch 'develop' 2015-11-16 16:42:56 +05:30
Nabin Hait
8e2d76bd63 bumped to version 6.9.0 2015-11-16 17:12:56 +06:00
Anand Doshi
34af16140e Merge pull request #4315 from rmehta/standard-in-web-form
Web form, make standard
2015-11-16 16:24:14 +05:30
Nabin Hait
b3a68c3f40 Merge pull request #4323 from nabinhait/leaves
[fix][cleanup] Leave allocation, application and balance report cleanup and fixes
2015-11-16 15:57:04 +05:30
Nabin Hait
9f2fd009b0 Merge pull request #4318 from nabinhait/sal_fix
[fix] Check Salary Structure validity
2015-11-16 15:52:52 +05:30
Nabin Hait
3858d12f1d Merge pull request #4317 from nabinhait/close_feature
Show Close button in Delivery Note and Purchase Receipt, only if it is returned and user has submit permission
2015-11-16 15:52:41 +05:30
Nabin Hait
adc93b797a Merge pull request #4316 from nabinhait/advance_fix
[fix] Invoice Outstanding calculation related to advance
2015-11-16 15:50:32 +05:30
Nabin Hait
b6de519571 [fix] Test case fixed 2015-11-16 15:50:10 +05:30
Nabin Hait
58c4646199 [fix][cleanup] Leave allocation, application and balance report cleanup and fixes 2015-11-16 15:35:14 +05:30
Anand Doshi
4fbf01fd9d [fix] urlencode address list's link 2015-11-16 15:05:49 +05:30
Anand Doshi
1ed82834ce [fix] re-make setup wizard slides on change of language 2015-11-16 12:58:14 +05:30
Nabin Hait
cd87e76d88 [fix] Check Salary Structure validity 2015-11-15 11:06:55 +05:30
Rushabh Mehta
834b3e6f83 [fix] added missing address hook for website permissions 2015-11-13 14:38:12 +05:30
Nabin Hait
95d025f9aa Show Close button in Delivery Note and Purchase Receipt, only if it is returned and user has submit permission 2015-11-13 14:22:32 +05:30
Nabin Hait
90c6d7bb47 [fix] Invoice Outstanding calculation related to advance 2015-11-13 14:04:03 +05:30
Nabin Hait
59ba9e3d56 Merge pull request #4314 from anandpdoshi/fix/po-non-stock-receive
[fix] Don't show Receive for a Purchase Order having non-stock items, show Close button only for users with Submit rights
2015-11-13 13:59:04 +05:30
Rushabh Mehta
c1531e7008 [minor] catch SSL error on make_thumbnail, via support 2015-11-13 11:39:38 +05:30
Rushabh Mehta
511421b6a3 [minor] [enhancement] ability to make web-form standard, reload web-forms, merge after https://github.com/frappe/frappe/pull/1405 2015-11-13 11:04:50 +05:30
Rushabh Mehta
26c54bb4fb [minor] new quote 2015-11-13 10:42:20 +05:30
Anand Doshi
2c93d67463 Merge branch 'develop' 2015-11-12 20:37:12 +05:30
Anand Doshi
d4b05fbd51 bumped to version 6.8.4 2015-11-12 21:07:12 +06:00
Anand Doshi
d65a03d437 [fix] material request type in reorder 2015-11-12 20:36:44 +05:30
Anand Doshi
fd288d4211 Merge branch 'develop' 2015-11-12 20:35:48 +05:30
Anand Doshi
f774f75c63 bumped to version 6.8.3 2015-11-12 21:05:48 +06:00
Anand Doshi
e34a1b5fa2 Merge branch 'develop' 2015-11-12 20:01:53 +05:30
Anand Doshi
5f6546c8a5 bumped to version 6.8.2 2015-11-12 20:31:53 +06:00
Anand Doshi
ca5b593e38 [hotfix] setup wizard tax rate 2015-11-12 20:00:50 +05:30
Anand Doshi
cea5479f4d [fix] Don't show Receive for a Purchase Order having non-stock items, show Close button only for users with Submit rights 2015-11-12 18:39:57 +05:30
Anand Doshi
6303f84d45 [minor] fix test case 2015-11-12 18:11:58 +05:30
Anand Doshi
5dd00a7e89 Merge branch 'develop' 2015-11-12 17:42:41 +05:30
Anand Doshi
87c0e9f03a bumped to version 6.8.1 2015-11-12 18:12:41 +06:00
Anand Doshi
d40d1e9a59 [optimize] Payment Reconciliation and Payment Tool 2015-11-12 17:42:05 +05:30
Anand Doshi
e19abfbe70 Merge branch 'develop' 2015-11-12 17:10:49 +05:30
Anand Doshi
3fc1c44334 bumped to version 6.8.0 2015-11-12 17:40:48 +06:00
Anand Doshi
bb347f5afa [translations] 2015-11-12 16:39:58 +05:30
Anand Doshi
938b530ebf [change-log] 2015-11-12 15:44:09 +05:30
Anand Doshi
28962f26d4 Merge pull request #4307 from frappe/v5.x.x
[fix] Stock Entry additional costs patch fix for v4 accounts
2015-11-12 15:30:59 +05:30
Anand Doshi
0b5489ca88 Merge pull request #4312 from nabinhait/delete_uom_replace_utility
Deleted Stock UOM Replace Utility
2015-11-12 15:26:41 +05:30
Anand Doshi
adebf31041 Merge pull request #4313 from saurabh6790/doc
[help-page] drop-shipping documentation
2015-11-12 15:25:50 +05:30
Anand Doshi
7fbab12c5d Merge branch 'rmehta-setup-wizard-in-frappe' into develop 2015-11-12 12:48:31 +05:30
Saurabh
11cc43a5a6 [help-page] drop-shipping documentation 2015-11-12 12:39:21 +05:30
Nabin Hait
61fb7ee5b8 Deleted Stock UOM Replace Utility 2015-11-12 12:06:47 +05:30
Rushabh Mehta
37b4d75e4a [re-org] setup wizard in frappe 2015-11-12 11:45:47 +05:30
Anand Doshi
f71ecbba2c Merge pull request #4311 from rmehta/auth-rule-cleanup
Auth rule cleanup
2015-11-12 11:40:55 +05:30
Anand Doshi
c5c6c0669f [fix] gross profit 2015-11-12 11:07:32 +05:30
Anand Doshi
fe85b2ea17 Merge branch 'nabinhait-erpnext_docs' into develop 2015-11-10 18:59:55 +05:30
Anand Doshi
1c1eb7018c [docs] fixed Linked With and title 2015-11-10 18:58:56 +05:30
Anand Doshi
8df5b5e3a1 Merge branch 'develop' 2015-11-10 11:31:29 +05:30
Anand Doshi
39982a5f02 bumped to version 6.7.8 2015-11-10 12:01:29 +06:00
Rushabh Mehta
8f228dd7f9 [fix] [minor] closed not in notifications 2015-11-10 11:28:35 +05:30
Rushabh Mehta
739aa4d51a [minor] allow pricing rule to have negative discount 2015-11-09 17:05:12 +05:30
Nabin Hait
f9ef0e4e15 [docs] Fixed ref docs, image and video links 2015-11-09 15:41:45 +05:30
Nabin Hait
fc51ec7f58 [docs] Added existing erpnext manual 2015-11-09 14:40:34 +05:30
Nabin Hait
7ba4d02444 [docs] First commit for docs 2015-11-09 14:40:29 +05:30
Anand Doshi
87b5fcb3b5 Merge branch 'develop' 2015-11-09 13:17:49 +05:30
Anand Doshi
7489d29813 bumped to version 6.7.7 2015-11-09 13:47:49 +06:00
Anand Doshi
268d300030 Merge pull request #4297 from frappe/revert-4294-develop
Revert b28573ab03
2015-11-09 13:17:04 +05:30
Anand Doshi
7f77002015 Revert b28573ab03 2015-11-09 13:16:24 +05:30
Anand Doshi
b28573ab03 Merge pull request #4294 from neilLasrado/develop
[Minor fix] Allowed maintenance schedule to be imported via data import tool
2015-11-09 13:13:41 +05:30
Anand Doshi
c756ff67b0 Merge pull request #4296 from anandpdoshi/sales-order-allow-delivery
[fix] Allow both Purchase Order and Delivery from Sales Order, based on drop shipping checkbox
2015-11-09 13:13:14 +05:30
Anand Doshi
4e72ef1421 [fix] Allow both Purchase Order and Delivery from Sales Order, based on drop shipping checkbox 2015-11-09 13:01:49 +05:30
Neil Trini Lasrado
6b173f3a67 Allowed maintenance schedule to be imported via data import tool 2015-11-09 11:38:06 +05:30
Rushabh Mehta
bbcce8cca0 [minor] [cleanup] cosmetic cleanup and fix to start auth rule, did not do big cleanup 2015-11-09 11:28:51 +05:30
Rushabh Mehta
c438c1dec7 [minor] allow pricing rule to have negative discount 2015-11-07 20:28:43 +05:30
Anand Doshi
fcfced624a Merge branch 'develop' 2015-11-07 15:40:22 +05:30
Anand Doshi
64949bfc4b bumped to version 6.7.6 2015-11-07 16:10:22 +06:00
Anand Doshi
438c4fb279 [patch] reload doctype Leave Allocation 2015-11-07 15:38:29 +05:30
Rushabh Mehta
ae4c8a6a48 Merge branch 'develop' 2015-11-06 16:54:17 +05:30
Rushabh Mehta
0d7213122a bumped to version 6.7.5 2015-11-06 17:24:17 +06:00
Rushabh Mehta
4268b0092a [minor] don't show po / mr buttons if delivered 2015-11-06 16:52:18 +05:30
Rushabh Mehta
64e31e9a4e [fix] process payroll 2015-11-06 14:47:12 +05:30
Rushabh Mehta
0a0c267edb Merge branch 'develop' 2015-11-06 11:45:09 +05:30
Rushabh Mehta
1a8d4b6ea7 bumped to version 6.7.4 2015-11-06 12:15:09 +06:00
Rushabh Mehta
97426776bd Merge pull request #4281 from nabinhait/address_fix
[fix] Clear addressed and contacts on a new form
2015-11-06 11:02:31 +05:30
Rushabh Mehta
60e7f01fd4 Merge branch 'develop' 2015-11-06 10:49:53 +05:30
Rushabh Mehta
169089bdde bumped to version 6.7.3 2015-11-06 11:19:53 +06:00
Rushabh Mehta
c14f80838b [fix] [hot] leave allocation patch 2015-11-06 10:49:16 +05:30
Rushabh Mehta
a5007db902 Merge branch 'develop' 2015-11-06 10:41:06 +05:30
Rushabh Mehta
0d58501229 bumped to version 6.7.2 2015-11-06 11:11:06 +06:00
Nabin Hait
7c654cd1bb Leave allocation patch included 2015-11-06 10:37:26 +05:30
Rushabh Mehta
54fc260a42 [minor] trigger link triggers while mapping material request to po to set supplier default currency 2015-11-05 15:26:02 +05:30
Rushabh Mehta
7a39d51366 [fix] pull tax rate in item tax 2015-11-05 15:19:11 +05:30
Rushabh Mehta
79c94426f7 Merge pull request #4277 from nabinhait/gross_profit_fix
[fix][report] Buying amount for product bundle in Gross Profit report
2015-11-05 14:04:30 +05:30
Nabin Hait
c3ced9a0b5 [fix][report] Buying amount for product bundle in Gross Profit report 2015-11-05 13:13:31 +05:30
Rushabh Mehta
c825575940 Merge branch 'develop' 2015-11-05 10:51:31 +05:30
Rushabh Mehta
afd3209017 bumped to version 6.7.1 2015-11-05 11:21:31 +06:00
Rushabh Mehta
c541b87bb9 [thumbnail] remove attachment if fails 2015-11-05 10:49:42 +05:30
Nabin Hait
915778fb69 [fix] Clear addressed and contacts on a new form 2015-10-30 14:43:13 +05:30
Nabin Hait
e9b445c853 [fix] Stock Entry additional costs patch fix for v4 accounts 2015-09-05 11:17:11 +05:30
2117 changed files with 128916 additions and 84308 deletions

1
.gitignore vendored
View File

@@ -7,3 +7,4 @@ latest_updates.json
.wnf-lang-status
*.egg-info
dist/
erpnext/docs/current

View File

@@ -63,7 +63,7 @@ Your project neither promotes nor is associated with entities that currently fai
Use of the ERPNext name and logo is additionally allowed in the following situations:
All other ERPNext-related businesses or projects can use the ERPNext name and logo to refer to and explain their services, but they cannot use them as part of a product, project, service, domain, or company name and they cannot use them in any way that suggests an affiliation with or endorsement by the ERPNext or WebNotes or the ERPNext open source project. For example, a consulting company can describe its business as “123 Web Services, offering ERPNext consulting for small businesses,” but cannot call its business “The ERPNext Consulting Company.”
All other ERPNext-related businesses or projects can use the ERPNext name and logo to refer to and explain their services, but they cannot use them as part of a product, project, service, domain, or company name and they cannot use them in any way that suggests an affiliation with or endorsement by ERPNext or Frappe Technologies or the ERPNext open source project. For example, a consulting company can describe its business as “123 Web Services, offering ERPNext consulting for small businesses,” but cannot call its business “The ERPNext Consulting Company.”
Similarly, its OK to use the ERPNext logo as part of a page that describes your products or services, but it is not OK to use it as part of your company or product logo or branding itself. Under no circumstances is it permitted to use ERPNext as part of a top-level domain name.

View File

@@ -1,2 +1,2 @@
from __future__ import unicode_literals
__version__ = '6.7.0'
__version__ = '6.24.2'

View File

@@ -48,13 +48,13 @@ cur_frm.cscript.account_type = function(doc, cdt, cdn) {
cur_frm.cscript.add_toolbar_buttons = function(doc) {
cur_frm.add_custom_button(__('Chart of Accounts'),
function() { frappe.set_route("Accounts Browser", "Account"); }, 'icon-sitemap')
function() { frappe.set_route("Accounts Browser", "Account"); }, __("View"))
if (doc.is_group == 1) {
cur_frm.add_custom_button(__('Convert to non-Group'),
cur_frm.add_custom_button(__('Group to Non-Group'),
function() { cur_frm.cscript.convert_to_ledger(); }, 'icon-retweet', 'btn-default');
} else if (cint(doc.is_group) == 0) {
cur_frm.add_custom_button(__('View Ledger'), function() {
cur_frm.add_custom_button(__('Ledger'), function() {
frappe.route_options = {
"account": doc.name,
"from_date": sys_defaults.year_start_date,
@@ -62,9 +62,9 @@ cur_frm.cscript.add_toolbar_buttons = function(doc) {
"company": doc.company
};
frappe.set_route("query-report", "General Ledger");
}, "icon-table");
}, __("View"));
cur_frm.add_custom_button(__('Convert to Group'),
cur_frm.add_custom_button(__('Group to Group'),
function() { cur_frm.cscript.convert_to_group(); }, 'icon-retweet', 'btn-default')
}
}

View File

@@ -20,10 +20,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "",
"length": 0,
"no_copy": 0,
"oldfieldtype": "Section Break",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -41,9 +43,11 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -63,11 +67,13 @@
"in_filter": 1,
"in_list_view": 1,
"label": "Account Name",
"length": 0,
"no_copy": 1,
"oldfieldname": "account_name",
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 1,
@@ -87,10 +93,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Is Group",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -109,12 +117,14 @@
"in_filter": 1,
"in_list_view": 0,
"label": "Company",
"length": 0,
"no_copy": 0,
"oldfieldname": "company",
"oldfieldtype": "Link",
"options": "Company",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 1,
@@ -132,11 +142,13 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Root Type",
"label": "Root Type",
"length": 0,
"no_copy": 0,
"options": "\nAsset\nLiability\nIncome\nExpense\nEquity",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -154,11 +166,13 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Report Type",
"label": "Report Type",
"length": 0,
"no_copy": 0,
"options": "\nBalance Sheet\nProfit and Loss",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -178,11 +192,13 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Currency",
"length": 0,
"no_copy": 0,
"options": "Currency",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -200,9 +216,11 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -222,12 +240,14 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Parent Account",
"length": 0,
"no_copy": 0,
"oldfieldname": "parent_account",
"oldfieldtype": "Link",
"options": "Account",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -246,13 +266,15 @@
"ignore_user_permissions": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Account Type",
"label": "Account Type",
"length": 0,
"no_copy": 0,
"oldfieldname": "account_type",
"oldfieldtype": "Select",
"options": "\nBank\nCash\nTax\nChargeable\nWarehouse\nReceivable\nPayable\nEquity\nFixed Asset\nCost of Goods Sold\nExpense Account\nRound Off\nIncome Account\nStock Received But Not Billed\nExpenses Included In Valuation\nStock Adjustment\nStock\nTemporary",
"options": "\nBank\nCash\nDepreciation\nTax\nChargeable\nWarehouse\nReceivable\nPayable\nEquity\nFixed Asset\nCost of Goods Sold\nExpense Account\nRound Off\nIncome Account\nStock Received But Not Billed\nExpenses Included In Valuation\nStock Adjustment\nStock\nTemporary",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -272,11 +294,13 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Rate",
"length": 0,
"no_copy": 0,
"oldfieldname": "tax_rate",
"oldfieldtype": "Currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -295,13 +319,15 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Frozen",
"label": "Frozen",
"length": 0,
"no_copy": 0,
"oldfieldname": "freeze_account",
"oldfieldtype": "Select",
"options": "No\nYes",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -320,10 +346,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Warehouse",
"length": 0,
"no_copy": 0,
"options": "Warehouse",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -341,11 +369,13 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Balance must be",
"label": "Balance must be",
"length": 0,
"no_copy": 0,
"options": "\nDebit\nCredit",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -364,9 +394,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Lft",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -385,9 +417,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Rgt",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -406,9 +440,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Old Parent",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -426,7 +462,8 @@
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"modified": "2015-10-02 07:38:37.436071",
"max_attachments": 0,
"modified": "2015-12-12 10:19:54.365839",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Account",

View File

@@ -23,8 +23,11 @@ class Account(Document):
frappe.db.get_value("Company", self.company, "abbr")
def validate(self):
if frappe.local.flags.allow_unverified_charts:
return
self.validate_parent()
self.validate_root_details()
self.validate_group_or_ledger()
self.set_root_and_report_type()
self.validate_mandatory()
self.validate_warehouse_account()
@@ -65,12 +68,33 @@ class Account(Document):
if self.root_type != db_value.root_type:
frappe.db.sql("update `tabAccount` set root_type=%s where lft > %s and rgt < %s",
(self.root_type, self.lft, self.rgt))
if self.root_type and not self.report_type:
self.report_type = "Balance Sheet" \
if self.root_type in ("Asset", "Liability", "Equity") else "Profit and Loss"
def validate_root_details(self):
# does not exists parent
if frappe.db.exists("Account", self.name):
if not frappe.db.get_value("Account", self.name, "parent_account"):
throw(_("Root cannot be edited."), RootNotEditable)
if not self.parent_account and not self.is_group:
frappe.throw(_("Root Account must be a group"))
def validate_group_or_ledger(self):
if self.get("__islocal"):
return
existing_is_group = frappe.db.get_value("Account", self.name, "is_group")
if self.is_group != existing_is_group:
if self.check_gle_exists():
throw(_("Account with existing transaction cannot be converted to ledger"))
elif self.is_group:
if self.account_type:
throw(_("Cannot covert to Group because Account Type is selected."))
elif self.check_if_child_exists():
throw(_("Account with child nodes cannot be set as ledger"))
def validate_frozen_accounts_modifier(self):
old_value = frappe.db.get_value("Account", self.name, "freeze_account")
@@ -127,11 +151,11 @@ class Account(Document):
and docstatus != 2""", self.name)
def validate_mandatory(self):
if not self.report_type:
throw(_("Report Type is mandatory"))
if not self.root_type:
throw(_("Root Type is mandatory"))
if not self.report_type:
throw(_("Report Type is mandatory"))
def validate_warehouse_account(self):
if not cint(frappe.defaults.get_global_default("auto_accounting_for_stock")):
@@ -192,6 +216,10 @@ class Account(Document):
if val != [self.is_group, self.root_type, self.company]:
throw(_("""Merging is only possible if following properties are same in both records. Is Group, Root Type, Company"""))
if self.is_group and frappe.db.get_value("Account", new, "parent_account") == old:
frappe.db.set_value("Account", new, "parent_account",
frappe.db.get_value("Account", old, "parent_account"))
return new_account

View File

@@ -8,7 +8,7 @@ from unidecode import unidecode
def create_charts(chart_name, company):
chart = get_chart(chart_name)
if chart:
accounts = []
@@ -40,9 +40,9 @@ def create_charts(chart_name, company):
"account_currency": frappe.db.get_value("Company", company, "default_currency")
})
if root_account:
if root_account or frappe.local.flags.allow_unverified_charts:
account.flags.ignore_mandatory = True
account.insert()
accounts.append(account_name_in_db)
@@ -67,13 +67,17 @@ def get_chart(chart_name):
from erpnext.accounts.doctype.account.chart_of_accounts.verified import standard_chart_of_accounts
return standard_chart_of_accounts.get()
else:
path = os.path.join(os.path.dirname(__file__), "verified")
for fname in os.listdir(path):
if fname.endswith(".json"):
with open(os.path.join(path, fname), "r") as f:
chart = f.read()
if chart and json.loads(chart).get("name") == chart_name:
return json.loads(chart).get("tree")
folders = ("verified",)
if frappe.local.flags.allow_unverified_charts:
folders = ("verified", "unverified")
for folder in folders:
path = os.path.join(os.path.dirname(__file__), folder)
for fname in os.listdir(path):
if fname.endswith(".json"):
with open(os.path.join(path, fname), "r") as f:
chart = f.read()
if chart and json.loads(chart).get("name") == chart_name:
return json.loads(chart).get("tree")
@frappe.whitelist()
def get_charts_for_country(country):
@@ -82,24 +86,22 @@ def get_charts_for_country(country):
def _get_chart_name(content):
if content:
content = json.loads(content)
if content and content.get("is_active", "No") == "Yes" and content.get("disabled", "No") == "No":
if content and content.get("disabled", "No") == "No":
charts.append(content["name"])
country_code = frappe.db.get_value("Country", country, "code")
if country_code:
path = os.path.join(os.path.dirname(__file__), "verified")
for fname in os.listdir(path):
if fname.startswith(country_code) and fname.endswith(".json"):
with open(os.path.join(path, fname), "r") as f:
_get_chart_name(f.read())
folders = ("verified",)
if frappe.local.flags.allow_unverified_charts:
folders = ("verified", "unverified")
# countries_use_OHADA_system = ["Benin", "Burkina Faso", "Cameroon", "Central African Republic", "Comoros",
# "Congo", "Ivory Coast", "Gabon", "Guinea", "Guinea Bissau", "Equatorial Guinea", "Mali", "Niger",
# "Replica of Democratic Congo", "Senegal", "Chad", "Togo"]
#
# if country in countries_use_OHADA_system:
# with open(os.path.join(os.path.dirname(__file__), "syscohada_syscohada_chart_template.json"), "r") as f:
# _get_chart_name(f.read())
for folder in folders:
path = os.path.join(os.path.dirname(__file__), folder)
for fname in os.listdir(path):
if fname.startswith(country_code) and fname.endswith(".json"):
with open(os.path.join(path, fname), "r") as f:
_get_chart_name(f.read())
if len(charts) != 1:
charts.append("Standard")

View File

@@ -1,7 +1,6 @@
{
"country_code": "at",
"name": "Austria - Chart of Accounts",
"is_active": "Yes",
"tree": {
"Summe Abschreibungen und Aufwendungen": {
"7010 bis 7080 Abschreibungen auf das Anlageverm\u00f6gen (ausgenommen Finanzanlagen)": {},

View File

@@ -1,7 +1,6 @@
{
"country_code": "be",
"name": "Belgian PCMN",
"disabled": "Yes",
"tree": {
"CLASSE 1": {
"BENEFICE (PERTE) REPORTE(E)": {

View File

@@ -1,7 +1,6 @@
{
"country_code": "br",
"name": "Planilha de Contas Brasileira",
"is_active": "No",
"tree": {
"ATIVO": {
"CIRCULANTE": {

View File

@@ -1,7 +1,6 @@
{
"country_code": "ca",
"name": "Chart of Accounts for english-speaking provinces",
"is_active": "Yes",
"tree": {
"ASSETS": {
"CURRENT ASSETS": {

View File

@@ -1,7 +1,6 @@
{
"country_code": "ca",
"name": "Plan comptable pour les provinces francophones",
"is_active": "Yes",
"tree": {
"ACTIF": {
"ACTIFS COURANTS": {

View File

@@ -1,7 +1,6 @@
{
"country_code": "ch",
"name": "Plan comptable STERCHI",
"is_active": "Yes",
"disabled": "Yes",
"tree": {
"Actif": {

View File

@@ -1,7 +1,6 @@
{
"country_code": "co",
"name": "Unique Account Chart - PUC",
"is_active": "Yes",
"tree": {
"ACTIVO": {
"DEUDORES": {

View File

@@ -1,7 +1,6 @@
{
"country_code": "cr",
"name": "Costa Rica - Company 0",
"is_active": "Yes",
"tree": {
"0-Activo": {
"0-Activo circulante": {

View File

@@ -1,7 +1,6 @@
{
"country_code": "cr",
"name": "Costa Rica - Company 1",
"is_active": "Yes",
"tree": {
"xActivo": {
"root_type": "Asset",

View File

@@ -1,7 +1,7 @@
{
"country_code": "de",
"name": "Deutscher Kontenplan SKR04",
"is_active": "Yes",
"disabled": "Yes",
"tree": {
"Bilanz - Aktiva": {
"Anlageverm\u00f6gen": {

View File

@@ -1,7 +1,6 @@
{
"country_code": "de",
"name": "Deutscher Kontenplan SKR03",
"is_active": "No",
"disabled": "Yes",
"tree": {
"Aktiva": {

View File

@@ -1,6 +1,7 @@
{
"country_code": "es",
"name": "PGCE com\u00fan",
"disabled": "Yes",
"tree": {
"Acreedores y deudores por operaciones comerciales": {
"Acreedores varios": {

View File

@@ -1,7 +1,6 @@
{
"country_code": "et",
"name": "Ethiopia Tax and Account Chart Template",
"is_active": "Yes",
"tree": {
"ASSETS": {
"Cash and Cash Equivalents": {

View File

@@ -1,7 +1,6 @@
{
"country_code": "gt",
"name": "Plantilla de cuentas de Guatemala (sencilla)",
"is_active": "Yes",
"tree": {
"Activo": {
"Activo Corriente": {

View File

@@ -1,7 +1,6 @@
{
"country_code": "hn",
"name": "Plantilla de cuentas de Honduras (sencilla)",
"is_active": "Yes",
"tree": {
"Activo": {
"Activo Corriente": {

View File

@@ -1,6 +1,7 @@
{
"country_code": "lu",
"name": "PCMN Luxembourg",
"disabled": "Yes",
"tree": {
"TOTAL CLASSES 1 A 5": {
"CLASSE 1 - COMPTES DE CAPITAUX, DE PROVISIONS ET DE DETTES FINANCIERES": {

View File

@@ -1,7 +1,6 @@
{
"country_code": "pa",
"name": "Plan de Cuentas",
"is_active": "Yes",
"tree": {
"ACTIVOS": {
"Activo Fijo": {

View File

@@ -1,6 +1,7 @@
{
"country_code": "ro",
"name": "Romania - Chart of Accounts",
"disabled": "Yes",
"tree": {
"CONTURI FINANCIARE": {
"CONTURI DE BILANT": {

View File

@@ -1,223 +0,0 @@
{
"country_code": "sg",
"name": "Singapore Chart of Accounts",
"is_active": "Yes",
"tree": {
"Assets": {
"Cash and cash equivalents": {
"Cash on hand": {
"account_type": "Cash"
},
"Client trust account": {
"account_type": "Cash"
},
"Current": {
"account_type": "Bank"
},
"Money market": {
"account_type": "Cash"
},
"Rents held in trust": {
"account_type": "Cash"
},
"Savings": {
"account_type": "Cash"
},
"account_type": "Cash"
},
"Current assets": {
"Allowance for bad debts": {},
"Development costs": {},
"Employee cash advances": {},
"Inventory": {},
"Investments - other": {},
"Loans to officers": {},
"Loans to others": {},
"Loans to shareholders": {},
"Other Current Assets": {},
"Prepaid expenses": {},
"Retainage": {},
"Undeposited funds": {}
},
"Non-current assets": {
"Accumulated amortization of non-current assets": {},
"Available-for-sale financial assets": {},
"Deferred tax": {},
"Goodwill": {},
"Intangible Assets": {},
"Investments": {},
"Lease Buyout": {},
"Licences": {},
"Organisational costs": {},
"Other intangible assets": {},
"Other non-current assets": {},
"Prepayments and accrued income": {},
"Security Deposits": {}
},
"Property, plant and equipment": {
"Accumulated amortisation": {},
"Accumulated depletion": {},
"Accumulated depreciation": {},
"Buildings": {},
"Depletable assets": {},
"Furniture and fixtures": {},
"Leasehold improvements": {},
"Machinery and equipment": {},
"Other Assets": {},
"Vehicles": {}
},
"Purchase Tax Receivable": {
"Purchase Tax Account 0% EP": {},
"Purchase Tax Account 0% ME": {},
"Purchase Tax Account 0% NR": {},
"Purchase Tax Account 0% OP": {},
"Purchase Tax Account 0% ZP": {},
"Purchase Tax Account 7% BL": {},
"Purchase Tax Account 7% IM": {},
"Purchase Tax Account 7% TX-E33": {},
"Purchase Tax Account 7% TX-N33": {},
"Purchase Tax Account 7% TX-RE": {},
"Purchase Tax Account 7% TX7": {},
"Purchase Tax Account MES": {}
},
"Trade and other receivable": {
"Other Receivable Account": {
"account_type": "Receivable"
},
"Trade Receivable Account": {
"account_type": "Receivable"
},
"account_type": "Receivable"
},
"root_type": "Asset"
},
"Liabilities": {
"Current liabilities": {
"Client Trust Accounts - Liabilities": {},
"Current Tax Liability": {},
"Current portion of employee benefits obligations": {},
"Current portion of obligations under finance leases": {},
"GST Payable": {},
"Insurance Payable": {},
"Interest payables": {},
"Line of Credit": {},
"Loan Payable": {},
"Payroll Clearing": {},
"Payroll liabilities": {},
"Prepaid Expenses Payable": {},
"Provision for warranty obligations": {},
"Rents in trust - Liability": {},
"Short term borrowings": {}
},
"Equity": {
"Accumulated Adjustment": {},
"Opening Balance Equity": {},
"Ordinary shares": {},
"Owner's Equity": {},
"Paid-in capital or surplus": {},
"Partner's Equity": {},
"Preferred shares": {},
"Retained Earnings": {},
"Share capital": {},
"Treasury Shares": {}
},
"Non-current liabilities": {
"Accruals and Deferred Income": {},
"Bank loans": {},
"Long term borrowings": {},
"Long term employee benefit obligations": {},
"Notes Payable": {},
"Obligations under finance leases": {},
"Other non-current liabilities": {},
"Shareholder Notes Payable": {}
},
"Sale Tax Payables": {
" Sales Tax Account 0% ES33": {},
"Sales Tax Account 0% ESN33": {},
"Sales Tax Account 0% OS": {},
"Sales Tax Account 0% ZR": {},
"Sales Tax Account 7% DS": {},
"Sales Tax Account 7% SR": {}
},
"Trade and other payables": {
"Other Payable Account": {
"account_type": "Payable"
},
"Trade Payable Account": {
"account_type": "Payable"
},
"account_type": "Payable"
},
"root_type": "Liability"
},
"Cost of sales": {
"Cost of Good Sold": {
"Cost of Labour - COS": {},
"Equipment rental - COS": {},
"Freight and delivery - COS": {},
"Other costs of sales - COS": {},
"Supplies and materials - COS": {}
},
"root_type": "Expense"
},
"Income": {
"Other revenue": {
"Dividend revenue": {},
"Gain/loss on sale of fixed assets or investments": {},
"Interest earned": {},
"Other investment revenue": {},
"Other miscellaneous revenue": {},
"Tax-exempt interest": {}
},
"Revenue": {
"Discounts/refunds given": {},
"Non-profit revenue": {},
"Other primary revenue": {},
"Sales of product revenue": {},
"Service/fee revenue": {},
"Unapplied cash payment income": {}
},
"root_type": "Income"
},
"Indirect Expenses": {
"Expenses": {
"Administrative expenses": {},
"Advertising/promotional": {},
"Auto": {},
"Bad debts": {},
"Bank charges": {},
"Charitable contributions": {},
"Cost of labour": {},
"Distribution costs": {},
"Dues and subscriptions": {},
"Entertainment": {},
"Equipment rental": {},
"Finance costs": {},
"Insurance": {},
"Interest paid": {},
"Legal and professional fees": {},
"Meals and entertainment": {},
"Other miscellaneous service cost": {},
"Payroll expenses": {},
"Promotional meals": {},
"Rent or lease of buildings": {},
"Repair and maintenance": {},
"Shipping, freight, and delivery": {},
"Supplies": {},
"Taxes paid": {},
"Travel": {},
"Travel meals": {},
"Unapplied cash bill payment expense": {},
"Utilities": {}
},
"Other Expenses": {
"Amortisation": {},
"Depreciation": {},
"Exchange Gain or Loss": {},
"Other Expense": {},
"Penalties and settlements": {}
},
"root_type": "Expense"
}
}
}

View File

@@ -1,6 +1,7 @@
{
"country_code": "si",
"name": "Kontni na\u010drt za gospodarske dru\u017ebe",
"disabled": "Yes",
"tree": {
"DOLGORO\u010cNA SREDSTVA": {
"DANA DOLGORO\u010cNA POSOJILA IN TERJATVE ZA NEVPLA\u010cANI VPOKLICANI KAPITAL": {

View File

@@ -1,7 +1,6 @@
{
"country_code": "th",
"name": "Thailand Chart of Accounts",
"is_active": "Yes",
"tree": {
"Assets": {
"Account Receivable": {},

View File

@@ -1,7 +1,6 @@
{
"country_code": "uy",
"name": "Plan de Cuentas",
"is_active": "Yes",
"tree": {
"ACTIVO": {
"ACTIVO CORRIENTE": {

View File

@@ -1,7 +1,6 @@
{
"country_code": "ae",
"name": "U.A.E Chart of Accounts",
"is_active": "Yes",
"tree": {
"Assets": {
"Current Assets": {

View File

@@ -0,0 +1,414 @@
{
"country_code": "at",
"name": "Austria - Chart of Accounts - Einheitskontenrahmen provided by fairkom.eu",
"tree": {
"Klasse 0 Aktiva: Anlageverm\u00f6gen": {
"0100 Konzessionen ": {"account_type": "Fixed Asset"},
"0110 Patentrechte und Lizenzen ": {"account_type": "Fixed Asset"},
"0120 Datenverarbeitungsprogramme ": {"account_type": "Fixed Asset"},
"0130 Marken, Warenzeichen und Musterschutzrechte, sonstige Urheberrechte ": {"account_type": "Fixed Asset"},
"0140 Pacht- und Mietrechte ": {"account_type": "Fixed Asset"},
"0150 Bezugs- und ähnliche Rechte ": {"account_type": "Fixed Asset"},
"0160 Geschäfts-/Firmenwert ": {"account_type": "Fixed Asset"},
"0170 Umgründungsmehrwert ": {"account_type": "Fixed Asset"},
"0180 Geleistete Anzahlungen auf immaterielle Vermögensgegenstände": {"account_type": "Fixed Asset"},
"0190 Kumulierte Abschreibungen zu immateriellen Vermögensgegenständen ": {"account_type": "Fixed Asset"},
"0200 Unbebaute Grundstücke, soweit nicht landwirtschaftlich genutzt ": {"account_type": "Fixed Asset"},
"0210 Bebaute Grundstücke (Grundwert) ": {"account_type": "Fixed Asset"},
"0220 Landwirtschaftlich genutzte Grundstücke ": {"account_type": "Fixed Asset"},
"0230 Grundstücksgleiche Rechte ": {"account_type": "Fixed Asset"},
"0300 Betriebs- und Geschäftsgebäude auf eigenem Grund ": {"account_type": "Fixed Asset"},
"0310 Wohn- und Sozialgebäude auf eigenem Grund ": {"account_type": "Fixed Asset"},
"0320 Betriebs- und Geschäftsgebäude auf fremdem Grund ": {"account_type": "Fixed Asset"},
"0330 Wohn- und Sozialgebäude auf fremdem Grund ": {"account_type": "Fixed Asset"},
"0340 Grundstückseinrichtungen auf eigenem Grund ": {"account_type": "Fixed Asset"},
"0350 Grundstückseinrichtungen auf fremdem Grund ": {"account_type": "Fixed Asset"},
"0360 Bauliche Investitionen in fremden (gepachteten) Betriebs- und Geschäftsgebäuden": {"account_type": "Fixed Asset"},
"0370 Bauliche Investitionen in fremden (gepachteten) Wohn- und Sozialgebäuden": {"account_type": "Fixed Asset"},
"0390 Kumulierte Abschreibungen zu Grundstücken ": {"account_type": "Fixed Asset"},
"0400 Maschinen und Geräte ": {"account_type": "Fixed Asset"},
"0500 Maschinenwerkzeuge ": {"account_type": "Fixed Asset"},
"0510 Allgemeine Werkzeuge und Handwerkzeuge ": {"account_type": "Fixed Asset"},
"0520 Prototypen, Formen, Modelle ": {"account_type": "Fixed Asset"},
"0530 Andere Erzeugungshilfsmittel (auch Softwarewerkzeuge)": {"account_type": "Fixed Asset"},
"0540 Hebezeuge und Montageanlagen ": {"account_type": "Fixed Asset"},
"0550 Geringwertige Vermögensgegenstände, soweit im Erzeugungsprozess ": {"account_type": "Fixed Asset"},
"0560 Festwerte technische Anlagen und Maschinen ": {"account_type": "Fixed Asset"},
"0590 Kumulierte Abschreibungen zu technischen Anlagen und Maschinen ": {"account_type": "Fixed Asset"},
"0600 Betriebs- und Geschäftsausstattung, soweit nicht gesondert angeführt ": {"account_type": "Fixed Asset"},
"0610 Andere Anlagen, soweit nicht gesondert angeführt ": {"account_type": "Fixed Asset"},
"0620 Büromaschinen, EDV-Anlagen ": {"account_type": "Fixed Asset"},
"0630 PKW und Kombis ": {"account_type": "Fixed Asset"},
"0640 LKW ": {"account_type": "Fixed Asset"},
"0650 Andere Beförderungsmittel ": {"account_type": "Fixed Asset"},
"0660 Gebinde ": {"account_type": "Fixed Asset"},
"0670 Geringwertige Vermögensgegenstände, soweit nicht im Erzeugungssprozess verwendet": {"account_type": "Fixed Asset"},
"0680 Festwerte außer technische Anlagen und Maschinen ": {"account_type": "Fixed Asset"},
"0690 Kumulierte Abschreibungen zu anderen Anlagen, Betriebs- und Geschäftsausstattung": {"account_type": "Fixed Asset"},
"0700 Geleistete Anzahlungen auf Sachanlagen ": {"account_type": "Fixed Asset"},
"0710 Anlagen in Bau ": {"account_type": "Fixed Asset"},
"0790 Kumulierte Abschreibungen zu geleisteten Anzahlungen auf Sachanlagen ": {"account_type": "Fixed Asset"},
"0800 Anteile an verbundenen Unternehmen ": {"account_type": "Fixed Asset"},
"0810 Beteiligungen an Gemeinschaftsunternehmen ": {"account_type": "Fixed Asset"},
"0820 Beteiligungen an angeschlossenen (assoziierten) Unternehmen ": {"account_type": "Fixed Asset"},
"0830 Eigene Anteile, Anteile an herrschenden oder mit Mehrheit beteiligten ": {"account_type": "Fixed Asset"},
"0840 Sonstige Beteiligungen ": {"account_type": "Fixed Asset"},
"0850 Ausleihungen an verbundene Unternehmen ": {"account_type": "Fixed Asset"},
"0860 Ausleihungen an Unternehmen mit Beteiligungsverhältnis": {"account_type": "Fixed Asset"},
"0870 Ausleihungen an Gesellschafter ": {"account_type": "Fixed Asset"},
"0880 Sonstige Ausleihungen ": {"account_type": "Fixed Asset"},
"0890 Anteile an Kapitalgesellschaften ohne Beteiligungscharakter ": {"account_type": "Fixed Asset"},
"0900 Anteile an Personengesellschaften ohne Beteiligungscharakter ": {"account_type": "Fixed Asset"},
"0910 Genossenschaftsanteile ohne Beteiligungscharakter ": {"account_type": "Fixed Asset"},
"0920 Anteile an Investmentfonds ": {"account_type": "Fixed Asset"},
"0930 Festverzinsliche Wertpapiere des Anlagevermögens ": {"account_type": "Fixed Asset"},
"0980 Geleistete Anzahlungen auf Finanzanlagen ": {"account_type": "Fixed Asset"},
"0990 Kumulierte Abschreibungen zu Finanzanlagen ": {"account_type": "Fixed Asset"},
"root_type": "Asset"
},
"Klasse 1 Aktiva: Vorr\u00e4te": {
"1000 Bezugsverrechnung": {"account_type": "Stock"},
"1100 Rohstoffe": {"account_type": "Stock"},
"1200 Bezogene Teile": {"account_type": "Stock"},
"1300 Hilfsstoffe": {"account_type": "Stock"},
"1350 Betriebsstoffe": {"account_type": "Stock"},
"1360 Vorrat Energietraeger": {"account_type": "Stock"},
"1400 Unfertige Erzeugnisse": {"account_type": "Stock"},
"1500 Fertige Erzeugnisse": {"account_type": "Stock"},
"1600 Handelswarenvorrat": {"account_type": "Stock Received But Not Billed"},
"1700 Noch nicht abrechenbare Leistungen": {"account_type": "Stock"},
"1900 Wertberichtigungen": {"account_type": "Stock"},
"1800 Geleistete Anzahlungen": {"account_type": "Stock"},
"root_type": "Asset"
},
"Klasse 3 Passiva: Verbindlichkeiten": {
"3020 Steuerr\u00fcckstellungen": {"account_type": "Tax"},
"3040 Sonstige R\u00fcckstellungen": {"account_type": "Payable"},
"3110 Verbindlichkeiten gegen\u00fcber Bank": {"account_type": "Payable"},
"3150 Verbindlichkeiten Darlehen": {"account_type": "Payable"},
"3185 Verbindlichkeiten Kreditkarte": {"account_type": "Payable"},
"3380 Verbindlichkeiten aus der Annahme gezogener Wechsel u. d. Ausstellungen eigener Wechsel": {
"account_type": "Payable"
},
"3400 Verbindlichkeiten gegen\u00fc. verb. Untern., Verbindl. gegen\u00fc. Untern., mit denen eine Beteiligungsverh\u00e4lnis besteht": {},
"3460 Verbindlichkeiten gegenueber Gesellschaftern": {"account_type": "Payable"},
"3470 Einlagen stiller Gesellschafter": {"account_type": "Payable"},
"3590 Verbindlichkeiten Kommunalabgaben": {"account_type": "Tax"},
"3600 Verbindlichkeiten Sozialversicherung": {"account_type": "Payable"},
"3000 Allgemeine Verbindlichkeiten (Schuld)": {"account_type": "Payable"},
"3700 Sonstige Verbindlichkeiten": {"account_type": "Payable"},
"3900 Passive Rechnungsabgrenzungsposten": {"account_type": "Payable"},
"3100 Anleihen (einschlie\u00dflich konvertibler)": {"account_type": "Payable"},
"3200 Erhaltene Anzahlungen auf Bestellungen": {"account_type": "Payable"},
"3040 R\u00fcckstellungen f\u00fcr Abfertigung": {"account_type": "Payable"},
"3010 R\u00fcckstellungen f\u00fcr Pensionen": {"account_type": "Payable"},
"3530 USt. \u00a719 (reverse charge)": {
"account_type": "Tax"
},
"3500 Verbindlichkeiten aus Umsatzsteuer": {"account_type": "Tax"},
"3580 Umsatzsteuer Zahllast": {
"account_type": "Tax"
},
"3510 Umsatzsteuer aus i.g. Erwerb 10%": {
"account_type": "Tax"
},
"3520 Umsatzsteuer aus i.g. Erwerb 20%": {
"account_type": "Tax"
},
"3560 Umsatzsteuer-Evidenzkonto f\u00fcr erhaltene Anzahlungen auf Bestellungen": {},
"3360 Verbindlichkeiten aus Lieferungen u. Leistungen EU": {
"account_type": "Payable"
},
"3000 Verbindlichkeiten aus Lieferungen u. Leistungen Inland": {
"account_type": "Payable"
},
"3370 Verbindlichkeiten aus Lieferungen u. Leistungen sonst. Ausland": {
"account_type": "Payable"
},
"3400 Verbindlichkeiten gegen\u00fcber verbundenen Unternehmen": {},
"3570 Verrechnung Finanzamt": {
"account_type": "Tax"
},
"root_type": "Liability"
},
"Klasse 2 Aktiva: Umlaufverm\u00f6gen, Rechnungsabgrenzungen": {
"2030 Forderungen aus Lieferungen und Leistungen Inland (0% USt, umsatzsteuerfrei)": {
"account_type": "Receivable"
},
"2010 Forderungen aus Lieferungen und Leistungen Inland (10% USt, umsatzsteuerfrei)": {
"account_type": "Receivable"
},
"2000 Forderungen aus Lieferungen und Leistungen Inland (20% USt, umsatzsteuerfrei)": {
"account_type": "Receivable"
},
"2040 Forderungen aus Lieferungen und Leistungen Inland (sonstiger USt-Satz)": {
"account_type": "Receivable"
},
"2100 Forderungen aus Lieferungen und Leistungen EU": {
"account_type": "Receivable"
},
"2150 Forderungen aus Lieferungen und Leistungen Ausland (Nicht-EU)": {
"account_type": "Receivable"
},
"2200 Forderungen gegen\u00fcber verbundenen Unternehmen": {
"account_type": "Receivable"
},
"2250 Forderungen gegen\u00fcber Unternehmen, mit denen ein Beteiligungsverh\u00e4ltnis besteht": {
"account_type": "Receivable"
},
"2300 Sonstige Forderungen und Verm\u00f6gensgegenst\u00e4nde": {
"account_type": "Receivable"
},
"2630 Sonstige Wertpapiere": {
"account_type": "Stock"
},
"2750 Kassenbest\u00e4nde in Fremdw\u00e4hrung": {
"account_type": "Cash"
},
"2900 Aktive Rechnungsabrenzungsposten": {
"account_type": "Receivable"
},
"2600 Anteile an verbundenen Unternehmen": {
"account_type": "Equity"
},
"2680 Besitzwechsel ohne Forderungen": {
"account_type": "Receivable"
},
"2950 Aktiviertes Disagio": {
"account_type": "Receivable"
},
"2610 Eigene Anteile und Wertpapiere an mit Mehrheit beteiligten Unternehmen": {
"account_type": "Receivable"
},
"2570 Einfuhrumsatzsteuer (bezahlt)": {"account_type": "Tax"},
"2460 Eingeforderte aber noch nicht eingezahlte Einlagen": {
"account_type": "Receivable"
},
"2180 Einzelwertberichtigungen zu Forderungen aus Lief. und Leist. Ausland": {
"account_type": "Receivable"
},
"2130 Einzelwertberichtigungen zu Forderungen aus Lief. und Leist. EU": {
"account_type": "Receivable"
},
"2080 Einzelwertberichtigungen zu Forderungen aus Lief. und Leist. Inland ": {
"account_type": "Receivable"
},
"2270 Einzelwertberichtigungen zu Forderungen gegen\u00fcber Unternehmen mit denen ein Beteiligungsverh\u00e4ltnis besteht": {
"account_type": "Receivable"
},
"2230 Einzelwertberichtigungen zu Forderungen gegen\u00fcber verbundenen Unternehmen": {
"account_type": "Receivable"
},
"2470 Einzelwertberichtigungen zu sonstigen Forderungen und Verm\u00f6gensgegenst\u00e4nden": {
"account_type": "Receivable"
},
"2700 Kassenbestand": {
"account_type": "Cash"
},
"2190 Pauschalwertberichtigungen zu Forderungen aus Lief. und Leist. sonstiges Ausland": {
"account_type": "Receivable"
},
"2130 Pauschalwertberichtigungen zu Forderungen aus Lief. und Leist. EU": {
"account_type": "Receivable"
},
"2100 Pauschalwertberichtigungen zu Forderungen aus Lief. und Leist. Inland ": {
"account_type": "Receivable"
},
"2280 Pauschalwertberichtigungen zu Forderungen gegen\u00fcber Unternehmen mit denen ein Beteiligungsverh\u00e4ltnis besteht": {
"account_type": "Receivable"
},
"2240 Pauschalwertberichtigungen zu Forderungen gegen\u00fcber verbundenen Unternehmen": {
"account_type": "Receivable"
},
"2480 Pauschalwertberichtigungen zu sonstigen Forderungen und Verm\u00f6gensgegenst\u00e4nden": {
"account_type": "Receivable"
},
"2740 Postwertzeichen": {
"account_type": "Cash"
},
"2780 Schecks in Euro": {
"account_type": "Cash"
},
"2800 Guthaben bei Kreditinstitut": {
"account_type": "Bank"
},
"2810 Guthaben bei Paypal": {
"account_type": "Bank"
},
"2930 Mietvorauszahlungen": {
"account_type": "Receivable"
},
"2980 Abgrenzung latenter Steuern": {
"account_type": "Receivable"
},
"2500 Vorsteuer": {
"account_type": "Receivable"
},
"2510 Vorsteuer aus innergemeinschaftlichem Erwerb 10%": {
"account_type": "Tax"
},
"2520 Vorsteuer aus innergemeinschaftlichem Erwerb 20%": {
"account_type": "Tax"
},
"2530 Vorsteuer \u00a719/Art 19 ( reverse charge ) ": {
"account_type": "Tax"
},
"2690 Wertberichtigungen zu Wertpapieren und Anteilen": {
"account_type": "Receivable"
},
"root_type": "Asset"
},
"Klasse 4: Betriebliche Erträge": {
"4000 Erlöse 20 %": {"account_type": "Income Account"},
"4020 Erl\u00f6se 0 % steuerbefreit": {"account_type": "Income Account"},
"4010 Erl\u00f6se 10 %": {"account_type": "Income Account"},
"4030 Erl\u00f6se 13 %": {"account_type": "Income Account"},
"4040 Erl\u00f6se 0 % innergemeinschaftliche Lieferungen": {"account_type": "Income Account"},
"4400 Erl\u00f6sreduktion 0 % steuerbefreit": {"account_type": "Expense Account"},
"4410 Erl\u00f6sreduktion 10 %": {"account_type": "Expense Account"},
"4420 Erl\u00f6sreduktion 20 %": {"account_type": "Expense Account"},
"4430 Erl\u00f6sreduktion 13 %": {"account_type": "Expense Account"},
"4440 Erl\u00f6sreduktion 0 % innergemeinschaftliche Lieferungen": {"account_type": "Expense Account"},
"4500 Ver\u00e4nderungen des Bestandes an fertigen und unfertigen Erzeugn. sowie an noch nicht abrechenbaren Leistungen": {"account_type": "Income Account"},
"4580 Aktivierte Eigenleistungen": {"account_type": "Income Account"},
"4600 Erl\u00f6se aus dem Abgang vom Anlageverm\u00f6gen, ausgen. Finanzanlagen": {"account_type": "Income Account"},
"4630 Ertr\u00e4ge aus dem Abgang vom Anlageverm\u00f6gen, ausgen. Finanzanlagen": {"account_type": "Income Account"},
"4660 Ertr\u00e4ge aus der Zuschreibung zum Anlageverm\u00f6gen, ausgen. Finanzanlagen": {"account_type": "Income Account"},
"4700 Ertr\u00e4ge aus der Aufl\u00f6sung von R\u00fcckstellungen": {"account_type": "Income Account"},
"4800 \u00dcbrige betriebliche Ertr\u00e4ge": {"account_type": "Income Account"},
"root_type": "Income"
},
"Klasse 5: Aufwand f\u00fcr Material und Leistungen": {
"5000 Einkauf Partnerleistungen": {"account_type": "Cost of Goods Sold"},
"5100 Verbrauch an Rohstoffen": {"account_type": "Cost of Goods Sold"},
"5200 Verbrauch von bezogenen Fertig- und Einzelteilen": {"account_type": "Cost of Goods Sold"},
"5300 Verbrauch von Hilfsstoffen": {"account_type": "Cost of Goods Sold"},
"5340 Verbrauch Verpackungsmaterial": {"account_type": "Cost of Goods Sold"},
"5470 Verbrauch von Kleinmaterial": {"account_type": "Cost of Goods Sold"},
"5450 Verbrauch von Reinigungsmaterial": {"account_type": "Cost of Goods Sold"},
"5400 Verbrauch von Betriebsstoffen": {"account_type": "Cost of Goods Sold"},
"5500 Verbrauch von Werkzeugen und anderen Erzeugungshilfsmittel": {"account_type": "Cost of Goods Sold"},
"5600 Verbrauch von Brenn- und Treibstoffen, Energie und Wasser": {"account_type": "Cost of Goods Sold"},
"5700 Bearbeitung durch Dritte": {"account_type": "Cost of Goods Sold"},
"5900 Aufwandsstellenrechnung Material": {"account_type": "Cost of Goods Sold"},
"5820 Skontoertr\u00e4ge (20% USt.)": {"account_type": "Income Account"},
"5810 Skontoertr\u00e4ge (10% USt.)": {"account_type": "Income Account"},
"5010 Handelswareneinkauf 10 %": {"account_type": "Cost of Goods Sold"},
"5020 Handelswareneinkauf 20 %": {"account_type": "Cost of Goods Sold"},
"5040 Handelswareneinkauf innergemeinschaftlicher Erwerb 10 % VSt/10 % USt": {"account_type": "Cost of Goods Sold"},
"5050 Handelswareneinkauf innergemeinschaftlicher Erwerb 20 % VSt/20 % USt": {"account_type": "Cost of Goods Sold"},
"5070 Handelswareneinkauf innergemeinschaftlicher Erwerb ohne Vorsteuerabzug und 10 % USt": {"account_type": "Cost of Goods Sold"},
"5080 Handelswareneinkauf innergemeinschaftlicher Erwerb ohne Vorsteuerabzug und 20 % USt": {"account_type": "Cost of Goods Sold"},
"root_type": "Expense"
},
"Klasse 6: Personalaufwand": {
"6000 L\u00f6hne": {"account_type": "Payable"},
"6200 Geh\u00e4lter": {"account_type": "Payable"},
"6400 Aufwendungen f\u00fcr Abfertigungen": {"account_type": "Payable"},
"6450 Aufwendungen f\u00fcr Altersversorgung": {"account_type": "Payable"},
"6500 Gesetzlicher Sozialaufwand Arbeiter": {"account_type": "Payable"},
"6560 Gesetzlicher Sozialaufwand Angestellte": {"account_type": "Payable"},
"6600 Lohnabh\u00e4ngige Abgaben und Pflichtbeitr\u00e4gte": {"account_type": "Payable"},
"6660 Gehaltsabh\u00e4ngige Abgaben und Pflichtbeitr\u00e4gte": {"account_type": "Payable"},
"6700 Sonstige Sozialaufwendungen": {"account_type": "Payable"},
"6900 Aufwandsstellenrechnung Personal": {"account_type": "Payable"},
"root_type": "Expense"
},
"Klasse 7: Abschreibungen und sonstige betriebliche Aufwendungen": {
"7010 Abschreibungen auf das Anlageverm\u00f6gen (ausgenommen Finanzanlagen)": {"account_type": "Depreciation"},
"7100 Sonstige Steuern und Geb\u00fchren": {"account_type": "Tax"},
"7200 Instandhaltung u. Reinigung durch Dritte, Entsorgung, Energie": {"account_type": "Expense Account"},
"7300 Transporte durch Dritte": {"account_type": "Expense Account"},
"7310 Fahrrad - Aufwand": {"account_type": "Expense Account"},
"7320 Kfz - Aufwand": {"account_type": "Expense Account"},
"7330 LKW - Aufwand": {"account_type": "Expense Account"},
"7340 Lastenrad - Aufwand": {"account_type": "Expense Account"},
"7350 Reise- und Fahraufwand": {"account_type": "Expense Account"},
"7360 Tag- und N\u00e4chtigungsgelder": {"account_type": "Expense Account"},
"7380 Nachrichtenaufwand": {"account_type": "Expense Account"},
"7400 Miet- und Pachtaufwand": {"account_type": "Expense Account"},
"7440 Leasingaufwand": {"account_type": "Expense Account"},
"7480 Lizenzaufwand": {"account_type": "Expense Account"},
"7500 Aufwand f\u00fcr beigestelltes Personal": {"account_type": "Expense Account"},
"7540 Provisionen an Dritte": {"account_type": "Expense Account"},
"7580 Aufsichtsratsverg\u00fctungen": {"account_type": "Expense Account"},
"7610 Druckerzeugnisse und Vervielf\u00e4ltigungen": {"account_type": "Expense Account"},
"7650 Werbung und Repr\u00e4sentationen": {"account_type": "Expense Account"},
"7700 Versicherungen": {"account_type": "Expense Account"},
"7750 Beratungs- und Pr\u00fcfungsaufwand": {"account_type": "Expense Account"},
"7800 Forderungsverluste und Schadensf\u00e4lle": {"account_type": "Expense Account"},
"7840 Verschiedene betriebliche Aufwendungen": {"account_type": "Expense Account"},
"7910 Aufwandsstellenrechung der Hersteller": {"account_type": "Expense Account"},
"7060 Sofortabschreibungen geringwertig": {"account_type": "Expense Account"},
"7070 Abschreibungen vom Umlaufverm\u00f6gen, soweit diese die im Unternehmen \u00fcblichen Abschreibungen \u00fcbersteigen": {"account_type": "Depreciation"},
"7900 Aufwandsstellenrechnung": {"account_type": "Expense Account"},
"7770 Aus- und Fortbildung": {"account_type": "Expense Account"},
"7820 Buchwert abgegangener Anlagen, ausgenommen Finanzanlagen": {"account_type": "Expense Account"},
"7600 B\u00fcromaterial und Drucksorten": {"account_type": "Expense Account"},
"7630 Fachliteratur und Zeitungen ": {"account_type": "Expense Account"},
"7960 Herstellungskosten der zur Erzielung der Umsatzerl\u00f6se erbrachten Leistungen": {"account_type": "Expense Account"},
"7780 Mitgliedsbeitr\u00e4ge": {"account_type": "Expense Account"},
"7880 Skontoertr\u00e4ge auf sonstige betriebliche Aufwendungen": {"account_type": "Expense Account"},
"7990 Sonstige betrieblichen Aufwendungen": {"account_type": "Expense Account"},
"7680 Spenden und Trinkgelder": {"account_type": "Expense Account"},
"7790 Spesen des Geldverkehrs": {"account_type": "Expense Account"},
"7830 Verluste aus dem Abgang vom Anlageverm\u00f6gen, ausgenommen Finanzanlagen": {"account_type": "Expense Account"},
"7970 Vertriebskosten": {"account_type": "Expense Account"},
"7980 Verwaltungskosten": {"account_type": "Expense Account"},
"root_type": "Expense"
},
"Klasse 8: Finanz- und ausserordentliche Ertr\u00e4ge und Aufwendungen": {
"8000 Ertr\u00e4ge aus Beteiligungen": {"account_type": "Income Account"},
"8050 Ertr\u00e4ge aus anderen Wertpapieren und Ausleihungen des Finanzanlageverm\u00f6gens": {"account_type": "Income Account"},
"8100 Zinsen aus Bankguthaben": {"account_type": "Income Account"},
"8110 Zinsen aus gewaehrten Darlehen": {"account_type": "Income Account"},
"8130 Verzugszinsenertraege": {"account_type": "Income Account"},
"8220 Aufwendungen aus Beteiligungen": {"account_type": "Expense Account"},
"8260 Aufwendungen aus sonst. Fiananzanlagen und aus Wertpapieren des Umlaufverm\u00f6gens": {},
"8280 Zinsen und \u00e4hnliche Aufwendungem": {"account_type": "Expense Account"},
"8400 Au\u00dferordentliche Ertr\u00e4ge": {"account_type": "Income Account"},
"8450 Au\u00dferordentliche Aufwendungen": {"account_type": "Expense Account"},
"8500 Steuern vom Einkommen und vom Ertrag": {
"account_type": "Tax"
},
"8600 Aufl\u00f6sung unversteuerten R\u00fccklagen": {"account_type": "Income Account"},
"8700 Aufl\u00f6sung von Kapitalr\u00fccklagen": {"account_type": "Income Account"},
"8750 Aufl\u00f6sung von Gewinnr\u00fccklagen": {"account_type": "Income Account"},
"8800 Zuweisung zu unversteuerten R\u00fccklagen": {"account_type": "Expense Account"},
"8900 Zuweisung zu Gewinnr\u00fccklagen": {"account_type": "Expense Account"},
"8100 Buchwert abgegangener Beteiligungen": {"account_type": "Expense Account"},
"8130 Buchwert abgegangener Wertpapiere des Umlaufverm\u00f6gens": {"account_type": "Expense Account"},
"8120 Buchwert abgegangener sonstiger Finanzanlagen": {"account_type": "Expense Account"},
"8990 Gewinnabfuhr bzw. Verlust\u00fcberrechnung aus Ergebnisabf\u00fchrungsvertr\u00e4gen": {"account_type": "Expense Account"},
"8350 nicht ausgenutzte Lieferantenskonti": {"account_type": "Expense Account"},
"root_type": "Income"
},
"Klasse 9 Passiva: Eigenkapital, R\u00fccklagen, stille Einlagen, Abschlusskonten": {
"9000 Gezeichnetes bzw. gewidmetes Kapital": {
"account_type": "Equity"
},
"9200 Kapitalr\u00fccklagen": {
"account_type": "Equity"
},
"9300 Gewinnr\u00fccklagen": {
"account_type": "Equity"
},
"9400 Bewertungsreserven uns sonst. unversteuerte R\u00fccklagen": {
"account_type": "Equity"
},
"9600 Private Entnahmen": {"account_type": "Equity"},
"9610 Privatsteuern": {"account_type": "Equity"},
"9700 Einlagen stiller Gesellschafter ": {"account_type": "Equity"},
"9900 Evidenzkonto": {"account_type": "Equity"},
"9800 Er\u00f6ffnungsbilanzkonto (EBK)": {"account_type": "Equity"},
"9880 Jahresergebnis laut Gewinn- und Verlustrechnung (G+V)": {"account_type": "Equity"},
"9850 Schlussbilanzkonto (SBK)": {"account_type": "Round Off"},
"9190 nicht eingeforderte ausstehende Einlagen und berechtigte Entnahmen von Gesellschaftern": {
"account_type": "Equity"
},
"root_type": "Equity"
}
}
}

View File

@@ -1,7 +1,6 @@
{
"country_code": "gt",
"name": "Cuentas de Guatemala",
"is_active": "Yes",
"tree": {
"Activos": {
"Activo Corriente": {
@@ -11,7 +10,10 @@
"IVA por Cobrar": {},
"Retenciones de IVA recibidas": {}
},
"Inventario": {}
"Inventario": {
"is_group": 1,
"account_type": "Stock"
}
},
"No Corriente": {
"Activos Fijos": {},

View File

@@ -1,7 +1,6 @@
{
"country_code": "in",
"name": "Chart of Accounts - India",
"is_active": "Yes",
"tree": {
"Application of Funds (Assets)": {
"Current Assets": {

View File

@@ -1,7 +1,6 @@
{
"country_code": "ni",
"name": "Catalogo de Cuentas Nicaragua",
"is_active": "Yes",
"tree": {
"Activo": {
"Activo Corriente": {

View File

@@ -0,0 +1,273 @@
{
"country_code": "sg",
"name": "Singapore Default Chart of Accounts",
"tree": {
"Assets": {
"Current assets": {
"Accounts Receivable": {
"Credit Cards": {
"AMEX Receivable": {},
"CUP Receivale": {},
"MC Receivable": {},
"NETS Receivable": {},
"VISA Receivable": {}
},
"Debtors": {
"account_type": "Receivable"
}
},
"Bank Accounts": {
"Paypal Account": {
"account_type": "Bank"
},
"account_type": "Bank"
},
"Cash in Hand": {
"Cash in Transit": {
"account_type": "Cash"
},
"Petty Cash": {
"account_type": "Cash"
}
},
"Loans and Advances-Assets": {
"Prepayments": {}
},
"Securities and Deposits": {
"Bank Guarantees": {},
"Bank Deposits": {},
"Rental Deposits": {}
},
"Stock Assets": {
"account_type": "Stock",
"is_group": 1
},
"Tax Assets": {
"GST-Input": {}
}
},
"Non-current assets": {
"Fixed Assets": {
"Accumulated Depreciation": {
"AccDep-Equipment-ICT": {},
"AccDep-Furniture and Fixtures": {},
"AccDep-Equipment-Office": {},
"AccDep-Motor Vehicle": {},
"AccDep-Plant and Machinery": {}
},
"Equipment-ICT": {},
"Furniture and Fixtures": {},
"Equipment-Office": {},
"Motor Vehicle": {},
"Plant and Machinery": {}
},
"Non-Fixed Assets": {
"Goodwill": {},
"Investments": {
"Investments-Associated Company": {},
"Investments-Subsidiary": {}
}
},
"Shares": {
"Shares-Quoted": {},
"Shares-Unquoted": {}
}
},
"Temporary Accunts": {
"Temporary Opening": {
"account_type": "Temporary"
}
},
"root_type": "Asset"
},
"Liabilities": {
"Current liabilities": {
"Accounts Payable": {
"Creditors":{
"account_type": "Payable"
}
},
"Duties and Taxes": {
"account_type": "Tax",
"Deferred Tax Liabilities-Current": {},
"GST-Output": {},
"Income Tax Payable": {}
},
"Loans-Current": {
"Amount Owing to Directors": {},
"Bank Overdaft Account": {},
"Secured Loans": {},
"Unsecured Loans": {}
},
"Provision and Accruals": {
"Accruals": {
"Accr-CPF": {},
"Accr-Sundry": {},
"Accr-Withholding Tax": {}
},
"Provisions": {
"Prov-Audit Fee": {},
"Prov-Others": {},
"Prov-Tax Fee": {},
"Prov-Bonus": {
"Prov-Bonus-Executive": {},
"Prov-Bonus-Non Executive": {}
}
}
},
"Sponsorship Funds": {},
"Stock Liabilities": {
"Stock Received But Not Billed": {
"account_type": "Stock Received But Not Billed"
}
}
},
"Non-current liabilities": {
"Deferred Tax Liabilities": {},
"Loans-Non Current": {}
},
"Capital Account": {
"Reserves and Surplus": {},
"Shareholder Funds": {}
},
"root_type": "Liability"
},
"Equity": {
"Share Capital": {},
"Current Year Earnings": {},
"Proposed Dividends": {},
"Retained Earnings": {},
"root_type": "Equity"
},
"Income": {
"Direct Income": {
"Management Income": {},
"Sales Income": {}
},
"Indirect Income": {
"Government Grants": {},
"Interest Income": {
"Current Account Interest Earned": {},
"Fixed Deposit Interest Earned": {}
},
"Other Income": {},
"Service Charges": {}
},
"root_type": "Income"
},
"Expenses": {
"Expenses-Administrative": {
"Audit Fees": {},
"Bank charges and interest": {},
"Currency Exchange Differences": {},
"Insurance": {},
"Interest on Loan": {},
"Legal and Professional Fees": {},
"Loss on Disposal of FA": {},
"Postal and Courier Charges": {},
"Printing and Stationery": {},
"Secretarial Fees": {},
"Tax Agent Fees": {}
},
"Expenses-Direct": {
"Cost of Goods Sold": {
"account_type": "Cost of Goods Sold"
},
"Cost of Sales": {},
"Expenses Included in Valuation": {
"account_type": "Expenses Included In Valuation"
},
"Stock Adjustment": {
"account_type": "Stock Adjustment"
}
},
"Expenses-Marketing": {
"Advertising and Promotion": {},
"Graphic Design Fees": {},
"Internet Marketing": {}
},
"Expenses-Operating": {
"Cleaning Costs": {},
"Commission Charges": {
"Comm-Credit Card": {},
"Comm-NETS": {},
"Comm-Paypal": {}
},
"Communication Costs": {
"Internet Connection": {},
"Telephone Costs": {}
},
"Entertainment Expenses": {},
"General Expenses": {},
"Licence Fees": {},
"Rental Costs": {
"Rental-Premises": {},
"Rental-Equipment": {},
"Rental-Storage": {}
},
"Repairs and Maintenance": {
"R&M-ICT": {},
"R&M-Building": {},
"R&M-Fixtures & Furniture": {},
"R&M-Office": {},
"R&M-Plant & Machinery": {}
},
"Service Fees": {},
"Subscription Fees": {
"Publication Subscriptions": {},
"TV Subscriptions": {}
},
"Travel Expenses": {},
"Utilities": {
"Utility-Electricity": {},
"Utility-Gas": {},
"Utility-Refuse Removal": {},
"Utility-Water": {}
}
},
"Expenses-Other": {
"Bad Debts Written Off": {},
"Depreciation": {
"Dep-ICT Equipment": {},
"Dep-Fixtures & Furniture": {},
"Dep-Motor Vehicle": {},
"Dep-Office Equipment": {},
"Dep-Plant & Machinery": {},
"Dep-Renovation": {}
},
"Donations": {},
"Round Off": {},
"Tax Expenses": {
"Tax Expenses": {}
}
},
"Expenses-Staff": {
"Bonuses": {
"Bonus-Executive": {},
"Bonus-Non Executive": {},
"Bonus-Performance": {}
},
"CPF": {},
"Directors Fees": {},
"FWL": {},
"Incentives": {},
"Medical Expenses": {},
"Salaries": {
"Casual Labour": {},
"Salary-Executive": {},
"Salary-Non Executive-Full Time": {},
"Salary-Non Executive-Part Time": {}
},
"SDF": {},
"Security Expenses": {},
"Staff Advertising": {},
"Staff Commission Paid": {},
"Staff Meals": {},
"Staff Training": {},
"Staff Transport": {},
"Staff Welfare": {}
},
"root_type": "Expense"
}
}
}

View File

@@ -0,0 +1,343 @@
{
"country_code": "sg",
"name": "Singapore F&B Chart of Accounts",
"tree": {
"Assets": {
"Current assets": {
"Accounts Receivable": {
"Credit Cards": {
"AMEX Receivable": {},
"CUP Receivale": {},
"MC Receivable": {},
"NETS Receivable": {},
"VISA Receivable": {}
},
"Debtors": {
"account_type": "Receivable"
}
},
"Bank Accounts": {
"Paypal Account": {
"account_type": "Bank"
},
"account_type": "Bank"
},
"Cash in Hand": {
"Cash in Transit": {
"account_type": "Cash"
},
"Petty Cash": {
"account_type": "Cash"
}
},
"Loans and Advances-Assets": {
"Prepayments": {}
},
"Securities and Deposits": {
"Bank Guarantees": {},
"Bank Deposits": {},
"Rental Deposits": {}
},
"Stock Assets": {
"account_type": "Stock",
"is_group": 1
},
"Tax Assets": {
"GST-Input": {}
}
},
"Non-current assets": {
"Fixed Assets": {
"Accumulated Depreciation": {
"AccDep-Equipment-AV": {},
"AccDep-Equipment-Bar": {},
"AccDep-Equipment-ICT": {},
"AccDep-Equipment-Electrical": {},
"AccDep-Furniture and Fixtures": {},
"AccDep-Equipment-Kitchen": {},
"AccDep-Equipment-Lighting": {},
"AccDep-Equipment-Office": {},
"AccDep-Motor Vehicle": {},
"AccDep-Plant and Machinery": {},
"AccDep-Renovation": {}
},
"Equipment-AV": {},
"Equipment-Bar": {},
"Equipment-ICT": {},
"Equipment-Electrical": {},
"Furniture and Fixtures": {},
"Equipment-Kitchen": {},
"Equipment-Lighting": {},
"Equipment-Office": {},
"Motor Vehicle": {},
"Plant and Machinery": {},
"Renovation": {}
},
"Non-Fixed Assets": {
"Goodwill": {},
"Investments": {
"Investments-Associated Company": {},
"Investments-Subsidiary": {}
}
},
"Shares": {
"Shares-Quoted": {},
"Shares-Unquoted": {}
}
},
"Temporary Accunts": {
"Temporary Opening": {
"account_type": "Temporary"
}
},
"root_type": "Asset"
},
"Liabilities": {
"Current liabilities": {
"Accounts Payable": {
"Creditors":{
"account_type": "Payable"
}
},
"Duties and Taxes": {
"account_type": "Tax",
"Deferred Tax Liabilities-Current": {},
"GST-Output": {},
"Income Tax Payable": {}
},
"Loans-Current": {
"Amount Owing to Directors": {},
"Bank Overdaft Account": {},
"Secured Loans": {},
"Unsecured Loans": {}
},
"Provision and Accruals": {
"Accruals": {
"Accr-CPF": {},
"Accr-Incentives": {},
"Accr-OCR Employee Card": {},
"Accr-Paypal Credit": {},
"Accr-Sundry": {},
"Accr-Tips": {},
"Accr-Withholding Tax": {}
},
"Provisions": {
"Prov-Audit Fee": {},
"Prov-Others": {},
"Prov-Tax Fee": {},
"Prov-Bonus": {
"Prov-Bonus-Executive": {},
"Prov-Bonus-Non Executive": {}
}
}
},
"Sponsorship Funds": {},
"Stock Liabilities": {
"Stock Received But Not Billed": {
"account_type": "Stock Received But Not Billed"
}
}
},
"Non-current liabilities": {
"Deferred Tax Liabilities": {},
"Loans-Non Current": {}
},
"Capital Account": {
"Reserves and Surplus": {},
"Shareholder Funds": {}
},
"root_type": "Liability"
},
"Equity": {
"Share Capital": {},
"Current Year Earnings": {},
"Proposed Dividends": {},
"Retained Earnings": {},
"root_type": "Equity"
},
"Income": {
"Direct Income": {
"Management Income": {},
"Sales Income": {
"Sales-Food": {},
"Sales-Beverage": {},
"Sales-Events and Functions": {},
"Sales-Merchandise": {},
"Sales-Pool Tables": {},
"Sales-Tobacco": {},
"Sales-Rental": {}
}
},
"Indirect Income": {
"Government Grants": {},
"Interest Income": {
"Current Account Interest Earned": {},
"Fixed Deposit Interest Earned": {}
},
"Other Income": {},
"Service Charges": {}
},
"root_type": "Income"
},
"Expenses": {
"Expenses-Administrative": {
"Admin Management Fees": {},
"Audit Fees": {},
"Auto": {},
"Bank charges and interest": {},
"Currency Exchange Differences": {},
"Insurance": {},
"Interest on Loan": {},
"Legal and Professional Fees": {},
"Loss on Disposal of FA": {},
"Postal and Courier Charges": {},
"Printing and Stationery": {},
"Secretarial Fees": {},
"Tax Agent Fees": {}
},
"Expenses-Direct": {
"Cost of Goods Sold": {
"account_type": "Cost of Goods Sold"
},
"Cost of Sales": {
"COS-Food": {},
"COS-Beverage": {},
"COS-Tobacco": {},
"COS-Events and Functions": {},
"COS-Merchandise": {}
},
"Expenses Included in Valuation": {
"account_type": "Expenses Included In Valuation"
},
"Stock Adjustment": {
"account_type": "Stock Adjustment"
}
},
"Expenses-Marketing": {
"Advertising and Promotion": {},
"Graphic Design Fees": {},
"Internet Marketing": {
"Marketing-Social Media": {},
"Marketing-Website": {}
}
},
"Expenses-Operating": {
"Cleaning Costs": {
"Cleaning-Kitchen": {},
"Cleaning-Laundry": {},
"Cleaning-Outlet": {}
},
"Commission Charges": {
"Comm-Credit Card": {},
"Comm-NETS": {},
"Comm-Paypal": {}
},
"Communication Costs": {
"Internet Connection": {},
"Telephone Costs": {}
},
"Disposals": {
"Disposals-Food": {},
"Disposals-Beverage": {},
"Disposals-Merchandise": {},
"Disposals-Others": {}
},
"Entertainment Expenses": {
"DJ Costs": {},
"Live Band Costs": {},
"Recorded Music Costs": {}
},
"FoC Accounts": {
"FoC-ENT": {},
"FoC-OC": {}
},
"General Expenses": {},
"Landscaping Costs": {},
"Licence Fees": {},
"Operational Supplies": {
"Supplies-Bar": {},
"Supplies-Guest": {},
"Supplies-Kitchen": {},
"Supplies-Restaurant": {},
"Supplies-Stewarding": {}
},
"Rental Costs": {
"Rental-Premises": {},
"Rental-Equipment": {},
"Rental-Storage": {}
},
"Repairs and Maintenance": {
"R&M-ICT": {},
"R&M-AV": {},
"R&M-Building": {},
"R&M-Electrical & Lighting": {},
"R&M-Fixtures & Furniture": {},
"R&M-Kitchen & Bar": {},
"R&M-Office": {},
"R&M-Plant & Machinery": {}
},
"Service Fees": {},
"Subscription Fees": {
"Publication Subscriptions": {},
"TV Subscriptions": {}
},
"Travel Expenses": {},
"Utilities": {
"Utility-Electricity": {},
"Utility-Gas": {},
"Utility-Refuse Removal": {},
"Utility-Water": {}
}
},
"Expenses-Other": {
"Bad Debts Written Off": {},
"Depreciation": {
"Dep-AV Equipment": {},
"Dep-Bar Equipment": {},
"Dep-ICT Equipment": {},
"Dep-Electrical Equipment": {},
"Dep-Fixtures & Furniture": {},
"Dep-Kitchen Equipment": {},
"Dep-Lighting Equipment": {},
"Dep-Motor Vehicle": {},
"Dep-Office Equipment": {},
"Dep-Plant & Machinery": {},
"Dep-Renovation": {}
},
"Donations": {},
"Round Off": {},
"Tax Expenses": {
"Tax Expenses": {}
}
},
"Expenses-Staff": {
"Bonuses": {
"Bonus-Executive": {},
"Bonus-Non Executive": {},
"Bonus-Performance": {}
},
"CPF": {},
"Directors Fees": {},
"FWL": {},
"Incentives": {},
"Medical Expenses": {},
"Salaries": {
"Casual Labour": {},
"Salary-Executive": {},
"Salary-Non Executive-Full Time": {},
"Salary-Non Executive-Part Time": {}
},
"SDF": {},
"Security Expenses": {},
"Staff Advertising": {},
"Staff Commission Paid": {},
"Staff Meals": {},
"Staff Training": {},
"Staff Transport": {},
"Staff Uniforms": {},
"Staff Welfare": {}
},
"root_type": "Expense"
}
}
}

View File

@@ -21,9 +21,11 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Make Accounting Entry For Every Stock Movement",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -43,9 +45,11 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Accounts Frozen Upto",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -65,10 +69,12 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Role Allowed to Set Frozen Accounts & Edit Frozen Entries",
"length": 0,
"no_copy": 0,
"options": "Role",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -88,10 +94,12 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Credit Controller",
"length": 0,
"no_copy": 0,
"options": "Role",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -110,10 +118,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Check Supplier Invoice Number Uniqueness",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -131,7 +141,8 @@
"is_submittable": 0,
"issingle": 1,
"istable": 0,
"modified": "2015-07-14 00:51:48.095525",
"max_attachments": 0,
"modified": "2015-12-24 21:42:01.274459",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Accounts Settings",

View File

@@ -2,10 +2,29 @@
// License: GNU General Public License v3. See license.txt
frappe.ui.form.on("Bank Reconciliation", {
setup: function(frm) {
frm.get_docfield("journal_entries").allow_bulk_edit = 1;
frm.add_fetch("bank_account", "account_currency", "account_currency");
},
onload: function(frm) {
frm.set_query("bank_account", function() {
return {
"filters": {
"account_type": "Bank",
"is_group": 0
}
};
});
frm.set_value("from_date", frappe.datetime.month_start());
frm.set_value("to_date", frappe.datetime.month_end());
},
refresh: function(frm) {
frm.disable_save();
},
update_clearance_date: function(frm) {
return frappe.call({
method: "update_details",
@@ -22,19 +41,3 @@ frappe.ui.form.on("Bank Reconciliation", {
});
}
});
cur_frm.cscript.onload = function(doc, cdt, cdn) {
cur_frm.add_fetch("bank_account", "company", "company");
cur_frm.set_query("bank_account", function() {
return {
"filters": {
"account_type": "Bank",
"is_group": 0
}
};
});
cur_frm.set_value("from_date", frappe.datetime.month_start());
cur_frm.set_value("to_date", frappe.datetime.month_end());
}

View File

@@ -19,10 +19,12 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Bank Account",
"length": 0,
"no_copy": 0,
"options": "Account",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -34,17 +36,19 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "company",
"fieldname": "account_currency",
"fieldtype": "Link",
"hidden": 1,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Company",
"in_list_view": 0,
"label": "Account Currency",
"length": 0,
"no_copy": 0,
"options": "Company",
"options": "Currency",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -63,9 +67,11 @@
"in_filter": 0,
"in_list_view": 1,
"label": "From Date",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -84,9 +90,11 @@
"in_filter": 0,
"in_list_view": 1,
"label": "To Date",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -105,9 +113,11 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Include Reconciled Entries",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -126,10 +136,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Get Relevant Entries",
"length": 0,
"no_copy": 0,
"options": "",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -148,10 +160,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Journal Entries",
"length": 0,
"no_copy": 0,
"options": "Bank Reconciliation Detail",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -170,10 +184,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Update Clearance Date",
"length": 0,
"no_copy": 0,
"options": "",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -192,10 +208,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Total Amount",
"length": 0,
"no_copy": 0,
"options": "Company:company:default_currency",
"options": "account_currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -213,7 +231,9 @@
"is_submittable": 0,
"issingle": 1,
"istable": 0,
"modified": "2015-02-05 05:11:34.776660",
"max_attachments": 0,
"menu_index": 0,
"modified": "2015-11-30 12:44:45.105451",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Bank Reconciliation",
@@ -241,5 +261,6 @@
}
],
"read_only": 1,
"read_only_onload": 0
"read_only_onload": 0,
"version": 0
}

View File

@@ -7,6 +7,10 @@ from frappe.utils import flt, getdate, nowdate
from frappe import msgprint, _
from frappe.model.document import Document
form_grid_templates = {
"journal_entries": "templates/form_grid/bank_reconciliation_grid.html"
}
class BankReconciliation(Document):
def get_details(self):
if not (self.bank_account and self.from_date and self.to_date):
@@ -15,19 +19,18 @@ class BankReconciliation(Document):
condition = ""
if not self.include_reconciled_entries:
condition = "and ifnull(clearance_date, '') in ('', '0000-00-00')"
condition = "and (clearance_date is null or clearance_date='0000-00-00')"
dl = frappe.db.sql("""select t1.name, t1.cheque_no, t1.cheque_date, t2.debit,
t2.credit, t1.posting_date, t2.against_account, t1.clearance_date,
t2.reference_type, t2.reference_name
dl = frappe.db.sql("""select t1.name, t1.cheque_no, t1.cheque_date, t2.debit_in_account_currency,
t2.credit_in_account_currency, t1.posting_date, t2.against_account, t1.clearance_date
from
`tabJournal Entry` t1, `tabJournal Entry Account` t2
where
t2.parent = t1.name and t2.account = %s
and t1.posting_date >= %s and t1.posting_date <= %s and t1.docstatus=1
and ifnull(t1.is_opening, 'No') = 'No' %s
order by t1.posting_date""" %
order by t1.posting_date DESC, t1.name DESC""" %
('%s', '%s', '%s', condition), (self.bank_account, self.from_date, self.to_date), as_dict=1)
self.set('journal_entries', [])
@@ -39,11 +42,11 @@ class BankReconciliation(Document):
nl.voucher_id = d.name
nl.cheque_number = d.cheque_no
nl.cheque_date = d.cheque_date
nl.debit = d.debit
nl.credit = d.credit
nl.debit = d.debit_in_account_currency
nl.credit = d.credit_in_account_currency
nl.against_account = d.against_account
nl.clearance_date = d.clearance_date
self.total_amount += flt(d.debit) - flt(d.credit)
self.total_amount += flt(d.debit_in_account_currency) - flt(d.credit_in_account_currency)
def update_details(self):
vouchers = []
@@ -52,6 +55,9 @@ class BankReconciliation(Document):
if d.cheque_date and getdate(d.clearance_date) < getdate(d.cheque_date):
frappe.throw(_("Clearance date cannot be before check date in row {0}").format(d.idx))
if d.clearance_date or self.include_reconciled_entries:
if not d.clearance_date:
d.clearance_date = None
frappe.db.set_value("Journal Entry", d.voucher_id, "clearance_date", d.clearance_date)
frappe.db.sql("""update `tabJournal Entry` set clearance_date = %s, modified = %s
where name=%s""", (d.clearance_date, nowdate(), d.voucher_id))

View File

@@ -16,43 +16,23 @@
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"in_list_view": 1,
"label": "Voucher ID",
"length": 0,
"no_copy": 0,
"oldfieldname": "voucher_id",
"oldfieldtype": "Link",
"options": "Journal Entry",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "clearance_date",
"fieldtype": "Date",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Clearance Date",
"no_copy": 0,
"oldfieldname": "clearance_date",
"oldfieldtype": "Date",
"permlevel": 0,
"print_hide": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
"unique": 0,
"width": "50"
},
{
"allow_on_submit": 0,
@@ -65,11 +45,115 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Against Account",
"length": 0,
"no_copy": 0,
"oldfieldname": "against_account",
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0,
"width": "15"
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "debit",
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Debit",
"length": 0,
"no_copy": 0,
"oldfieldname": "debit",
"oldfieldtype": "Currency",
"options": "account_currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "credit",
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Credit",
"length": 0,
"no_copy": 0,
"oldfieldname": "credit",
"oldfieldtype": "Currency",
"options": "account_currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "column_break_5",
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0,
"width": "50%"
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "posting_date",
"fieldtype": "Date",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Posting Date",
"length": 0,
"no_copy": 0,
"oldfieldname": "posting_date",
"oldfieldtype": "Date",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -88,128 +172,13 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Cheque Number",
"length": 0,
"no_copy": 0,
"oldfieldname": "cheque_number",
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "debit",
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Debit",
"no_copy": 0,
"oldfieldname": "debit",
"oldfieldtype": "Currency",
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "credit",
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Credit",
"no_copy": 0,
"oldfieldname": "credit",
"oldfieldtype": "Currency",
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "reference_type",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Reference Type",
"no_copy": 0,
"options": "DocType",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "reference_name",
"fieldtype": "Dynamic Link",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Reference Name",
"no_copy": 0,
"options": "reference_type",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "posting_date",
"fieldtype": "Date",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Posting Date",
"no_copy": 0,
"oldfieldname": "posting_date",
"oldfieldtype": "Date",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -226,19 +195,46 @@
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 1,
"in_list_view": 0,
"label": "Cheque Date",
"length": 0,
"no_copy": 0,
"oldfieldname": "cheque_date",
"oldfieldtype": "Date",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "clearance_date",
"fieldtype": "Date",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Clearance Date",
"length": 0,
"no_copy": 0,
"oldfieldname": "clearance_date",
"oldfieldtype": "Date",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"hide_heading": 0,
@@ -249,7 +245,9 @@
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"modified": "2015-10-02 07:38:39.149782",
"max_attachments": 0,
"menu_index": 0,
"modified": "2016-02-17 06:50:40.074578",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Bank Reconciliation Detail",

View File

@@ -19,6 +19,7 @@
"in_filter": 1,
"in_list_view": 1,
"label": "Account",
"length": 0,
"no_copy": 0,
"oldfieldname": "account",
"oldfieldtype": "Link",
@@ -43,6 +44,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Budget Allocated",
"length": 0,
"no_copy": 0,
"oldfieldname": "budget_allocated",
"oldfieldtype": "Currency",
@@ -67,6 +69,7 @@
"in_filter": 1,
"in_list_view": 1,
"label": "Fiscal Year",
"length": 0,
"no_copy": 0,
"oldfieldname": "fiscal_year",
"oldfieldtype": "Select",
@@ -89,7 +92,8 @@
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"modified": "2015-10-02 07:38:40.727468",
"max_attachments": 0,
"modified": "2015-11-16 06:29:43.050558",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Budget Detail",

View File

@@ -18,9 +18,11 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"print_width": "50%",
"read_only": 0,
"report_hide": 0,
@@ -40,11 +42,13 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Series",
"label": "Series",
"length": 0,
"no_copy": 0,
"options": "C-FORM-",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -63,9 +67,11 @@
"in_filter": 0,
"in_list_view": 1,
"label": "C-Form No",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -84,9 +90,11 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Received Date",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -105,10 +113,12 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Customer",
"length": 0,
"no_copy": 0,
"options": "Customer",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -126,9 +136,11 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"print_width": "50%",
"read_only": 0,
"report_hide": 0,
@@ -149,10 +161,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Company",
"length": 0,
"no_copy": 0,
"options": "Company",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -171,10 +185,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Fiscal Year",
"length": 0,
"no_copy": 0,
"options": "Fiscal Year",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -192,11 +208,13 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Quarter",
"label": "Quarter",
"length": 0,
"no_copy": 0,
"options": "\nI\nII\nIII\nIV",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -215,10 +233,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Total Amount",
"length": 0,
"no_copy": 0,
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -237,9 +257,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "State",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -257,9 +279,11 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -278,10 +302,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Invoices",
"length": 0,
"no_copy": 0,
"options": "C-Form Invoice Detail",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -300,10 +326,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Total Invoiced Amount",
"length": 0,
"no_copy": 0,
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -322,10 +350,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Amended From",
"length": 0,
"no_copy": 1,
"options": "C-Form",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -344,7 +374,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 3,
"modified": "2015-10-02 07:38:40.926061",
"modified": "2016-02-03 01:09:33.043437",
"modified_by": "Administrator",
"module": "Accounts",
"name": "C-Form",
@@ -412,5 +442,7 @@
}
],
"read_only": 0,
"read_only_onload": 0
"read_only_onload": 0,
"sort_order": "DESC",
"timeline_field": "customer"
}

View File

@@ -0,0 +1,12 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# See license.txt
from __future__ import unicode_literals
import frappe
import unittest
# test_records = frappe.get_test_records('C-Form')
class TestCForm(unittest.TestCase):
pass

View File

@@ -18,6 +18,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Invoice No",
"length": 0,
"no_copy": 0,
"options": "Sales Invoice",
"permlevel": 0,
@@ -42,6 +43,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Invoice Date",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
@@ -66,6 +68,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Territory",
"length": 0,
"no_copy": 0,
"options": "Territory",
"permlevel": 0,
@@ -90,6 +93,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Net Total",
"length": 0,
"no_copy": 0,
"options": "Company:company:default_currency",
"permlevel": 0,
@@ -114,6 +118,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Grand Total",
"length": 0,
"no_copy": 0,
"options": "Company:company:default_currency",
"permlevel": 0,
@@ -136,7 +141,8 @@
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"modified": "2015-10-02 07:38:41.105885",
"max_attachments": 0,
"modified": "2015-11-16 06:29:43.221484",
"modified_by": "Administrator",
"module": "Accounts",
"name": "C-Form Invoice Detail",

View File

@@ -51,7 +51,7 @@ cur_frm.cscript.refresh = function(doc, cdt, cdn) {
cur_frm.set_intro(intro_txt);
cur_frm.add_custom_button(__('Chart of Cost Centers'),
function() { frappe.set_route("Accounts Browser", "Cost Center"); }, 'icon-sitemap')
function() { frappe.set_route("Accounts Browser", "Cost Center"); }, __("View"))
}
cur_frm.cscript.parent_cost_center = function(doc, cdt, cdn) {
@@ -62,12 +62,12 @@ cur_frm.cscript.parent_cost_center = function(doc, cdt, cdn) {
cur_frm.cscript.hide_unhide_group_ledger = function(doc) {
if (doc.is_group == 1) {
cur_frm.add_custom_button(__('Convert to non-Group'),
function() { cur_frm.cscript.convert_to_ledger(); }, 'icon-retweet',
cur_frm.add_custom_button(__('Convert to Non-Group'),
function() { cur_frm.cscript.convert_to_ledger(); }, "icon-retweet",
"btn-default")
} else if (doc.is_group == 0) {
cur_frm.add_custom_button(__('Convert to Group'),
function() { cur_frm.cscript.convert_to_group(); }, 'icon-retweet',
function() { cur_frm.cscript.convert_to_group(); }, "icon-retweet",
"btn-default")
}
}

View File

@@ -21,6 +21,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
@@ -42,6 +43,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Cost Center Name",
"length": 0,
"no_copy": 1,
"oldfieldname": "cost_center_name",
"oldfieldtype": "Data",
@@ -65,6 +67,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Parent Cost Center",
"length": 0,
"no_copy": 0,
"oldfieldname": "parent_cost_center",
"oldfieldtype": "Link",
@@ -89,6 +92,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Company",
"length": 0,
"no_copy": 0,
"oldfieldname": "company_name",
"oldfieldtype": "Link",
@@ -112,6 +116,7 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
@@ -135,6 +140,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Is Group",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
@@ -158,6 +164,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Budget",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
@@ -180,6 +187,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Distribution Id",
"length": 0,
"no_copy": 0,
"oldfieldname": "distribution_id",
"oldfieldtype": "Link",
@@ -205,6 +213,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Budgets",
"length": 0,
"no_copy": 0,
"oldfieldname": "budget_details",
"oldfieldtype": "Table",
@@ -229,6 +238,7 @@
"in_filter": 1,
"in_list_view": 0,
"label": "lft",
"length": 0,
"no_copy": 1,
"oldfieldname": "lft",
"oldfieldtype": "Int",
@@ -252,6 +262,7 @@
"in_filter": 1,
"in_list_view": 0,
"label": "rgt",
"length": 0,
"no_copy": 1,
"oldfieldname": "rgt",
"oldfieldtype": "Int",
@@ -275,6 +286,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "old_parent",
"length": 0,
"no_copy": 1,
"oldfieldname": "old_parent",
"oldfieldtype": "Data",
@@ -298,7 +310,8 @@
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"modified": "2015-10-02 07:38:42.617993",
"max_attachments": 0,
"modified": "2015-11-16 06:29:43.870712",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Cost Center",

View File

@@ -14,7 +14,7 @@ $.extend(cur_frm.cscript, {
this.frm.toggle_enable('year_end_date', doc.__islocal)
if (!doc.__islocal && (doc.name != sys_defaults.fiscal_year)) {
this.frm.add_custom_button(__("Set as Default"),
this.frm.add_custom_button(__("Default"),
this.frm.cscript.set_as_default, "icon-star");
this.frm.set_intro(__("To set this Fiscal Year as Default, click on 'Set as Default'"));
} else {

View File

@@ -22,6 +22,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Year Name",
"length": 0,
"no_copy": 0,
"oldfieldname": "year",
"oldfieldtype": "Data",
@@ -45,6 +46,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Disabled",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
@@ -67,6 +69,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Year Start Date",
"length": 0,
"no_copy": 1,
"oldfieldname": "year_start_date",
"oldfieldtype": "Date",
@@ -90,6 +93,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Year End Date",
"length": 0,
"no_copy": 1,
"permlevel": 0,
"print_hide": 0,
@@ -111,6 +115,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Companies",
"length": 0,
"no_copy": 0,
"options": "Fiscal Year Company",
"permlevel": 0,
@@ -133,7 +138,8 @@
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"modified": "2015-10-02 07:38:50.942038",
"max_attachments": 0,
"modified": "2015-11-16 06:29:47.289982",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Fiscal Year",

View File

@@ -20,14 +20,15 @@ class FiscalYear(Document):
msgprint(_("{0} is now the default Fiscal Year. Please refresh your browser for the change to take effect.").format(self.name))
def validate(self):
year_start_end_dates = frappe.db.sql("""select year_start_date, year_end_date
from `tabFiscal Year` where name=%s""", (self.name))
self.validate_dates()
if year_start_end_dates:
if getdate(self.year_start_date) != year_start_end_dates[0][0] or getdate(self.year_end_date) != year_start_end_dates[0][1]:
frappe.throw(_("Cannot change Fiscal Year Start Date and Fiscal Year End Date once the Fiscal Year is saved."))
if not self.is_new():
year_start_end_dates = frappe.db.sql("""select year_start_date, year_end_date
from `tabFiscal Year` where name=%s""", (self.name))
if year_start_end_dates:
if getdate(self.year_start_date) != year_start_end_dates[0][0] or getdate(self.year_end_date) != year_start_end_dates[0][1]:
frappe.throw(_("Cannot change Fiscal Year Start Date and Fiscal Year End Date once the Fiscal Year is saved."))
def validate_dates(self):
if getdate(self.year_start_date) > getdate(self.year_end_date):
@@ -63,6 +64,6 @@ def auto_create_fiscal_year():
end_year = cstr(new_fy.year_end_date.year)
new_fy.year = start_year if start_year==end_year else (start_year + "-" + end_year)
new_fy.insert()
new_fy.insert(ignore_permissions=True)
except frappe.NameError:
pass

View File

@@ -19,6 +19,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Company",
"length": 0,
"no_copy": 0,
"options": "Company",
"permlevel": 0,
@@ -39,7 +40,8 @@
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"modified": "2015-10-02 07:38:51.045350",
"max_attachments": 0,
"modified": "2015-11-16 06:29:47.344839",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Fiscal Year Company",

View File

@@ -19,6 +19,7 @@
"in_filter": 1,
"in_list_view": 1,
"label": "Posting Date",
"length": 0,
"no_copy": 0,
"oldfieldname": "posting_date",
"oldfieldtype": "Date",
@@ -42,6 +43,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Transaction Date",
"length": 0,
"no_copy": 0,
"oldfieldname": "transaction_date",
"oldfieldtype": "Date",
@@ -65,6 +67,7 @@
"in_filter": 1,
"in_list_view": 1,
"label": "Account",
"length": 0,
"no_copy": 0,
"oldfieldname": "account",
"oldfieldtype": "Link",
@@ -89,6 +92,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Party Type",
"length": 0,
"no_copy": 0,
"options": "DocType",
"permlevel": 0,
@@ -111,6 +115,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Party",
"length": 0,
"no_copy": 0,
"options": "party_type",
"permlevel": 0,
@@ -133,6 +138,7 @@
"in_filter": 1,
"in_list_view": 1,
"label": "Cost Center",
"length": 0,
"no_copy": 0,
"oldfieldname": "cost_center",
"oldfieldtype": "Link",
@@ -157,6 +163,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Debit Amount",
"length": 0,
"no_copy": 0,
"oldfieldname": "debit",
"oldfieldtype": "Currency",
@@ -182,6 +189,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Credit Amount",
"length": 0,
"no_copy": 0,
"oldfieldname": "credit",
"oldfieldtype": "Currency",
@@ -207,6 +215,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Account Currency",
"length": 0,
"no_copy": 0,
"options": "Currency",
"permlevel": 0,
@@ -230,6 +239,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Debit Amount in Account Currency",
"length": 0,
"no_copy": 0,
"options": "currency",
"permlevel": 0,
@@ -253,6 +263,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Credit Amount in Account Currency",
"length": 0,
"no_copy": 0,
"options": "currency",
"permlevel": 0,
@@ -276,6 +287,7 @@
"in_filter": 1,
"in_list_view": 0,
"label": "Against",
"length": 0,
"no_copy": 0,
"oldfieldname": "against",
"oldfieldtype": "Text",
@@ -299,6 +311,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Against Voucher Type",
"length": 0,
"no_copy": 0,
"oldfieldname": "against_voucher_type",
"oldfieldtype": "Data",
@@ -323,6 +336,7 @@
"in_filter": 1,
"in_list_view": 0,
"label": "Against Voucher",
"length": 0,
"no_copy": 0,
"oldfieldname": "against_voucher",
"oldfieldtype": "Data",
@@ -347,6 +361,7 @@
"in_filter": 1,
"in_list_view": 0,
"label": "Voucher Type",
"length": 0,
"no_copy": 0,
"oldfieldname": "voucher_type",
"oldfieldtype": "Select",
@@ -371,6 +386,7 @@
"in_filter": 1,
"in_list_view": 0,
"label": "Voucher No",
"length": 0,
"no_copy": 0,
"oldfieldname": "voucher_no",
"oldfieldtype": "Data",
@@ -395,6 +411,7 @@
"in_filter": 1,
"in_list_view": 0,
"label": "Remarks",
"length": 0,
"no_copy": 1,
"oldfieldname": "remarks",
"oldfieldtype": "Text",
@@ -418,6 +435,7 @@
"in_filter": 1,
"in_list_view": 0,
"label": "Is Opening",
"length": 0,
"no_copy": 0,
"oldfieldname": "is_opening",
"oldfieldtype": "Select",
@@ -442,6 +460,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Is Advance",
"length": 0,
"no_copy": 0,
"oldfieldname": "is_advance",
"oldfieldtype": "Select",
@@ -466,6 +485,7 @@
"in_filter": 1,
"in_list_view": 0,
"label": "Fiscal Year",
"length": 0,
"no_copy": 0,
"oldfieldname": "fiscal_year",
"oldfieldtype": "Select",
@@ -490,6 +510,7 @@
"in_filter": 1,
"in_list_view": 0,
"label": "Company",
"length": 0,
"no_copy": 0,
"oldfieldname": "company",
"oldfieldtype": "Link",
@@ -513,7 +534,8 @@
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"modified": "2015-10-20 12:10:59.771050",
"max_attachments": 0,
"modified": "2015-11-16 06:29:47.382225",
"modified_by": "Administrator",
"module": "Accounts",
"name": "GL Entry",

View File

@@ -6,10 +6,10 @@ import frappe
from frappe import _
from frappe.utils import flt, fmt_money, getdate, formatdate
from frappe.model.document import Document
from erpnext.accounts.party import validate_party_gle_currency
from erpnext.accounts.party import validate_party_gle_currency, validate_party_frozen_disabled
from erpnext.accounts.utils import get_account_currency
from erpnext.setup.doctype.company.company import get_company_currency
from erpnext.exceptions import InvalidAccountCurrency, CustomerFrozen
from erpnext.exceptions import InvalidAccountCurrency
exclude_from_linked_with = True
@@ -96,11 +96,7 @@ class GLEntry(Document):
frappe.throw(_("Cost Center {0} does not belong to Company {1}").format(self.cost_center, self.company))
def validate_party(self):
if self.party_type and self.party:
frozen_accounts_modifier = frappe.db.get_value( 'Accounts Settings', None,'frozen_accounts_modifier')
if not frozen_accounts_modifier in frappe.get_roles():
if frappe.db.get_value(self.party_type, self.party, "is_frozen"):
frappe.throw("{0} {1} is frozen".format(self.party_type, self.party), CustomerFrozen)
validate_party_frozen_disabled(self.party_type, self.party)
def validate_currency(self):
company_currency = get_company_currency(self.company)
@@ -120,7 +116,7 @@ def validate_balance_type(account, adv_adj=False):
if not adv_adj and account:
balance_must_be = frappe.db.get_value("Account", account, "balance_must_be")
if balance_must_be:
balance = frappe.db.sql("""select sum(ifnull(debit, 0)) - sum(ifnull(credit, 0))
balance = frappe.db.sql("""select sum(debit) - sum(credit)
from `tabGL Entry` where account = %s""", account)[0][0]
if (balance_must_be=="Debit" and flt(balance) < 0) or \
@@ -142,14 +138,14 @@ def check_freezing_date(posting_date, adv_adj=False):
def update_outstanding_amt(account, party_type, party, against_voucher_type, against_voucher, on_cancel=False):
if party_type and party:
party_condition = " and ifnull(party_type, '')='{0}' and ifnull(party, '')='{1}'"\
party_condition = " and party_type='{0}' and party='{1}'"\
.format(frappe.db.escape(party_type), frappe.db.escape(party))
else:
party_condition = ""
# get final outstanding amt
bal = flt(frappe.db.sql("""
select sum(ifnull(debit_in_account_currency, 0)) - sum(ifnull(credit_in_account_currency, 0))
select sum(debit_in_account_currency) - sum(credit_in_account_currency)
from `tabGL Entry`
where against_voucher_type=%s and against_voucher=%s
and account = %s {0}""".format(party_condition),
@@ -159,9 +155,9 @@ def update_outstanding_amt(account, party_type, party, against_voucher_type, aga
bal = -bal
elif against_voucher_type == "Journal Entry":
against_voucher_amount = flt(frappe.db.sql("""
select sum(ifnull(debit_in_account_currency, 0)) - sum(ifnull(credit_in_account_currency, 0))
select sum(debit_in_account_currency) - sum(credit_in_account_currency)
from `tabGL Entry` where voucher_type = 'Journal Entry' and voucher_no = %s
and account = %s and ifnull(against_voucher, '') = '' {0}"""
and account = %s and (against_voucher is null or against_voucher='') {0}"""
.format(party_condition), (against_voucher, account))[0][0])
if not against_voucher_amount:

View File

@@ -9,17 +9,17 @@ class TestGLEntry(unittest.TestCase):
def test_round_off_entry(self):
frappe.db.set_value("Company", "_Test Company", "round_off_account", "_Test Write Off - _TC")
frappe.db.set_value("Company", "_Test Company", "round_off_cost_center", "_Test Cost Center - _TC")
jv = make_journal_entry("_Test Account Cost for Goods Sold - _TC",
jv = make_journal_entry("_Test Account Cost for Goods Sold - _TC",
"_Test Bank - _TC", 100, "_Test Cost Center - _TC", submit=False)
jv.get("accounts")[0].debit = 100.01
jv.flags.ignore_validate = True
jv.submit()
round_off_entry = frappe.db.sql("""select name from `tabGL Entry`
where voucher_type='Journal Entry' and voucher_no = %s
where voucher_type='Journal Entry' and voucher_no = %s
and account='_Test Write Off - _TC' and cost_center='_Test Cost Center - _TC'
and ifnull(debit, 0) = 0 and ifnull(credit, 0) = '.01'""", jv.name)
self.assertTrue(round_off_entry)
and debit = 0 and credit = '.01'""", jv.name)
self.assertTrue(round_off_entry)

View File

@@ -11,7 +11,7 @@ frappe.ui.form.on("Journal Entry", {
frm.cscript.voucher_type(frm.doc);
if(frm.doc.docstatus==1) {
frm.add_custom_button(__('View Ledger'), function() {
frm.add_custom_button(__('Ledger'), function() {
frappe.route_options = {
"voucher_no": frm.doc.name,
"from_date": frm.doc.posting_date,
@@ -347,6 +347,7 @@ frappe.ui.form.on("Journal Entry Account", {
callback: function(r) {
if(r.message) {
$.extend(d, r.message);
erpnext.journal_entry.set_debit_credit_in_company_currency(frm, dt, dn);
refresh_field('accounts');
}
}
@@ -355,11 +356,11 @@ frappe.ui.form.on("Journal Entry Account", {
},
debit_in_account_currency: function(frm, cdt, cdn) {
erpnext.journal_entry.set_debit_credit_in_company_currency(frm, cdt, cdn);
erpnext.journal_entry.set_exchange_rate(frm, cdt, cdn);
},
credit_in_account_currency: function(frm, cdt, cdn) {
erpnext.journal_entry.set_debit_credit_in_company_currency(frm, cdt, cdn);
erpnext.journal_entry.set_exchange_rate(frm, cdt, cdn);
},
debit: function(frm, dt, dn) {
@@ -369,8 +370,15 @@ frappe.ui.form.on("Journal Entry Account", {
credit: function(frm, dt, dn) {
cur_frm.cscript.update_totals(frm.doc);
},
exchange_rate: function(frm, cdt, cdn) {
var company_currency = frappe.get_doc(":Company", frm.doc.company).default_currency;
var row = locals[cdt][cdn];
if(row.account_currency == company_currency || !frm.doc.multi_currency) {
frappe.model.set_value(cdt, cdn, "exchange_rate", 1);
}
erpnext.journal_entry.set_debit_credit_in_company_currency(frm, cdt, cdn);
}
})
@@ -399,8 +407,6 @@ $.extend(erpnext.journal_entry, {
},
set_debit_credit_in_company_currency: function(frm, cdt, cdn) {
erpnext.journal_entry.set_exchange_rate(frm, cdt, cdn);
var row = locals[cdt][cdn];
frappe.model.set_value(cdt, cdn, "debit",
@@ -417,8 +423,9 @@ $.extend(erpnext.journal_entry, {
var row = locals[cdt][cdn];
if(row.account_currency == company_currency || !frm.doc.multi_currency) {
frappe.model.set_value(cdt, cdn, "exchange_rate", 1);
} else if (!row.exchange_rate || row.account_type == "Bank") {
row.exchange_rate = 1;
erpnext.journal_entry.set_debit_credit_in_company_currency(frm, cdt, cdn);
} else if (!row.exchange_rate || row.exchange_rate == 1 || row.account_type == "Bank") {
frappe.call({
method: "erpnext.accounts.doctype.journal_entry.journal_entry.get_exchange_rate",
args: {
@@ -433,11 +440,15 @@ $.extend(erpnext.journal_entry, {
},
callback: function(r) {
if(r.message) {
frappe.model.set_value(cdt, cdn, "exchange_rate", r.message);
row.exchange_rate = r.message;
erpnext.journal_entry.set_debit_credit_in_company_currency(frm, cdt, cdn);
}
}
})
} else {
erpnext.journal_entry.set_debit_credit_in_company_currency(frm, cdt, cdn);
}
refresh_field("exchange_rate", cdn, "accounts");
},
quick_entry: function(frm) {

View File

@@ -19,10 +19,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "",
"length": 0,
"no_copy": 0,
"options": "icon-flag",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -42,10 +44,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Title",
"length": 0,
"no_copy": 1,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -64,13 +68,15 @@
"ignore_user_permissions": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Entry Type",
"label": "Entry Type",
"length": 0,
"no_copy": 0,
"oldfieldname": "voucher_type",
"oldfieldtype": "Select",
"options": "Journal Entry\nBank Entry\nCash Entry\nCredit Card Entry\nDebit Note\nCredit Note\nContra Entry\nExcise Entry\nWrite Off Entry\nOpening Entry",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -88,13 +94,15 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Series",
"label": "Series",
"length": 0,
"no_copy": 1,
"oldfieldname": "naming_series",
"oldfieldtype": "Select",
"options": "JV-",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -112,10 +120,12 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"oldfieldtype": "Column Break",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -135,11 +145,13 @@
"in_filter": 1,
"in_list_view": 0,
"label": "Posting Date",
"length": 0,
"no_copy": 1,
"oldfieldname": "posting_date",
"oldfieldtype": "Date",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -158,11 +170,13 @@
"in_filter": 0,
"in_list_view": 0,
"label": "",
"length": 0,
"no_copy": 0,
"oldfieldtype": "Section Break",
"options": "icon-table",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -181,12 +195,14 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Accounting Entries",
"length": 0,
"no_copy": 0,
"oldfieldname": "entries",
"oldfieldtype": "Table",
"options": "Journal Entry Account",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -204,9 +220,11 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -226,11 +244,13 @@
"in_filter": 1,
"in_list_view": 1,
"label": "Reference Number",
"length": 0,
"no_copy": 1,
"oldfieldname": "cheque_no",
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -249,11 +269,13 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Reference Date",
"length": 0,
"no_copy": 1,
"oldfieldname": "cheque_date",
"oldfieldtype": "Date",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -272,11 +294,13 @@
"in_filter": 1,
"in_list_view": 0,
"label": "User Remark",
"length": 0,
"no_copy": 1,
"oldfieldname": "user_remark",
"oldfieldtype": "Small Text",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -294,9 +318,11 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -315,12 +341,14 @@
"in_filter": 1,
"in_list_view": 1,
"label": "Total Debit",
"length": 0,
"no_copy": 1,
"oldfieldname": "total_debit",
"oldfieldtype": "Currency",
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -339,12 +367,14 @@
"in_filter": 1,
"in_list_view": 0,
"label": "Total Credit",
"length": 0,
"no_copy": 1,
"oldfieldname": "total_credit",
"oldfieldtype": "Currency",
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -364,12 +394,14 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Difference (Dr - Cr)",
"length": 0,
"no_copy": 1,
"oldfieldname": "difference",
"oldfieldtype": "Currency",
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -389,10 +421,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Make Difference Entry",
"length": 0,
"no_copy": 0,
"oldfieldtype": "Button",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -411,10 +445,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Multi Currency",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -433,10 +469,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Total Amount",
"length": 0,
"no_copy": 1,
"options": "Company:company:default_currency",
"options": "",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 1,
"reqd": 0,
@@ -455,9 +493,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Total Amount in Words",
"length": 0,
"no_copy": 1,
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 1,
"reqd": 0,
@@ -476,10 +516,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Reference",
"length": 0,
"no_copy": 0,
"options": "icon-pushpin",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -498,11 +540,13 @@
"in_filter": 1,
"in_list_view": 0,
"label": "Clearance Date",
"length": 0,
"no_copy": 1,
"oldfieldname": "clearance_date",
"oldfieldtype": "Date",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -522,11 +566,13 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Remark",
"length": 0,
"no_copy": 1,
"oldfieldname": "remark",
"oldfieldtype": "Small Text",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -544,9 +590,11 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -565,11 +613,13 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Bill No",
"length": 0,
"no_copy": 0,
"oldfieldname": "bill_no",
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -588,11 +638,13 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Bill Date",
"length": 0,
"no_copy": 0,
"oldfieldname": "bill_date",
"oldfieldtype": "Date",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -611,11 +663,13 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Due Date",
"length": 0,
"no_copy": 0,
"oldfieldname": "due_date",
"oldfieldtype": "Date",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -635,10 +689,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Write Off",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -658,11 +714,13 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Write Off Based On",
"label": "Write Off Based On",
"length": 0,
"no_copy": 0,
"options": "Accounts Receivable\nAccounts Payable",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 1,
"reqd": 0,
@@ -682,10 +740,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Get Outstanding Invoices",
"length": 0,
"no_copy": 0,
"options": "get_outstanding_invoices",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -703,10 +763,12 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -726,10 +788,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Write Off Amount",
"length": 0,
"no_copy": 0,
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 1,
"reqd": 0,
@@ -748,10 +812,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Printing Settings",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -770,9 +836,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Pay To / Recd From",
"length": 0,
"no_copy": 1,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 1,
"reqd": 0,
@@ -790,10 +858,12 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -812,10 +882,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Letter Head",
"length": 0,
"no_copy": 0,
"options": "Letter Head",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -834,12 +906,14 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Print Heading",
"length": 0,
"no_copy": 1,
"oldfieldname": "select_print_heading",
"oldfieldtype": "Link",
"options": "Print Heading",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 1,
"reqd": 0,
@@ -858,11 +932,13 @@
"in_filter": 0,
"in_list_view": 0,
"label": "More Information",
"length": 0,
"no_copy": 0,
"oldfieldtype": "Section Break",
"options": "icon-file-text",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -881,12 +957,14 @@
"in_filter": 1,
"in_list_view": 0,
"label": "Company",
"length": 0,
"no_copy": 0,
"oldfieldname": "company",
"oldfieldtype": "Link",
"options": "Company",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -905,12 +983,14 @@
"in_filter": 1,
"in_list_view": 0,
"label": "Fiscal Year",
"length": 0,
"no_copy": 0,
"oldfieldname": "fiscal_year",
"oldfieldtype": "Select",
"options": "Fiscal Year",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -928,10 +1008,12 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"oldfieldtype": "Column Break",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -952,13 +1034,15 @@
"ignore_user_permissions": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Is Opening",
"label": "Is Opening",
"length": 0,
"no_copy": 0,
"oldfieldname": "is_opening",
"oldfieldtype": "Select",
"options": "No\nYes",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -978,11 +1062,13 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Stock Entry",
"length": 0,
"no_copy": 0,
"options": "Stock Entry",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -1001,12 +1087,14 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Amended From",
"length": 0,
"no_copy": 1,
"oldfieldname": "amended_from",
"oldfieldtype": "Link",
"options": "Journal Entry",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -1024,7 +1112,9 @@
"is_submittable": 1,
"issingle": 0,
"istable": 0,
"modified": "2015-10-02 07:38:54.074343",
"max_attachments": 0,
"menu_index": 0,
"modified": "2015-11-30 16:11:45.556341",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Journal Entry",
@@ -1096,5 +1186,6 @@
"search_fields": "voucher_type,posting_date, due_date, cheque_no",
"sort_field": "modified",
"sort_order": "DESC",
"title_field": "title"
"title_field": "title",
"version": 0
}

View File

@@ -2,7 +2,7 @@
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe
import frappe, json
from frappe.utils import cstr, flt, fmt_money, formatdate
from frappe import msgprint, _, scrub
from erpnext.controllers.accounts_controller import AccountsController
@@ -28,7 +28,7 @@ class JournalEntry(AccountsController):
self.validate_entries_for_advance()
self.validate_multi_currency()
self.set_amounts_in_company_currency()
self.validate_debit_and_credit()
self.validate_total_debit_and_credit()
self.validate_against_jv()
self.validate_reference_doc()
self.set_against_account()
@@ -105,6 +105,12 @@ class JournalEntry(AccountsController):
elif d.reference_type in ("Sales Order", "Purchase Order") and d.is_advance != "Yes":
frappe.throw(_("Row {0}: Payment against Sales/Purchase Order should always be marked as advance").format(d.idx))
if d.is_advance == "Yes":
if d.party_type == 'Customer' and flt(d.debit) > 0:
frappe.throw(_("Row {0}: Advance against Customer must be credit").format(d.idx))
elif d.party_type == 'Supplier' and flt(d.credit) > 0:
frappe.throw(_("Row {0}: Advance against Supplier must be debit").format(d.idx))
def validate_against_jv(self):
for d in self.get('accounts'):
if d.reference_type=="Journal Entry":
@@ -121,7 +127,7 @@ class JournalEntry(AccountsController):
against_entries = frappe.db.sql("""select * from `tabJournal Entry Account`
where account = %s and docstatus = 1 and parent = %s
and ifnull(reference_type, '') in ("", "Sales Order", "Purchase Order")
and (reference_type is null or reference_type in ("", "Sales Order", "Purchase Order"))
""", (d.account, d.reference_name), as_dict=True)
if not against_entries:
@@ -197,15 +203,13 @@ class JournalEntry(AccountsController):
self.validate_invoices()
def validate_orders(self):
"""Validate totals, stopped and docstatus for orders"""
"""Validate totals, closed and docstatus for orders"""
for reference_name, total in self.reference_totals.iteritems():
reference_type = self.reference_types[reference_name]
account = self.reference_accounts[reference_name]
if reference_type in ("Sales Order", "Purchase Order"):
order = frappe.db.get_value(reference_type, reference_name,
["docstatus", "per_billed", "status", "advance_paid",
"base_grand_total", "grand_total", "currency"], as_dict=1)
order = frappe.get_doc(reference_type, reference_name)
if order.docstatus != 1:
frappe.throw(_("{0} {1} is not submitted").format(reference_type, reference_name))
@@ -213,18 +217,22 @@ class JournalEntry(AccountsController):
if flt(order.per_billed) >= 100:
frappe.throw(_("{0} {1} is fully billed").format(reference_type, reference_name))
if cstr(order.status) == "Stopped":
frappe.throw(_("{0} {1} is stopped").format(reference_type, reference_name))
if cstr(order.status) == "Closed":
frappe.throw(_("{0} {1} is closed").format(reference_type, reference_name))
account_currency = get_account_currency(account)
if account_currency == self.company_currency:
voucher_total = order.base_grand_total
formatted_voucher_total = fmt_money(voucher_total, order.precision("base_grand_total"),
currency=account_currency)
else:
voucher_total = order.grand_total
formatted_voucher_total = fmt_money(voucher_total, order.precision("grand_total"),
currency=account_currency)
if flt(voucher_total) < (flt(order.advance_paid) + total):
frappe.throw(_("Advance paid against {0} {1} cannot be greater \
than Grand Total {2}").format(reference_type, reference_name, voucher_total))
than Grand Total {2}").format(reference_type, reference_name, formatted_voucher_total))
def validate_invoices(self):
"""Validate totals and docstatus for invoices"""
@@ -252,7 +260,13 @@ class JournalEntry(AccountsController):
if flt(d.debit > 0): d.against_account = ", ".join(list(set(accounts_credited)))
if flt(d.credit > 0): d.against_account = ", ".join(list(set(accounts_debited)))
def validate_debit_and_credit(self):
def validate_total_debit_and_credit(self):
self.set_total_debit_credit()
if self.difference:
frappe.throw(_("Total Debit must be equal to Total Credit. The difference is {0}")
.format(self.difference))
def set_total_debit_credit(self):
self.total_debit, self.total_credit, self.difference = 0, 0, 0
for d in self.get("accounts"):
if d.debit and d.credit:
@@ -264,18 +278,18 @@ class JournalEntry(AccountsController):
self.difference = flt(self.total_debit, self.precision("total_debit")) - \
flt(self.total_credit, self.precision("total_credit"))
if self.difference:
frappe.throw(_("Total Debit must be equal to Total Credit. The difference is {0}")
.format(self.difference))
def validate_multi_currency(self):
alternate_currency = []
for d in self.get("accounts"):
account = frappe.db.get_value("Account", d.account, ["account_currency", "account_type"], as_dict=1)
d.account_currency = account.account_currency or self.company_currency
d.account_type = account.account_type
if account:
d.account_currency = account.account_currency
d.account_type = account.account_type
if d.account_currency!=self.company_currency and d.account_currency not in alternate_currency:
if not d.account_currency:
d.account_currency = self.company_currency
if d.account_currency != self.company_currency and d.account_currency not in alternate_currency:
alternate_currency.append(d.account_currency)
if alternate_currency:
@@ -283,17 +297,20 @@ class JournalEntry(AccountsController):
frappe.throw(_("Please check Multi Currency option to allow accounts with other currency"))
self.set_exchange_rate()
def set_amounts_in_company_currency(self):
for d in self.get("accounts"):
d.debit = flt(flt(d.debit_in_account_currency)*flt(d.exchange_rate), d.precision("debit"))
d.credit = flt(flt(d.credit_in_account_currency)*flt(d.exchange_rate), d.precision("credit"))
d.debit_in_account_currency = flt(d.debit_in_account_currency, d.precision("debit_in_account_currency"))
d.credit_in_account_currency = flt(d.credit_in_account_currency, d.precision("credit_in_account_currency"))
d.debit = flt(d.debit_in_account_currency * flt(d.exchange_rate), d.precision("debit"))
d.credit = flt(d.credit_in_account_currency * flt(d.exchange_rate), d.precision("credit"))
def set_exchange_rate(self):
for d in self.get("accounts"):
if d.account_currency == self.company_currency:
d.exchange_rate = 1
elif not d.exchange_rate or d.account_type=="Bank" or \
elif not d.exchange_rate or d.exchange_rate == 1 or \
(d.reference_type in ("Sales Invoice", "Purchase Invoice") and d.reference_name):
d.exchange_rate = get_exchange_rate(d.account, d.account_currency, self.company,
d.reference_type, d.reference_name, d.debit, d.credit, d.exchange_rate)
@@ -337,20 +354,30 @@ class JournalEntry(AccountsController):
self.remark = ("\n").join(r) #User Remarks is not mandatory
def set_print_format_fields(self):
total_amount = 0.0
bank_account_currency = None
pay_to_recd_from = None
for d in self.get('accounts'):
if d.party_type and d.party:
if not self.pay_to_recd_from:
self.pay_to_recd_from = frappe.db.get_value(d.party_type, d.party,
if not pay_to_recd_from:
pay_to_recd_from = frappe.db.get_value(d.party_type, d.party,
"customer_name" if d.party_type=="Customer" else "supplier_name")
self.set_total_amount(d.debit or d.credit)
elif frappe.db.get_value("Account", d.account, "account_type") in ["Bank", "Cash"]:
self.set_total_amount(d.debit or d.credit)
total_amount += (d.debit_in_account_currency or d.credit_in_account_currency)
bank_account_currency = d.account_currency
def set_total_amount(self, amt):
if pay_to_recd_from:
self.pay_to_recd_from = pay_to_recd_from
else:
total_amount = 0
self.set_total_amount(total_amount, bank_account_currency)
def set_total_amount(self, amt, currency):
self.total_amount = amt
from frappe.utils import money_in_words
self.total_amount_in_words = money_in_words(amt, self.company_currency)
self.total_amount_in_words = money_in_words(amt, currency)
def make_gl_entries(self, cancel=0, adv_adj=0):
from erpnext.accounts.general_ledger import make_gl_entries
@@ -404,7 +431,7 @@ class JournalEntry(AccountsController):
blank_row.debit_in_account_currency = abs(diff)
blank_row.debit = abs(diff)
self.validate_debit_and_credit()
self.validate_total_debit_and_credit()
def get_outstanding_invoices(self):
self.set('accounts', [])
@@ -432,7 +459,7 @@ class JournalEntry(AccountsController):
elif self.write_off_based_on == 'Accounts Payable':
jd2.credit = total
self.validate_debit_and_credit()
self.validate_total_debit_and_credit()
def get_values(self):
@@ -492,7 +519,7 @@ class JournalEntry(AccountsController):
d.party_balance = party_balance[(d.party_type, d.party)]
@frappe.whitelist()
def get_default_bank_cash_account(company, voucher_type, mode_of_payment=None):
def get_default_bank_cash_account(company, voucher_type, mode_of_payment=None, account=None):
from erpnext.accounts.doctype.sales_invoice.sales_invoice import get_bank_cash_account
if mode_of_payment:
account = get_bank_cash_account(mode_of_payment, company)
@@ -500,16 +527,18 @@ def get_default_bank_cash_account(company, voucher_type, mode_of_payment=None):
account.update({"balance": get_balance_on(account.get("account"))})
return account
if voucher_type=="Bank Entry":
account = frappe.db.get_value("Company", company, "default_bank_account")
if not account:
account = frappe.db.get_value("Account",
{"company": company, "account_type": "Bank", "is_group": 0})
elif voucher_type=="Cash Entry":
account = frappe.db.get_value("Company", company, "default_cash_account")
if not account:
account = frappe.db.get_value("Account",
{"company": company, "account_type": "Cash", "is_group": 0})
if not account:
if voucher_type=="Bank Entry":
account = frappe.db.get_value("Company", company, "default_bank_account")
if not account:
account = frappe.db.get_value("Account",
{"company": company, "account_type": "Bank", "is_group": 0})
elif voucher_type=="Cash Entry":
account = frappe.db.get_value("Company", company, "default_cash_account")
if not account:
account = frappe.db.get_value("Account",
{"company": company, "account_type": "Cash", "is_group": 0})
if account:
account_details = frappe.db.get_value("Account", account,
@@ -520,14 +549,14 @@ def get_default_bank_cash_account(company, voucher_type, mode_of_payment=None):
"account_currency": account_details.account_currency,
"account_type": account_details.account_type
}
@frappe.whitelist()
def get_payment_entry_against_order(dt, dn):
def get_payment_entry_against_order(dt, dn, amount=None, debit_in_account_currency=None, journal_entry=False, bank_account=None):
ref_doc = frappe.get_doc(dt, dn)
if flt(ref_doc.per_billed, 2) > 0:
frappe.throw(_("Can only make payment against unbilled {0}").format(dt))
if dt == "Sales Order":
party_type = "Customer"
amount_field_party = "credit_in_account_currency"
@@ -536,15 +565,16 @@ def get_payment_entry_against_order(dt, dn):
party_type = "Supplier"
amount_field_party = "debit_in_account_currency"
amount_field_bank = "credit_in_account_currency"
party_account = get_party_account(party_type, ref_doc.get(party_type.lower()), ref_doc.company)
party_account_currency = get_account_currency(party_account)
if party_account_currency == ref_doc.company_currency:
amount = flt(ref_doc.base_grand_total) - flt(ref_doc.advance_paid)
else:
amount = flt(ref_doc.grand_total) - flt(ref_doc.advance_paid)
if not amount:
if party_account_currency == ref_doc.company_currency:
amount = flt(ref_doc.base_grand_total) - flt(ref_doc.advance_paid)
else:
amount = flt(ref_doc.grand_total) - flt(ref_doc.advance_paid)
return get_payment_entry(ref_doc, {
"party_type": party_type,
"party_account": party_account,
@@ -552,48 +582,61 @@ def get_payment_entry_against_order(dt, dn):
"amount_field_party": amount_field_party,
"amount_field_bank": amount_field_bank,
"amount": amount,
"debit_in_account_currency": debit_in_account_currency,
"remarks": 'Advance Payment received against {0} {1}'.format(dt, dn),
"is_advance": "Yes"
"is_advance": "Yes",
"bank_account": bank_account,
"journal_entry": journal_entry
})
@frappe.whitelist()
def get_payment_entry_against_invoice(dt, dn):
def get_payment_entry_against_invoice(dt, dn, amount=None, debit_in_account_currency=None, journal_entry=False, bank_account=None):
ref_doc = frappe.get_doc(dt, dn)
if dt == "Sales Invoice":
party_type = "Customer"
party_account = ref_doc.debit_to
amount_field_party = "credit_in_account_currency"
amount_field_bank = "debit_in_account_currency"
else:
party_type = "Supplier"
party_account = ref_doc.credit_to
if (dt=="Sales Invoice" and ref_doc.outstanding_amount > 0) \
or (dt=="Purchase Invoice" and ref_doc.outstanding_amount < 0):
amount_field_party = "credit_in_account_currency"
amount_field_bank = "debit_in_account_currency"
else:
amount_field_party = "debit_in_account_currency"
amount_field_bank = "credit_in_account_currency"
return get_payment_entry(ref_doc, {
"party_type": party_type,
"party_account": party_account,
"party_account_currency": ref_doc.party_account_currency,
"amount_field_party": amount_field_party,
"amount_field_bank": amount_field_bank,
"amount": ref_doc.outstanding_amount,
"amount": amount if amount else abs(ref_doc.outstanding_amount),
"debit_in_account_currency": debit_in_account_currency,
"remarks": 'Payment received against {0} {1}. {2}'.format(dt, dn, ref_doc.remarks),
"is_advance": "No"
"is_advance": "No",
"bank_account": bank_account,
"journal_entry": journal_entry
})
def get_payment_entry(ref_doc, args):
cost_center = frappe.db.get_value("Company", ref_doc.company, "cost_center")
exchange_rate = get_exchange_rate(args.get("party_account"), args.get("party_account_currency"),
ref_doc.company, ref_doc.doctype, ref_doc.name)
exchange_rate = 1
if args.get("party_account"):
exchange_rate = get_exchange_rate(args.get("party_account"), args.get("party_account_currency"),
ref_doc.company, ref_doc.doctype, ref_doc.name)
jv = frappe.new_doc("Journal Entry")
jv.update({
je = frappe.new_doc("Journal Entry")
je.update({
"voucher_type": "Bank Entry",
"company": ref_doc.company,
"remark": args.get("remarks")
})
party_row = jv.append("accounts", {
party_row = je.append("accounts", {
"account": args.get("party_account"),
"party_type": args.get("party_type"),
"party": ref_doc.get(args.get("party_type").lower()),
@@ -601,7 +644,7 @@ def get_payment_entry(ref_doc, args):
"account_type": frappe.db.get_value("Account", args.get("party_account"), "account_type"),
"account_currency": args.get("party_account_currency") or \
get_account_currency(args.get("party_account")),
"account_balance": get_balance_on(args.get("party_account")),
"balance": get_balance_on(args.get("party_account")),
"party_balance": get_balance_on(party=args.get("party"), party_type=args.get("party_type")),
"exchange_rate": exchange_rate,
args.get("amount_field_party"): args.get("amount"),
@@ -610,28 +653,33 @@ def get_payment_entry(ref_doc, args):
"reference_name": ref_doc.name
})
bank_row = jv.append("accounts")
bank_account = get_default_bank_cash_account(ref_doc.company, "Bank Entry")
bank_row = je.append("accounts")
#make it bank_details
bank_account = get_default_bank_cash_account(ref_doc.company, "Bank Entry", account=args.get("bank_account"))
if bank_account:
bank_row.update(bank_account)
bank_row.exchange_rate = get_exchange_rate(bank_account["account"],
bank_row.exchange_rate = get_exchange_rate(bank_account["account"],
bank_account["account_currency"], ref_doc.company)
bank_row.cost_center = cost_center
amount = args.get("debit_in_account_currency") or args.get("amount")
if bank_row.account_currency == args.get("party_account_currency"):
bank_row.set(args.get("amount_field_bank"), args.get("amount"))
bank_row.set(args.get("amount_field_bank"), amount)
else:
bank_row.set(args.get("amount_field_bank"), args.get("amount") * exchange_rate)
bank_row.set(args.get("amount_field_bank"), amount * exchange_rate)
# set multi currency check
if party_row.account_currency != ref_doc.company_currency \
or (bank_row.account_currency and bank_row.account_currency != ref_doc.company_currency):
jv.multi_currency = 1
je.multi_currency = 1
jv.set_amounts_in_company_currency()
return jv.as_dict()
je.set_amounts_in_company_currency()
je.set_total_debit_credit()
return je if args.get("journal_entry") else je.as_dict()
@frappe.whitelist()
def get_opening_accounts(company):
@@ -646,24 +694,27 @@ def get_against_jv(doctype, txt, searchfield, start, page_len, filters):
return frappe.db.sql("""select jv.name, jv.posting_date, jv.user_remark
from `tabJournal Entry` jv, `tabJournal Entry Account` jv_detail
where jv_detail.parent = jv.name and jv_detail.account = %s and ifnull(jv_detail.party, '') = %s
and ifnull(jv_detail.reference_type, '') = ''
and jv.docstatus = 1 and jv.{0} like %s order by jv.name desc limit %s, %s""".format(searchfield),
and (jv_detail.reference_type is null or jv_detail.reference_type = '')
and jv.docstatus = 1 and jv.`{0}` like %s order by jv.name desc limit %s, %s""".format(frappe.db.escape(searchfield)),
(filters.get("account"), cstr(filters.get("party")), "%{0}%".format(txt), start, page_len))
@frappe.whitelist()
def get_outstanding(args):
if not frappe.has_permission("Account"):
frappe.msgprint(_("No Permission"), raise_exception=1)
args = eval(args)
if isinstance(args, basestring):
args = json.loads(args)
company_currency = get_company_currency(args.get("company"))
if args.get("doctype") == "Journal Entry":
condition = " and party=%(party)s" if args.get("party") else ""
against_jv_amount = frappe.db.sql("""
select sum(ifnull(debit_in_account_currency, 0)) - sum(ifnull(credit_in_account_currency, 0))
select sum(debit_in_account_currency) - sum(credit_in_account_currency)
from `tabJournal Entry Account` where parent=%(docname)s and account=%(account)s {0}
and ifnull(reference_type, '')=''""".format(condition), args)
and (reference_type is null or reference_type = '')""".format(condition), args)
against_jv_amount = flt(against_jv_amount[0][0]) if against_jv_amount else 0
amount_field = "credit_in_account_currency" if against_jv_amount > 0 else "debit_in_account_currency"
@@ -728,6 +779,11 @@ def get_account_balance_and_party_type(account, date, company, debit=None, credi
"exchange_rate": get_exchange_rate(account, account_details.account_currency,
company, debit=debit, credit=credit, exchange_rate=exchange_rate)
}
# un-set party if not party type
if not party_type:
grid_values["party"] = ""
return grid_values
@frappe.whitelist()
@@ -737,6 +793,9 @@ def get_exchange_rate(account, account_currency=None, company=None,
account_details = frappe.db.get_value("Account", account,
["account_type", "root_type", "account_currency", "company"], as_dict=1)
if not account_details:
frappe.throw(_("Please select correct account"))
if not company:
company = account_details.company
@@ -746,7 +805,7 @@ def get_exchange_rate(account, account_currency=None, company=None,
company_currency = get_company_currency(company)
if account_currency != company_currency:
if reference_type in ("Sales Invoice", "Purchase Invoice") and reference_name:
if reference_type and reference_name and frappe.get_meta(reference_type).get_field("conversion_rate"):
exchange_rate = frappe.db.get_value(reference_type, reference_name, "conversion_rate")
elif account_details and account_details.account_type == "Bank" and \

View File

@@ -10,7 +10,7 @@
"fields": [
{
"allow_on_submit": 0,
"bold": 0,
"bold": 1,
"collapsible": 0,
"fieldname": "account",
"fieldtype": "Link",
@@ -19,12 +19,14 @@
"in_filter": 1,
"in_list_view": 1,
"label": "Account",
"length": 0,
"no_copy": 0,
"oldfieldname": "account",
"oldfieldtype": "Link",
"options": "Account",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"print_width": "250px",
"read_only": 0,
"report_hide": 0,
@@ -45,10 +47,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Account Type",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -67,12 +71,14 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Account Balance",
"length": 0,
"no_copy": 1,
"oldfieldname": "balance",
"oldfieldtype": "Data",
"options": "account_currency",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -93,12 +99,14 @@
"in_filter": 1,
"in_list_view": 0,
"label": "Cost Center",
"length": 0,
"no_copy": 0,
"oldfieldname": "cost_center",
"oldfieldtype": "Link",
"options": "Cost Center",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"print_width": "180px",
"read_only": 0,
"report_hide": 0,
@@ -118,9 +126,11 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -139,10 +149,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Party Type",
"length": 0,
"no_copy": 0,
"options": "DocType",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -161,10 +173,12 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Party",
"length": 0,
"no_copy": 0,
"options": "party_type",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -183,11 +197,13 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Party Balance",
"length": 0,
"no_copy": 0,
"options": "account_currency",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -208,10 +224,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Currency",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -230,11 +248,13 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Account Currency",
"length": 0,
"no_copy": 1,
"options": "Currency",
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -252,10 +272,12 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -274,10 +296,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Exchange Rate",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "6",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -296,9 +320,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Amount",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -308,7 +334,7 @@
},
{
"allow_on_submit": 0,
"bold": 0,
"bold": 1,
"collapsible": 0,
"fieldname": "debit_in_account_currency",
"fieldtype": "Currency",
@@ -316,12 +342,14 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Debit in Account Currency",
"label": "Debit",
"length": 0,
"no_copy": 0,
"options": "account_currency",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 1,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -331,7 +359,7 @@
},
{
"allow_on_submit": 0,
"bold": 0,
"bold": 1,
"collapsible": 0,
"fieldname": "debit",
"fieldtype": "Currency",
@@ -340,6 +368,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Debit in Company Currency",
"length": 0,
"no_copy": 1,
"oldfieldname": "debit",
"oldfieldtype": "Currency",
@@ -347,6 +376,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -364,9 +394,11 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -376,7 +408,7 @@
},
{
"allow_on_submit": 0,
"bold": 0,
"bold": 1,
"collapsible": 0,
"fieldname": "credit_in_account_currency",
"fieldtype": "Currency",
@@ -384,12 +416,14 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Credit in Account Currency",
"label": "Credit",
"length": 0,
"no_copy": 0,
"options": "account_currency",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 1,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -399,7 +433,7 @@
},
{
"allow_on_submit": 0,
"bold": 0,
"bold": 1,
"collapsible": 0,
"fieldname": "credit",
"fieldtype": "Currency",
@@ -408,6 +442,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Credit in Company Currency",
"length": 0,
"no_copy": 1,
"oldfieldname": "credit",
"oldfieldtype": "Currency",
@@ -415,6 +450,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -433,9 +469,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Reference",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -454,11 +492,13 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Reference Type",
"length": 0,
"no_copy": 0,
"options": "\nSales Invoice\nPurchase Invoice\nJournal Entry\nSales Order\nPurchase Order\nExpense Claim",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -477,11 +517,13 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Reference Name",
"length": 0,
"no_copy": 0,
"options": "reference_type",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -499,9 +541,11 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -520,12 +564,14 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Is Advance",
"length": 0,
"no_copy": 1,
"oldfieldname": "is_advance",
"oldfieldtype": "Select",
"options": "No\nYes",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -544,11 +590,13 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Against Account",
"length": 0,
"no_copy": 1,
"oldfieldname": "against_account",
"oldfieldtype": "Text",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -565,7 +613,8 @@
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"modified": "2015-10-20 12:10:22.203395",
"max_attachments": 0,
"modified": "2015-12-02 04:14:37.571883",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Journal Entry Account",

View File

@@ -20,6 +20,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Mode of Payment",
"length": 0,
"no_copy": 0,
"oldfieldname": "mode_of_payment",
"oldfieldtype": "Data",
@@ -43,6 +44,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Accounts",
"length": 0,
"no_copy": 0,
"options": "Mode of Payment Account",
"permlevel": 0,
@@ -65,7 +67,8 @@
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"modified": "2015-10-02 07:38:57.318104",
"max_attachments": 0,
"modified": "2015-11-16 06:29:50.335559",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Mode of Payment",

View File

@@ -5,6 +5,24 @@ from __future__ import unicode_literals
import frappe
from frappe.model.document import Document
from frappe import _
class ModeofPayment(Document):
pass
def validate(self):
self.validate_accounts()
self.validate_repeating_companies()
def validate_repeating_companies(self):
"""Error when Same Company is entered multiple times in accounts"""
accounts_list = []
for entry in self.accounts:
accounts_list.append(entry.company)
if len(accounts_list)!= len(set(accounts_list)):
frappe.throw(_("Same Company is entered more than once"))
def validate_accounts(self):
for entry in self.accounts:
"""Error when Company of Ledger account doesn't match with Company Selected"""
if frappe.db.get_value("Account", entry.default_account, "company") != entry.company:
frappe.throw(_("Account does not match with Company"))

View File

@@ -19,6 +19,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Company",
"length": 0,
"no_copy": 0,
"options": "Company",
"permlevel": 0,
@@ -43,6 +44,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Default Account",
"length": 0,
"no_copy": 0,
"options": "Account",
"permlevel": 0,
@@ -63,7 +65,8 @@
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"modified": "2015-10-02 07:38:57.388194",
"max_attachments": 0,
"modified": "2015-11-16 06:29:50.367895",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Mode of Payment Account",

View File

@@ -21,6 +21,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Distribution Name",
"length": 0,
"no_copy": 0,
"oldfieldname": "distribution_id",
"oldfieldtype": "Data",
@@ -44,6 +45,7 @@
"in_filter": 1,
"in_list_view": 1,
"label": "Fiscal Year",
"length": 0,
"no_copy": 0,
"oldfieldname": "fiscal_year",
"oldfieldtype": "Select",
@@ -68,6 +70,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Monthly Distribution Percentages",
"length": 0,
"no_copy": 0,
"oldfieldname": "budget_distribution_details",
"oldfieldtype": "Table",
@@ -91,7 +94,8 @@
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"modified": "2015-10-02 07:38:57.594541",
"max_attachments": 0,
"modified": "2015-11-16 06:29:50.431735",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Monthly Distribution",

View File

@@ -19,6 +19,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Month",
"length": 0,
"no_copy": 0,
"oldfieldname": "month",
"oldfieldtype": "Data",
@@ -42,6 +43,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Percentage Allocation",
"length": 0,
"no_copy": 0,
"oldfieldname": "percentage_allocation",
"oldfieldtype": "Currency",
@@ -63,7 +65,8 @@
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"modified": "2015-10-02 07:38:57.670950",
"max_attachments": 0,
"modified": "2015-11-16 06:29:50.468982",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Monthly Distribution Percentage",

View File

@@ -19,6 +19,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Company",
"length": 0,
"no_copy": 0,
"options": "Company",
"permlevel": 0,
@@ -41,6 +42,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
@@ -63,6 +65,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Account",
"length": 0,
"no_copy": 0,
"options": "Account",
"permlevel": 0,
@@ -82,7 +85,8 @@
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"modified": "2015-10-02 07:38:59.582533",
"max_attachments": 0,
"modified": "2015-11-16 06:29:51.450360",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Party Account",

View File

@@ -0,0 +1,118 @@
{
"allow_copy": 0,
"allow_import": 0,
"allow_rename": 0,
"autoname": "field:gateway",
"creation": "2015-12-15 22:26:45.221162",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"fields": [
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "gateway",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Gateway",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"in_create": 1,
"in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2016-01-18 03:58:22.588834",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Payment Gateway",
"name_case": "",
"owner": "Administrator",
"permissions": [
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Administrator",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
},
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 0,
"delete": 0,
"email": 0,
"export": 0,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 0,
"read": 1,
"report": 0,
"role": "System Manager",
"set_user_permissions": 0,
"share": 0,
"submit": 0,
"write": 0
},
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 0,
"delete": 0,
"email": 0,
"export": 0,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 0,
"read": 1,
"report": 0,
"role": "Accounts Manager",
"set_user_permissions": 0,
"share": 0,
"submit": 0,
"write": 0
}
],
"read_only": 1,
"read_only_onload": 0,
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@@ -0,0 +1,10 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors
# For license information, please see license.txt
from __future__ import unicode_literals
import frappe
from frappe.model.document import Document
class PaymentGateway(Document):
pass

View File

@@ -0,0 +1,12 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# See license.txt
from __future__ import unicode_literals
import frappe
import unittest
# test_records = frappe.get_test_records('Payment Gateway')
class TestPaymentGateway(unittest.TestCase):
pass

View File

@@ -0,0 +1,6 @@
cur_frm.cscript.refresh = function(doc, dt, dn){
if(!doc.__islocal){
var df = frappe.meta.get_docfield(doc.doctype, "payment_gateway", doc.name);
df.read_only = 1;
}
}

View File

@@ -0,0 +1,269 @@
{
"allow_copy": 0,
"allow_import": 0,
"allow_rename": 0,
"creation": "2015-12-23 21:31:52.699821",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"fields": [
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "payment_gateway",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Payment Gateway",
"length": 0,
"no_copy": 0,
"options": "Payment Gateway",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "is_default",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Is Default",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "column_break_4",
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "payment_account",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Payment Account",
"length": 0,
"no_copy": 0,
"options": "Account",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "currency",
"fieldtype": "Read Only",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Currency",
"length": 0,
"no_copy": 0,
"options": "payment_account.account_currency",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "payment_request_message",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"default": "Please click on the link below to make your payment",
"fieldname": "message",
"fieldtype": "Text Editor",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Default Payment Request Message",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"default": "Click here to make a payment",
"fieldname": "payment_url_message",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Payment URL Message",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"in_create": 0,
"in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2016-01-21 11:32:10.311015",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Payment Gateway Account",
"name_case": "",
"owner": "Administrator",
"permissions": [
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Administrator",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
},
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Accounts Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
}
],
"read_only": 0,
"read_only_onload": 0,
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@@ -0,0 +1,27 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors
# For license information, please see license.txt
from __future__ import unicode_literals
import frappe
from frappe.model.document import Document
class PaymentGatewayAccount(Document):
def autoname(self):
self.name = self.payment_gateway + " - " + self.currency
def validate(self):
self.currency = frappe.db.get_value("Account", self.payment_account, "account_currency")
self.update_default_payment_gateway()
self.set_as_default_if_not_set()
def update_default_payment_gateway(self):
if self.is_default:
frappe.db.sql("""update `tabPayment Gateway Account` set is_default = 0
where is_default = 1 """)
def set_as_default_if_not_set(self):
if not frappe.db.get_value("Payment Gateway Account",
{"is_default": 1, "name": ("!=", self.name)}, "name"):
self.is_default = 1

View File

@@ -0,0 +1,12 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# See license.txt
from __future__ import unicode_literals
import frappe
import unittest
# test_records = frappe.get_test_records('Payment Gateway Account')
class TestPaymentGatewayAccount(unittest.TestCase):
pass

View File

@@ -47,6 +47,11 @@ erpnext.accounts.PaymentReconciliationController = frappe.ui.form.Controller.ext
refresh: function() {
this.frm.disable_save();
this.toggle_primary_action();
},
onload_post_render: function() {
this.toggle_primary_action();
},
party: function() {
@@ -75,6 +80,7 @@ erpnext.accounts.PaymentReconciliationController = frappe.ui.form.Controller.ext
method: 'get_unreconciled_entries',
callback: function(r, rt) {
me.set_invoice_options();
me.toggle_primary_action();
}
});
@@ -87,10 +93,11 @@ erpnext.accounts.PaymentReconciliationController = frappe.ui.form.Controller.ext
method: 'reconcile',
callback: function(r, rt) {
me.set_invoice_options();
me.toggle_primary_action();
}
});
},
set_invoice_options: function() {
var invoices = [];
@@ -107,6 +114,20 @@ erpnext.accounts.PaymentReconciliationController = frappe.ui.form.Controller.ext
});
refresh_field("payments");
},
toggle_primary_action: function() {
if ((this.frm.doc.payments || []).length) {
this.frm.fields_dict.reconcile.$input
&& this.frm.fields_dict.reconcile.$input.addClass("btn-primary");
this.frm.fields_dict.get_unreconciled_entries.$input
&& this.frm.fields_dict.get_unreconciled_entries.$input.removeClass("btn-primary");
} else {
this.frm.fields_dict.reconcile.$input
&& this.frm.fields_dict.reconcile.$input.removeClass("btn-primary");
this.frm.fields_dict.get_unreconciled_entries.$input
&& this.frm.fields_dict.get_unreconciled_entries.$input.addClass("btn-primary");
}
}
});

View File

@@ -19,10 +19,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Company",
"length": 0,
"no_copy": 0,
"options": "Company",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -41,10 +43,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Party Type",
"length": 0,
"no_copy": 0,
"options": "DocType",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -64,10 +68,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Party",
"length": 0,
"no_copy": 0,
"options": "party_type",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -86,11 +92,13 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Receivable / Payable Account",
"length": 0,
"no_copy": 0,
"options": "Account",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -109,10 +117,12 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Bank / Cash Account",
"length": 0,
"no_copy": 0,
"options": "Account",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -131,9 +141,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -151,10 +163,12 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "From Date",
"label": "From Invoice Date",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -172,10 +186,12 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "To Date",
"label": "To Invoice Date",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -193,10 +209,12 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Minimum Amount",
"label": "Minimum Invoice Amount",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -214,10 +232,12 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Maximum Amount",
"label": "Maximum Invoice Amount",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -236,9 +256,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Get Unreconciled Entries",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -257,9 +279,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Unreconciled Payment Details",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -278,10 +302,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Payments",
"length": 0,
"no_copy": 0,
"options": "Payment Reconciliation Payment",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -300,9 +326,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Reconcile",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -321,9 +349,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Invoice/Journal Entry Details",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -342,10 +372,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Invoices",
"length": 0,
"no_copy": 0,
"options": "Payment Reconciliation Invoice",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -357,12 +389,15 @@
"hide_heading": 0,
"hide_toolbar": 1,
"icon": "icon-resize-horizontal",
"idx": 0,
"in_create": 0,
"in_dialog": 0,
"is_submittable": 0,
"issingle": 1,
"istable": 0,
"modified": "2015-09-21 03:41:24.672227",
"max_attachments": 0,
"menu_index": 0,
"modified": "2016-01-04 02:26:58.807921",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Payment Reconciliation",

View File

@@ -6,6 +6,7 @@ import frappe
from frappe.utils import flt
from frappe import msgprint, _
from frappe.model.document import Document
from erpnext.accounts.utils import get_outstanding_invoices
class PaymentReconciliation(Document):
def get_unreconciled_entries(self):
@@ -17,8 +18,6 @@ class PaymentReconciliation(Document):
dr_or_cr = "credit_in_account_currency" if self.party_type == "Customer" \
else "debit_in_account_currency"
cond = self.check_condition(dr_or_cr)
bank_account_condition = "t2.against_account like %(bank_cash_account)s" \
if self.bank_cash_account else "1=1"
@@ -32,8 +31,7 @@ class PaymentReconciliation(Document):
t1.name = t2.parent and t1.docstatus = 1 and t2.docstatus = 1
and t2.party_type = %(party_type)s and t2.party = %(party)s
and t2.account = %(account)s and {dr_or_cr} > 0
and ifnull(t2.reference_type, '') in ('', 'Sales Order', 'Purchase Order')
{cond}
and (t2.reference_type is null or t2.reference_type in ('', 'Sales Order', 'Purchase Order'))
and (CASE
WHEN t1.voucher_type in ('Debit Note', 'Credit Note')
THEN 1=1
@@ -41,7 +39,6 @@ class PaymentReconciliation(Document):
END)
""".format(**{
"dr_or_cr": dr_or_cr,
"cond": cond,
"bank_account_condition": bank_account_condition,
}), {
"party_type": self.party_type,
@@ -65,65 +62,11 @@ class PaymentReconciliation(Document):
def get_invoice_entries(self):
#Fetch JVs, Sales and Purchase Invoices for 'invoices' to reconcile against
non_reconciled_invoices = []
dr_or_cr = "debit_in_account_currency" if self.party_type == "Customer" else "credit_in_account_currency"
cond = self.check_condition(dr_or_cr)
invoice_list = frappe.db.sql("""
select
voucher_no, voucher_type, posting_date,
ifnull(sum({dr_or_cr}), 0) as invoice_amount
from
`tabGL Entry`
where
party_type = %(party_type)s and party = %(party)s
and account = %(account)s and {dr_or_cr} > 0 {cond}
and (CASE
WHEN voucher_type = 'Journal Entry'
THEN ifnull(against_voucher, '') = ''
ELSE 1=1
END)
group by voucher_type, voucher_no
""".format(**{
"cond": cond,
"dr_or_cr": dr_or_cr
}), {
"party_type": self.party_type,
"party": self.party,
"account": self.receivable_payable_account,
}, as_dict=True)
condition = self.check_condition()
for d in invoice_list:
payment_amount = frappe.db.sql("""
select
ifnull(sum(ifnull({0}, 0)), 0)
from
`tabGL Entry`
where
party_type = %(party_type)s and party = %(party)s
and account = %(account)s and {0} > 0
and against_voucher_type = %(against_voucher_type)s
and ifnull(against_voucher, '') = %(against_voucher)s
""".format("credit_in_account_currency" if self.party_type == "Customer"
else "debit_in_account_currency"), {
"party_type": self.party_type,
"party": self.party,
"account": self.receivable_payable_account,
"against_voucher_type": d.voucher_type,
"against_voucher": d.voucher_no
}
)
payment_amount = payment_amount[0][0] if payment_amount else 0
if d.invoice_amount - payment_amount > 0.005:
non_reconciled_invoices.append({
'voucher_no': d.voucher_no,
'voucher_type': d.voucher_type,
'posting_date': d.posting_date,
'invoice_amount': flt(d.invoice_amount),
'outstanding_amount': flt(d.invoice_amount - payment_amount, 2)
})
non_reconciled_invoices = get_outstanding_invoices(self.party_type, self.party,
self.receivable_payable_account, condition=condition)
self.add_invoice_entries(non_reconciled_invoices)
@@ -210,13 +153,18 @@ class PaymentReconciliation(Document):
if not invoices_to_reconcile:
frappe.throw(_("Please select Allocated Amount, Invoice Type and Invoice Number in atleast one row"))
def check_condition(self, dr_or_cr):
cond = self.from_date and " and posting_date >= '" + self.from_date + "'" or ""
cond += self.to_date and " and posting_date <= '" + self.to_date + "'" or ""
def check_condition(self):
cond = " and posting_date >= '{0}'".format(frappe.db.escape(self.from_date)) if self.from_date else ""
cond += " and posting_date <= '{0}'".format(frappe.db.escape(self.to_date)) if self.to_date else ""
if self.party_type == "Customer":
dr_or_cr = "debit_in_account_currency"
else:
dr_or_cr = "credit_in_account_currency"
if self.minimum_amount:
cond += " and {0} >= %s".format(dr_or_cr) % self.minimum_amount
cond += " and `{0}` >= {1}".format(dr_or_cr, flt(self.minimum_amount))
if self.maximum_amount:
cond += " and {0} <= %s".format(dr_or_cr) % self.maximum_amount
cond += " and `{0}` <= {1}".format(dr_or_cr, flt(self.maximum_amount))
return cond

View File

@@ -19,6 +19,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Invoice Type",
"length": 0,
"no_copy": 0,
"options": "Sales Invoice\nPurchase Invoice\nJournal Entry",
"permlevel": 0,
@@ -41,6 +42,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Invoice Number",
"length": 0,
"no_copy": 0,
"options": "",
"permlevel": 0,
@@ -63,6 +65,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Invoice Date",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
@@ -84,6 +87,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
@@ -105,6 +109,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Amount",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
@@ -126,6 +131,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Outstanding Amount",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
@@ -144,7 +150,8 @@
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"modified": "2015-10-16 06:14:07.460813",
"max_attachments": 0,
"modified": "2015-11-16 06:29:51.516537",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Payment Reconciliation Invoice",

View File

@@ -19,6 +19,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Journal Entry",
"length": 0,
"no_copy": 0,
"options": "Journal Entry",
"permlevel": 0,
@@ -41,6 +42,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Posting Date",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
@@ -62,6 +64,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Amount",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
@@ -83,6 +86,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Is Advance",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
@@ -104,6 +108,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Voucher Detail Number",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
@@ -125,6 +130,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
@@ -146,6 +152,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Invoice Number",
"length": 0,
"no_copy": 0,
"options": "",
"permlevel": 0,
@@ -168,6 +175,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Allocated amount",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
@@ -190,6 +198,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
@@ -211,6 +220,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Remark",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
@@ -229,7 +239,8 @@
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"modified": "2015-10-02 07:38:59.835936",
"max_attachments": 0,
"modified": "2015-11-16 06:29:51.563989",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Payment Reconciliation Payment",

View File

@@ -0,0 +1,35 @@
cur_frm.add_fetch("payment_gateway", "payment_account", "payment_account")
cur_frm.add_fetch("payment_gateway", "payment_gateway", "payment_gateway")
cur_frm.add_fetch("payment_gateway", "message", "message")
cur_frm.add_fetch("payment_gateway", "payment_url_message", "payment_url_message")
frappe.ui.form.on("Payment Request", "onload", function(frm, dt, dn){
if (frm.doc.reference_doctype) {
frappe.call({
method:"erpnext.accounts.doctype.payment_request.payment_request.get_print_format_list",
args: {"ref_doctype": frm.doc.reference_doctype},
callback:function(r){
set_field_options("print_format", r.message["print_format"])
}
})
}
})
frappe.ui.form.on("Payment Request", "refresh", function(frm) {
if(!in_list(["Initiated", "Paid"], frm.doc.status) && !frm.doc.__islocal){
frm.add_custom_button(__('Resend Payment Email'), function(){
frappe.call({
method: "erpnext.accounts.doctype.payment_request.payment_request.resend_payment_email",
args: {"docname": frm.doc.name},
freeze: true,
freeze_message: __("Sending"),
callback: function(r){
if(!r.exc) {
frappe.msgprint(__("Message Sent"));
}
}
});
});
}
});

View File

@@ -0,0 +1,679 @@
{
"allow_copy": 0,
"allow_import": 0,
"allow_rename": 0,
"autoname": "PR.######",
"creation": "2015-12-15 22:23:24.745065",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"fields": [
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "payment_details",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Payment Details",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "currency",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Transaction Currency",
"length": 0,
"no_copy": 0,
"options": "Currency",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"description": "Amount in customer's currency",
"fieldname": "grand_total",
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Grand Total",
"length": 0,
"no_copy": 0,
"options": "currency",
"permlevel": 0,
"precision": "2",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "column_break_5",
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"default": "Draft",
"fieldname": "status",
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Status",
"length": 0,
"no_copy": 0,
"options": "\nDraft\nInitiated\nPaid\nFailed\nCancelled",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"depends_on": "eval:doc.reference_doctype==\"Sales Order\"",
"fieldname": "make_sales_invoice",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Make Sales Invoice",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "section_break_7",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "payment_gateway_account",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Payment Gateway Account",
"length": 0,
"no_copy": 0,
"options": "Payment Gateway Account",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "column_break_9",
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "payment_gateway",
"fieldtype": "Read Only",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Payment Gateway",
"length": 0,
"no_copy": 0,
"options": "payment_gateway_account.payment_gateway",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "payment_account",
"fieldtype": "Read Only",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Payment Account",
"length": 0,
"no_copy": 0,
"options": "payment_gateway_account.payment_account",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "recipient_and_message",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Recipient and Message",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"default": "",
"fieldname": "print_format",
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Print Format",
"length": 0,
"no_copy": 0,
"options": "",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "mute_email",
"fieldtype": "Check",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Mute Email",
"length": 0,
"no_copy": 1,
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 1,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "email_to",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Email To",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 1,
"bold": 0,
"collapsible": 0,
"fieldname": "subject",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Subject",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "message",
"fieldtype": "Text Editor",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Message",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "payment_url_message",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Payment URL Message",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "payment_url",
"fieldtype": "Data",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "payment_url",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "reference_details",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Reference Details",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "reference_doctype",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Reference Doctype",
"length": 0,
"no_copy": 1,
"options": "DocType",
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 1,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "reference_name",
"fieldtype": "Dynamic Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Reference Name",
"length": 0,
"no_copy": 1,
"options": "reference_doctype",
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 1,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "amended_from",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Amended From",
"length": 0,
"no_copy": 1,
"options": "Payment Request",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"in_create": 0,
"in_dialog": 0,
"is_submittable": 1,
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2016-02-24 16:49:46.832403",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Payment Request",
"name_case": "",
"owner": "Administrator",
"permissions": [
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Accounts User",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
},
{
"amend": 1,
"apply_user_permissions": 0,
"cancel": 1,
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Accounts Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 1,
"write": 1
},
{
"amend": 1,
"apply_user_permissions": 0,
"cancel": 1,
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Administrator",
"set_user_permissions": 0,
"share": 1,
"submit": 1,
"write": 1
}
],
"read_only": 0,
"read_only_onload": 0,
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@@ -0,0 +1,261 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors
# For license information, please see license.txt
from __future__ import unicode_literals
import frappe
from frappe import _
from frappe.model.document import Document
from frappe.utils import flt, nowdate, get_url, cstr
from erpnext.accounts.party import get_party_account
from erpnext.accounts.utils import get_account_currency
from erpnext.accounts.doctype.journal_entry.journal_entry import (get_payment_entry_against_invoice,
get_payment_entry_against_order)
class PaymentRequest(Document):
def validate(self):
self.validate_payment_gateway_account()
self.validate_payment_request()
self.validate_currency()
def validate_payment_request(self):
if frappe.db.get_value("Payment Request", {"reference_name": self.reference_name,
"name": ("!=", self.name), "status": ("not in", ["Initiated", "Paid"]), "docstatus": 1}, "name"):
frappe.throw(_("Payment Request already exists {0}".format(self.reference_name)))
def validate_currency(self):
ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)
if ref_doc.currency != frappe.db.get_value("Account", self.payment_account, "account_currency"):
frappe.throw(_("Transaction currency must be same as Payment Gateway currency"))
def validate_payment_gateway_account(self):
if not self.payment_gateway:
frappe.throw(_("Payment Gateway Account is not configured"))
def validate_payment_gateway(self):
if self.payment_gateway == "PayPal":
if not frappe.db.get_value("PayPal Settings", None, "api_username"):
if not frappe.conf.paypal_username:
frappe.throw(_("PayPal Settings missing"))
def on_submit(self):
if not self.mute_email:
self.send_payment_request()
self.send_email()
self.make_communication_entry()
def on_cancel(self):
self.set_as_cancelled()
def get_payment_url(self):
""" This is blanck method to trigger hooks call from individual payment gateway app
which will return respective payment gateway"""
pass
def make_invoice(self):
if self.make_sales_invoice:
from erpnext.selling.doctype.sales_order.sales_order import make_sales_invoice
si = make_sales_invoice(self.reference_name, ignore_permissions=True)
si = si.insert(ignore_permissions=True)
si.submit()
def send_payment_request(self):
self.payment_url = get_url("/api/method/erpnext.accounts.doctype.payment_request.payment_request.generate_payment_request?name={0}".format(self.name))
if self.payment_url:
frappe.db.set_value(self.doctype, self.name, "payment_url", self.payment_url)
frappe.db.set_value(self.doctype, self.name, "status", "Initiated")
def set_as_paid(self):
if frappe.session.user == "Guest":
frappe.set_user("Administrator")
jv = self.create_journal_entry()
self.make_invoice()
return jv
def create_journal_entry(self):
"""create entry"""
frappe.flags.ignore_account_permission = True
ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)
party_account = get_party_account("Customer", ref_doc.get("customer"), ref_doc.company)
party_account_currency = get_account_currency(party_account)
debit_in_account_currency = 0.0
if party_account_currency == ref_doc.company_currency:
amount = flt(flt(self.grand_total) * \
flt(ref_doc.conversion_rate, ref_doc.precision("conversion_rate")), \
ref_doc.precision("base_grand_total"))
if self.currency != ref_doc.company_currency:
debit_in_account_currency = self.grand_total
else:
amount = debit_in_account_currency = self.grand_total
if self.reference_doctype == "Sales Order":
jv = get_payment_entry_against_order(self.reference_doctype, self.reference_name,
amount=amount, debit_in_account_currency=debit_in_account_currency , journal_entry=True,
bank_account=self.payment_account)
if self.reference_doctype == "Sales Invoice":
jv = get_payment_entry_against_invoice(self.reference_doctype, self.reference_name,
amount=amount, debit_in_account_currency=debit_in_account_currency, journal_entry=True,
bank_account=self.payment_account)
jv.update({
"voucher_type": "Journal Entry",
"posting_date": nowdate()
})
jv.insert(ignore_permissions=True)
jv.submit()
#set status as paid for Payment Request
frappe.db.set_value(self.doctype, self.name, "status", "Paid")
return jv
def send_email(self):
"""send email with payment link"""
frappe.sendmail(recipients=self.email_to, sender=None, subject=self.subject,
message=self.get_message(), attachments=[frappe.attach_print(self.reference_doctype,
self.reference_name, file_name=self.reference_name, print_format=self.print_format)])
def get_message(self):
"""return message with payment gateway link"""
return cstr(self.message) + " <a href='{0}'>{1}</a>".format(self.payment_url, \
self.payment_url_message or _(" Click here to pay"))
def set_failed(self):
pass
def set_as_cancelled(self):
frappe.db.set_value(self.doctype, self.name, "status", "Cancelled")
def make_communication_entry(self):
"""Make communication entry"""
comm = frappe.get_doc({
"doctype":"Communication",
"subject": self.subject,
"content": self.get_message(),
"sent_or_received": "Sent",
"reference_doctype": self.reference_doctype,
"reference_name": self.reference_name
})
comm.insert(ignore_permissions=True)
def get_payment_success_url(self):
return self.payment_success_url
@frappe.whitelist(allow_guest=True)
def make_payment_request(**args):
"""Make payment request"""
args = frappe._dict(args)
ref_doc = frappe.get_doc(args.dt, args.dn)
gateway_account = get_gateway_details(args)
grand_total = get_amount(ref_doc, args.dt)
existing_payment_request = frappe.db.get_value("Payment Request",
{"reference_doctype": args.dt, "reference_name": args.dn})
if existing_payment_request:
pr = frappe.get_doc("Payment Request", existing_payment_request)
else:
pr = frappe.new_doc("Payment Request")
pr.update({
"payment_gateway_account": gateway_account.name,
"payment_gateway": gateway_account.payment_gateway,
"payment_account": gateway_account.payment_account,
"currency": ref_doc.currency,
"make_sales_invoice": args.cart or 0,
"grand_total": grand_total,
"mute_email": args.mute_email or 0,
"email_to": args.recipient_id or "",
"subject": "Payment Request for %s"%args.dn,
"message": gateway_account.message,
"payment_url_message": gateway_account.payment_url_message,
"payment_success_url": gateway_account.payment_success_url,
"reference_doctype": args.dt,
"reference_name": args.dn
})
if args.return_doc:
return pr
if args.submit_doc:
pr.insert(ignore_permissions=True)
pr.submit()
if args.cart:
generate_payment_request(pr.name)
frappe.db.commit()
if not args.cart:
return pr
return pr.as_dict()
def get_amount(ref_doc, dt):
"""get amount based on doctype"""
if dt == "Sales Order":
grand_total = flt(ref_doc.grand_total) - flt(ref_doc.advance_paid)
if dt == "Sales Invoice":
grand_total = flt(ref_doc.outstanding_amount)
if grand_total > 0 :
return grand_total
else:
frappe.throw(_("Payment Entry is already created"))
def get_gateway_details(args):
"""return gateway and payment account of default payment gateway"""
if args.get("payment_gateway"):
return get_payment_gateway_account(args.get("payment_gateway"))
if args.cart:
payment_gateway_account = frappe.get_doc("Shopping Cart Settings").payment_gateway_account
return get_payment_gateway_account(payment_gateway_account)
gateway_account = get_payment_gateway_account({"is_default": 1})
if not gateway_account:
frappe.throw(_("Payment Gateway Account is not configured"))
return gateway_account
def get_payment_gateway_account(args):
return frappe.db.get_value("Payment Gateway Account", args,
["name", "payment_gateway", "payment_account", "message", "payment_url_message"],
as_dict=1)
@frappe.whitelist()
def get_print_format_list(ref_doctype):
print_format_list = ["Standard"]
print_format_list.extend([p.name for p in frappe.get_all("Print Format",
filters={"doc_type": ref_doctype})])
return {
"print_format": print_format_list
}
@frappe.whitelist(allow_guest=True)
def generate_payment_request(name):
frappe.get_doc("Payment Request", name).run_method("get_payment_url")
@frappe.whitelist(allow_guest=True)
def resend_payment_email(docname):
return frappe.get_doc("Payment Request", docname).send_email()

View File

@@ -0,0 +1,17 @@
frappe.listview_settings['Payment Request'] = {
add_fields: ["status"],
get_indicator: function(doc) {
if(doc.status == "Draft") {
return [__("Draft"), "darkgrey", "status,=,Draft"];
}
else if(doc.status == "Initiated") {
return [__("Initiated"), "green", "status,=,Initiated"];
}
else if(doc.status == "Paid") {
return [__("Paid"), "blue", "status,=,Paid"];
}
else if(doc.status == "Cancelled") {
return [__("Cancelled"), "orange", "status,=,Cancelled"];
}
}
}

View File

@@ -0,0 +1,88 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# See license.txt
from __future__ import unicode_literals
import frappe
import unittest
from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order
from erpnext.accounts.doctype.payment_request.payment_request import make_payment_request, get_gateway_details
from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice
from erpnext.setup.utils import get_exchange_rate
# test_records = frappe.get_test_records('Payment Request')
test_dependencies = ["Currency Exchange", "Journal Entry", "Contact", "Address"]
payment_gateway = {
"doctype": "Payment Gateway",
"gateway": "_Test Gateway"
}
payment_method = [
{
"doctype": "Payment Gateway Account",
"is_default": 1,
"payment_gateway": "_Test Gateway",
"payment_account": "_Test Bank - _TC",
"currency": "INR"
},
{
"doctype": "Payment Gateway Account",
"payment_gateway": "_Test Gateway",
"payment_account": "_Test Bank USD - _TC",
"currency": "USD"
}
]
class TestPaymentRequest(unittest.TestCase):
def setUp(self):
if not frappe.db.get_value("Payment Gateway", payment_gateway["gateway"], "name"):
frappe.get_doc(payment_gateway).insert(ignore_permissions=True)
for method in payment_method:
if not frappe.db.get_value("Payment Gateway Account", {"payment_gateway": method["payment_gateway"],
"currency": method["currency"]}, "name"):
frappe.get_doc(method).insert(ignore_permissions=True)
def test_payment_request_linkings(self):
so_inr = make_sales_order(currency="INR")
pr = make_payment_request(dt="Sales Order", dn=so_inr.name, recipient_id="saurabh@erpnext.com")
self.assertEquals(pr.reference_doctype, "Sales Order")
self.assertEquals(pr.reference_name, so_inr.name)
self.assertEquals(pr.currency, "INR")
conversion_rate = get_exchange_rate("USD", "INR")
si_usd = create_sales_invoice(currency="USD", conversion_rate=conversion_rate)
pr = make_payment_request(dt="Sales Invoice", dn=si_usd.name, recipient_id="saurabh@erpnext.com")
self.assertEquals(pr.reference_doctype, "Sales Invoice")
self.assertEquals(pr.reference_name, si_usd.name)
self.assertEquals(pr.currency, "USD")
def test_payment_entry(self):
so_inr = make_sales_order(currency="INR")
pr = make_payment_request(dt="Sales Order", dn=so_inr.name, recipient_id="saurabh@erpnext.com",
mute_email=1, submit_doc=1)
jv = pr.set_as_paid()
so_inr = frappe.get_doc("Sales Order", so_inr.name)
self.assertEquals(so_inr.advance_paid, jv.total_debit)
conversion_rate = get_exchange_rate("USD", "INR")
si_usd = create_sales_invoice(customer="_Test Customer USD", debit_to="_Test Receivable USD - _TC",
currency="USD", conversion_rate=conversion_rate)
pr = make_payment_request(dt="Sales Invoice", dn=si_usd.name, recipient_id="saurabh@erpnext.com",
mute_email=1, return_doc=1, payment_gateway="_Test Gateway - USD")
jv = pr.set_as_paid()
payment_gateway_details = get_gateway_details({"payment_gateway": "_Test Gateway - USD"})
self.assertEquals(jv.accounts[0].account, "_Test Receivable USD - _TC")
self.assertEquals(jv.accounts[1].account, payment_gateway_details.payment_account)

View File

@@ -42,6 +42,10 @@ frappe.ui.form.on("Payment Tool", "refresh", function(frm) {
frappe.ui.form.trigger("Payment Tool", "party_type");
});
frappe.ui.form.on("Payment Tool", "party_type", function(frm) {
frm.set_value("received_or_paid", frm.doc.party_type=="Customer" ? "Received" : "Paid");
});
frappe.ui.form.on("Payment Tool", "party", function(frm) {
if(frm.doc.party_type && frm.doc.party) {
return frappe.call({

View File

@@ -8,6 +8,7 @@ from frappe.utils import flt
from frappe.model.document import Document
import json
from erpnext.accounts.utils import get_account_currency
from erpnext.accounts.doctype.journal_entry.journal_entry import get_exchange_rate
class PaymentTool(Document):
def make_journal_entry(self):
@@ -19,7 +20,15 @@ class PaymentTool(Document):
jv.company = self.company
jv.cheque_no = self.reference_no
jv.cheque_date = self.reference_date
party_account_currency, party_account_type = frappe.db.get_value("Account", self.party_account,
["account_currency", "account_type"])
bank_account_currency, bank_account_type = None, None
if self.payment_account:
bank_account_currency, bank_account_type = frappe.db.get_value("Account", self.payment_account,
["account_currency", "account_type"])
if not self.total_payment_amount:
frappe.throw(_("Please enter Payment Amount in atleast one row"))
@@ -27,27 +36,58 @@ class PaymentTool(Document):
if not frappe.db.get_value(v.against_voucher_type, {"name": v.against_voucher_no}):
frappe.throw(_("Row {0}: {1} is not a valid {2}").format(v.idx, v.against_voucher_no,
v.against_voucher_type))
if v.payment_amount:
exchange_rate = get_exchange_rate(self.party_account, party_account_currency,
self.company, v.against_voucher_type, v.against_voucher_no)
d1 = jv.append("accounts")
d1.account = self.party_account
d1.party_type = self.party_type
d1.party = self.party
d1.account_currency = party_account_currency
d1.account_type = party_account_type
d1.balance = get_balance_on(self.party_account)
d1.party_balance = get_balance_on(party=self.party, party_type=self.party_type)
d1.exchange_rate = exchange_rate
d1.set("debit_in_account_currency" if self.received_or_paid=="Paid" \
else "credit_in_account_currency", flt(v.payment_amount))
d1.set("reference_type", v.against_voucher_type)
d1.set("reference_name", v.against_voucher_no)
d1.set('is_advance', 'Yes' if v.against_voucher_type in ['Sales Order', 'Purchase Order'] else 'No')
total_payment_amount = flt(total_payment_amount) + \
flt(d1.debit_in_account_currency) - flt(d1.credit_in_account_currency)
d1.reference_type = v.against_voucher_type
d1.reference_name = v.against_voucher_no
d1.is_advance = 'Yes' \
if v.against_voucher_type in ['Sales Order', 'Purchase Order'] else 'No'
amount = flt(d1.debit_in_account_currency) - flt(d1.credit_in_account_currency)
if bank_account_currency == party_account_currency:
total_payment_amount += amount
else:
total_payment_amount += amount*exchange_rate
d2 = jv.append("accounts")
d2.account = self.payment_account
d2.set('debit_in_account_currency' if total_payment_amount < 0 \
else 'credit_in_account_currency', abs(total_payment_amount))
if self.payment_account:
d2.balance = get_balance_on(self.payment_account)
bank_account_currency, bank_account_type = frappe.db.get_value("Account", self.payment_account,
["account_currency", "account_type"])
d2.account = self.payment_account
d2.account_currency = bank_account_currency
d2.account_type = bank_account_type
d2.exchange_rate = get_exchange_rate(self.payment_account, bank_account_currency, self.company,
debit=(abs(total_payment_amount) if total_payment_amount < 0 else 0),
credit=(total_payment_amount if total_payment_amount > 0 else 0))
d2.account_balance = get_balance_on(self.payment_account)
amount_field_bank = 'debit_in_account_currency' if total_payment_amount < 0 \
else 'credit_in_account_currency'
d2.set(amount_field_bank, abs(total_payment_amount))
company_currency = frappe.db.get_value("Company", self.company, "default_currency")
if party_account_currency != company_currency or \
(bank_account_currency and bank_account_currency != company_currency):
jv.multi_currency = 1
jv.set_amounts_in_company_currency()
jv.set_total_debit_credit()
return jv.as_dict()
@@ -63,20 +103,18 @@ def get_outstanding_vouchers(args):
party_account_currency = get_account_currency(args.get("party_account"))
company_currency = frappe.db.get_value("Company", args.get("company"), "default_currency")
if args.get("party_type") == "Customer" and args.get("received_or_paid") == "Received":
amount_query = "ifnull(debit_in_account_currency, 0) - ifnull(credit_in_account_currency, 0)"
elif args.get("party_type") == "Supplier" and args.get("received_or_paid") == "Paid":
amount_query = "ifnull(credit_in_account_currency, 0) - ifnull(debit_in_account_currency, 0)"
else:
if ((args.get("party_type") == "Customer" and args.get("received_or_paid") == "Paid")
or (args.get("party_type") == "Supplier" and args.get("received_or_paid") == "Received")):
frappe.throw(_("Please enter the Against Vouchers manually"))
# Get all outstanding sales /purchase invoices
outstanding_invoices = get_outstanding_invoices(amount_query, args.get("party_account"),
args.get("party_type"), args.get("party"))
outstanding_invoices = get_outstanding_invoices(args.get("party_type"), args.get("party"), args.get("party_account"))
# Get all SO / PO which are not fully billed or aginst which full advance not paid
orders_to_be_billed = get_orders_to_be_billed(args.get("party_type"), args.get("party"),
party_account_currency, company_currency)
return outstanding_invoices + orders_to_be_billed
def get_orders_to_be_billed(party_type, party, party_account_currency, company_currency):
@@ -87,17 +125,17 @@ def get_orders_to_be_billed(party_type, party, party_account_currency, company_c
orders = frappe.db.sql("""
select
name as voucher_no,
ifnull({ref_field}, 0) as invoice_amount,
(ifnull({ref_field}, 0) - ifnull(advance_paid, 0)) as outstanding_amount,
{ref_field} as invoice_amount,
({ref_field} - advance_paid) as outstanding_amount,
transaction_date as posting_date
from
`tab{voucher_type}`
where
{party_type} = %s
and docstatus = 1
and ifnull(status, "") != "Stopped"
and ifnull({ref_field}, 0) > ifnull(advance_paid, 0)
and abs(100 - ifnull(per_billed, 0)) > 0.01
and ifnull(status, "") != "Closed"
and {ref_field} > advance_paid
and abs(100 - per_billed) > 0.01
""".format(**{
"ref_field": ref_field,
"voucher_type": voucher_type,
@@ -118,7 +156,7 @@ def get_against_voucher_amount(against_voucher_type, against_voucher_no, party_a
ref_field = "base_grand_total" if party_account_currency == company_currency else "grand_total"
if against_voucher_type in ["Sales Order", "Purchase Order"]:
select_cond = "{0} as total_amount, ifnull({0}, 0) - ifnull(advance_paid, 0) as outstanding_amount"\
select_cond = "{0} as total_amount, {0} - advance_paid as outstanding_amount"\
.format(ref_field)
elif against_voucher_type in ["Sales Invoice", "Purchase Invoice"]:
select_cond = "{0} as total_amount, outstanding_amount".format(ref_field)
@@ -127,6 +165,6 @@ def get_against_voucher_amount(against_voucher_type, against_voucher_no, party_a
select_cond = "{0} as total_amount".format(ref_field)
details = frappe.db.sql("""select {0} from `tab{1}` where name = %s"""
.format(select_cond, against_voucher_type), against_voucher_no, as_dict=1)
.format(select_cond, frappe.db.escape(against_voucher_type)), against_voucher_no, as_dict=1)
return details[0] if details else {}

View File

@@ -19,6 +19,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Against Voucher Type",
"length": 0,
"no_copy": 0,
"options": "DocType",
"permlevel": 0,
@@ -43,6 +44,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Against Voucher No",
"length": 0,
"no_copy": 0,
"options": "against_voucher_type",
"permlevel": 0,
@@ -64,6 +66,7 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
@@ -86,6 +89,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Total Amount",
"length": 0,
"no_copy": 0,
"options": "party_account_currency",
"permlevel": 0,
@@ -108,6 +112,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Outstanding Amount",
"length": 0,
"no_copy": 0,
"options": "party_account_currency",
"permlevel": 0,
@@ -130,6 +135,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Payment Amount",
"length": 0,
"no_copy": 0,
"options": "party_account_currency",
"permlevel": 0,
@@ -149,7 +155,8 @@
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"modified": "2015-10-02 07:38:59.950506",
"max_attachments": 0,
"modified": "2015-11-16 06:29:51.626386",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Payment Tool Detail",

View File

@@ -10,12 +10,12 @@ cur_frm.cscript.onload = function(doc, cdt, cdn) {
// ***************** Get Account Head *****************
cur_frm.fields_dict['closing_account_head'].get_query = function(doc, cdt, cdn) {
return{
filters:{
"company": doc.company,
"root_type": "Liability",
"freeze_account": "No",
"is_group": 0
}
return {
filters: [
['Account', 'company', '=', doc.company],
['Account', 'is_group', '=', '0'],
['Account', 'freeze_account', '=', 'No'],
['Account', 'root_type', 'in', 'Liability, Equity']
]
}
}

View File

@@ -18,6 +18,7 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"oldfieldtype": "Column Break",
"permlevel": 0,
@@ -41,6 +42,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Transaction Date",
"length": 0,
"no_copy": 0,
"oldfieldname": "transaction_date",
"oldfieldtype": "Date",
@@ -64,6 +66,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Posting Date",
"length": 0,
"no_copy": 0,
"oldfieldname": "posting_date",
"oldfieldtype": "Date",
@@ -87,6 +90,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Closing Fiscal Year",
"length": 0,
"no_copy": 0,
"oldfieldname": "fiscal_year",
"oldfieldtype": "Select",
@@ -111,6 +115,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Amended From",
"length": 0,
"no_copy": 1,
"oldfieldname": "amended_from",
"oldfieldtype": "Data",
@@ -135,6 +140,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Company",
"length": 0,
"no_copy": 0,
"oldfieldname": "company",
"oldfieldtype": "Select",
@@ -158,6 +164,7 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"oldfieldtype": "Column Break",
"permlevel": 0,
@@ -173,7 +180,7 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"description": "The account head under Liability, in which Profit/Loss will be booked",
"description": "The account head under Liability or Equity, in which Profit/Loss will be booked",
"fieldname": "closing_account_head",
"fieldtype": "Link",
"hidden": 0,
@@ -181,6 +188,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Closing Account Head",
"length": 0,
"no_copy": 0,
"oldfieldname": "closing_account_head",
"oldfieldtype": "Link",
@@ -205,6 +213,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Remarks",
"length": 0,
"no_copy": 0,
"oldfieldname": "remarks",
"oldfieldtype": "Small Text",
@@ -227,7 +236,8 @@
"is_submittable": 1,
"issingle": 0,
"istable": 0,
"modified": "2015-10-21 12:40:58.278256",
"max_attachments": 0,
"modified": "2015-11-16 06:29:51.671436",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Period Closing Voucher",

View File

@@ -22,21 +22,21 @@ class PeriodClosingVoucher(AccountsController):
def validate_account_head(self):
closing_account_type = frappe.db.get_value("Account", self.closing_account_head, "root_type")
if closing_account_type != "Liability":
frappe.throw(_("Closing Account {0} must be of type 'Liability'")
if closing_account_type not in ["Liability", "Equity"]:
frappe.throw(_("Closing Account {0} must be of type Liability / Equity")
.format(self.closing_account_head))
account_currency = get_account_currency(self.closing_account_head)
company_currency = frappe.db.get_value("Company", self.company, "default_currency")
company_currency = frappe.db.get_value("Company", self.company, "default_currency")
if account_currency != company_currency:
frappe.throw(_("Currency of the Closing Account must be {0}").format(company_currency))
def validate_posting_date(self):
from erpnext.accounts.utils import get_fiscal_year, validate_fiscal_year
validate_fiscal_year(self.posting_date, self.fiscal_year, label=_("Posting Date"), doc=self)
self.year_start_date = get_fiscal_year(self.posting_date, self.fiscal_year)[1]
pce = frappe.db.sql("""select name from `tabPeriod Closing Voucher`
@@ -50,7 +50,7 @@ class PeriodClosingVoucher(AccountsController):
gl_entries = []
net_pl_balance = 0
pl_accounts = self.get_pl_balances()
for acc in pl_accounts:
if flt(acc.balance_in_company_currency):
gl_entries.append(self.get_gl_dict({
@@ -67,7 +67,7 @@ class PeriodClosingVoucher(AccountsController):
}))
net_pl_balance += flt(acc.balance_in_company_currency)
if net_pl_balance:
gl_entries.append(self.get_gl_dict({
"account": self.closing_account_head,
@@ -76,20 +76,20 @@ class PeriodClosingVoucher(AccountsController):
"credit_in_account_currency": abs(net_pl_balance) if net_pl_balance < 0 else 0,
"credit": abs(net_pl_balance) if net_pl_balance < 0 else 0
}))
from erpnext.accounts.general_ledger import make_gl_entries
make_gl_entries(gl_entries)
def get_pl_balances(self):
"""Get balance for pl accounts"""
return frappe.db.sql("""
select
t1.account, t2.account_currency, sum(ifnull(t1.debit_in_account_currency,0))-sum(ifnull(t1.credit_in_account_currency,0))
as balance_in_account_currency,
sum(ifnull(t1.debit,0))-sum(ifnull(t1.credit,0)) as balance_in_company_currency
select
t1.account, t2.account_currency,
sum(t1.debit_in_account_currency) - sum(t1.credit_in_account_currency) as balance_in_account_currency,
sum(t1.debit) - sum(t1.credit) as balance_in_company_currency
from `tabGL Entry` t1, `tabAccount` t2
where t1.account = t2.name and ifnull(t2.report_type, '') = 'Profit and Loss'
where t1.account = t2.name and t2.report_type = 'Profit and Loss'
and t2.docstatus < 2 and t2.company = %s
and t1.posting_date between %s and %s
group by t1.account
""", (self.company, self.get("year_start_date"), self.posting_date), as_dict=1)
""", (self.company, self.get("year_start_date"), self.posting_date), as_dict=1)

View File

@@ -12,60 +12,60 @@ from erpnext.accounts.doctype.journal_entry.test_journal_entry import make_journ
class TestPeriodClosingVoucher(unittest.TestCase):
def test_closing_entry(self):
year_start_date = get_fiscal_year(today())[1]
make_journal_entry("_Test Bank - _TC", "Sales - _TC", 400,
make_journal_entry("_Test Bank - _TC", "Sales - _TC", 400,
"_Test Cost Center - _TC", submit=True)
make_journal_entry("_Test Account Cost for Goods Sold - _TC",
make_journal_entry("_Test Account Cost for Goods Sold - _TC",
"_Test Bank - _TC", 600, "_Test Cost Center - _TC", submit=True)
random_expense_account = frappe.db.sql("""
select t1.account,
sum(ifnull(t1.debit,0))-sum(ifnull(t1.credit,0)) as balance,
sum(ifnull(t1.debit_in_account_currency,0))-sum(ifnull(t1.credit_in_account_currency,0)) \
select t1.account,
sum(t1.debit) - sum(t1.credit) as balance,
sum(t1.debit_in_account_currency) - sum(t1.credit_in_account_currency) \
as balance_in_account_currency
from `tabGL Entry` t1, `tabAccount` t2
where t1.account = t2.name and ifnull(t2.root_type, '') = 'Expense'
where t1.account = t2.name and t2.root_type = 'Expense'
and t2.docstatus < 2 and t2.company = '_Test Company'
and t1.posting_date between %s and %s
group by t1.account
having sum(ifnull(t1.debit,0)) > sum(ifnull(t1.credit,0))
having sum(t1.debit) > sum(t1.credit)
limit 1""", (year_start_date, today()), as_dict=True)
profit_or_loss = frappe.db.sql("""select sum(ifnull(t1.debit,0))-sum(ifnull(t1.credit,0)) as balance
profit_or_loss = frappe.db.sql("""select sum(t1.debit) - sum(t1.credit) as balance
from `tabGL Entry` t1, `tabAccount` t2
where t1.account = t2.name and ifnull(t2.report_type, '') = 'Profit and Loss'
where t1.account = t2.name and t2.report_type = 'Profit and Loss'
and t2.docstatus < 2 and t2.company = '_Test Company'
and t1.posting_date between %s and %s""", (year_start_date, today()))
profit_or_loss = flt(profit_or_loss[0][0]) if profit_or_loss else 0
pcv = self.make_period_closing_voucher()
# Check value for closing account
gle_amount_for_closing_account = frappe.db.sql("""select ifnull(debit, 0) - ifnull(credit, 0)
gle_amount_for_closing_account = frappe.db.sql("""select debit - credit
from `tabGL Entry` where voucher_type='Period Closing Voucher' and voucher_no=%s
and account = '_Test Account Reserves and Surplus - _TC'""", pcv.name)
gle_amount_for_closing_account = flt(gle_amount_for_closing_account[0][0]) \
if gle_amount_for_closing_account else 0
self.assertEqual(gle_amount_for_closing_account, profit_or_loss)
if random_expense_account:
# Check posted value for teh above random_expense_account
gle_for_random_expense_account = frappe.db.sql("""
select ifnull(debit, 0) - ifnull(credit, 0) as amount,
ifnull(debit_in_account_currency, 0) - ifnull(credit_in_account_currency, 0)
select debit - credit as amount,
debit_in_account_currency - credit_in_account_currency
as amount_in_account_currency
from `tabGL Entry`
where voucher_type='Period Closing Voucher' and voucher_no=%s and account =%s""",
from `tabGL Entry`
where voucher_type='Period Closing Voucher' and voucher_no=%s and account =%s""",
(pcv.name, random_expense_account[0].account), as_dict=True)
self.assertEqual(gle_for_random_expense_account[0].amount, -1*random_expense_account[0].balance)
self.assertEqual(gle_for_random_expense_account[0].amount_in_account_currency,
self.assertEqual(gle_for_random_expense_account[0].amount_in_account_currency,
-1*random_expense_account[0].balance_in_account_currency)
def make_period_closing_voucher(self):
pcv = frappe.get_doc({
"doctype": "Period Closing Voucher",
@@ -77,7 +77,7 @@ class TestPeriodClosingVoucher(unittest.TestCase):
})
pcv.insert()
pcv.submit()
return pcv

View File

@@ -19,6 +19,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Applicable for User",
"length": 0,
"no_copy": 0,
"oldfieldname": "user",
"oldfieldtype": "Link",
@@ -43,6 +44,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Series",
"length": 0,
"no_copy": 1,
"oldfieldname": "naming_series",
"oldfieldtype": "Select",
@@ -67,6 +69,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Warehouse",
"length": 0,
"no_copy": 0,
"oldfieldname": "warehouse",
"oldfieldtype": "Link",
@@ -93,6 +96,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Update Stock",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
@@ -113,6 +117,7 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
@@ -135,6 +140,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Customer",
"length": 0,
"no_copy": 0,
"oldfieldname": "customer_account",
"oldfieldtype": "Link",
@@ -159,6 +165,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Company",
"length": 0,
"no_copy": 0,
"oldfieldname": "company",
"oldfieldtype": "Link",
@@ -183,6 +190,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Currency",
"length": 0,
"no_copy": 0,
"oldfieldname": "currency",
"oldfieldtype": "Select",
@@ -207,6 +215,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Mode of Payment",
"length": 0,
"no_copy": 0,
"options": "Mode of Payment",
"permlevel": 0,
@@ -229,6 +238,7 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
@@ -251,6 +261,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Print Format",
"length": 0,
"no_copy": 0,
"options": "Print Format",
"permlevel": 0,
@@ -274,6 +285,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Letter Head",
"length": 0,
"no_copy": 0,
"oldfieldname": "letter_head",
"oldfieldtype": "Select",
@@ -298,6 +310,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Print Heading",
"length": 0,
"no_copy": 0,
"oldfieldname": "select_print_heading",
"oldfieldtype": "Select",
@@ -322,6 +335,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Terms and Conditions",
"length": 0,
"no_copy": 0,
"oldfieldname": "tc_name",
"oldfieldtype": "Link",
@@ -345,6 +359,7 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"oldfieldtype": "Column Break",
"permlevel": 0,
@@ -368,6 +383,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Territory",
"length": 0,
"no_copy": 0,
"oldfieldname": "territory",
"oldfieldtype": "Link",
@@ -392,6 +408,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Price List",
"length": 0,
"no_copy": 0,
"oldfieldname": "price_list_name",
"oldfieldtype": "Select",
@@ -415,6 +432,7 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
@@ -437,6 +455,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Write Off Account",
"length": 0,
"no_copy": 0,
"options": "Account",
"permlevel": 0,
@@ -460,6 +479,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Write Off Cost Center",
"length": 0,
"no_copy": 0,
"options": "Cost Center",
"permlevel": 0,
@@ -483,6 +503,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Taxes and Charges",
"length": 0,
"no_copy": 0,
"oldfieldname": "charge",
"oldfieldtype": "Link",
@@ -506,6 +527,7 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
@@ -528,6 +550,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Cash/Bank Account",
"length": 0,
"no_copy": 0,
"oldfieldname": "cash_bank_account",
"oldfieldtype": "Link",
@@ -552,6 +575,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Income Account",
"length": 0,
"no_copy": 0,
"oldfieldname": "income_account",
"oldfieldtype": "Link",
@@ -577,6 +601,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Expense Account",
"length": 0,
"no_copy": 0,
"options": "Account",
"permlevel": 0,
@@ -599,6 +624,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Cost Center",
"length": 0,
"no_copy": 0,
"oldfieldname": "cost_center",
"oldfieldtype": "Link",
@@ -622,7 +648,8 @@
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"modified": "2015-10-02 07:39:00.196535",
"max_attachments": 0,
"modified": "2015-11-16 06:29:51.741253",
"modified_by": "Administrator",
"module": "Accounts",
"name": "POS Profile",

View File

@@ -1,8 +1,8 @@
{
"allow_copy": 0,
"allow_import": 1,
"allow_rename": 0,
"autoname": "PRULE.#####",
"allow_rename": 1,
"autoname": "field:title",
"creation": "2014-02-21 15:02:51",
"custom": 0,
"docstatus": 0,
@@ -20,9 +20,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -41,10 +43,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Title",
"length": 0,
"no_copy": 1,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -63,11 +67,13 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Apply On",
"label": "Apply On",
"length": 0,
"no_copy": 0,
"options": "\nItem Code\nItem Group\nBrand",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -87,10 +93,12 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Item Code",
"length": 0,
"no_copy": 0,
"options": "Item",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -110,10 +118,12 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Brand",
"length": 0,
"no_copy": 0,
"options": "Brand",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -133,10 +143,12 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Item Group",
"length": 0,
"no_copy": 0,
"options": "Item Group",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -154,10 +166,12 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -176,11 +190,13 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Priority",
"label": "Priority",
"length": 0,
"no_copy": 0,
"options": "\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -199,9 +215,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Disable",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -219,10 +237,12 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -241,9 +261,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Selling",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -262,9 +284,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Buying",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -282,10 +306,12 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -304,11 +330,13 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Applicable For",
"label": "Applicable For",
"length": 0,
"no_copy": 0,
"options": "\nCustomer\nCustomer Group\nTerritory\nSales Partner\nCampaign\nSupplier\nSupplier Type",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -328,10 +356,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Customer",
"length": 0,
"no_copy": 0,
"options": "Customer",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -351,10 +381,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Customer Group",
"length": 0,
"no_copy": 0,
"options": "Customer Group",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -374,10 +406,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Territory",
"length": 0,
"no_copy": 0,
"options": "Territory",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -397,10 +431,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Sales Partner",
"length": 0,
"no_copy": 0,
"options": "Sales Partner",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -420,10 +456,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Campaign",
"length": 0,
"no_copy": 0,
"options": "Campaign",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -443,10 +481,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Supplier",
"length": 0,
"no_copy": 0,
"options": "Supplier",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -466,10 +506,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Supplier Type",
"length": 0,
"no_copy": 0,
"options": "Supplier Type",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -487,10 +529,12 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -509,9 +553,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Min Qty",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -529,10 +575,12 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -551,9 +599,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Max Qty",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -571,10 +621,12 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -594,9 +646,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Valid From",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -615,9 +669,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Valid Upto",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -635,9 +691,11 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -656,10 +714,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Company",
"length": 0,
"no_copy": 0,
"options": "Company",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -678,9 +738,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -699,11 +761,13 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Price or Discount",
"label": "Price or Discount",
"length": 0,
"no_copy": 0,
"options": "\nPrice\nDiscount Percentage",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -721,9 +785,11 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -743,9 +809,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Price",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -765,9 +833,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Discount on Price List Rate (%)",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -787,10 +857,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "For Price List",
"length": 0,
"no_copy": 0,
"options": "Price List",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -809,10 +881,12 @@
"in_filter": 0,
"in_list_view": 0,
"label": "",
"length": 0,
"no_copy": 0,
"options": "Simple",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -831,9 +905,11 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Pricing Rule Help",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -851,7 +927,8 @@
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"modified": "2015-10-02 07:39:00.632196",
"max_attachments": 0,
"modified": "2016-01-15 04:05:11.633824",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Pricing Rule",
@@ -962,5 +1039,5 @@
"read_only_onload": 0,
"sort_field": "modified",
"sort_order": "DESC",
"title_field": "title"
"title_field": ""
}

View File

@@ -59,7 +59,7 @@ class PricingRule(Document):
self.set(f, None)
def validate_price_or_discount(self):
for field in ["Price", "Discount Percentage"]:
for field in ["Price"]:
if flt(self.get(frappe.scrub(field))) < 0:
throw(_("{0} can not be negative").format(field))
@@ -76,7 +76,7 @@ class PricingRule(Document):
def apply_pricing_rule(args):
"""
args = {
"item_list": [{"doctype": "", "name": "", "item_code": "", "brand": "", "item_group": ""}, ...],
"items": [{"doctype": "", "name": "", "item_code": "", "brand": "", "item_group": ""}, ...],
"customer": "something",
"customer_group": "something",
"territory": "something",
@@ -98,17 +98,16 @@ def apply_pricing_rule(args):
args = frappe._dict(args)
if not args.transaction_type:
set_transaction_type(args)
# list of dictionaries
out = []
if args.get("parenttype") == "Material Request": return out
if args.get("doctype") == "Material Request": return out
if not args.transaction_type:
args.transaction_type = "buying" if frappe.get_meta(args.parenttype).get_field("supplier") \
else "selling"
item_list = args.get("item_list")
args.pop("item_list")
item_list = args.get("items")
args.pop("items")
for item in item_list:
args_copy = copy.deepcopy(args)
@@ -138,13 +137,17 @@ def get_pricing_rule_for_item(args):
if not args.item_group:
frappe.throw(_("Item Group not mentioned in item master for item {0}").format(args.item_code))
if args.customer and not (args.customer_group and args.territory):
customer = frappe.db.get_value("Customer", args.customer, ["customer_group", "territory"])
if customer:
args.customer_group, args.territory = customer
if args.transaction_type=="selling":
if args.customer and not (args.customer_group and args.territory):
customer = frappe.db.get_value("Customer", args.customer, ["customer_group", "territory"])
if customer:
args.customer_group, args.territory = customer
args.supplier = args.supplier_type = None
elif args.supplier and not args.supplier_type:
args.supplier_type = frappe.db.get_value("Supplier", args.supplier, "supplier_type")
args.customer = args.customer_group = args.territory = None
pricing_rules = get_pricing_rules(args)
pricing_rule = filter_pricing_rules(args, pricing_rules)
@@ -168,21 +171,28 @@ def get_pricing_rules(args):
field = frappe.scrub(parenttype)
condition = ""
if args.get(field):
lft, rgt = frappe.db.get_value(parenttype, args[field], ["lft", "rgt"])
try:
lft, rgt = frappe.db.get_value(parenttype, args[field], ["lft", "rgt"])
except TypeError:
frappe.throw(_("Invalid {0}").format(args[field]))
parent_groups = frappe.db.sql_list("""select name from `tab%s`
where lft<=%s and rgt>=%s""" % (parenttype, '%s', '%s'), (lft, rgt))
if parent_groups:
if allow_blank: parent_groups.append('')
condition = " ifnull("+field+", '') in ('" + \
"', '".join([d.replace("'", "\\'").replace('"', '\\"').replace("%", "%%") for d in parent_groups])+"')"
"', '".join([frappe.db.escape(d) for d in parent_groups])+"')"
return condition
conditions = ""
conditions = item_variant_condition = ""
values = {"item_code": args.get("item_code"), "brand": args.get("brand")}
for field in ["company", "customer", "supplier", "supplier_type", "campaign", "sales_partner"]:
if args.get(field):
conditions += " and ifnull("+field+", '') in (%("+field+")s, '')"
values[field] = args.get(field)
else:
conditions += " and ifnull("+field+", '') = ''"
@@ -190,23 +200,37 @@ def get_pricing_rules(args):
group_condition = _get_tree_conditions(parenttype)
if group_condition:
conditions += " and " + group_condition
if not args.price_list: args.price_list = None
conditions += " and ifnull(for_price_list, '') in (%(price_list)s, '')"
values["price_list"] = args.get("price_list")
if args.get("transaction_date"):
conditions += """ and %(transaction_date)s between ifnull(valid_from, '2000-01-01')
and ifnull(valid_upto, '2500-12-31')"""
values['transaction_date'] = args.get('transaction_date')
item_group_condition = _get_tree_conditions("Item Group", False)
if item_group_condition: item_group_condition = " or " + item_group_condition
if item_group_condition:
item_group_condition = " or " + item_group_condition
# load variant of if not defined
if "variant_of" not in args:
args.variant_of = frappe.db.get_value("Item", args.item_code, "variant_of")
if args.variant_of:
item_variant_condition = ' or item_code=%(variant_of)s '
values['variant_of'] = args.variant_of
return frappe.db.sql("""select * from `tabPricing Rule`
where (item_code=%(item_code)s {item_group_condition} or brand=%(brand)s)
and docstatus < 2 and ifnull(disable, 0) = 0
and ifnull({transaction_type}, 0) = 1 {conditions}
where (item_code=%(item_code)s {item_variant_condition} {item_group_condition} or brand=%(brand)s)
and docstatus < 2 and disable = 0
and {transaction_type} = 1 {conditions}
order by priority desc, name desc""".format(
item_group_condition=item_group_condition,
transaction_type=args.transaction_type, conditions=conditions), args, as_dict=1)
item_group_condition = item_group_condition,
item_variant_condition = item_variant_condition,
transaction_type = args.transaction_type,
conditions = conditions), values, as_dict=1)
def filter_pricing_rules(args, pricing_rules):
# filter for qty
@@ -214,6 +238,11 @@ def filter_pricing_rules(args, pricing_rules):
pricing_rules = filter(lambda x: (flt(args.get("qty"))>=flt(x.min_qty)
and (flt(args.get("qty"))<=x.max_qty if x.max_qty else True)), pricing_rules)
# add variant_of property in pricing rule
for p in pricing_rules:
if p.item_code and args.variant_of:
p.variant_of = args.variant_of
# find pricing rule with highest priority
if pricing_rules:
max_priority = max([cint(p.priority) for p in pricing_rules])
@@ -225,7 +254,7 @@ def filter_pricing_rules(args, pricing_rules):
"supplier", "supplier_type", "campaign", "sales_partner"]
if len(pricing_rules) > 1:
for field_set in [["item_code", "item_group", "brand"],
for field_set in [["item_code", "variant_of", "item_group", "brand"],
["customer", "customer_group", "territory"], ["supplier", "supplier_type"]]:
remaining_fields = list(set(all_fields) - set(field_set))
if if_all_rules_same(pricing_rules, remaining_fields):
@@ -239,8 +268,7 @@ def filter_pricing_rules(args, pricing_rules):
or pricing_rules
if len(pricing_rules) > 1:
frappe.throw(_("Multiple Price Rule exists with same criteria, please resolve \
conflict by assigning priority. Price Rules: {0}")
frappe.throw(_("Multiple Price Rules exists with same criteria, please resolve conflict by assigning priority. Price Rules: {0}")
.format("\n".join([d.name for d in pricing_rules])), MultiplePricingRuleConflict)
elif pricing_rules:
return pricing_rules[0]
@@ -263,3 +291,14 @@ def apply_internal_priority(pricing_rules, field_set, args):
if filtered_rules: break
return filtered_rules or pricing_rules
def set_transaction_type(args):
if args.doctype in ("Opportunity", "Quotation", "Sales Order", "Delivery Note", "Sales Invoice"):
args.transaction_type = "selling"
elif args.doctype in ("Material Request", "Supplier Quotation", "Purchase Order",
"Purchase Receipt", "Purchase Invoice"):
args.transaction_type = "buying"
elif args.customer:
args.transaction_type = "selling"
else:
args.transaction_type = "buying"

View File

@@ -31,14 +31,12 @@ class TestPricingRule(unittest.TestCase):
"company": "_Test Company",
"price_list": "_Test Price List",
"currency": "_Test Currency",
"parenttype": "Sales Order",
"doctype": "Sales Order",
"conversion_rate": 1,
"price_list_currency": "_Test Currency",
"plc_conversion_rate": 1,
"order_type": "Sales",
"transaction_type": "selling",
"customer": "_Test Customer",
"doctype": "Sales Order Item",
"name": None
})
details = get_item_details(args)
@@ -46,7 +44,9 @@ class TestPricingRule(unittest.TestCase):
prule = frappe.get_doc(test_record.copy())
prule.applicable_for = "Customer"
prule.title = "_Test Pricing Rule for Customer"
self.assertRaises(MandatoryError, prule.insert)
prule.customer = "_Test Customer"
prule.discount_percentage = 20
prule.insert()
@@ -56,16 +56,18 @@ class TestPricingRule(unittest.TestCase):
prule = frappe.get_doc(test_record.copy())
prule.apply_on = "Item Group"
prule.item_group = "All Item Groups"
prule.title = "_Test Pricing Rule for Item Group"
prule.discount_percentage = 15
prule.insert()
args.customer = None
args.customer = "_Test Customer 1"
details = get_item_details(args)
self.assertEquals(details.get("discount_percentage"), 10)
prule = frappe.get_doc(test_record.copy())
prule.applicable_for = "Campaign"
prule.campaign = "_Test Campaign"
prule.title = "_Test Pricing Rule for Campaign"
prule.discount_percentage = 5
prule.priority = 8
prule.insert()
@@ -83,3 +85,73 @@ class TestPricingRule(unittest.TestCase):
self.assertEquals(details.get("discount_percentage"), 15)
frappe.db.sql("delete from `tabPricing Rule`")
def test_pricing_rule_for_variants(self):
from erpnext.stock.get_item_details import get_item_details
from frappe import MandatoryError
frappe.db.sql("delete from `tabPricing Rule`")
if not frappe.db.exists("Item", "Test Variant PRT"):
frappe.get_doc({
"doctype": "Item",
"item_code": "Test Variant PRT",
"item_name": "Test Variant PRT",
"description": "Test Variant PRT",
"item_group": "_Test Item Group",
"is_stock_item": 1,
"variant_of": "_Test Variant Item",
"default_warehouse": "_Test Warehouse - _TC",
"stock_uom": "_Test UOM",
"attributes": [
{
"attribute": "Test Size",
"attribute_value": "Medium"
}
],
}).insert()
frappe.get_doc({
"doctype": "Pricing Rule",
"title": "_Test Pricing Rule 1",
"apply_on": "Item Code",
"item_code": "_Test Variant Item",
"selling": 1,
"price_or_discount": "Discount Percentage",
"price": 0,
"discount_percentage": 7.5,
"company": "_Test Company"
}).insert()
args = frappe._dict({
"item_code": "Test Variant PRT",
"company": "_Test Company",
"price_list": "_Test Price List",
"currency": "_Test Currency",
"doctype": "Sales Order",
"conversion_rate": 1,
"price_list_currency": "_Test Currency",
"plc_conversion_rate": 1,
"order_type": "Sales",
"customer": "_Test Customer",
"name": None
})
details = get_item_details(args)
self.assertEquals(details.get("discount_percentage"), 7.5)
# add a new pricing rule for that item code, it should take priority
frappe.get_doc({
"doctype": "Pricing Rule",
"title": "_Test Pricing Rule 2",
"apply_on": "Item Code",
"item_code": "Test Variant PRT",
"selling": 1,
"price_or_discount": "Discount Percentage",
"price": 0,
"discount_percentage": 17.5,
"company": "_Test Company"
}).insert()
details = get_item_details(args)
self.assertEquals(details.get("discount_percentage"), 17.5)

View File

@@ -25,27 +25,30 @@ erpnext.accounts.PurchaseInvoice = erpnext.buying.BuyingController.extend({
if(!doc.is_return) {
if(doc.docstatus==1) {
if(doc.outstanding_amount > 0) {
this.frm.add_custom_button(__('Payment'), this.make_bank_entry).addClass("btn-primary");
this.frm.add_custom_button(__('Payment'), this.make_bank_entry, __("Make"));
cur_frm.page.set_inner_btn_group_as_primary(__("Make"));
}
if(doc.outstanding_amount >= 0 || Math.abs(flt(doc.outstanding_amount)) < flt(doc.grand_total)) {
cur_frm.add_custom_button(__('Debit Note'), this.make_debit_note, __("Make"));
}
cur_frm.add_custom_button(__('Debit Note'), this.make_debit_note);
}
if(doc.docstatus===0) {
cur_frm.add_custom_button(__('From Purchase Order'), function() {
cur_frm.add_custom_button(__('Purchase Order'), function() {
frappe.model.map_current_doc({
method: "erpnext.buying.doctype.purchase_order.purchase_order.make_purchase_invoice",
source_doctype: "Purchase Order",
get_query_filters: {
supplier: cur_frm.doc.supplier || undefined,
docstatus: 1,
status: ["not in", ["Stopped", "Closed"]],
status: ["!=", "Closed"],
per_billed: ["<", 99.99],
company: cur_frm.doc.company
}
})
});
}, __("Get items from"));
cur_frm.add_custom_button(__('From Purchase Receipt'), function() {
cur_frm.add_custom_button(__('Purchase Receipt'), function() {
frappe.model.map_current_doc({
method: "erpnext.stock.doctype.purchase_receipt.purchase_receipt.make_purchase_invoice",
source_doctype: "Purchase Receipt",
@@ -56,7 +59,7 @@ erpnext.accounts.PurchaseInvoice = erpnext.buying.BuyingController.extend({
company: cur_frm.doc.company
}
})
});
}, __("Get items from"));
}
}
},
@@ -76,7 +79,7 @@ erpnext.accounts.PurchaseInvoice = erpnext.buying.BuyingController.extend({
me.apply_pricing_rule();
})
},
credit_to: function() {
var me = this;
if(this.frm.doc.credit_to) {

View File

@@ -11,6 +11,7 @@ import frappe.defaults
from erpnext.controllers.buying_controller import BuyingController
from erpnext.accounts.party import get_party_account, get_due_date
from erpnext.accounts.utils import get_account_currency
from erpnext.stock.doctype.purchase_receipt.purchase_receipt import update_billed_amount_based_on_po
form_grid_templates = {
"items": "templates/form_grid/item_grid.html"
@@ -48,7 +49,7 @@ class PurchaseInvoice(BuyingController):
self.check_conversion_rate()
self.validate_credit_to_acc()
self.clear_unallocated_advances("Purchase Invoice Advance", "advances")
self.check_for_stopped_or_closed_status()
self.check_for_closed_status()
self.validate_with_previous_doc()
self.validate_uom_is_integer("uom", "qty")
self.set_against_expense_account()
@@ -103,14 +104,14 @@ class PurchaseInvoice(BuyingController):
self.party_account_currency = account.account_currency
def check_for_stopped_or_closed_status(self):
def check_for_closed_status(self):
check_list = []
pc_obj = frappe.get_doc('Purchase Common')
for d in self.get('items'):
if d.purchase_order and not d.purchase_order in check_list and not d.purchase_receipt:
check_list.append(d.purchase_order)
pc_obj.check_for_stopped_or_closed_status('Purchase Order', d.purchase_order)
pc_obj.check_for_closed_status('Purchase Order', d.purchase_order)
def validate_with_previous_doc(self):
super(PurchaseInvoice, self).validate_with_previous_doc({
@@ -150,10 +151,14 @@ class PurchaseInvoice(BuyingController):
against_accounts = []
stock_items = self.get_stock_items()
for item in self.get("items"):
# in case of auto inventory accounting,
# against expense account is always "Stock Received But Not Billed"
# for a stock item and if not epening entry and not drop-ship entry
if auto_accounting_for_stock and item.item_code in stock_items \
and self.is_opening == 'No':
# in case of auto inventory accounting, against expense account is always
# Stock Received But Not Billed for a stock item
and self.is_opening == 'No' and (not item.po_detail or
not frappe.db.get_value("Purchase Order Item", item.po_detail, "delivered_by_supplier")):
item.expense_account = stock_not_billed_account
item.cost_center = None
@@ -176,9 +181,10 @@ class PurchaseInvoice(BuyingController):
throw(_("Purchse Order number required for Item {0}").format(d.item_code))
def pr_required(self):
stock_items = self.get_stock_items()
if frappe.db.get_value("Buying Settings", None, "pr_required") == 'Yes':
for d in self.get('items'):
if not d.purchase_receipt:
if not d.purchase_receipt and d.item_code in stock_items:
throw(_("Purchase Receipt number required for Item {0}").format(d.item_code))
def validate_write_off_account(self):
@@ -241,6 +247,7 @@ class PurchaseInvoice(BuyingController):
self.update_against_document_in_jv()
self.update_prevdoc_status()
self.update_billing_status_for_zero_amount_refdoc("Purchase Order")
self.update_billing_status_in_pr()
self.update_project()
@@ -254,15 +261,19 @@ class PurchaseInvoice(BuyingController):
gl_entries = []
# parent's gl entry
if self.base_grand_total:
if self.grand_total:
# Didnot use base_grand_total to book rounding loss gle
grand_total_in_company_currency = flt(self.grand_total * self.conversion_rate,
self.precision("grand_total"))
gl_entries.append(
self.get_gl_dict({
"account": self.credit_to,
"party_type": "Supplier",
"party": self.supplier,
"against": self.against_expense_account,
"credit": self.base_grand_total,
"credit_in_account_currency": self.base_grand_total \
"credit": grand_total_in_company_currency,
"credit_in_account_currency": grand_total_in_company_currency \
if self.party_account_currency==self.company_currency else self.grand_total,
"against_voucher": self.return_against if cint(self.is_return) else self.name,
"against_voucher_type": self.doctype,
@@ -394,14 +405,16 @@ class PurchaseInvoice(BuyingController):
make_gl_entries(gl_entries, cancel=(self.docstatus == 2))
def on_cancel(self):
self.check_for_stopped_or_closed_status()
self.check_for_closed_status()
if not self.is_return:
from erpnext.accounts.utils import remove_against_link_from_jv
remove_against_link_from_jv(self.doctype, self.name)
self.update_prevdoc_status()
self.update_billing_status_for_zero_amount_refdoc("Purchase Order")
self.update_billing_status_in_pr()
self.make_gl_entries_on_cancel()
self.update_project()
@@ -426,6 +439,24 @@ class PurchaseInvoice(BuyingController):
if pi:
frappe.throw("Supplier Invoice No exists in Purchase Invoice {0}".format(pi))
def update_billing_status_in_pr(self, update_modified=True):
updated_pr = []
for d in self.get("items"):
if d.pr_detail:
billed_amt = frappe.db.sql("""select sum(amount) from `tabPurchase Invoice Item`
where pr_detail=%s and docstatus=1""", d.pr_detail)
billed_amt = billed_amt and billed_amt[0][0] or 0
frappe.db.set_value("Purchase Receipt Item", d.pr_detail, "billed_amt", billed_amt, update_modified=update_modified)
updated_pr.append(d.purchase_receipt)
elif d.po_detail:
updated_pr += update_billed_amount_based_on_po(d.po_detail, update_modified)
for pr in set(updated_pr):
frappe.get_doc("Purchase Receipt", pr).update_billing_percentage(update_modified=update_modified)
def on_recurring(self, reference_doc):
self.due_date = None
@frappe.whitelist()
def get_expense_account(doctype, txt, searchfield, start, page_len, filters):
from erpnext.controllers.queries import get_match_cond
@@ -438,10 +469,10 @@ def get_expense_account(doctype, txt, searchfield, start, page_len, filters):
or tabAccount.account_type in ("Expense Account", "Fixed Asset", "Temporary"))
and tabAccount.is_group=0
and tabAccount.docstatus!=2
and tabAccount.company = '%(company)s'
and tabAccount.%(key)s LIKE '%(txt)s'
%(mcond)s""" % {'company': filters['company'], 'key': searchfield,
'txt': "%%%s%%" % frappe.db.escape(txt), 'mcond':get_match_cond(doctype)})
and tabAccount.company = %(company)s
and tabAccount.{key} LIKE %(txt)s
{mcond}""".format( key=frappe.db.escape(searchfield), mcond=get_match_cond(doctype) ),
{ 'company': filters['company'], 'txt': "%%%s%%" % frappe.db.escape(txt) })
@frappe.whitelist()
def make_debit_note(source_name, target_doc=None):

View File

@@ -221,7 +221,7 @@ class TestPurchaseInvoice(unittest.TestCase):
test_recurring_document(self, test_records)
def test_total_purchase_cost_for_project(self):
existing_purchase_cost = frappe.db.sql("""select sum(ifnull(base_net_amount, 0))
existing_purchase_cost = frappe.db.sql("""select sum(base_net_amount)
from `tabPurchase Invoice Item` where project_name = '_Test Project' and docstatus=1""")
existing_purchase_cost = existing_purchase_cost and existing_purchase_cost[0][0] or 0

View File

@@ -18,6 +18,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Journal Entry",
"length": 0,
"no_copy": 1,
"oldfieldname": "journal_voucher",
"oldfieldtype": "Link",
@@ -44,6 +45,7 @@
"in_filter": 0,
"in_list_view": 0,
"label": "Journal Entry Detail No",
"length": 0,
"no_copy": 1,
"oldfieldname": "jv_detail_no",
"oldfieldtype": "Date",
@@ -69,6 +71,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Remarks",
"length": 0,
"no_copy": 1,
"oldfieldname": "remarks",
"oldfieldtype": "Small Text",
@@ -93,6 +96,7 @@
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
@@ -114,6 +118,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Advance Amount",
"length": 0,
"no_copy": 1,
"oldfieldname": "advance_amount",
"oldfieldtype": "Currency",
@@ -140,6 +145,7 @@
"in_filter": 0,
"in_list_view": 1,
"label": "Allocated Amount",
"length": 0,
"no_copy": 1,
"oldfieldname": "allocated_amount",
"oldfieldtype": "Currency",
@@ -164,7 +170,8 @@
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"modified": "2015-10-02 07:39:03.538046",
"max_attachments": 0,
"modified": "2015-11-16 06:29:53.288895",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Purchase Invoice Advance",

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