Compare commits

...

935 Commits

Author SHA1 Message Date
Nabin Hait
a948407460 Merge branch 'develop' 2016-07-28 15:46:36 +05:30
Nabin Hait
ee70f26131 bumped to version 7.0.8 2016-07-28 16:16:35 +06:00
Rushabh Mehta
142b6187b3 Merge pull request #5902 from akshay83/develop
[fix] serial no button
2016-07-28 15:05:04 +05:30
akshay
14384c2787 [fix] serial no button 2016-07-28 13:53:17 +05:30
Nabin Hait
7357902802 Merge pull request #5896 from nabinhait/fix_112
[fix] repost gle only if there is any stock account without warehouse
2016-07-27 17:34:23 +05:30
Nabin Hait
fa97b3cac7 [fix] repost gle only if there is any stock account without warehouse 2016-07-27 17:33:32 +05:30
Nabin Hait
95f53cca44 Merge pull request #5885 from nabinhait/payment_entry_fix12
[fix] Set amounts only if party and bank account exists
2016-07-27 16:45:20 +05:30
Nabin Hait
949ceb18fc Merge pull request #5894 from nabinhait/sle_fix_101
minor fix for stock ledger entry
2016-07-27 16:44:54 +05:30
Nabin Hait
7590b8fff1 minor fix for stock ledger entry 2016-07-27 16:44:26 +05:30
Rushabh Mehta
5a8b7ca7be Merge pull request #5888 from neilLasrado/develop
[Patch] Change status in Opportunity to Quotation where status is converted
2016-07-27 16:03:21 +05:30
Neil Trini Lasrado
98151ce5b2 [Patch] Change status in Opportunity to Quotation where status is converted 2016-07-27 15:58:16 +05:30
Rushabh Mehta
380dbb044f Merge pull request #5886 from neilLasrado/develop
[Fix] Fixed issues in Fee records
2016-07-27 15:32:26 +05:30
Neil Trini Lasrado
ee75d41da0 [Fix] Fixed issues in Fee records 2016-07-27 15:23:19 +05:30
Rushabh Mehta
e26a42dc7a Merge branch 'develop' 2016-07-27 15:19:58 +05:30
Rushabh Mehta
b2c9848886 bumped to version 7.0.7 2016-07-27 15:49:58 +06:00
Nabin Hait
b4bf757a15 Update fix_nonwarehouse_ledger_gl_entries_for_transactions.py 2016-07-27 15:19:12 +05:30
Rushabh Mehta
fc49c2c5f9 Merge branch 'develop' 2016-07-27 15:09:03 +05:30
Rushabh Mehta
384f0b18c0 bumped to version 7.0.6 2016-07-27 15:39:03 +06:00
Nabin Hait
2a2346422d [fix] Set amounts only if party and bank account exists 2016-07-27 13:08:00 +05:30
Rushabh Mehta
548ea777a9 Merge pull request #5883 from saurabh6790/maintenance_schedule_fix
[fix] report filter fix
2016-07-27 12:43:41 +05:30
Nabin Hait
67047fbb06 Merge branch 'rohitwaghchaure-warehouse_blank_issue_for_non_stock_account' into develop 2016-07-27 12:43:25 +05:30
Nabin Hait
10007ab4df [fix] reposting of gle where stock account not linked with warehouse 2016-07-27 12:43:02 +05:30
Nabin Hait
444bedcd20 Merge branch 'warehouse_blank_issue_for_non_stock_account' of https://github.com/rohitwaghchaure/erpnext_develop into rohitwaghchaure-warehouse_blank_issue_for_non_stock_account 2016-07-27 12:33:10 +05:30
Rushabh Mehta
2af5dfa9cc Merge pull request #5884 from saurabh6790/schools_fix
[minor][fix] rename attribute from amount to components
2016-07-27 12:23:22 +05:30
Saurabh
4bc0f7d105 [minor][fix] rename attribute from amount to components 2016-07-27 12:10:21 +05:30
Saurabh
3642f987c7 [fix] report filter fix 2016-07-27 11:42:50 +05:30
Rushabh Mehta
fd288f36ec Merge pull request #5880 from bcornwellmott/fixSalarySlip_TimeSheet_SQL
Added date filters for the Timesheet query in Salary Slip
2016-07-27 08:22:29 +05:30
Rushabh Mehta
593d2e3146 Merge pull request #5877 from rohitwaghchaure/v7_fixes
[minor] Fixes
2016-07-26 21:21:45 +05:30
Rohit Waghchaure
c4afd63e50 [minor] Fixes 2016-07-26 20:47:42 +05:30
Rushabh Mehta
6fe4a336f1 Merge branch 'develop' 2016-07-26 18:02:38 +05:30
Rushabh Mehta
154be9b693 bumped to version 7.0.5 2016-07-26 18:32:38 +06:00
Rushabh Mehta
d46235ed83 Merge pull request #5874 from saurabh6790/maintenance_schedule_fix
[minor][fix] end date should not be less or equal to start date
2016-07-26 17:44:42 +05:30
Saurabh
17a9940f00 [minor][fix] end date should not be less or equal to start date 2016-07-26 17:18:45 +05:30
Rohit Waghchaure
4d3e8da4a2 [Fix] Set warehouse to stock account and fixed gl entries against transactions. 2016-07-26 17:09:33 +05:30
Ben Cornwell-Mott
d4d1f1b036 Added date filters for the Timesheet query in Salary Slip 2016-07-26 03:33:38 -07:00
Rushabh Mehta
9b542f303c Merge pull request #5870 from saurabh6790/fee_component_patch_fix
[fix] fee component rename patch fix
2016-07-26 15:06:56 +05:30
Saurabh
21a5658fdf [fix] fee component rename patch fix 2016-07-26 15:03:41 +05:30
Rushabh Mehta
0540d52449 Merge pull request #5868 from rohitwaghchaure/patch_issue
[Fix] Timesheet patch
2016-07-26 12:59:00 +05:30
Rohit Waghchaure
8a9daece7e [Fix] Timesheet patch 2016-07-26 12:57:05 +05:30
Rushabh Mehta
c85aa3d9c5 Merge branch 'develop' 2016-07-26 09:24:00 +05:30
Rushabh Mehta
5662ad6d96 bumped to version 7.0.4 2016-07-26 09:54:00 +06:00
Rushabh Mehta
859843687e [minor] add abbr if missing 2016-07-26 08:23:32 +05:30
Rushabh Mehta
40cf3db0b1 Merge pull request #5865 from rohitwaghchaure/v7_fixes_and_cleanup
[mionr] fixes and cleanups
2016-07-26 07:58:03 +05:30
Rohit Waghchaure
26cf01aaba [mionr] fixes and cleanups 2016-07-26 00:30:25 +05:30
Rushabh Mehta
eac602304c Merge pull request #5864 from neilLasrado/rename
[rename] Renamed Fee Amount to Fee Component
2016-07-25 18:37:09 +05:30
Neil Trini Lasrado
ce1c63f776 [rename] Renamed Fee Amount to Fee Component 2016-07-25 18:24:37 +05:30
Rushabh Mehta
95b550dd8f Merge pull request #5862 from neilLasrado/rename
Renamed sg_creation_tool_course to Student Group Creation Tool Course
2016-07-25 16:21:32 +05:30
Rushabh Mehta
bb78f1ac16 Merge pull request #5861 from neilLasrado/develop
[Fix] fixed test cases for schools
2016-07-25 16:21:18 +05:30
Neil Trini Lasrado
feea2e3dec [Doctype Rename] Renamed sg_creation_tool_course to Student Group Creation Tool Course 2016-07-25 16:13:05 +05:30
Neil Trini Lasrado
7dae3e1ed4 [Fix] fixed test cases for schools 2016-07-25 15:55:31 +05:30
Rushabh Mehta
5658fdfaed Merge branch 'develop' 2016-07-25 15:45:46 +05:30
Rushabh Mehta
1c93dd0591 bumped to version 7.0.3 2016-07-25 16:15:46 +06:00
Rushabh Mehta
c910e0c614 [translations] update icenlandic 2016-07-25 15:03:39 +05:30
Rushabh Mehta
6c3ac9587e [fix] quick entry 2016-07-25 15:03:39 +05:30
Rushabh Mehta
316f78f859 Merge pull request #5858 from bohlian/develop
[Fixed] Stopping and Re-Opening of Production Order
2016-07-25 14:24:16 +05:30
Javier Wong
5b2af6ad40 [Fixed] Stopping and Re-Opening of Production Order 2016-07-25 16:49:39 +08:00
Rushabh Mehta
00f7741288 Merge branch 'develop' 2016-07-25 12:58:03 +05:30
Rushabh Mehta
3f8428e972 bumped to version 7.0.2 2016-07-25 13:28:03 +06:00
Rushabh Mehta
644a04b378 [fix] translations v7.0 2016-07-25 12:15:30 +05:30
Rushabh Mehta
c9478fc4f1 [minor] setup website before domainify 2016-07-25 12:09:21 +05:30
Rushabh Mehta
7b13c11182 Merge pull request #5857 from neilLasrado/perm
Removed Administrator role from Doctypes
2016-07-25 11:46:50 +05:30
Neil Trini Lasrado
d69d961f2a Removed Administrator role from Doctypes 2016-07-25 11:39:23 +05:30
Rushabh Mehta
cc887900e8 [fix] --yes for reinstall 2016-07-24 22:45:09 +05:30
Rushabh Mehta
ead3ccfd52 [fix] more routes patch up 2016-07-24 22:28:50 +05:30
Rushabh Mehta
84f25b3214 Merge branch 'develop' 2016-07-24 17:17:43 +05:30
Rushabh Mehta
581a12c56a bumped to version 7.0.1 2016-07-24 17:47:43 +06:00
Rushabh Mehta
cd385c3735 [fix] [minor] email pulling error, via scheduler log 2016-07-24 13:07:50 +05:30
Rushabh Mehta
49e17e4590 Merge pull request #5849 from netchampfaris/ui-fixes
[mobile ui] fix pos payment layout #5780
2016-07-24 12:47:13 +05:30
Rushabh Mehta
0e94785cdd Merge pull request #5846 from rohitwaghchaure/timesheet_patch_issue
[Fix] Timesheet patch
2016-07-24 11:52:09 +05:30
Faris Ansari
8e282c2ed8 [mobile ui] fix pos payment layout #5780 2016-07-24 11:37:25 +05:30
Rohit Waghchaure
f027fd0c66 [Fix] Timesheet patch 2016-07-24 00:38:10 +05:30
Rushabh Mehta
71b6494395 Merge pull request #5845 from KanchanChauhan/quotation-fix
[Minor Fix]
2016-07-23 15:16:31 +05:30
Kanchan Chauhan
39c952a3f2 [Minor Fix] 2016-07-23 14:39:01 +05:30
Rushabh Mehta
e7399dff2d [fix] homepage patch 2016-07-22 21:01:39 +05:30
Rushabh Mehta
29517d0b8c [fix] purchase order dashboard 2016-07-22 21:01:39 +05:30
Rushabh Mehta
c96263ceb8 Merge pull request #5841 from neilLasrado/student_batch
Minor fixed for Schools
2016-07-22 19:16:54 +05:30
Neil Trini Lasrado
6cfb60dc98 Minor fixed for Schools 2016-07-22 19:08:18 +05:30
Anand Doshi
e8eccf1a49 Merge branch 'develop' 2016-07-22 16:03:16 +05:30
Anand Doshi
b2e1d54fce bumped to version 7.0.0 2016-07-22 16:33:16 +06:00
Nabin Hait
f5c5634235 Merge pull request #5824 from rohitwaghchaure/demo_records
Demo records for projects+tasks+billing, pos invoice
2016-07-22 15:56:55 +05:30
Rohit Waghchaure
7d439ecc20 Demo records for Projects+Tasks+Billing, pos invoice 2016-07-22 15:56:20 +05:30
Nabin Hait
dcefd29e3f Merge pull request #5839 from saurabh6790/payment_request_demo
Payment request demo
2016-07-22 15:53:26 +05:30
Rushabh Mehta
5340cadcf9 Merge pull request #5827 from neilLasrado/student_batch
Added Student Batch
2016-07-22 15:47:48 +05:30
Neil Trini Lasrado
f521a9c601 Added Student Batch 2016-07-22 15:45:42 +05:30
Saurabh
6e0a00b537 [minor][fix] flag fix for payment entry creation via payment request 2016-07-22 15:43:27 +05:30
Saurabh
90c0b7fbea [fix] payment request demo 2016-07-22 15:43:27 +05:30
Saurabh
e4e8954a19 [fix] make payment request without payment gateway 2016-07-22 15:43:26 +05:30
Nabin Hait
38035c252a Merge pull request #5840 from umairsy/15jul
Documentation of Timesheet, Budgeting and Payment Entry
2016-07-22 15:36:26 +05:30
Umair Sayyed
6fcfc87d60 Documentation of Timesheet, Budgeting and Payment Entry 2016-07-22 15:22:56 +05:30
Nabin Hait
13e248af8d Merge pull request #5833 from nabinhait/fix_108
Validate warehouse if update stock checked in Purchase Invoice
2016-07-22 13:21:43 +05:30
Nabin Hait
db4aca3eaf Merge pull request #5823 from nabinhait/fix_107
Update opening stock on creation if item, only if it is non-serialized and does maintain batch
2016-07-22 13:17:26 +05:30
Nabin Hait
2b12a74fef Merge pull request #5822 from nabinhait/fix_106
Unlink payment entries on cancellation of Invoice
2016-07-22 13:17:04 +05:30
Nabin Hait
0953aeb731 Merge branch 'master' into develop 2016-07-22 13:15:53 +05:30
Nabin Hait
1adb77ee17 Merge branch 'hotfix' 2016-07-22 12:58:12 +05:30
Nabin Hait
368a314d48 bumped to version 6.27.26 2016-07-22 13:28:12 +06:00
Nabin Hait
8ecb78ba39 Validate warehouse if update stock checked in Purchase Invoice 2016-07-22 12:25:16 +05:30
Rushabh Mehta
6207883b7c [fix] patch #5831 2016-07-22 12:20:52 +05:30
Rushabh Mehta
04a64a7f48 [fix] patch #5831 2016-07-22 12:19:18 +05:30
Rushabh Mehta
f276b52af3 [fix] patch #5831 2016-07-22 11:31:51 +05:30
Rushabh Mehta
0e3e16cda0 Merge pull request #5830 from MaxMorais/patch-6
Extend search_fields for customer querie
2016-07-22 11:10:54 +05:30
Rushabh Mehta
428a59f7a1 Merge pull request #5829 from bcornwellmott/quoteitemreport-1
Added new report for Supplier Quotation comparisons
2016-07-22 11:03:51 +05:30
Rushabh Mehta
11900e8fad [fix] make grid editable for schools and fix #5831 2016-07-22 10:59:07 +05:30
Rushabh Mehta
20fc7a1e1e Merge pull request #5826 from rohitwaghchaure/v7_pos_issue
[Fix]POS and timesheet issues
2016-07-22 10:35:06 +05:30
Maxwell Morais
3557261313 Extend search_fields for customer querie
This PR is intended to extend the customer querie adding the meta-info from the doctype using the search fields to extend the customer querie
2016-07-21 23:42:59 -03:00
Ben Cornwell-Mott
99e03f2371 Added new report for Supplier Quotation comparisons 2016-07-21 13:03:58 -07:00
Rohit Waghchaure
ea278b5971 [Fix]POS and timesheet issues 2016-07-22 01:22:56 +05:30
Nabin Hait
767cf99435 Update opening stock on creation if item, only if it is non-serialized and does maintain batch 2016-07-21 18:46:09 +05:30
Nabin Hait
6889d294ae Merge pull request #5812 from nabinhait/budget_demo
Demo data for Budget
2016-07-21 18:32:56 +05:30
Nabin Hait
e0cc87d2d8 Unlink payment entries on cancellation of Invoice 2016-07-21 18:30:18 +05:30
Rushabh Mehta
d4f3c6b5e7 [fix] schools patch 2016-07-21 18:22:58 +05:30
Rushabh Mehta
7e472f898d [fix] setup wizard 2016-07-21 18:01:42 +05:30
Rushabh Mehta
39671e22c9 [fix] patch 2016-07-21 17:14:27 +05:30
Rushabh Mehta
fe7d6932ee [fix] patch 2016-07-21 17:12:47 +05:30
Rushabh Mehta
744d77466c Merge pull request #5819 from neilLasrado/develop
Fixed patch for migrating schools to erpnext again
2016-07-21 17:00:12 +05:30
Neil Trini Lasrado
a537e43838 Fixed patch for migrating schools to erpnext again 2016-07-21 16:57:04 +05:30
Rushabh Mehta
5f7727424e Merge pull request #5818 from neilLasrado/develop
Fixed patch for migrating schools to erpnext
2016-07-21 16:43:40 +05:30
Neil Trini Lasrado
af5e00363a Fixed patch for migrating schools to erpnext 2016-07-21 16:41:05 +05:30
Rushabh Mehta
137e722af1 Merge pull request #5817 from rmehta/neilLasrado-schools
Merge schools, fix setup wizard, update domainify
2016-07-21 16:04:22 +05:30
Rushabh Mehta
20038ad2c9 [fixes] setup wizard and domainify for schools; 2016-07-21 16:01:59 +05:30
Rushabh Mehta
4a5cc77352 Merge pull request #5816 from rohitwaghchaure/minor_issue
[Fix] To time issue in timesheet
2016-07-21 14:58:49 +05:30
Rohit Waghchaure
3176bc93c1 [Fix] Timesheet to time issue 2016-07-21 14:56:15 +05:30
Nabin Hait
40d4a8d13f Merge pull request #5806 from rohitwaghchaure/stock_entry_difference_amount_issue
[Fix] Stock entry difference amount issue.
2016-07-21 12:28:20 +05:30
Rohit Waghchaure
47c64ec728 [Fix] Stock entry differnce amount issue. 2016-07-21 12:24:12 +05:30
Nabin Hait
74edfff0a7 Demo data for Budget 2016-07-21 11:39:46 +05:30
Nabin Hait
cfd9b1a24c Merge pull request #5811 from nabinhait/demo2
Demo data for Payment Entry
2016-07-21 11:33:57 +05:30
Nabin Hait
1606626d29 Demo data for Payment Entry 2016-07-21 11:00:28 +05:30
Rushabh Mehta
b0061c9341 Merge branch 'schools' of https://github.com/neilLasrado/erpnext into neilLasrado-schools 2016-07-21 10:46:32 +05:30
Nabin Hait
26cad30372 Demo data for Payment Entry 2016-07-21 10:29:06 +05:30
Nabin Hait
89d0b1b9a5 Merge pull request #5804 from nabinhait/demo1
Demo data for fixed asset depreciation
2016-07-21 10:05:00 +05:30
Nabin Hait
ba33026a6b Merge pull request #5798 from rohitwaghchaure/sales_invoice_form_is_pos_issue
[Fix] POS auto set paid amount with outstanding amount issue
2016-07-21 09:39:57 +05:30
Rushabh Mehta
5a39d41a0c [redesign] replace document flow with dashboard, sorry @saurabh6790, fixes #5792 2016-07-20 22:53:23 +05:30
Neil Trini Lasrado
3f0a581b85 Merge ERPNext Schools into ERPNext 2016-07-20 19:25:02 +05:30
Rushabh Mehta
39077d4210 [dashboard] for quotation and sales order 2016-07-20 18:55:42 +05:30
Rohit Waghchaure
61b4a43d84 [Fix] POS auto set paid amount with outstanding amount issue 2016-07-20 17:01:29 +05:30
Nabin Hait
3edefb19b9 Demo data for fixed asset depreciation 2016-07-20 16:14:30 +05:30
Rushabh Mehta
649e2538e5 [fix] merge conflict? 2016-07-20 15:30:17 +05:30
Rushabh Mehta
2f0dbd9bd8 [fix] test 2016-07-20 15:28:39 +05:30
Rushabh Mehta
f65b50ea6c Merge pull request #5801 from netchampfaris/ui-fixes
fix pos layout #5780
2016-07-20 14:50:25 +05:30
Faris Ansari
8908d19bc9 [mobile ui] fix buttons 2016-07-20 14:00:08 +05:30
Nabin Hait
e2d0d7c5db Merge pull request #5799 from nabinhait/fix104
Fixes
2016-07-20 12:38:49 +05:30
Nabin Hait
430a97aeba Merge pull request #5800 from nabinhait/fix105
Patch fixed for expense claim type
2016-07-20 12:17:15 +05:30
Nabin Hait
9a5dc452f1 Patch fixed for expense claim type 2016-07-20 12:16:35 +05:30
Rushabh Mehta
fc8e589295 [fix] party status updating bug, fixes #5794, #5796 2016-07-20 12:09:27 +05:30
Nabin Hait
9d93ad92bc minor fixes 2016-07-20 11:28:50 +05:30
Nabin Hait
85648d9bd6 payment entry fixes 2016-07-20 11:28:50 +05:30
Nabin Hait
b1234fa5e8 Set missing values in asset 2016-07-20 11:28:50 +05:30
Nabin Hait
df2a75ad1d Updated standard chart of accounts 2016-07-20 11:27:58 +05:30
Rushabh Mehta
c0cc9902d9 Merge pull request #5776 from saurabh6790/warehouse_accounting_fix
[fix] for setting warehouse in account head
2016-07-19 21:35:09 +05:30
Rushabh Mehta
f997c6981d Merge pull request #5770 from saurabh6790/demo_expense_claim
[enhance] demo for expense claim #5731
2016-07-19 21:34:30 +05:30
Rushabh Mehta
28773214bf Merge pull request #5795 from rohitwaghchaure/sales_invoice_form_is_pos_issue
set paid amount with grand amount on sales invoice form
2016-07-19 21:34:05 +05:30
Rohit Waghchaure
88514a246b set paid amount with grand amount on invoice form 2016-07-19 20:04:44 +05:30
Rushabh Mehta
636acc2565 [minor] run stock reco in background if more than 100 items, fixes #4904 2016-07-19 17:14:48 +05:30
Saurabh
9cba6e1f25 [fix] test case fix for expense claim 2016-07-19 11:38:16 +05:30
Saurabh
718d835f45 [enhance] Add Accounts table in to mention expense account based on company #5777 2016-07-19 11:38:16 +05:30
Saurabh
f589c82d68 [enhance] demo for expense claim #5731 2016-07-19 11:38:15 +05:30
Rushabh Mehta
771773240b Merge pull request #5788 from rohitwaghchaure/clean_timesheet
billable field access from grid and create timesheet without employee
2016-07-19 10:43:09 +05:30
Rushabh Mehta
02ba94784b Merge pull request #5785 from rohitwaghchaure/batch_added_in_pos
[POS] Added batch and fixed issue of searching serial no #5779
2016-07-19 10:19:52 +05:30
Rushabh Mehta
6ecc0888ab [minor] dont make tax template default, by default. #5695 2016-07-19 10:17:30 +05:30
Rohit Waghchaure
f14bf502ef billable field access from grid 2016-07-18 23:30:46 +05:30
Rohit Waghchaure
03da40ba4c [Fix] Added batch in POS 2016-07-18 17:50:50 +05:30
Rushabh Mehta
5f9566f3af [fix] text field for sales, purchase invoice advance fixes #5773 2016-07-18 14:44:12 +05:30
Rushabh Mehta
5c52fa9785 [fix] variant error message 2016-07-18 14:40:14 +05:30
Rushabh Mehta
76b134192f [fix] grid columns now restricted to 10 2016-07-18 14:30:27 +05:30
Nabin Hait
4fddff1606 Merge pull request #5767 from nabinhait/fix101
Payment Improvements
2016-07-16 11:55:12 +05:30
Nabin Hait
2842a86225 Merge pull request #5775 from revant/patch-1
Issue #5774
2016-07-16 11:28:15 +05:30
Nabin Hait
94105b04b8 Asset category mandatory validation while fetching item details 2016-07-16 11:20:50 +05:30
Saurabh
dcb41da02a [fix] for setting warehouse in account head 2016-07-16 11:17:43 +05:30
Revant Nandgaonkar
88e16a7f82 removed force=True 2016-07-16 11:00:37 +05:30
Nabin Hait
37dd714e6c Is Stock Item checkbox visibility 2016-07-16 11:00:29 +05:30
Nabin Hait
96376b2345 Trigger receive/paid amount on change of paid from/to 2016-07-16 11:00:29 +05:30
Nabin Hait
6831b9422b payment entry improvements and deletion of payment tool 2016-07-16 11:00:29 +05:30
Nabin Hait
4f5f8d7806 Set target exchange rate from source if currency is same 2016-07-16 10:59:48 +05:30
Nabin Hait
e6cdb01bea [fix] Query for account fields in Company 2016-07-16 10:59:48 +05:30
Nabin Hait
530b86b9b2 Merge pull request #5752 from KanchanChauhan/employee-holiday-attendance-report-renamed
Employee Attendance report renamed to Employees working on a holiday
2016-07-16 10:58:52 +05:30
Nabin Hait
4d64f6d4b4 Merge pull request #5772 from rohitwaghchaure/demo_records
Demo records for timesheet
2016-07-16 10:52:03 +05:30
Nabin Hait
26452cb7eb Merge pull request #5769 from rohitwaghchaure/timesheet_workstation_holiday_issue
[Fix] Timesheet workstation holiday issue
2016-07-16 10:49:17 +05:30
Revant Nandgaonkar
cc08682879 Issue #5774 2016-07-15 23:41:22 +05:30
Rohit Waghchaure
ecb2031bbe [Fix] Timesheet workstation holiday issue 2016-07-15 20:11:01 +05:30
Rohit Waghchaure
8002d47ff6 Demo records for timesheet 2016-07-15 19:24:21 +05:30
Rushabh Mehta
8d8bbb0588 [bugfix] opportunity naming 2016-07-15 16:50:52 +05:30
Rushabh Mehta
55ea7b1f61 [minor] set applicant name automatically 2016-07-15 16:43:25 +05:30
Rushabh Mehta
95383bb281 [fix] item attribute validation and tests 2016-07-15 15:12:06 +05:30
Kanchan Chauhan
9846b945d9 Patch to delete previous report 2016-07-15 14:06:20 +05:30
Kanchan Chauhan
7ff0c4eef4 Employee Attendance report renamed to Employees working on a holiday 2016-07-15 13:42:36 +05:30
Rushabh Mehta
3f549980c9 Merge pull request #5748 from rohitwaghchaure/v7_timesheet_issue
[WIP] Timesheet overlap issue and fields rearranged
2016-07-15 12:44:27 +05:30
Rushabh Mehta
20122aef79 [minor] optimize item attribute validation for #5756 2016-07-15 12:42:41 +05:30
Rushabh Mehta
b8bdfbcead [minor] optimize item attribute validation for #5756 2016-07-15 12:41:08 +05:30
Rushabh Mehta
cd2ee8940b Merge pull request #5760 from saurabh6790/is_group_fixes
[fix] patch fix for fieldtype change from select to check for is_group
2016-07-14 18:58:50 +05:30
Rohit Waghchaure
3bc6a958c7 [Fix] Timesheet overlap issue 2016-07-14 18:27:49 +05:30
Saurabh
c63f2e2993 [fix] patch fix 2016-07-14 18:24:20 +05:30
Rushabh Mehta
176b63b354 [fix] remove first row on mapping, fixes #5707 2016-07-14 17:43:48 +05:30
Rushabh Mehta
62fcaa7900 Merge pull request #5758 from saurabh6790/is_group_fixes
[fix] alter fieldtype for is_group from select to check
2016-07-14 16:57:01 +05:30
Rushabh Mehta
528e145a54 [docs] fixes #5697 2016-07-14 17:00:05 +05:30
Rushabh Mehta
92d1b8cc6d [fix] [demo] permissions for accounting 2016-07-14 16:18:20 +05:30
Nabin Hait
64602168b7 Merge pull request #5754 from rohitwaghchaure/timesheet_patch_fix
[Fix] Timesheet patch
2016-07-14 15:25:34 +05:30
Rohit Waghchaure
de8418efe5 [Fix] Timesheet patch 2016-07-14 14:36:47 +05:30
Saurabh
6bc7b892c4 [fix] alter fieldtype for is_group from select to check 2016-07-14 14:06:28 +05:30
Rushabh Mehta
b814a54f2f [demo] mute emails 2016-07-13 18:17:19 +05:30
Rushabh Mehta
ffa70e34de [demo] [minor] fixes 2016-07-13 17:47:37 +05:30
Anand Doshi
d9b3c5ca60 [fix] use base.html's title block in home.html 2016-07-13 11:29:50 +05:30
Rushabh Mehta
8cfe18eccd [demo] help 2016-07-13 11:30:10 +05:30
Rushabh Mehta
c748e9c991 Merge pull request #5724 from rohitwaghchaure/v7_timesheet_issue
[Fix] Added note field in timesheet and fixes in timesheet patch
2016-07-13 10:53:01 +05:30
Rohit Waghchaure
e3fe828ea6 [Fix] Added note in timesheet and minor fixes 2016-07-13 09:40:35 +05:30
Rushabh Mehta
1f15cf43d6 Merge pull request #5715 from donysukardi/documentation-fixes
[fix] Documentation Fixes
2016-07-12 11:16:12 +05:30
Rushabh Mehta
4beba3aff9 Merge pull request #5705 from KanchanChauhan/fixed-employee-holiday-attendance-report
Added Holiday List filter
2016-07-12 11:11:43 +05:30
Dony Sukardi
84c9e6bb4a [fix] Documentation Fixes
Fixes for the following issues:
- Render code block
- Fix ordered-list numbering
2016-07-12 04:01:06 +08:00
Rushabh Mehta
29b80b2233 Merge pull request #5701 from saurabh6790/item_reorder
[fix] fix get query for sub warehouse in reorder level table
2016-07-11 17:14:50 +05:30
Nabin Hait
57585aa98d Merge pull request #5711 from nabinhait/payment_fix_10
[fix] Advance payment adjustment in sales/purchase invoice
2016-07-11 17:07:28 +05:30
Nabin Hait
cc2083ebd0 [fix] Advance payment adjustment in sales/purchase invoice 2016-07-11 16:12:18 +05:30
Rushabh Mehta
3ce24d64c2 [cleanup] payment entry form view 2016-07-11 16:08:46 +05:30
Kanchan Chauhan
54860cd57d Added Holiday List filter 2016-07-11 15:16:47 +05:30
Nabin Hait
f366f4d915 Merge pull request #5703 from rohitwaghchaure/timesheet_rename_issue
[Fix] Time sheet rename issues
2016-07-11 15:08:32 +05:30
Rohit Waghchaure
3e012b7e16 [Fix] Time sheet rename issues 2016-07-11 15:00:38 +05:30
Saurabh
7151f91862 [fix] fix get query for sub warehouse in reorder level table 2016-07-11 13:19:06 +05:30
Rushabh Mehta
391c0efcee [fix] make grids editable 2016-07-11 13:01:58 +05:30
Rushabh Mehta
cca33b2ff0 [cleanup] 2016-07-11 13:01:58 +05:30
Nabin Hait
e37625b0c2 Merge pull request #5693 from rohitwaghchaure/v7_pos_issue
[Fix] POS minor fixes.
2016-07-11 12:52:47 +05:30
Nabin Hait
54bd79bd93 Merge pull request #5690 from nabinhait/fix100
Deleted report Customers Not Buying Since Long Time
2016-07-11 12:52:35 +05:30
Nabin Hait
dceb2e99b6 Merge pull request #5699 from nabinhait/patch_fixes
Changed patch order to fix old patches
2016-07-11 12:50:17 +05:30
Nabin Hait
bbc394fd72 Changed patch order to fix old patches 2016-07-11 12:40:18 +05:30
Rohit Waghchaure
89ee3091af [Fix] POS minor fixes. 2016-07-08 15:17:04 +05:30
Nabin Hait
f176cc03df Deleted report Customers Not Buying Since Long Time 2016-07-08 09:03:13 +05:30
Nabin Hait
12e8277b6b Merge pull request #5681 from nabinhait/sal_slip_print
Print formats for salary slip
2016-07-08 08:35:31 +05:30
Rushabh Mehta
f3a50dc1c5 Merge pull request #5684 from rohitwaghchaure/v7_ts_issue
[Salary Structure] Make salary_component field mandatory if salary_slip_based_on_timesheet is true
2016-07-07 17:44:05 +05:30
Rohit Waghchaure
0d4a9c225f [Salary Structure] Make salary_component field mandatory if salary_slip_based_on_timesheet is true 2016-07-07 17:04:54 +05:30
Rushabh Mehta
408d2c5db3 Merge pull request #5683 from rohitwaghchaure/v7_pos_issue_and_enhancement
[Fix] Access is pos from sales invoice form.
2016-07-07 16:46:32 +05:30
Rohit Waghchaure
539e913b46 [Fix] Access is pos from sales invoice form. 2016-07-07 16:44:40 +05:30
Rushabh Mehta
7333eb280f [minor] typo in customer.js 2016-07-07 15:34:01 +05:30
Rushabh Mehta
ea0ff23891 [cleanup] form dashboards 2016-07-07 14:28:05 +05:30
Rushabh Mehta
964ad0fcae [cleanup] rename "links" to "dashboard" 2016-07-07 14:28:05 +05:30
Rushabh Mehta
2a1e3bb31b [fix] sender name in lead 2016-07-07 14:28:05 +05:30
Nabin Hait
027acde4f4 Print formats for salary slip 2016-07-07 13:17:21 +05:30
Nabin Hait
cfa9df2842 Merge pull request #5679 from nabinhait/pull_button_visibility
[fix] Condition for visibility of 'Get Items from Open Material Requests' in PO
2016-07-07 12:47:58 +05:30
Nabin Hait
ade217c0e0 Merge pull request #5678 from nabinhait/exchange_rate_issue
[fix] Dont set currency and exchange rate while Quotation made from Opportunity for lead
2016-07-07 12:47:36 +05:30
Nabin Hait
804b8f7baf Merge pull request #5645 from KanchanChauhan/task-status-update-in-website
Task statuses updated in website
2016-07-07 12:46:46 +05:30
Nabin Hait
621ef1ea5c Merge pull request #5680 from rohitwaghchaure/pricing_rule_issue
[Fix] Pricing rule issue
2016-07-07 12:33:53 +05:30
Rohit Waghchaure
2b590fd804 [Fix] Pricing rule issue 2016-07-07 12:22:22 +05:30
Kanchan Chauhan
6d76359c31 [WIP] Task statuses updated in website 2016-07-07 12:19:01 +05:30
Nabin Hait
a9d3981c86 [fix] Condition for visibility of 'Get Items from Open Material Requests' in PO 2016-07-07 11:34:34 +05:30
Nabin Hait
3950507d4b [fix] Currency and exchange rate while Quotation made from Opportunity for lead 2016-07-07 11:12:44 +05:30
Nabin Hait
821367fee8 [fix] Dont set currency and exchange rate while Quotation made from Opportunity for lead 2016-07-07 10:55:47 +05:30
Nabin Hait
6a66138764 Merge pull request #5675 from rohitwaghchaure/rename_time_sheet_doctype
Rename Time Sheet doctype
2016-07-07 10:38:55 +05:30
Nabin Hait
8019ea73aa Merge pull request #5653 from saurabh6790/V7_fixes_2
[fix] task visibility fix #5601
2016-07-07 10:35:02 +05:30
Nabin Hait
ac418d44d9 Merge pull request #5666 from nabinhait/fixed_asset_revisited
Fixed asset revisited
2016-07-07 10:33:53 +05:30
Nabin Hait
b71a14ceca minor fix 2016-07-06 23:38:05 +05:30
Nabin Hait
378f5c48e5 [fix] Test cases 2016-07-06 23:38:05 +05:30
Nabin Hait
c19691632e Button to make Depreciation Entry manually 2016-07-06 23:38:05 +05:30
Nabin Hait
e417000bbb Fetch Fixed Asset property from item in Sales / Purchase Invoice 2016-07-06 23:38:05 +05:30
Nabin Hait
cea353a638 Validate expected value after useful life 2016-07-06 23:38:05 +05:30
Nabin Hait
e3e1b80fcc Editable grid and query in asset category 2016-07-06 23:38:05 +05:30
Nabin Hait
b30acc7ddb Fixes in Account 2016-07-06 23:38:04 +05:30
Nabin Hait
668d090eed Fetch deatils from Item and Asset Category 2016-07-06 23:38:04 +05:30
Nabin Hait
abd6c5debb Fixed asset item property and validations 2016-07-06 23:38:04 +05:30
Nabin Hait
2dec0db3bd Is Fixed Asset and Asset Category field added in Item 2016-07-06 23:38:04 +05:30
Rohit Waghchaure
e94d18b4cd Rename Time Sheet doctype 2016-07-06 20:38:50 +05:30
Nabin Hait
21f443e37c Merge pull request #5674 from rohitwaghchaure/v7_fixes
[Fixes] RFQ contact and multiple creation of supplier quotation issue
2016-07-06 17:51:56 +05:30
Saurabh
38d261653f [fix] load task table for project on saving of project 2016-07-06 17:26:21 +05:30
Rohit Waghchaure
f154c611bb [Fixes] RFQ contact and multiple creation of supplier quotation issue 2016-07-06 17:26:15 +05:30
Saurabh
838dd6c530 [fix] task visibility fix #5601 2016-07-06 17:00:30 +05:30
Nabin Hait
70a1ddb6a1 Merge pull request #5671 from nabinhait/fixes90
Multiple fixes
2016-07-06 16:53:31 +05:30
Nabin Hait
e739c0cf4e Merge pull request #5670 from rohitwaghchaure/v7_fixes
[Fixes] POS amount calculation issue
2016-07-06 16:20:59 +05:30
Rohit Waghchaure
53bea82514 [Fixes] POS amount calculation issue 2016-07-06 16:15:10 +05:30
Nabin Hait
819ed21ab5 Removed Pro Order from Quick Entry 2016-07-06 16:13:44 +05:30
Nabin Hait
df2200b417 Added Valuation Rate field in Item for opening stock 2016-07-06 16:05:15 +05:30
Nabin Hait
4671038211 Item Name added in Stock Reconciliation 2016-07-06 16:05:15 +05:30
Nabin Hait
018b6a4bdd Merge pull request #5668 from nabinhait/stock_reco_fix
Query for warehouse and editable fields in grid
2016-07-06 15:47:25 +05:30
Nabin Hait
5f82a5387d Query for warehouse and editable fields in grid 2016-07-06 15:35:23 +05:30
Nabin Hait
f3090b01c1 Merge pull request #5662 from KanchanChauhan/template-selection-salesorder
template selection of item disabledin Sales Order
2016-07-06 15:27:42 +05:30
Nabin Hait
479c92a1ea Merge pull request #5664 from rohitwaghchaure/v7_fixes
[Fixes] Time sheet fixes
2016-07-06 15:12:32 +05:30
Rohit Waghchaure
3188b56694 [Fixes] Time sheet fixes 2016-07-06 14:31:14 +05:30
Kanchan Chauhan
6cb5710ffc template selection of item disabledin Sales Order 2016-07-06 13:25:44 +05:30
Nabin Hait
7796c2f0c0 Update rename_salary_components.py 2016-07-06 13:11:51 +05:30
Nabin Hait
be81522958 Merge pull request #5661 from rohitwaghchaure/v7_fixes
[Fix] Patch salary component
2016-07-06 12:41:02 +05:30
Rohit Waghchaure
c8d231b26b [Fix] Patch salary component 2016-07-06 12:33:54 +05:30
Nabin Hait
f1439c8f78 Merge pull request #5641 from rohitwaghchaure/rename_prevdoc_fields
Rename prevdoc field in purchase order and purchase receipt doctype
2016-07-06 12:21:38 +05:30
Rohit Waghchaure
a71d9d33af Rename prevdoc field in purchase order and purchase receipt doctype 2016-07-06 12:13:29 +05:30
Nabin Hait
4647f24865 Merge pull request #5625 from KanchanChauhan/salary-component-cleanup
Salary component cleanup
2016-07-06 12:06:05 +05:30
Kanchan Chauhan
d963b76a4b Salary component cleanup 2016-07-06 12:04:38 +05:30
Nabin Hait
d1a83d43ab Merge pull request #5652 from saurabh6790/V7_fixes_1
[fix] link fixes for tree structures #5651
2016-07-06 10:54:54 +05:30
Anand Doshi
3177138655 [fix] moved disable setup wizard access to frappe 2016-07-05 21:34:21 +05:30
Saurabh
52ec0ed134 [fix] link fixes for tree structures #5651 2016-07-05 18:05:45 +05:30
Nabin Hait
a86c5b196f Merge pull request #5649 from saurabh6790/payment_request_grand_total_fix
[minor][fix] fix base_grand_total in payment request
2016-07-05 16:41:57 +05:30
Saurabh
c03a3bf580 [minor][fix] fix base_grand_total 2016-07-05 15:58:14 +05:30
Rushabh Mehta
e9ba712fe3 Merge pull request #5646 from saurabh6790/V7_cheque_print_and_doc_flow_fixes
V7 cheque print and documnet flow fixes
2016-07-05 14:55:36 +05:30
Saurabh
1c5c511d2e [fix] add payment entry in document flow 2016-07-05 12:46:38 +05:30
Saurabh
066ae8e4c4 [fix] make cheque print compatible with payment entry 2016-07-05 12:46:38 +05:30
Nabin Hait
04f0e61331 Merge pull request #5639 from saurabh6790/customer_save_fix
[fix] set addr_list and contact_list attr #5635
2016-07-05 10:57:34 +05:30
Nabin Hait
1e42a05c2d Merge pull request #5636 from nabinhait/payment_entry_fix
Payment entry fix
2016-07-05 10:56:54 +05:30
Saurabh
bce02c4364 set addr_list and contact_list attr #5635 2016-07-04 18:28:20 +05:30
Nabin Hait
281b07cdb6 Warehouse patch fix 2016-07-04 18:17:57 +05:30
Rushabh Mehta
4419450203 Merge pull request #5638 from nabinhait/warehouse_patch_fix
Warehouse patch fix
2016-07-04 18:15:49 +05:30
Nabin Hait
7f3938b19f Warehouse patch fix 2016-07-04 18:12:08 +05:30
Rushabh Mehta
e38872294a [fix] [patch] 2016-07-04 17:34:25 +05:30
Nabin Hait
f6a0d789d0 Payment entry fixes 2016-07-04 17:26:02 +05:30
Nabin Hait
e4bbb696ab Payment Entry minor improvements 2016-07-04 17:26:02 +05:30
Rushabh Mehta
1d797f717b [fix] warehouse validation for parent_account 2016-07-04 17:07:08 +05:30
Rushabh Mehta
bc10431b7d Merge pull request #5631 from KanchanChauhan/address-viewww-fixed
Address view fixed for website
2016-07-04 15:50:40 +05:30
Kanchan Chauhan
1605ff02c6 [WIP] Address view fixed 2016-07-04 15:41:07 +05:30
Rushabh Mehta
a123025d78 Merge pull request #5630 from rohitwaghchaure/v7_time_log_batch_patch_fixes
[Fixes] Time log batch patch
2016-07-04 14:07:58 +05:30
Rushabh Mehta
6fa4ec15aa Merge pull request #5629 from saurabh6790/erp_v7_fix
[Minor][fix] Holiday list message fix and company attr fix
2016-07-04 14:07:16 +05:30
Rohit Waghchaure
240407b155 [Fixes] Time log batch patch 2016-07-04 13:21:54 +05:30
Saurabh
51f66efc7a [minor][fix] set transactions_exist on load of company 2016-07-04 13:06:29 +05:30
Saurabh
c2934ba9da [minor][fix] holiday list exception message fix 2016-07-04 13:06:29 +05:30
Rushabh Mehta
c1d2247f2c Merge pull request #5620 from nabinhait/payment_entry
Payment Entry
2016-07-04 13:01:16 +05:30
Rushabh Mehta
bed82952b9 Merge pull request #5628 from saurabh6790/patch_fixes
[minor][fix] reload warehouse before executing patches
2016-07-04 11:57:37 +05:30
Nabin Hait
ff2f3ef1b1 Test Case Fixes 2016-07-04 11:42:25 +05:30
Nabin Hait
e196190d10 minor fix 2016-07-04 11:42:25 +05:30
Nabin Hait
56548cbfa2 Payment against negative invoice, negative outstanding allocation and much more 2016-07-04 11:42:25 +05:30
Nabin Hait
9db1b223da Payment Entry: Test cases and default remarks 2016-07-04 11:42:24 +05:30
Nabin Hait
13093b4b68 Make payment entry aginst order, payment request and patch to rename advance table fields 2016-07-04 11:42:24 +05:30
Nabin Hait
05aefbbf5d Payment Entry from invoice 2016-07-04 11:42:24 +05:30
Nabin Hait
221fa98b51 Payment Entry: Payment period based on invoice date 2016-07-04 11:42:24 +05:30
Nabin Hait
16d6959d01 Payment Entry included in Bank Reconciliation and related reports 2016-07-04 11:42:24 +05:30
Nabin Hait
1991c7b17d Payment Reconciliation changes for Payment Entry 2016-07-04 11:42:24 +05:30
Nabin Hait
28a0528ae4 Advance Payment Entry adjustment against Invoice 2016-07-04 11:42:04 +05:30
Nabin Hait
e3a10170f7 Payment Entry submission and more 2016-07-04 11:41:24 +05:30
Nabin Hait
12e2a51519 [new][feature] Payment Entry 2016-07-04 11:41:24 +05:30
Rushabh Mehta
4177504860 [fix] [patch] reload doctype missing in patch 2016-07-04 11:41:12 +05:30
Rushabh Mehta
b33df4afe8 [cleanup] link methods made common 2016-07-04 11:39:25 +05:30
Rushabh Mehta
5f5f0bec2c [fix] buttons for rfq and material request 2016-07-04 11:39:25 +05:30
Rushabh Mehta
dc8067eb33 [demo] new cleaner, more-flexible demo 2016-07-04 11:39:25 +05:30
Rushabh Mehta
8c2e79cf0d [minor] fixes 2016-07-04 11:39:25 +05:30
Rushabh Mehta
878dfec46a [minor] 2016-07-04 11:39:25 +05:30
Saurabh
f5ab5f3c0c [minor][fix] reload warehouse before executing patches 2016-07-04 11:38:58 +05:30
Rushabh Mehta
6703792472 Merge pull request #5618 from rohitwaghchaure/sq_field_and_rfq_fixes
[Fixes] Fixed linked for MR to SQ from RFQ, changed field name in SQI
2016-07-04 10:59:11 +05:30
Rushabh Mehta
2be94f7675 Merge pull request #5615 from rohitwaghchaure/v7_rfq_fixes
[RFQ Enhancement] Added button on supplier row to download PDF for particular supplier
2016-07-04 10:58:33 +05:30
Rushabh Mehta
bed5f9e9b3 Merge pull request #5614 from suryanamha/patch-1
Update index.md
2016-07-04 10:58:03 +05:30
Rushabh Mehta
3156d596d0 Merge pull request #5627 from rohitwaghchaure/fixes_timesheet_on_sales_invoice
[Fixes] Time sheet dependency removed from sales invoice and patch fixes
2016-07-04 10:57:44 +05:30
Rohit Waghchaure
ad884b9fa9 [Fixes] Time sheet dependency removed from sales invoice and patch fixes 2016-07-02 22:28:29 +05:30
Rushabh Mehta
3d047c0be5 Merge pull request #5626 from saurabh6790/stock_analytics
[fix] load dependancies on page load event
2016-07-02 17:35:50 +05:30
Saurabh
b35906efc1 [fix] load dependancies on page load event 2016-07-02 17:13:11 +05:30
Rushabh Mehta
133d10429a Merge pull request #5622 from saurabh6790/stock_analytics
[fix] Stock Analytics Report page fix
2016-07-01 18:47:23 +05:30
Saurabh
feefaaf1ee [fix] Stock Analytics Report page fix 2016-07-01 18:15:17 +05:30
Rohit Waghchaure
4d8f4d76e1 [Fixes] Fixed linked for MR to SQ from RFQ, changed field name in SQI 2016-07-01 15:33:57 +05:30
Rohit Waghchaure
fc1fa9a774 [RFQ Enhancement] Added button on supplier row to download PDF for particular supplier 2016-07-01 14:53:11 +05:30
Rohit Sharma
c4fcd1996a Update index.md
I have added few points and enhanced some of the existing text. Please accept the changes.
2016-06-30 16:44:59 +05:30
Rushabh Mehta
465b753848 Merge pull request #5613 from saurabh6790/bom_tree_fixes
[fix] BOM tree as default view
2016-06-30 15:54:47 +05:30
Rushabh Mehta
1b8b0cc18f Merge pull request #5609 from KanchanChauhan/enable-shopping-cart-in-setup
Enable shopping cart by default during company creation in setup
2016-06-30 15:54:04 +05:30
Saurabh
621247807a [fix] BOM tree as default view 2016-06-30 15:05:06 +05:30
Kanchan Chauhan
9116a84969 Enable shopping cart by default during company creation in setup 2016-06-30 15:02:26 +05:30
Rushabh Mehta
cfb81205b3 Merge pull request #5612 from shubham7saxena/rfq-sidebar
[minor][bug fix]added sidebar visibility to request for quotation link
2016-06-30 14:39:55 +05:30
shubham7saxena
778184e5e0 added sidebar visibility to request for quotation link 2016-06-30 14:27:28 +05:30
Rushabh Mehta
2d65a298ef Merge pull request #5607 from rohitwaghchaure/v7_rfq_fixes
[RFQ] Enhancement and minor fixes
2016-06-30 13:37:12 +05:30
Rohit Waghchaure
a314872cb5 [RFQ] Enhancement and minor fixes 2016-06-30 02:26:02 +05:30
Rushabh Mehta
65256ed8cb Merge pull request #5526 from KanchanChauhan/shopping-cart-dropdown-update
Shopping cart dropdown update
2016-06-29 21:59:29 +05:30
Rushabh Mehta
5b681666a0 Merge pull request #5605 from saurabh6790/warehouse_tree_fix_1
while creating warehouse tree check for non company warehouse and is_group default value fix
2016-06-29 21:58:31 +05:30
Rushabh Mehta
a11839307f Merge pull request #5553 from saurabh6790/pos_fixes
[minor][fix] throw if payment modes are not set
2016-06-29 21:56:20 +05:30
Rushabh Mehta
cb862c6683 Merge pull request #5604 from rohitwaghchaure/time_sheet_wages
[Fixes] Time sheet fixes and changed timesheets to time_logs
2016-06-29 21:55:58 +05:30
Saurabh
1301b3b3d1 [fix] set default value for is_group to 0 2016-06-29 19:48:44 +05:30
Rohit Waghchaure
3fa0b51e5e [Fixes] Time sheet fixes and changed timesheets to time_logs 2016-06-29 19:04:16 +05:30
Saurabh
028bbee317 [fix] nestedset warehouse fix 2016-06-29 19:03:40 +05:30
Saurabh
b8a57a4b4d [fix] wareehouse nestedset fix if company not associated with warehouse 2016-06-29 19:01:49 +05:30
Saurabh
d7d878b6db [fix] label fix 2016-06-29 18:48:20 +05:30
Rushabh Mehta
e6920f6a58 Merge pull request #5603 from KanchanChauhan/Maintenance-Module
New Maintenance Module
2016-06-29 16:08:46 +05:30
Kanchan Chauhan
fb3eb13ca4 New Maintenance Module 2016-06-29 15:51:02 +05:30
Anand Doshi
5b9c6e7fa6 [fix] [patch] remove default activity type "Planning" 2016-06-29 15:32:36 +05:30
Rushabh Mehta
da43539c53 Merge pull request #5558 from saurabh6790/doc_flow_fix
[minor][fix] fix filter in previous link mapper
2016-06-29 12:19:54 +05:30
Rushabh Mehta
26a76fb2d9 Merge pull request #5566 from KanchanChauhan/moving-newsletter-to-frappe
Newsletter moved to Frappe
2016-06-29 12:11:25 +05:30
Rushabh Mehta
67cf8af5f8 Merge pull request #5592 from rohitwaghchaure/time_sheet_wages
[Fix] Removed make_for field from time sheet
2016-06-29 12:11:16 +05:30
Rohit Waghchaure
a62dcce46a [Fix] make_for field removed 2016-06-29 01:42:52 +05:30
Anand Doshi
0e4119b2de [fix] use get_domains to prevent mutation of nested dictionary 2016-06-28 21:37:28 +05:30
Nabin Hait
c8d86cb948 Merge pull request #5572 from saurabh6790/warehouse_tree_fix
[fix] warehouse tree patch fix
2016-06-28 17:52:10 +05:30
Kanchan Chauhan
65c8b5a216 Newsletter moved to Frappe 2016-06-28 17:28:40 +05:30
Saurabh
ee17e2f277 [fix] patch fix 2016-06-28 15:43:02 +05:30
Kanchan Chauhan
a756e3f765 Reverted changes 2016-06-28 15:02:35 +05:30
Saurabh
52c2affc9c [fix] check for parent account with type stock in patch if not exists get parent account from existing warehouse accounts 2016-06-28 14:41:48 +05:30
Kanchan Chauhan
c8d47da6bc Shopping cart and dropdown cart update 2016-06-28 11:29:43 +05:30
Saurabh
9a6c6663c1 [minor][fix] throw if payment modes are not set 2016-06-27 18:16:07 +05:30
Saurabh
82b8b38b3d [fix] fix filter in previous link mapper 2016-06-27 17:51:29 +05:30
Rushabh Mehta
4803376da8 Merge pull request #5507 from neilLasrado/develop
Added Minimum Inventory level to Item Master
2016-06-27 17:48:45 +05:30
Rushabh Mehta
db53a15bc3 Merge pull request #5557 from saurabh6790/timesheet_fix
[fixes] time sheet patch fix
2016-06-27 17:48:17 +05:30
Neil Trini Lasrado
b7ff027937 Added Safety Stock to Item Master 2016-06-27 17:45:08 +05:30
Saurabh
2f788a909f [fixes] time sheet patch fix 2016-06-27 17:44:12 +05:30
Rushabh Mehta
bff0cacd69 Merge pull request #5556 from rohitwaghchaure/time_sheet_wages
[Fixes] Timesheet
2016-06-27 17:31:43 +05:30
Rohit Waghchaure
e95ee43d51 [Fixes] Timesheet 2016-06-27 17:28:48 +05:30
Rushabh Mehta
d362b734a2 Merge pull request #5529 from saurabh6790/module_flow
[fix] previous document links
2016-06-27 17:23:46 +05:30
Rushabh Mehta
846f2a4989 Merge pull request #5545 from saurabh6790/convert_to_group_or_ledger
warehouse group to ledger conversion
2016-06-27 17:23:30 +05:30
Saurabh
93d68ac0c2 [fixes] change is group to check box 2016-06-27 17:16:56 +05:30
Saurabh
99892c7ce7 [fix] provision to convert group to ledger and vice versa 2016-06-27 17:16:56 +05:30
Rushabh Mehta
822209cb03 Merge pull request #5538 from rohitwaghchaure/time_sheet_wages
[Enhancement] Time log wages and multiple active salary structure
2016-06-27 17:13:48 +05:30
Rushabh Mehta
3be51643cc [fix] ignore setup wizard updates 2016-06-27 17:16:00 +05:30
Rushabh Mehta
689130cf9b [minor] fix holiday_list validation 2016-06-27 17:16:00 +05:30
Rushabh Mehta
35796683c1 Merge pull request #5555 from saurabh6790/stock_projected_qty
[fix] report Stock Projected Qty
2016-06-27 17:08:39 +05:30
Saurabh
ce22d34fcf [fix] report Stock Projected Qty 2016-06-27 17:05:13 +05:30
Rohit Waghchaure
d6c986da8f [Enhancement] Time log wages and multiple active salary structure 2016-06-27 16:46:39 +05:30
Rushabh Mehta
18357664cb [fix] routing for item group 2016-06-27 15:42:48 +05:30
Rushabh Mehta
a2c4dad90e [fix] product search 2016-06-27 14:55:01 +05:30
Saurabh
b6d6b8420d [fix] add filters and child doc name in previous link mapper 2016-06-27 14:48:26 +05:30
Saurabh
2a0b111726 [fix] mark completed docuemts on document flow 2016-06-27 12:28:55 +05:30
Saurabh
8f24ecb173 [fix] set previous doc links for document flow 2016-06-27 12:28:55 +05:30
Rushabh Mehta
20bedc004e Merge pull request #5548 from saurabh6790/after_rename_for_item_and_item_grp
[minor][fix] remove website generator call on after rename
2016-06-27 12:28:23 +05:30
Saurabh
d9131ec4ff [minor][fix] remove website generator call on after rename 2016-06-27 12:25:05 +05:30
Anand Doshi
771ab0c8c3 [fix] [patch] re-route 2016-06-27 12:04:48 +05:30
Rushabh Mehta
ee3204373c Merge branch 'develop' of github.com:frappe/erpnext into develop 2016-06-27 10:14:39 +05:30
Anand Doshi
d6b734e2e3 [fix] DuplicateEntryError for Warehouse Account Creation 2016-06-26 17:43:14 +05:30
Nabin Hait
110855e572 Merge pull request #5539 from saurabh6790/merge_acc_type_warehouse_and_stock_to_stock
Merge acc type warehouse and stock to stock
2016-06-26 14:42:15 +05:30
Saurabh
78333c7e07 [fixes] check group condition 2016-06-26 14:27:46 +05:30
Saurabh
7fecb50360 [enhance] rename warehouse account type to stock 2016-06-26 14:27:46 +05:30
Nabin Hait
2ee4d79609 Merge pull request #5540 from KanchanChauhan/customize-retirement-age
Retirement Age option in HR Settings
2016-06-26 14:25:45 +05:30
Kanchan Chauhan
68f5ae5cbf Changes done 2016-06-26 14:10:24 +05:30
Nabin Hait
14f0a6fa89 Merge pull request #5534 from KanchanChauhan/itemprice-update-in-pricelist
Item Price update in Price List
2016-06-26 13:07:35 +05:30
Rushabh Mehta
d454fb0f52 Merge pull request #5544 from saurabh6790/authorization_rule_fix
[fix] authorization rule fix for sales order
2016-06-26 13:04:15 +05:30
Rushabh Mehta
dad5140eac [minor] add task status 2016-06-26 12:21:20 +05:30
Saurabh
520fb73676 [fix] authorization rule fix for sales order 2016-06-26 12:09:49 +05:30
Nabin Hait
494f0e279c Merge pull request #5543 from nabinhait/warehouse_fix
[fix] Identify account group for warehouse based on account type
2016-06-26 08:26:50 +05:30
Nabin Hait
c65f160776 [fix] Identify account group for warehouse based on account type 2016-06-26 08:25:51 +05:30
Anand Doshi
f576f3b17b implemented get_site_info for erpnext and patch to move setup complete to system settings 2016-06-25 19:52:26 +05:30
Rushabh Mehta
5cba40b74f [fix] [bug] task deletion from project fixes #5470 2016-06-25 18:44:59 +05:30
Rushabh Mehta
723cd64249 [fix] tree view hooks and patch fix 2016-06-25 18:30:03 +05:30
Kanchan Chauhan
2ff7d2aade Fixed 2016-06-25 17:54:25 +05:30
Kanchan Chauhan
4c0df04db0 Retirement Age option in HR Settings 2016-06-25 17:45:16 +05:30
Nabin Hait
8942d1782c Merge pull request #5481 from bcornwellmott/patch-2
Create Manufacture MRs for BOM Items
2016-06-25 14:01:32 +05:30
Nabin Hait
4cc7bcc412 Merge pull request #5495 from bcornwellmott/patch-3
Add "Get items from Material Request"
2016-06-25 13:58:50 +05:30
Nabin Hait
2efecac823 Merge pull request #5522 from cgpurbaugh/patch-2
Some minor grammatical and spelling changes
2016-06-25 13:54:19 +05:30
Nabin Hait
173b328380 Merge pull request #5527 from bcornwellmott/patch-4
Fix Percent Billed to show Percentage
2016-06-25 13:53:55 +05:30
Nabin Hait
7b6cdf4a63 Merge pull request #5518 from saurabh6790/warehouse_tree
Warehouse tree
2016-06-25 13:49:15 +05:30
Nabin Hait
0420833a59 Merge pull request #5531 from saurabh6790/cheque_print_fixes
[fixes] set default values to cheque print and set background image o…
2016-06-25 13:43:56 +05:30
Saurabh
dc2fa86222 [fixes] rename ctype to doctype 2016-06-25 11:16:55 +05:30
Saurabh
001d4d74fa [fix] in set_valuation_method check for is group condition 2016-06-25 11:06:15 +05:30
Saurabh
3a0f96bd00 [patch] patch to move all warehouses under all warehouse group 2016-06-25 11:06:14 +05:30
Saurabh
4d02949814 [fixes] validate trash condition for warehouse and related account, move existing warehouses under all warehouse group, set account parent and is group for warehouse account 2016-06-25 11:06:14 +05:30
Saurabh
ec8babe7ac [minor][fix] 2016-06-25 11:06:14 +05:30
Saurabh
1702273968 [fix] rename account browser and sales browser to tree/doctype for view 2016-06-25 11:06:14 +05:30
Saurabh
ac53357f53 [fixes] renamed _treeview to _tree 2016-06-25 11:06:14 +05:30
Saurabh
a9ba7343c4 [fix] deprecate browser pages for accounts, cost_center, sales , bom, item group 2016-06-25 11:06:14 +05:30
Saurabh
9c7b0079c5 [fixes] warehose group wise stock report and test cases for warehouse hierarchy and warehouse group wise reorder level 2016-06-25 11:06:13 +05:30
Saurabh
3d6aecd618 [fixes] set warehouse group wise reorder level, validate ledger (leaf warehouse) on sle and bin 2016-06-25 11:06:13 +05:30
Saurabh
554f6f70aa [fixes] nested set fix for warehouse, tree for accounts and cost center 2016-06-25 11:06:13 +05:30
Saurabh
0e47bfeb16 [enhance] treeview to BOM, sales person, Cost Center and Chart of acounts 2016-06-25 11:06:13 +05:30
Saurabh
5f48cb6128 [enhancement] BOM treeview 2016-06-25 11:06:13 +05:30
Saurabh
d647945102 [fixes] 2016-06-25 11:06:13 +05:30
Saurabh
eda1afb4eb [fixes] comnify tree view 2016-06-25 11:06:13 +05:30
Saurabh
091ca75fa3 [enhance] warehouse browser page for warehouse tree 2016-06-25 11:06:12 +05:30
Saurabh
dfbcdeb8a0 [enhancement] warehouse tree structure 2016-06-25 11:06:12 +05:30
Rushabh Mehta
b72a2955ac Merge pull request #5537 from saurabh6790/make_route_fix
[fix] return route from make_route of child class
2016-06-25 10:55:30 +05:30
Saurabh
a4a3b022ee [fix] return route from make_route of child class 2016-06-25 10:43:02 +05:30
Kanchan Chauhan
5ee8fccb1a Item Price update in Price List 2016-06-24 17:11:15 +05:30
Rushabh Mehta
994fa8dcef Merge pull request #5530 from rmehta/website-route-fixes
[redesign] website routing system
2016-06-24 16:37:43 +05:30
Rushabh Mehta
bd9680f82e [added] web-forms 2016-06-24 16:41:33 +05:30
Rushabh Mehta
a334062b03 [redesign] website routing system 2016-06-24 16:18:07 +05:30
Nabin Hait
438565f678 Merge branch 'master' into develop 2016-06-24 16:12:26 +05:30
Nabin Hait
2effad33d0 Merge branch 'master' into develop 2016-06-24 12:48:24 +05:30
Saurabh
777f556b14 [fixes] set default values to cheque print and set background image only if attachment exist 2016-06-23 20:25:37 +05:30
bcornwellmott
813dddeb10 Fix Percent Billed to show Percentage
Previously was showing Currency
2016-06-22 14:49:31 -07:00
Rushabh Mehta
2039b3e192 Merge pull request #5524 from rmehta/email-queue
[rename] Bulk Email to Email Queue
2016-06-22 13:15:55 +05:30
Rushabh Mehta
8a065e0028 [rename] Bulk Email to Email Queue 2016-06-22 12:58:39 +05:30
Rushabh Mehta
4d54fb258c Merge pull request #5514 from cgpurbaugh/patch-1
Update tasks.md
2016-06-22 12:09:21 +05:30
Rushabh Mehta
6e7dc12fde Merge pull request #5476 from umairsy/14-jun
In the Setup Wizard, changed field label from Bank Account to Bank Name
2016-06-22 12:09:01 +05:30
Rushabh Mehta
560ee7bb12 Merge pull request #5480 from vjFaLk/restrict-newsletter-list
Added code to Restrict Newsletter List Recipients
2016-06-22 12:08:41 +05:30
Rushabh Mehta
4cf914d902 [minor] added mins to first response for opportunity 2016-06-22 11:22:12 +05:30
Christopher G. Purbaugh
01d4d30e8a Some minor grammatical and spelling changes 2016-06-21 15:42:20 -04:00
Nabin Hait
a531ebea8a Merge branch 'master' into develop 2016-06-21 16:44:05 +05:30
Rushabh Mehta
b1396cb8c3 Merge pull request #5515 from cgpurbaugh/patch-2
Update index.md
2016-06-21 10:12:25 +05:30
Christopher G. Purbaugh
55990efe29 Update index.md
Removed some repetitive text, changed some of the wording.
2016-06-20 15:08:08 -04:00
Christopher G. Purbaugh
22e0489ac7 Update tasks.md 2016-06-20 14:36:28 -04:00
Christopher G. Purbaugh
7f89c1aec0 Update tasks.md
Just some small grammatical corrections
2016-06-20 14:28:44 -04:00
Rushabh Mehta
142403e97c Merge pull request #5506 from umairsy/17jun
small fixes
2016-06-17 14:17:55 +05:30
Umair Sayyed
5918dc87f3 small fixes 2016-06-17 12:28:21 +05:30
bcornwellmott
9af68078f6 Add "Get items from Material Request"
Allows users to pull items from multiple Material Requests into a Request for Quotation
2016-06-16 14:10:57 -07:00
Rushabh Mehta
10a3728d09 Merge pull request #5490 from rohitwaghchaure/pos_testing_fix
[POS] Minor fixes
2016-06-16 12:45:11 +05:30
Rohit Waghchaure
c65c38d293 [POS] Minor fixes 2016-06-16 11:49:37 +05:30
bcornwellmott
c0a3311836 Create Manufacture MRs for BOM Items
Corrects an issue where items with BOMs have Purchase material request submitted instead of Manufacture material requests.
2016-06-15 11:16:12 -07:00
Rushabh Mehta
2cb7a9f235 [ux] taxes table editable 2016-06-15 16:45:03 +05:30
Valmik Jangla
2225decb2b Restrict Newsletter lists 2016-06-15 16:04:17 +05:30
Rushabh Mehta
b5f2c78f8f [list] reports for item list 2016-06-15 12:57:22 +05:30
Rushabh Mehta
dc1758b36e [report] minutes to first response for issues 2016-06-14 18:26:09 +05:30
Rushabh Mehta
f7e6ec0654 [report] minutes to first response for issues 2016-06-14 18:08:51 +05:30
Rushabh Mehta
57f35ddb4a [minor] fix update_mins_to_first_response patch 2016-06-14 16:29:33 +05:30
Rushabh Mehta
1d1bc27a57 [minor] fix update_mins_to_first_response patch 2016-06-14 16:27:50 +05:30
Rushabh Mehta
a55fb6426c [patch] mins_to_first_response in opporutnity and issue 2016-06-14 15:54:54 +05:30
Umair Sayyed
9a0ff298ce Changed field label from Bank Account to Bank Name 2016-06-14 12:25:34 +05:30
Nabin Hait
1df75c930f Merge pull request #5390 from MaxMorais/patch-5
get_address_display cannot be called directly
2016-06-14 11:32:06 +05:30
Rushabh Mehta
3dd8719aa9 Merge pull request #5474 from rohitwaghchaure/pos_enhancement_and_minor_fixes
[POS] Enhancement to set default payment as cash, functionality to clear amount value, renamed doctype Payments and some fixes.
2016-06-14 11:03:00 +05:30
Rohit Waghchaure
9fe40d557f [POS] Enhancement to set default payment as cash, functionality to clear amount value, renamed doctype Payments and some fixes. 2016-06-14 01:11:09 +05:30
Rushabh Mehta
d1eba515e9 [cleanup] fixes to v7 2016-06-13 17:47:13 +05:30
Anand Doshi
7f8142d30d [fix] reuse user.reset_password in RFQ 2016-06-13 17:23:18 +05:30
Rushabh Mehta
dd7524f844 [minor] msgprint as alert 2016-06-12 11:16:23 +05:30
Rushabh Mehta
538607e6b6 [cleanup] a better message for insufficient stock 2016-06-12 11:03:00 +05:30
Rushabh Mehta
e0686b32f3 [minor] cleanups 2016-06-10 12:38:52 +05:30
Rushabh Mehta
d395c7d54e Merge pull request #5458 from rohitwaghchaure/pos_fixes
[Fix] POS page loading issue, if system has only one item
2016-06-10 06:36:58 +05:30
Rohit Waghchaure
28c02fe51d [Fix] POS page loading issue, if system has only one item 2016-06-10 00:48:03 +05:30
Anand Doshi
51ad436e16 [fix] sales and accounts browser name 2016-06-09 19:37:35 +05:30
Anand Doshi
34482788f4 [fix] removed bad import 2016-06-09 16:57:16 +05:30
Anand Doshi
754f8b42f5 [version] changed to 7.0.0-beta 2016-06-09 16:31:57 +05:30
Anand Doshi
227b238fb1 [fix] change in versioning: store __version__ in __init__.py 2016-06-09 16:31:01 +05:30
Rushabh Mehta
d56306add0 [minor] [fix] quotation cancelled status issue, fixes #5221 2016-06-09 15:56:48 +05:30
Rushabh Mehta
743de9b306 [minor] website field in customer and allow_import for purchase receipt, fixes #5227 2016-06-09 15:11:45 +05:30
Rushabh Mehta
cb29d9886c [minor] fixes #5252 2016-06-08 17:31:11 +05:30
Rushabh Mehta
e9d2c3d46e [fix] report requested items to be transferred, fixes #5295 2016-06-08 16:41:09 +05:30
Rushabh Mehta
6e837599b1 [minor] added cost center to item wise sales register, fixes #5301 2016-06-08 16:35:10 +05:30
Rushabh Mehta
e778e59e4c [minor] always show issues in sidebar 2016-06-08 15:34:54 +05:30
Rushabh Mehta
7ce345a827 [minor] re-organize issue 2016-06-08 11:10:34 +05:30
Rushabh Mehta
0b955e6c33 [minor] production planning, fix description 2016-06-08 11:10:34 +05:30
Anand Doshi
841a3bd10f Merge branch 'saurabh6790-module_flow' into develop 2016-06-07 18:56:03 +05:30
Anand Doshi
16e2442278 [cleanup] document flow 2016-06-07 18:55:23 +05:30
Saurabh
a8217dc7e9 [fixes] build json fixes 2016-06-07 17:19:36 +05:30
Saurabh
7d0e78d399 [fixes] this.frm instead of cur_frm 2016-06-07 17:19:36 +05:30
Saurabh
2966d89e2a [fixes] create module flow list 2016-06-07 17:19:36 +05:30
Saurabh
9df3d0fb8a [enhance] show module flow on top of document 2016-06-07 17:19:36 +05:30
Rushabh Mehta
605f8a7e09 Merge pull request #5449 from RobertSchouten/patch-11
[fix] show company in list view
2016-06-07 16:55:34 +05:30
RobertSchouten
f28a5da952 [fix] show company in list view
allows address and contact to only contain company not customer or supplier or sales partner
2016-06-07 17:03:41 +08:00
Rushabh Mehta
ddd4ce51b8 Merge pull request #5447 from ShashaQin/patch-23
Update bom.py
2016-06-07 12:16:20 +05:30
Maxwell Morais
1ea13f1f49 Set get_contact_details and get_address_display to the right standard! 2016-06-07 02:35:11 -03:00
Maxwell Morais
57b6b1dc85 Set get_contact_details to the right standard! 2016-06-07 02:32:47 -03:00
ShashaQin
6cac50b52e Update bom.py 2016-06-07 09:38:57 +08:00
Nabin Hait
3bc300a207 Merge branch 'master' into develop 2016-06-03 11:57:30 +05:30
Rushabh Mehta
eb1e0673e2 Merge pull request #5354 from saurabh6790/cheque_print
Cheque print
2016-06-02 17:48:58 +05:30
Rushabh Mehta
c5c0d96064 Merge pull request #5395 from saurabh6790/payment_request_ux
[enhance] ux fixes for payment request, added jinja for payment reque…
2016-06-02 17:48:36 +05:30
Rushabh Mehta
aed79e993f [fix] item attribute validation, fixes #5308 2016-06-02 17:49:16 +05:30
Rushabh Mehta
675f9c6e6e [minor] reset barcode if item is changed, fixes #5314 2016-06-02 16:34:00 +05:30
Rushabh Mehta
af7d929386 [minor] fix supplier/customer and editable columns in BOM 2016-06-02 12:39:36 +05:30
Rushabh Mehta
1c36b5fd39 Merge pull request #5432 from bcornwellmott/patch-1
[BUG] Fix Create Material Request OperationalError
2016-06-02 07:00:47 +05:30
bcornwellmott
c39c665136 [BUG] Fix Create Material Request OperationalError
The call was invalid because "it.name" doesn't exist. Needs to be replaced with "item.name"
2016-06-01 08:31:05 -07:00
Nabin Hait
9f98296c9c minor fix 2016-06-01 16:21:43 +05:30
Rushabh Mehta
7db1793543 [fix] notification control UX - add update to top, fixes #5349 2016-06-01 13:24:28 +05:30
Nabin Hait
2460ee897a Merge pull request #5367 from KanchanChauhan/job_openings_public
[Minor Fix] Job Opening should not require login
2016-06-01 13:18:26 +05:30
Nabin Hait
8e4ec8d84a Merge pull request #5416 from nabinhait/tax_rule_based_on_county
Tax Rule based on County
2016-06-01 13:09:53 +05:30
Nabin Hait
cc07148336 Merge pull request #5428 from ShashaQin/patch-21
Update fiscal_year.py
2016-06-01 12:58:13 +05:30
Nabin Hait
29d85b0ab8 test case fixed 2016-06-01 12:54:26 +05:30
Nabin Hait
9a5cf6000e [fix] Test cases and editable fields settings for request for quotation 2016-06-01 12:54:26 +05:30
Nabin Hait
4eaeda710d Tax Rule based on County 2016-06-01 12:54:26 +05:30
Rushabh Mehta
535f3b0975 [minor] make task editable in project and add description to designation fixing #5361 2016-06-01 12:52:50 +05:30
Rushabh Mehta
277cda195c [fix] for #5419 2016-06-01 12:29:08 +05:30
Rushabh Mehta
aa60fd9037 [fix] new_doc to frappe.new_doc 2016-06-01 11:46:33 +05:30
ShashaQin
5dd72fe196 Update fiscal_year.py 2016-06-01 11:39:53 +08:00
Nabin Hait
919b1b9d5b Merge pull request #5408 from neilLasrado/hotfix-2
Fixed error in Gross Profit report
2016-05-31 17:41:19 +05:30
Nabin Hait
54f723b654 Merge pull request #5413 from kressi/patch-1
[doc] fixed typo
2016-05-31 17:40:54 +05:30
Nabin Hait
7ab088ed3f Merge pull request #5414 from nabinhait/journal_entry_ux
Fetch party info in Journal Entry on selection of reference Invoice
2016-05-31 17:38:22 +05:30
Nabin Hait
6a110331e8 Merge pull request #5415 from nabinhait/company_permissions_fix
Ignore permissions for account/warehouse creation from Company
2016-05-31 17:38:08 +05:30
Nabin Hait
bb502f8588 Merge pull request #5417 from nabinhait/grid_editable_fields
[fix] Enabled editable fields in Budget
2016-05-31 17:37:36 +05:30
Rushabh Mehta
0dcb861b56 [minor] 2016-05-31 07:22:51 +05:30
Rushabh Mehta
bc92824bc4 [minor] rename item_name if same as item, on rename and removed item selector 2016-05-31 07:22:51 +05:30
Nabin Hait
37c53f0a04 [fix] Enabled editable fields in Budget 2016-05-30 18:20:31 +05:30
Nabin Hait
f169e5c04d Ignore permissions for account/warehouse creation from Company 2016-05-30 12:15:36 +05:30
Nabin Hait
9fdd37e1ad Fetch party info in Journal Entry on selection of reference Invoice 2016-05-30 11:49:16 +05:30
Michael Kressibucher
f96ec0950d [doc] fixed typo 2016-05-29 17:57:37 +02:00
Neil Trini Lasrado
efccb8a704 Fixed error in Gross Profit report 2016-05-27 13:24:02 +05:30
Nabin Hait
18f622f3a9 Merge pull request #5406 from nabinhait/patch_fix
[fix] reload gl entry doctype in patch
2016-05-27 12:44:54 +05:30
Nabin Hait
a60ceba6d4 [fix] reload gl entry doctype in patch 2016-05-27 12:44:18 +05:30
Nabin Hait
5b7f6300c8 Merge pull request #5405 from nabinhait/chart-fix
[fix] Charts in report
2016-05-27 12:34:25 +05:30
Nabin Hait
0014aa9c26 [fix] Charts in report 2016-05-27 12:21:36 +05:30
Nabin Hait
af70b11ea2 Merge pull request #5400 from nabinhait/project_gle
Added Project in GL Entry and General Ledger report
2016-05-27 11:23:17 +05:30
Nabin Hait
591a5aba56 Added Project in GL Entry and General Ledger report 2016-05-26 17:51:20 +05:30
Nabin Hait
37b5e0c99f Merge pull request #5399 from nabinhait/report-graph
Charts on reports / activity page, deprecated financial analytics report
2016-05-26 17:42:36 +05:30
Nabin Hait
1ade5927c4 fixed conflict 2016-05-26 16:56:30 +05:30
Anand Doshi
07dfb475ca [fix] newsletter progress percentage 2016-05-26 16:41:14 +05:30
Anand Doshi
ac7c81bb98 [fix] compiled erpnext.less to erpnext.css 2016-05-26 16:41:04 +05:30
Nabin Hait
310d64d565 Fixed conflict 2016-05-26 16:10:02 +05:30
Nabin Hait
b46d021f2a Charts on reports / activity page, deprecated financial analytics report 2016-05-26 15:26:01 +05:30
Nabin Hait
44c1b8e63b Line/Bar chart in Balance Sheet / Profit and Loss statement 2016-05-26 15:26:01 +05:30
Nabin Hait
28bdff5a55 Pie chart for ageing analysis in accounts receivale/payable 2016-05-26 15:26:01 +05:30
Nabin Hait
8ed2f87480 Update company.py 2016-05-25 20:06:24 +05:30
Rushabh Mehta
6e4263cfc6 Merge pull request #5396 from rohitwaghchaure/enhancement_point_of_sales
[POS] enhancement and minor fixes
2016-05-25 16:10:27 +05:30
Rohit Waghchaure
f2aa1764cc [POS] enhancement and minor fixes 2016-05-25 15:04:46 +05:30
Saurabh
ed0816832d [enhance] ux fixes for payment request, added jinja for payment request message 2016-05-25 11:55:30 +05:30
Rushabh Mehta
1885645d6d [fix] [patch] 2016-05-24 16:10:21 +05:30
Rushabh Mehta
c96c4d6424 [minor] ignore xss in email sender 2016-05-24 16:02:49 +05:30
Rushabh Mehta
b574658c93 [minor] allow any time logs to be batched, fixes #5386 2016-05-24 12:13:31 +05:30
Saurabh
e450490bfb [document] document for cheque print 2016-05-24 10:28:16 +05:30
Saurabh
81501ddc6d [fixes] add setting to mark cheque account pay only 2016-05-24 10:28:14 +05:30
Saurabh
2fc0ffad34 [fixes] js templating to get cheque print view 2016-05-24 10:28:14 +05:30
Saurabh
9ca9f2d551 [Fixes] UX fixes 2016-05-24 10:28:14 +05:30
Saurabh
bb95d36218 [fixes] field re-structuring 2016-05-24 10:28:14 +05:30
Saurabh
1b62ecea44 [enhancement] cheque print 2016-05-24 10:28:14 +05:30
Nabin Hait
79ddf67289 Merge pull request #5362 from nabinhait/budget
Budgeting
2016-05-23 17:56:42 +05:30
Rushabh Mehta
3b10619aef Merge pull request #5391 from rohitwaghchaure/posting_date
Added today as default in transactions.
2016-05-23 17:55:22 +05:30
Nabin Hait
8f70370457 Chart of accounts fixed for Spain 2016-05-23 17:41:51 +05:30
Nabin Hait
03b08e7a91 [fix] Period closing voucher 2016-05-23 16:28:39 +05:30
Rohit Waghchaure
bc894428ca Added today as default in transaction. 2016-05-23 15:22:36 +05:30
Nabin Hait
832988e2fd test case fixed 2016-05-23 13:04:26 +05:30
Nabin Hait
d9117cb726 reload budget doctype in patch 2016-05-23 13:04:26 +05:30
Nabin Hait
ca90963d5b Redesigned budgets 2016-05-23 13:04:26 +05:30
Nabin Hait
b9bc7d6df3 [feature] New document for Budget 2016-05-23 13:04:26 +05:30
Nabin Hait
434ae21785 Merge pull request #5384 from fderyckel/patch-3
minor edits
2016-05-23 10:43:58 +05:30
Maxwell Morais
498cc58522 get_address_display cannot be called directly
The new function get_address_display dont allow directly call, since it dont support, `frm, cdt, cdn` as arguments
2016-05-22 20:19:30 -03:00
François
dfc0a30e69 minor edits 2016-05-22 14:22:02 +02:00
Rushabh Mehta
ac123c57f3 [cleanup] website / portal css 2016-05-20 16:37:14 +05:30
Nabin Hait
66ee4d8cd7 Merge branch 'master' into develop 2016-05-20 15:15:21 +05:30
Rushabh Mehta
d2a51d47d8 Merge pull request #5375 from rohitwaghchaure/editable_fields_overriding_issue
[Fixes] material request's editable fields overriding with purchase common
2016-05-20 14:11:19 +05:30
Rohit Waghchaure
6c60c164f1 [Fixes] material request's editable fields overriding with purchase common 2016-05-20 14:03:09 +05:30
Rushabh Mehta
d0cee1b61b [fix] minor fixes to pos 2016-05-20 12:54:59 +05:30
Rushabh Mehta
40b3a5bcc4 [optimize] communication query for heatmap 2016-05-20 12:54:59 +05:30
Nabin Hait
563bd056d7 Merge branch 'master' into develop 2016-05-20 12:18:28 +05:30
Nabin Hait
3956c94bbb Merge pull request #5340 from rohitwaghchaure/support_week_new
[Fix] Sales Invoice shows default date while no default mentioned
2016-05-20 12:06:22 +05:30
Nabin Hait
5dfcfc5606 Merge pull request #5366 from saurabh6790/set_default_bank_acc_in_bank_reco
[fixes] set default bank account in bank reconciliation statement report
2016-05-20 11:36:44 +05:30
Nabin Hait
baf3e3721f Merge pull request #5371 from saurabh6790/reset_user_must_always_select_on_transaction_change
[fixes] Reset "User must always select" on change of transaction
2016-05-20 11:36:06 +05:30
Anand Doshi
1d88c6a742 [fix] [patch] home page + erpnext.css 2016-05-20 10:42:04 +05:30
Rushabh Mehta
532eedf411 [enhance] more editable grids 2016-05-19 18:22:49 +05:30
Saurabh
c0c8af06da [fixes] set default bank account in bank reconciliation statement report 2016-05-19 12:32:08 +05:30
Saurabh
dc16b7e34a [fixes] Reset on change of transaction 2016-05-19 12:26:40 +05:30
Rushabh Mehta
35047ac283 [ux] direct editing in material request 2016-05-18 18:17:38 +05:30
Kanchan Chauhan
adad5fb11e [Minor Fix] Job Opening should not require login 2016-05-18 16:33:29 +05:30
Anand Doshi
e13c3ad048 [fix] [patch] homepage 2016-05-18 01:46:23 +05:30
Rohit Waghchaure
5d97d89a03 [Fix] Sales Invoice shows default date while no default mentioned 2016-05-17 15:13:17 +05:30
Nabin Hait
a09285122f Added root type for Income. Fixes #5356 2016-05-17 10:37:31 +05:30
Anand Doshi
0d66260d31 [fix] [patch] update home page 2016-05-17 10:21:08 +05:30
Rushabh Mehta
a484ff751b Merge pull request #5353 from MaxMorais/patch-4
Small improvement in maintenance scheduler
2016-05-16 14:56:17 +05:30
Maxwell Morais
92b0be93c7 Removed HTML tags from messages
Remove HTML from messages
2016-05-16 06:24:55 -03:00
Maxwell Morais
89fdbdf404 Translation improvements
Translation improvements
2016-05-16 06:08:51 -03:00
Maxwell Morais
52a66fc90b Reduce start and end date verification
Given the actual scenario, that verify if the start_date <= end_date, do schedule a Maintenance, 2 days are required, but in many cases only one day is required!
2016-05-16 06:06:59 -03:00
Maxwell Morais
4e7b52952e Added warning
Added a warning to show a information to the active user
2016-05-16 05:38:04 -03:00
Rushabh Mehta
72615977d7 Merge pull request #5337 from rohitwaghchaure/pos
[WIP] [POS] Some changes and fixes
2016-05-16 12:06:42 +05:30
Rushabh Mehta
3a87c479c7 Merge pull request #5346 from umairsy/domains
Domainifying
2016-05-16 12:02:51 +05:30
Rushabh Mehta
dc997dc426 Merge pull request #5352 from fderyckel/patch-2
Update multi-currency-accounting.md
2016-05-16 12:02:23 +05:30
Rushabh Mehta
9f5ff9476e Merge pull request #5342 from rohitwaghchaure/support_week_2
[Fix] Removed is_pro_applicable
2016-05-16 12:02:01 +05:30
Rushabh Mehta
d474e0cb5b Merge pull request #5345 from nabinhait/coa
Changes related for charts builder
2016-05-16 12:01:32 +05:30
Rohit Waghchaure
e0934d118f [Fixes] Some changes and fixes 2016-05-16 12:01:16 +05:30
Rushabh Mehta
03578620e0 Merge pull request #5338 from fderyckel/patch-1
Update make-field-visible-in-print-format.md
2016-05-16 12:00:15 +05:30
Rushabh Mehta
a9e3936b20 Merge pull request #5335 from neilLasrado/patch-1
Update manufacturing-settings.md
2016-05-16 11:57:48 +05:30
Rushabh Mehta
6471e178f6 Merge pull request #5321 from rohitwaghchaure/rfq_fixes
[Fixes] RFQ minor fixes
2016-05-16 11:57:35 +05:30
Rushabh Mehta
c93caee284 Merge pull request #5265 from ShashaQin/patch-46
Update opportunity.py
2016-05-16 11:56:32 +05:30
Rushabh Mehta
02f76dc0f9 [patch] [fix] 2016-05-16 11:46:29 +05:30
Rushabh Mehta
f1bdae4496 [patch] [fix] 2016-05-16 11:41:29 +05:30
Rushabh Mehta
7c96dc1783 [minor] [fix] cart 2016-05-16 11:36:08 +05:30
Maxwell Morais
28453efece Small improvement in maintenance scheduler
This improvement is intended to start disable blocking Maintenance Schedule submit, when the `Sales Person` does not have a `user_id` in the Employee!

The old logic try to use the `sales_person` email_id or the `owner` to create the event, but due some fails in the code, it dont occurs!
2016-05-16 00:50:03 -03:00
François
0802c56625 Update multi-currency-accounting.md 2016-05-15 20:21:08 +02:00
Rushabh Mehta
c8b2a9d654 [patch] [fix] 2016-05-15 10:08:52 +05:30
Anand Doshi
a5e4dc85db Merge pull request #5341 from rohitwaghchaure/support_week_1
[Fix] Warranty claim form, unexpected token illegal error
2016-05-14 13:16:48 +05:30
Rushabh Mehta
c9bfc47854 Merge pull request #5347 from kressi/docfix
cleanup up docs
2016-05-13 21:50:21 +05:30
kressi
0179909db2 Merge branch 'develop' into docfix 2016-05-13 15:40:33 +02:00
kressi
472a84ab13 fixed broken links and links to content in different language 2016-05-13 15:22:22 +02:00
Umair Sayyed
e44d1430e1 fixes in domainification. Also reordered some fields in BOM 2016-05-13 18:31:20 +05:30
kressi
28737b6808 fixed formatting and punctuation 2016-05-13 14:37:42 +02:00
Umair Sayyed
90cea14ce3 domanifying EPRNext, fixes #5334 2016-05-13 18:06:17 +05:30
Umair Sayyed
99f7528578 domanifying ERPNext via #5334 2016-05-13 18:06:17 +05:30
Rushabh Mehta
9c6c0d2836 [patch] [fix] 2016-05-13 17:50:33 +05:30
kressi
e7c773310b fixed typos and inconsistencies 2016-05-13 13:20:25 +02:00
Rushabh Mehta
d774f40497 remove print in homepage 2016-05-13 16:21:37 +05:30
Nabin Hait
665568d87e ignore permissions while creating records from charts builder portal 2016-05-13 15:56:11 +05:30
Nabin Hait
a21f49dd94 Tax rate in chart of accounts 2016-05-13 15:56:11 +05:30
Nabin Hait
e4670a9a45 Cleaned up chart of accounts 2016-05-13 15:56:11 +05:30
Rushabh Mehta
6cdebc0baf Merge pull request #5343 from kressi/patch-1
fixed typo
2016-05-12 19:50:19 +05:30
Michael Kressibucher
c53df03262 fixed typo 2016-05-12 15:14:52 +02:00
Rohit Waghchaure
8904730cd4 [Fix] Removed is_pro_applicable 2016-05-12 18:03:08 +05:30
Rohit Waghchaure
a92560c851 [Fix] Warranty claim form, unexpected token illegal error 2016-05-12 16:30:56 +05:30
Rushabh Mehta
48c7658aee [minor] added set_value in domainify 2016-05-12 16:26:01 +05:30
Rushabh Mehta
4b9238a03b [cleanup] homepage 2016-05-12 15:23:17 +05:30
Nabin Hait
825070e504 Merge pull request #5331 from nabinhait/multi-fix-55
Multiple fixes
2016-05-12 12:27:42 +05:30
François
d9f7364289 Update make-field-visible-in-print-format.md
Change a few typo
2016-05-12 06:32:40 +02:00
Rohit Waghchaure
29c7876e87 [Fixes] RFQ minor fixes 2016-05-11 19:38:29 +05:30
Neil Trini Lasrado
0b1d7c032a Update manufacturing-settings.md 2016-05-11 16:47:55 +05:30
Rushabh Mehta
d42167e0e5 [cleanup] remove Features Setup 2016-05-11 16:47:14 +05:30
Rushabh Mehta
2dd0581134 [added] domainify.py 2016-05-11 15:14:15 +05:30
Nabin Hait
b81ed45b2b fixed conflict 2016-05-11 12:52:31 +05:30
Nabin Hait
b3a0e05bae included path fixed in report print formats 2016-05-11 12:38:11 +05:30
Nabin Hait
a1ec7f1eed Add root account 2016-05-11 12:38:11 +05:30
Rushabh Mehta
3edc453506 Merge pull request #5330 from IAGAdmin/patch-2
Update concepts-and-terms.md
2016-05-11 10:54:25 +05:30
IAGAdmin
63b33d0478 Update concepts-and-terms.md 2016-05-11 09:43:10 +08:00
Rushabh Mehta
d95b4a5c5b [minor] added beta for homepage 2016-05-10 17:46:28 +05:30
Anand Doshi
a3f20ae9e6 Merge pull request #5329 from KanchanChauhan/shoppingcart-cleanup
Shopping Cart error messages issue resolved
2016-05-10 17:35:02 +05:30
Kanchan Chauhan
1d79f350bc Shopping Cart error messages issue resolved 2016-05-10 17:19:47 +05:30
Rushabh Mehta
acf45f7b72 Merge pull request #5294 from rohitwaghchaure/pos
[WIP][Enhancement] Online and Offline POS
2016-05-10 11:25:20 +05:30
Rohit Waghchaure
6087fe178e [Enhancement] POS 2016-05-09 23:36:15 +05:30
Anand Doshi
e00a20d99d Merge pull request #5284 from kickapoo/develop
Add (optional) Country field to Buying.Supplier DocType (fixes #5223)
2016-05-09 16:58:30 +05:30
Anand Doshi
969863541d Merge pull request #5323 from KanchanChauhan/shoppingcart-changes
Shopping cart dropdown changes
2016-05-09 16:57:08 +05:30
Anand Doshi
c2ade3d34f Merge pull request #5298 from neilLasrado/sal-slip
Moved email salary slip to employee under HR Settings
2016-05-09 16:56:51 +05:30
Neil Trini Lasrado
b2b0b37cc1 Added reference_doctype and reference_name to link Bulk Email to Salary Slip 2016-05-09 13:24:31 +05:30
Kanchan Chauhan
b3573a881e Shopping cart dropdown changes 2016-05-09 12:30:58 +05:30
Nabin Hait
332d29f166 Merge branch 'master' into develop 2016-05-06 16:13:35 +05:30
Anand Doshi
b35abf1125 Merge pull request #5316 from vjFaLk/patch-4
Minor link fix
2016-05-06 15:51:22 +05:30
Valmik
5fb86ce570 Minor link fix 2016-05-06 12:06:40 +05:30
Anand Doshi
b114f73cfe Merge pull request #5299 from vjFaLk/alert-docs
Updated Email Alert docs
2016-05-04 16:14:28 +05:30
Valmik Jangla
f3c203ba2c Updated Email Alert docs 2016-05-02 18:24:17 +05:30
Rushabh Mehta
c711b82889 Merge pull request #5296 from KanchanChauhan/websitemakeover
New look to the website
2016-05-02 15:54:41 +05:30
Nabin Hait
f3bff49799 Merge branch 'master' into develop 2016-05-02 15:19:17 +05:30
Rushabh Mehta
360b05f0f5 [enhancement] activity summary in projects 2016-05-02 14:13:38 +05:30
Nabin Hait
863cb12426 minor fix 2016-05-02 13:48:27 +05:30
Rushabh Mehta
764aa92da4 [minor] added remember_selected in hooks and doc update 2016-05-02 13:28:59 +05:30
Neil Trini Lasrado
71e93d6691 Added test cased 2016-05-02 12:04:20 +05:30
Neil Trini Lasrado
b14af59d39 Moved send email checkbox from salary slip to a global setting under hr settings 2016-05-02 12:04:19 +05:30
Kanchan Chauhan
239b351367 New look to the website 2016-05-02 11:43:44 +05:30
Nabin Hait
b78adcf279 Merge branch 'master' into develop 2016-04-29 18:26:46 +05:30
Rushabh Mehta
be2ee18de4 [fixed] frappe.require is now async 💥 2016-04-29 17:22:42 +05:30
Rushabh Mehta
127de729b2 [fix] making time log entry easier, to time not mandatory while making time log and Finish button 2016-04-29 14:19:21 +05:30
Anand Doshi
49e470035d [fix] removed rename_item_field patch 2016-04-29 12:50:07 +05:30
Rushabh Mehta
1aa1c8a9ef [minor] remove hide_first in forms 2016-04-29 12:20:23 +05:30
Nabin Hait
6146cc1e33 Merge branch 'master' into develop 2016-04-29 11:44:55 +05:30
Nabin Hait
fecccbfbb3 Merge pull request #5262 from nabinhait/fixed_asset_update
Fixed asset graphs and movement
2016-04-29 11:42:53 +05:30
Stavros Anastasiadis
5bd40db0ba Add (optional) Country field to Buying.Supplier DocType (fixes #5223)
Most companies have a headquarter country;
2016-04-28 18:06:45 +03:00
Nabin Hait
f2008b95e8 [docs] Fixed asset movement 2016-04-28 18:40:58 +05:30
Nabin Hait
48577c15a2 Show all scheduled depreciation in dotted line 2016-04-28 18:12:41 +05:30
Nabin Hait
70f05df075 Asset Movement 2016-04-28 18:01:32 +05:30
Nabin Hait
ce35c56cd3 Added line graph in asset dashboard 2016-04-28 18:01:32 +05:30
Nabin Hait
92426f5e56 Added Image field in Asset 2016-04-28 18:01:32 +05:30
Rushabh Mehta
69d293db08 [removed] issue/pull request template 2016-04-28 15:06:36 +05:30
Rushabh Mehta
3c809c60cd Merge pull request #5275 from vjFaLk/patch-3
Delete Contributing.md
2016-04-28 11:04:32 +05:30
Valmik
6b3c829e4e Delete Contributing.md
Existing file in .github folder
2016-04-28 10:28:32 +05:30
Anand Doshi
79c536acb5 Merge branch 'master' into develop 2016-04-27 15:44:11 +05:30
Anand Doshi
c6479bcbb6 Merge pull request #5264 from neilLasrado/hotfix
Fixed Currency Symbol in Trial Balance and Trial Balance for Party re…
2016-04-27 12:32:05 +05:30
Rushabh Mehta
5dfe20ce17 [fix] frappe.require in stock_entry.js 2016-04-26 12:59:08 +05:30
ShashaQin
4303164ae0 Update opportunity.py 2016-04-26 14:49:34 +08:00
Rushabh Mehta
3d2622ce91 [refacator] added dashboard in item 2016-04-25 17:53:42 +05:30
Neil Trini Lasrado
b93d525c96 Fixed Currency Symbol in Trial Balance and Trial Balance for Party reports 2016-04-25 17:18:52 +05:30
Rushabh Mehta
0fa7b7c4f2 [test] [fix] default cost_center 2016-04-23 11:11:10 +05:30
Anand Doshi
ed3c0123e5 Merge branch 'enhancement/products-in-list' into develop 2016-04-22 19:10:57 +05:30
Anand Doshi
a6f48688bc [enhancement] website: optionally show products as list 2016-04-22 19:10:49 +05:30
Anand Doshi
700ff7a127 Merge branch 'KanchanChauhan-WebsiteChanges' into develop 2016-04-22 18:53:39 +05:30
Anand Doshi
e3bd78e912 [css] portal 2016-04-22 18:53:21 +05:30
Kanchan Chauhan
e0818f8f46 Website Changes 2016-04-22 17:47:16 +05:30
Rushabh Mehta
0394aec6a4 [wip] inventory tool 2016-04-22 17:22:22 +05:30
Rushabh Mehta
68d428bfd4 [fix] for sort selector 2016-04-22 13:23:34 +05:30
Nabin Hait
d6bc490274 Merge branch 'master' into develop 2016-04-22 12:24:26 +05:30
Rushabh Mehta
621283c5c5 [enhancement] stock balance page 2016-04-21 19:00:34 +05:30
Rushabh Mehta
cd3c979207 [cleanup] website.less 2016-04-21 13:09:41 +05:30
Rushabh Mehta
202cb7cdf1 Merge pull request #5249 from nabinhait/fixed_asset
Fixed asset
2016-04-21 11:41:11 +05:30
Rushabh Mehta
6c99c65a97 Merge pull request #5244 from vjFaLk/patch-2
Fixed spelling
2016-04-21 11:39:59 +05:30
Rushabh Mehta
c291ab64a6 Merge pull request #5197 from KanchanChauhan/UXChanges_ERPNext
[WIP] No not merge
2016-04-21 11:39:45 +05:30
Rushabh Mehta
f2c3cb85a9 Merge pull request #5164 from KanchanChauhan/project-permissions
Collaborate PM permission fixes and daily tme log fix
2016-04-21 11:37:31 +05:30
Rushabh Mehta
02772442b6 [cleanup] added dashboard in project 2016-04-20 18:45:56 +05:30
Nabin Hait
595d3c03ef updated docs for fixed asset 2016-04-20 18:17:05 +05:30
Nabin Hait
85a2776e91 Depreciation Schedule considering already booked depreciations for existing asset and testcases 2016-04-20 17:57:12 +05:30
Nabin Hait
318fa287df [report] Asset Depreciations and Balances 2016-04-20 17:57:12 +05:30
Nabin Hait
e58c26edca [report] Added asset depreciation ledger report 2016-04-20 17:57:12 +05:30
Nabin Hait
cd0e8ce8ad Fixes and modification in fixed asset 2016-04-20 17:57:12 +05:30
Nabin Hait
3d9c5c0c20 Fixed Asset module cleanup and fixes 2016-04-20 17:57:11 +05:30
Anand Doshi
b2b02a574a Merge branch 'master' into develop 2016-04-20 16:45:20 +05:30
Kanchan Chauhan
11638ba358 Changes 3 2016-04-20 16:24:25 +05:30
Kanchan Chauhan
704f248952 Changes 2 2016-04-20 16:24:24 +05:30
Kanchan Chauhan
2dbf5294a9 [WIP] No not merge 2016-04-20 16:24:24 +05:30
Valmik
12bff6ed7c Fixed spelling 2016-04-20 13:55:48 +05:30
Nabin Hait
867dfec64b Reload bin in reserved qty reposting patch 2016-04-20 11:53:34 +05:30
Anand Doshi
4e30b84d88 [fix] templates for pull request and issues 2016-04-19 13:13:08 +05:30
Rushabh Mehta
2c49473df8 Merge pull request #5234 from MaxMorais/patch-3
get_address_display calling method error
2016-04-18 23:07:57 +05:30
Rushabh Mehta
4e6402e418 Merge pull request #5230 from vjFaLk/gh-templates
[Fix] Added Discuss link in Issue Template
2016-04-18 23:04:09 +05:30
Maxwell Morais
52ec0fa7e9 get_address_display calling method error
get_address_display, dont can be use in replacement as a function in the doctype controler, since it dont expect `cdt` and `cdn` as arguments.

972c25f78d/erpnext/public/js/utils/party.js (L53)
2016-04-18 13:24:25 -03:00
Rushabh Mehta
0525387328 [enhancement] added reserved_qty_for_production in bin and updated item dashboard 2016-04-18 19:27:46 +05:30
Nabin Hait
c46c1f0288 [fix] Rejected serial nos in purchase invoice 2016-04-18 17:46:36 +05:30
Nabin Hait
972224e71a Merge branch 'saurabh6790-pi_update_stock' into develop 2016-04-18 17:01:57 +05:30
Nabin Hait
14aa9c5320 [fix] Cleanup and fixes in update stock feature in Purchase Invoice 2016-04-18 16:59:47 +05:30
Nabin Hait
ffd1e4efe6 Removed db_set from inside validate 2016-04-18 15:58:44 +05:30
Saurabh
7fee1b8343 [fixes] set expence account to item on sales invoice 2016-04-18 15:58:43 +05:30
Saurabh
224737b9ed [fixes] split make gl entry function into chuncks as per SI 2016-04-18 15:58:43 +05:30
Saurabh
fbb342c1ac [enhancement] update landed cost on PI via landed cost voucher when update stock is set on PI 2016-04-18 15:58:43 +05:30
Saurabh
130c57b201 [fixes] code clean-up 2016-04-18 15:58:43 +05:30
Saurabh
e29248bcb3 [fixes] test-case to validate quantity after update stock and purchase return and code-cleaning 2016-04-18 15:58:43 +05:30
Saurabh
d697f3d6a3 [minor][fix] reset is_paid if company not selected 2016-04-18 15:58:42 +05:30
Saurabh
43520f93a1 [fixes] test cases, code cleanup. 2016-04-18 15:58:42 +05:30
Saurabh
2a0e2fe95c [test-case] test update stock and payment 2016-04-18 15:57:56 +05:30
Saurabh
4bd34a58ba [fixes] fix perpetual inventory 2016-04-18 15:57:55 +05:30
Saurabh
bd5fc8ecbe [fixes] add posting time 2016-04-18 15:57:55 +05:30
jof2jc
c204775fe2 Added posting_time in purchase invoice 2016-04-18 15:57:55 +05:30
jof2jc
821f571640 added payments, make receipt field 2016-04-18 15:57:55 +05:30
jof2jc
524ebbcbb9 Added Make Receipt (Update Stock) and IsCash option on Purchase Invoice 2016-04-18 15:57:55 +05:30
Valmik Jangla
1bc3455139 Added Discuss link 2016-04-18 15:35:20 +05:30
Rushabh Mehta
092b43bff2 Merge pull request #5229 from vjFaLk/gh-templates
[WIP] Updated Contribution Guidelines and added Templates
2016-04-18 15:24:03 +05:30
Valmik Jangla
463cea3b1b Added Github templates 2016-04-18 15:21:10 +05:30
Rushabh Mehta
17d52becdf [typo] 2016-04-15 16:51:33 +05:30
Rushabh Mehta
86a824c767 [ux] added opening stock and rate in new Item 2016-04-15 16:44:44 +05:30
Rushabh Mehta
e8e9440b06 [fix] [tests] 2016-04-15 15:19:35 +05:30
Rushabh Mehta
be2dde468d [enhance] set material request title as comma separated list of items 2016-04-15 15:11:06 +05:30
Rushabh Mehta
a305c29b0e [cleanup] remove is_pro_applicable 2016-04-15 15:03:16 +05:30
Nabin Hait
18f0dd0a6d [translations] 2016-04-15 14:50:45 +05:30
Rushabh Mehta
4cb163903e Merge pull request #5210 from jinayG/patch-1
Update README.md
2016-04-15 14:12:47 +05:30
Rushabh Mehta
dd9a973a0b Merge pull request #5216 from umairsy/is-sales-purchase
Removed Is Sales Item and Is Purchase Item
2016-04-15 14:12:14 +05:30
Rushabh Mehta
f4c25b13e2 [fix] update total_projected_qty in bin.py 2016-04-15 13:01:09 +05:30
Umair Sayyed
72534deea2 removed Is Sales Item and Is Purchase Item 2016-04-15 12:57:00 +05:30
Rushabh Mehta
c65726bf07 [patch] hide new icons if equivalent old ones are set 2016-04-15 12:51:28 +05:30
Rushabh Mehta
18fc39b609 [feature] progress bars on production order 2016-04-15 11:24:19 +05:30
Nabin Hait
bd07ea43e8 fixed conflict 2016-04-15 11:06:41 +05:30
Anand Doshi
48d0a9953d [travis] 2016-04-14 18:59:11 +05:30
Nabin Hait
972c25f78d Fixed conflict 2016-04-14 18:25:53 +05:30
Rushabh Mehta
15a7f215b9 [enhancement] heatmaps on item and notifications for item 2016-04-14 17:30:53 +05:30
jinayG
554884b7d2 Update README.md 2016-04-14 16:24:46 +05:30
Rushabh Mehta
6fb803e181 Merge pull request #5209 from umairsy/field-arrangment
address and contact related fields re-arranged in the sales transacti…
2016-04-14 14:24:59 +05:30
Umair Sayyed
6269f1e3d0 address and contact related fields re-arranged in the sales transactions fixes #5192 2016-04-14 13:07:41 +05:30
Rushabh Mehta
dc2a95aafc Merge pull request #5207 from ShashaQin/patch-44
Update project.py
2016-04-14 10:29:21 +05:30
ShashaQin
14baa70de3 Update project.py 2016-04-14 10:53:08 +08:00
Anand Doshi
65f2d92437 Merge branch 'vjFaLk-remove-celery' into develop 2016-04-13 19:28:56 +05:30
Valmik Jangla
4af736b989 Moved tasks content to newsletter.py 2016-04-13 19:11:55 +05:30
Rushabh Mehta
8c9c57c8f3 [minor] update party timestamp after transaction 2016-04-13 18:22:06 +05:30
Rushabh Mehta
0e2dd859b0 [cleanup] link dashboard for customer, supplier, item, employee and hide form by default 2016-04-13 17:22:09 +05:30
Nabin Hait
4b09f48d94 Merge pull request #5195 from nabinhait/stock_non_stock_item_toggle
Dont allow to toggle stock and non-stock settings if any transaction exists against the item
2016-04-13 11:40:45 +05:30
Rushabh Mehta
8bbca6fa2e [enhancement] links menu in customer, supplier, item 2016-04-12 19:16:33 +05:30
Nabin Hait
dd94d4e43d Dont allow to toggle stock and non-stock settings if any transaction exists against the item 2016-04-12 19:00:50 +05:30
Valmik Jangla
6842f2e75c WIP code migration from Celery to RQ 2016-04-11 17:41:34 +05:30
Rushabh Mehta
5d0e8dee11 [fix] dashboard for customer, supplier 2016-04-11 17:34:49 +05:30
Nabin Hait
126ef64203 Merge pull request #5133 from rohitwaghchaure/new_rfq
[Fixes]Portal, Supplier can view their addresses, default buying price list …
2016-04-11 15:17:15 +05:30
Rohit Waghchaure
ae270d6648 [Fixes] Supplier can view their addresses, default buying price list issue 2016-04-11 13:58:33 +05:30
Rushabh Mehta
f4d1b18895 [hooks] notify party on_change 2016-04-11 11:34:59 +05:30
Nabin Hait
4e10a61141 Merge pull request #5169 from nabinhait/patch_fix1
[fix] Fixed party update status patch
2016-04-09 16:13:40 +05:30
Nabin Hait
e1433aab30 [fix] Fixed party update status patch 2016-04-09 16:12:40 +05:30
Kanchan Chauhan
a4ff5d3195 Collaborate PM permission fixes and daily tme log fix 2016-04-08 23:22:04 +05:30
Rushabh Mehta
2dff9275f3 [test] fixed circular dependencies 2016-04-08 18:05:12 +05:30
Rushabh Mehta
6fe962e6ad [test] fixed circular dependencies 2016-04-08 17:55:11 +05:30
Rushabh Mehta
bdefa2414f [test] [fix] test-dependency 2016-04-08 17:40:06 +05:30
Rushabh Mehta
8cd1ab894c [minor] [fix] notifications for customer, supplier 2016-04-08 17:26:53 +05:30
Rushabh Mehta
dda1349a2d [minor] [fix] typo in customer_list.js 2016-04-08 17:22:52 +05:30
Rushabh Mehta
f16f9c569b [enhancement] add status in customer, supplier 2016-04-08 17:21:00 +05:30
Rushabh Mehta
203cc962f5 [enhancement] Item Selector 2016-04-08 17:21:00 +05:30
Anand Doshi
9b8937d257 Merge pull request #5157 from agusputra/patch-29
Update quotation.md
2016-04-08 16:37:13 +05:30
Anand Doshi
47d8c52281 Merge branch 'neilLasrado-develop' into develop 2016-04-08 16:36:35 +05:30
Neil Trini Lasrado
cb6430575b Fixed validation message for disabled employee 2016-04-08 16:36:26 +05:30
Anand Doshi
1dd6329e5b Merge branch 'shreyasp-matl-req-non-stock-item' into develop 2016-04-08 16:32:30 +05:30
shreyas
ffeacb299d [Fix] Show a message while user tries to create Material request with BOM which contains only non-stock item 2016-04-08 16:32:19 +05:30
Agus Syahputra
155edfc43e Update quotation.md 2016-04-08 17:55:04 +07:00
Anand Doshi
3af1b00e4e [fix] BOM name in test_records.json 2016-04-08 16:21:03 +05:30
Anand Doshi
e6e7cd90c9 Merge pull request #5143 from KanchanChauhan/somefixes
[Minor Fixes] Findings in setting up erpnext
2016-04-08 16:20:11 +05:30
Anand Doshi
96ed4c394e Merge pull request #5156 from agusputra/patch-28
Update opening-stock.md
2016-04-08 15:07:45 +05:30
Agus Syahputra
34f6145e9d Update opening-stock.md 2016-04-08 16:35:59 +07:00
Anand Doshi
abf2796517 Merge pull request #5150 from shreyasp/move-company-fld-stock-entry
[Fix] Move company field to top of the Stock Entry form
2016-04-07 16:55:07 +05:30
shreyas
b94b94afd9 [Fix] Move company field to top of the Stock Entry form 2016-04-07 16:25:29 +05:30
Kanchan Chauhan
017d30f465 [Minor Fixes] Findings in setting up erpnext 2016-04-06 19:28:50 +05:30
Rushabh Mehta
78b7a53635 [cleanup] set default bold, print_hide for prints 2016-04-06 15:29:45 +05:30
Anand Doshi
a32b3ea3e8 Merge pull request #5115 from nabinhait/test_fix
[fix] Test cases
2016-04-04 17:43:02 +05:30
Anand Doshi
cd3ae0bb50 Merge pull request #5121 from kaflesudip/develop
Add User Remark to Quick Entry Form in Journal Entry
2016-04-04 17:07:21 +05:30
Rushabh Mehta
d690094b12 [image] added default image field for employee, customer, item, contact, lead, supplier and using - instead of / as separator in BOM 2016-04-04 16:57:56 +05:30
Anand Doshi
1d50bbfad1 Merge pull request #5129 from KanchanChauhan/POS-Search
[Minor Fix]POS Search Fixed
2016-04-04 15:22:39 +05:30
Kanchan Chauhan
7379fd4b9a POS Search Fixed 2016-04-04 14:39:29 +05:30
sudip
0e55417f81 Add User Remarks to Quick Entry Form in Journal Entry 2016-04-02 08:42:42 +05:45
Nabin Hait
adddf6f471 [fix] Test cases 2016-04-01 16:47:46 +05:30
Rushabh Mehta
5ea0799f83 Merge pull request #5113 from rohitwaghchaure/new_rfq
[Fix] Minor fix
2016-04-01 14:41:16 +05:30
Rohit Waghchaure
e4b5fcb6e8 [Fix] Minor fix 2016-04-01 14:09:29 +05:30
Rushabh Mehta
0c76f21f81 [minor] absolute links for portal menu 2016-04-01 11:54:01 +05:30
Rushabh Mehta
87736b7fc3 Merge pull request #5109 from agusputra/patch-27
Update managing-batch-wise-inventory.md
2016-04-01 11:44:27 +05:30
Rushabh Mehta
948ebfef16 Merge pull request #5108 from neilLasrado/expense-querry
Fixed bug in get expense query
2016-04-01 11:44:11 +05:30
Rushabh Mehta
8aa24232cf Merge pull request #5103 from bohlian/develop
Set Resolution Date to include Time
2016-04-01 11:41:57 +05:30
Rushabh Mehta
7d480879ae Merge pull request #5102 from agusputra/patch-26
Update managing-assets.md
2016-04-01 11:41:39 +05:30
Rushabh Mehta
8ca426d94a Merge pull request #5095 from rohitwaghchaure/new_rfq
[Enhancement] Added currency symbol on RFQ form of supplier portal, currency validation for party
2016-04-01 11:41:15 +05:30
Rushabh Mehta
fff8e6c733 Merge pull request #5080 from nabinhait/fy_overlap
[fix] Added overlap validation in fiscal year
2016-04-01 11:37:03 +05:30
Agus Syahputra
623f9f6bef Update managing-batch-wise-inventory.md 2016-04-01 12:21:26 +07:00
Neil Trini Lasrado
30b97b0b45 Fixed bug in get expense query 2016-03-31 23:10:13 +05:30
rohitwaghchaure
62fea0374b [Enhancement] Added currency symbol on RFQ form of supplier portal, currency validation for party 2016-03-31 21:49:07 +05:30
Rushabh Mehta
b04409746e [fix] tests 2016-03-31 16:55:21 +05:30
Javier Wong
6487b525d0 Set Resolution Date to include Time 2016-03-31 18:27:36 +08:00
Agus Syahputra
c30dc6d2e6 Update managing-assets.md 2016-03-31 17:12:41 +07:00
Rushabh Mehta
45c6b550f0 [cleanup] assets and made items mandatory in transactions 2016-03-31 15:37:51 +05:30
Rushabh Mehta
acf28af19c [fix] set default depreciation accounts and test fix 2016-03-31 15:04:06 +05:30
Rushabh Mehta
cb144bfcd4 [cleanup] projects 2016-03-31 14:27:35 +05:30
Nabin Hait
2ed0b59747 [fix] Added overlap validation in fiscal year 2016-03-31 12:40:37 +05:30
Rushabh Mehta
8497784c4c Merge pull request #5098 from nabinhait/multi_fix6
Multi fixes
2016-03-31 12:25:20 +05:30
Nabin Hait
33f42aaad1 [fix] Get email field if field type is Code, Text, Small Text or Data 2016-03-31 11:59:10 +05:30
Nabin Hait
91a58808c0 [fix] Allowed deletion of root account 2016-03-31 11:59:10 +05:30
Nabin Hait
6123560f51 Merge pull request #5076 from vjFaLk/develop
Fix for Opportunity
2016-03-31 11:55:07 +05:30
Nabin Hait
1d04a23a00 Merge pull request #5082 from umairsy/perm-issue-2
[Fix] changed permission for the Stock Ledger Entry
2016-03-31 11:54:28 +05:30
Nabin Hait
b664cabeef Merge pull request #5096 from nabinhait/test_case_fix
Test case fix
2016-03-31 11:53:07 +05:30
Rushabh Mehta
2d985e1973 [fix] edit-profile in frappe; 2016-03-30 17:15:33 +05:30
Rushabh Mehta
72b4ad8155 [cleanup] for quick-entry 2016-03-30 15:42:22 +05:30
Nabin Hait
9501a1e034 Links for fixed assets added in accounts module page 2016-03-30 15:06:26 +05:30
Nabin Hait
684052e978 [fix] Permissions added in asset and asset category 2016-03-30 15:06:25 +05:30
Nabin Hait
7fcec4118b [fix] Test case 2016-03-30 15:06:25 +05:30
Anand Doshi
62ae39441d Merge pull request #5091 from rmehta/portal-settings
[enhancement] configurable portal menu, fixes #5087
2016-03-30 14:38:11 +05:30
Rushabh Mehta
3fc6fdeba0 [cleanup] for quick-entry 2016-03-30 13:18:30 +05:30
Rushabh Mehta
c78b3110b5 [enhancement] configurable portal menu; 2016-03-30 12:29:48 +05:30
Rushabh Mehta
df7e523c3f [fix] web forms for collaborative pm 2016-03-30 11:00:42 +05:30
Rushabh Mehta
8b43fd7f02 Merge pull request #5084 from KanchanChauhan/PM-UI-Edits
UI Changes
2016-03-29 18:45:58 +05:30
Kanchan Chauhan
b566d42d37 UI Changes 2016-03-29 18:21:59 +05:30
Nabin Hait
e8e2d406b5 minor fix 2016-03-29 18:17:03 +05:30
Rushabh Mehta
bb8c6de043 [opt] transaction.js 2016-03-29 17:52:22 +05:30
Rushabh Mehta
652dee45a6 [minor] make margin collapsible 2016-03-29 16:42:13 +05:30
Rushabh Mehta
1d05ada5e9 Merge pull request #4950 from nabinhait/fixed_asset_depreciation
Fixed asset depreciation
2016-03-29 16:39:31 +05:30
Rushabh Mehta
7a1b5da830 [cleanup] request for quotation cleanup 2016-03-29 16:04:43 +05:30
Rushabh Mehta
22fe3a8b7e Merge pull request #5081 from nabinhait/trans_fix
[fix] Translations
2016-03-29 15:16:07 +05:30
Rushabh Mehta
b5aa50de06 [fix] select default company in chart of accounts 2016-03-29 14:41:20 +05:30
Umair Sayyed
6481ab23ce [Fix] changed permission for stock ledger entry 2016-03-29 13:35:46 +05:30
Nabin Hait
d9449e396f [fix] Translations 2016-03-29 13:22:31 +05:30
Anand Doshi
aad384c669 Merge pull request #5078 from umairsy/march2
Manual - Accounts module
2016-03-29 11:59:48 +05:30
Rushabh Mehta
c9850f9e04 Merge pull request #5077 from frappe/master
Master
2016-03-29 11:59:32 +05:30
Umair Sayyed
d6d283b424 edited perpetual inventory system 2016-03-29 11:57:38 +05:30
Umair Sayyed
cf3c371367 update in the Accounts manual 2016-03-29 11:57:38 +05:30
Nabin Hait
fb03b96992 fixed asset fixes 2016-03-29 11:54:38 +05:30
Nabin Hait
7de15321c9 [docs] Managing fixed assets 2016-03-29 11:54:38 +05:30
Nabin Hait
fc937ee370 [docs] managing fixed assets 2016-03-29 11:54:37 +05:30
Nabin Hait
06a41aca13 fixed asset: related accounts added in default chart of accounts 2016-03-29 11:54:37 +05:30
Nabin Hait
7536349f17 Fixed asset: status, restore, testcase and much more 2016-03-29 11:54:37 +05:30
Nabin Hait
4d668dbaa3 [tests] creation of asset and asset category 2016-03-29 11:54:37 +05:30
Nabin Hait
4fdb05228d fixed asset depreciation 2016-03-29 11:54:37 +05:30
Nabin Hait
3a15c92c5e Fixed Asset Depreciation first commit 2016-03-29 11:54:37 +05:30
Rushabh Mehta
3117b4b8d6 [fix] minor for quick-entry 2016-03-29 11:53:17 +05:30
Valmik Jangla
29563275f5 Fix for Opportunity 2016-03-29 11:18:36 +05:30
Rushabh Mehta
9904c5acf4 Merge pull request #5050 from neilLasrado/develop
Fixes Translations
2016-03-29 10:51:44 +05:30
Rushabh Mehta
fd9ead3cb6 Merge pull request #5072 from rohitwaghchaure/new_rfq
[Fix] Minor changes
2016-03-29 10:10:14 +05:30
rohitwaghchaure
f480f0fd1e [Fix] Minor changes 2016-03-28 18:52:59 +05:30
Rushabh Mehta
d3fdbaa261 Merge pull request #5041 from nabinhait/recurring_doc_amend
[fix] Reset recurring id on amendment
2016-03-28 18:29:44 +05:30
Rushabh Mehta
0a9ad699cf Merge pull request #5047 from umairsy/task-list-fix
On Task, added default filter, Status=Open
2016-03-28 18:28:09 +05:30
Rushabh Mehta
e1b20a0b29 Merge pull request #5044 from rohitwaghchaure/add_margin_feature
[Enhancement] Add margin in sales flow.
2016-03-28 18:27:05 +05:30
Rushabh Mehta
730b66b1dd Merge pull request #4921 from rohitwaghchaure/new_rfq
[enhancement] request for quotation
2016-03-28 18:22:02 +05:30
rohitwaghchaure
a1064a6149 [enhancement] request for quotation 2016-03-28 17:28:45 +05:30
Rushabh Mehta
fe027b34a9 [bot] first bot 2016-03-28 13:21:48 +05:30
Neil Trini Lasrado
b6d9946854 Fixes Translations 2016-03-28 12:44:05 +05:30
rohitwaghchaure
6d1b5d618a [enhancement] request for quotation 2016-03-28 12:13:07 +05:30
rohitwaghchaure
44d0449895 [enhancement] request for quotation 2016-03-28 12:13:07 +05:30
Rushabh Mehta
d5bf8253da [fix] job application link, fixes #5066 2016-03-28 11:30:05 +05:30
Rushabh Mehta
c20c536f28 [fix] [wip] cleanup for collaborative pm 2016-03-25 17:22:17 +05:30
Rushabh Mehta
cd4bede04f Merge pull request #5060 from rohitwaghchaure/issue_fixes
[fixes] Set default company's letter head in purchase flow
2016-03-25 13:48:58 +05:30
rohitwaghchaure
f3f2ecf968 [fixes] Set default company's letter head in purchase flow 2016-03-25 12:57:50 +05:30
Rushabh Mehta
ef5ea4579d Merge pull request #5059 from KanchanChauhan/PM-fixes-25Mar
Minor fixes
2016-03-25 12:09:47 +05:30
Kanchan Chauhan
53ce94f9bd Minor fixes 2016-03-25 12:04:54 +05:30
mbauskar
a52472cf5b [fixes] added fields in SI and DN, moved the margin calculation to to pricing_rule.py 2016-03-24 14:07:51 +05:30
mbauskar
a720c89535 [docs] documentation for adding margin in Quoation and SO 2016-03-24 14:07:51 +05:30
mbauskar
c1331d0e8e [minor-fix] pricing rule test-case fix 2016-03-24 14:07:51 +05:30
mbauskar
75b6fbb6a7 [fix] apply pricing rule added type and rate on ignore pricing rule trigger 2016-03-24 14:07:50 +05:30
mbauskar
b6d19bcfc2 [fixes] minor fixes, added eval on pricing rule, Sales Order Item, Quotation Item 2016-03-24 14:07:50 +05:30
mbauskar
6f60339e75 [fix] total margin calculations 2016-03-24 14:07:50 +05:30
mbauskar
dcd8b7773d [fix] calculated rate on py side, added depends on for sales order item 2016-03-24 14:07:50 +05:30
mbauskar
1e428ae400 [fix] function to calculate the revised margin and rate 2016-03-24 14:07:50 +05:30
mbauskar
46c97c6e95 [fix] discount percentage fix 2016-03-24 14:07:50 +05:30
mbauskar
5e76a1cffa [fix] added eval for total margin and margin rate field 2016-03-24 14:07:50 +05:30
mbauskar
e40736c105 test case for quotation 2016-03-24 14:07:49 +05:30
mbauskar
b8b56f127f fetched the markup type and rate of selected item 2016-03-24 14:07:49 +05:30
mbauskar
c79415eb96 added rate and total margin in price_list 2016-03-24 14:07:49 +05:30
mbauskar
36b5189163 calculated the rate and total margin 2016-03-24 14:07:49 +05:30
mbauskar
c97becbd15 added document type in args 2016-03-24 14:07:49 +05:30
mbauskar
5738dd473c set the target.ignore_pricing_rule to 0 2016-03-24 14:07:49 +05:30
mbauskar
1e9c1640fa triggers on Margin type and Margin rate fields to calculate the revised Total Margin and Rate 2016-03-24 14:07:49 +05:30
mbauskar
ea60c635ab changed the description of rate fields depending on margin type and if ignore pricing is unchecked returned the rate=0 2016-03-24 14:07:48 +05:30
mbauskar
8c8fa17a9b [new fields] added Margin type (Percetage/Amount) and Rate field to capture Margin details in Pricing Rule, Sales Order Item, Quotation Item 2016-03-24 14:07:48 +05:30
Rushabh Mehta
cd66c5c972 Merge pull request #5052 from DrTrills/patch-2
Update quotes.py
2016-03-24 13:01:13 +05:30
DrTrills
6e9c8916c0 Update quotes.py
Added a fun fact to change it up
2016-03-23 18:27:34 -04:00
Anand Doshi
622837fcac [travis] 2016-03-23 22:27:02 +05:30
Anand Doshi
bc04489b85 [travis] 2016-03-23 22:22:27 +05:30
Rushabh Mehta
b2269dd326 [fix] back links from project web view 2016-03-23 18:29:00 +05:30
Umair Sayyed
99a686237a On Task, added default filter, Status=Open 2016-03-23 15:00:51 +05:30
Rushabh Mehta
1058bd0ae0 Merge pull request #5046 from KanchanChauhan/PMForms
Added task and issue webforms and few fixes
2016-03-23 14:50:14 +05:30
Kanchan Chauhan
e14389ec6e Added task and issue webforms and few fixes 2016-03-23 14:14:38 +05:30
Rushabh Mehta
2d832bba70 Merge pull request #5043 from neilLasrado/warehouse
Validate purchase item only if material request type is purchase
2016-03-23 12:28:07 +05:30
Neil Trini Lasrado
240f629458 Validate purchase item only if material request type is purchase 2016-03-23 12:13:23 +05:30
Anand Doshi
1947b1784e [minor] removed typo in order.html 2016-03-23 12:12:41 +05:30
Nabin Hait
7504ea7033 [fix] Reset recurring id on amendment 2016-03-23 12:07:34 +05:30
Rushabh Mehta
bd8d288255 Merge pull request #4993 from KanchanChauhan/collaborativeprojectmanagement
[WIP] Collaborative Project Management first commit
2016-03-23 12:02:22 +05:30
Anand Doshi
6a17205dcd Merge pull request #5042 from frappe/revert-5028-paypal-cleanup
Revert "[cleanup] PayPal payment UX and moved related methods to hooks of respective apps"
2016-03-23 11:59:39 +05:30
Anand Doshi
a75fe1a4c3 Revert "[cleanup] PayPal payment UX and moved related methods to hooks of respective apps" 2016-03-23 11:59:24 +05:30
Rushabh Mehta
eec21d041c Merge pull request #5028 from anandpdoshi/paypal-cleanup
[cleanup] PayPal payment UX and moved related methods to hooks of respective apps
2016-03-23 11:50:46 +05:30
Rushabh Mehta
17da0b8f8b Merge pull request #5035 from rmehta/warehouse-buttons
[enhancement] [minor] stock ledger, general ledger buttons in warehouse
2016-03-23 11:50:30 +05:30
Rushabh Mehta
1e7ca6c77a Merge pull request #5023 from nabinhait/balance_sheet_opening
[fix][balance sheet] Check if precious fiscal  year is closed
2016-03-23 11:46:13 +05:30
Rushabh Mehta
b07b06dde0 Merge pull request #5011 from neilLasrado/develop
[WIP] - Added Project to Manufacturing
2016-03-23 11:45:35 +05:30
Nabin Hait
76db1d702f Merge pull request #5034 from rmehta/letter-head-in-salary
[fix] default letter in salary slip comes from customized default or company and optimized boot for curreny
2016-03-23 11:38:20 +05:30
Rushabh Mehta
3cc9b3ef08 [enhancement] [minor] stock ledger, general ledger buttons in warehouse 2016-03-22 16:18:01 +05:30
Kanchan Chauhan
2ad801cfd8 Minor Updates 2016-03-22 16:00:41 +05:30
Rushabh Mehta
e29192c197 [fix] default letter in salary slip comes from customized default or company and optimized boot for curreny 2016-03-22 14:52:25 +05:30
Rushabh Mehta
79a6fc9a84 [fix] recurring patch for purchase 2016-03-22 11:01:31 +05:30
Anand Doshi
71b90b7b7d [cleanup] PayPal payment UX and moved related methods to hooks of respective apps 2016-03-21 17:50:02 +05:30
Nabin Hait
443a7c13e4 [fix][balance sheet] Check if previous fiscal year is closed 2016-03-21 14:38:32 +05:30
Neil Trini Lasrado
11dafa27ba Added Project to materail request 2016-03-21 12:40:42 +05:30
Neil Trini Lasrado
c7f53ff318 Added Project filter to Production Planning Tool 2016-03-21 12:40:42 +05:30
Kanchan Chauhan
b3fe6a45a7 WIP Collaborative Project Management first commit 2016-03-16 18:34:33 +05:30
1503 changed files with 131800 additions and 94422 deletions

61
.github/CONTRIBUTING.md vendored Normal file
View File

@@ -0,0 +1,61 @@
##General Overview
We have three branches where all the work happens:
* **master** - This is the stable branch based on which we do releases. This branch is for production.
* **develop** - This is an unstable branch for development purposes, it has bleeding edge features and fixes, but it's not recommended for production. Bug fixes and new features go here.
* **hotfix** - This is a branch dedicated to hotfixes on the master branch. Urgent bug fixes go here.
Once we deem the develop branch to be stable, we merge it into the master and do a major release. The hotfix branch is solely for making urgent bug fixes on the current master branch, which we then merge into master.
We almost never push directly to master.
***
##Workflow
Contributing to ERPNext is not very different from the usual Pull Request workflow on GitHub.
###Prerequisites :
* You need to know [Git and Github basics](https://try.github.io/levels/1/challenges/1)
* You need to have a Fork of the [ERPNext repo](https://github.com/frappe/erpnext) in your personal Github account
* You need to add a [remote](#glossary) for your Forked repository. `git remote add origin [your-erpnext-repo-url]`
###The Process:
1. Make sure you're in the right branch. **develop** for adding features / fixing issues and **hotfix** for urgent bug fixes
2. Make your changes
3. Create and checkout a new branch for the changes you've made. `git checkout -b [branch-name]`
4. Add and commit your changes `git commit -am "[commit-message]"
5. If you have been working on sometime for a long time, you should [rebase](#glossary) your branch with our develop branch. `git pull upstream develop --rebase` where `upstream` is the remote name of our repo
6. Now, push your changes to your fork. `git push origin [branch-name]`
If you rebased your commits, you will have to [force push](http://vignette2.wikia.nocookie.net/starwars/images/e/ea/Yodapush.png/revision/latest?cb=20130205190454) `git push origin [branch-name] --force`
7. You should now be able to see your pushed branch on Github, now create a pull request against the branch that you want to merge to.
8. Wait for us to review it
###Common Problems:
* During rebase you might face _merge conflicts_. A merge conflict occurs when you have made changes to the same file that someone else has, in the commits you're pulling. You need to resolve these conflicts by picking which code you want to keep, yours or theirs. You can use `git mergetool` for help.
* Sometimes you don't have a local branch to which you want to make changes to. In that case you first run `git fetch` followed by `git checkout --track -b upstream/[branch-name]`
###Good practices:
* You should rebase your branch with the branch you plan to make a Pull Request to as often as you can.
* Your commit messages should be precise and explain exactly what the commit does. Same goes for the Pull Request title.
* When making a PR make sure that all your code is committed properly by checking the diffs.
* If you're working on different things at the same time, make sure you make separate branches for each.
* Don't create new DocTypes unless absolutely necessary. If you find that there is a another DocType with a similar functionality, then please try and extend that functionality.
* DRY. Don't Repeat Yourself. Before writing up a similar function /feature make sure it doesn't exist in the codebase already.
* Tabs, not spaces.
###Glossary
* remote - A remote is a connection to a Github repo. You should have two remotes, one that points to your repo and one to ours.
* rebase - When you rebase a branch, you pull commits from your remote branch and move your commits on top of it. This allows you to update your branch with the latest changes without losing your changes.

View File

@@ -13,7 +13,7 @@ before_install:
install:
- sudo apt-get purge -y mysql-common
- wget https://raw.githubusercontent.com/frappe/bench/master/install_scripts/setup_frappe.sh
- sudo bash setup_frappe.sh --skip-setup-bench --mysql-root-password travis
- sudo bash setup_frappe.sh --skip-setup-bench --mysql-root-password travis --bench-branch develop
- sudo pip install --upgrade pip
- rm $TRAVIS_BUILD_DIR/.git/shallow
- bash $TRAVIS_BUILD_DIR/travis/bench_init.sh
@@ -23,9 +23,8 @@ script:
- cd ~/frappe-bench
- bench get-app erpnext $TRAVIS_BUILD_DIR
- bench use test_site
- bench reinstall
- bench reinstall --yes
- bench build
- bench build-website
- bench start &
- sleep 10
- bench --verbose run-tests --driver Firefox

View File

@@ -1,68 +0,0 @@
# Contributing to Frappe / ERPNext
## Questions
If you have questions on how to use ERPNext or want help in customization or debugging of your scripts, please post on https://discuss.erpnext.com. This is only for bug reports and feature requests.
## Reporting issues
We only accept issues that are bug reports or feature requests. Bugs must be isolated and reproducible problems. Please read the following guidelines before opening any issue.
1. **Search for existing issues:** We want to avoid duplication, and you'd help us out a lot by first checking if someone else has reported the same issue. The issue may have already been resolved with a fix available.
1. **Report each issue separately:** Don't club multiple, unreleated issues in one note.
1. **Mention the version number:** Please mention the application, browser and platform version numbers.
### Issues
1. **Share as much information as possible:** Include operating system and version, browser and version, when did you last update ERPNext, how is it customized, etc. where appropriate. Also include steps to reproduce the bug.
1. **Include Screenshots if possible:** Consider adding screenshots annotated with what goes wrong.
1. **Find and post the trace for bugs:** If you are reporting an issue from the browser, Open the Javascript Console and paste us any error messages you see.
1. **Security Issues:** If you are reporting a security issue, please send a private email to <info@frappe.io>.
### Feature Requests
1. We need as much information you can to consider a feature request.
1. Think about **how** you want us to build the feature. Consider including:
1. Mockups (wireframes of features)
1. Screenshots (annotated with what should change)
1. Screenshots from other products if you want us to implement features present in other products.
1. Basically, the more you help us, the faster your request is likely to be completed.
1. A one line feature request like **Implement Capacity Planning** will be closed.
## Pull Requests
General guidelines for sending pull requests:
#### Don't Repeat Yourself (DRY)
We believe that the most effective way to manage a product like this is to ensure that
there is minimum repetition of code. So before contributing a function, please make sure
that such a feature or function does not exist else where. If it does, the try and extend
that function to accommodate your use case.
#### Don't create new DocTypes Unless Absolutely Necessary
DocTypes are easy to create but hard to maintain. If you find that there is a another DocType with a similar functionality, then please try and extend that functionality. For example, by adding a "type" field to classify the new type of record.
#### Tabs or spaces?
Tabs!
#### Release Checklist
- Describe, in detail, what is in the pull request
- How to use the new feature?
- Test cases
- Change log
- Manual Pull Request Link
- Screencast. Should include:
- New Forms
- Linked Forms
- Linked Reports
- Print Views
### Copyright
Please see README.md

View File

@@ -4,7 +4,7 @@
[https://erpnext.com](https://erpnext.com)
Includes: Accounting, Inventory, CRM, Sales, Purchase, Projects, HRMS. Requires MariaDB.
Includes: Accounting, Inventory, Manufacturing, CRM, Sales, Purchase, Project Management, HRMS. Requires MariaDB.
ERPNext is built on the [Frappe](https://github.com/frappe/frappe) Framework, a full-stack web app framework in Python & JavaScript.

View File

@@ -1,4 +1,26 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import frappe
__version__ = '6.27.25'
__version__ = '7.0.8'
def get_default_company(user=None):
'''Get default company for user'''
from frappe.defaults import get_user_default_as_list
if not user:
user = frappe.session.user
companies = get_user_default_as_list(user, 'company')
if companies:
default_company = companies[0]
else:
default_company = frappe.db.get_single_value('Global Defaults', 'default_company')
return default_company
def get_default_currency():
'''Returns the currency of the default company'''
company = get_default_company()
if company:
return frappe.db.get_value('Company', company, 'default_currency')

View File

@@ -1,7 +1,6 @@
// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
// License: GNU General Public License v3. See license.txt
cur_frm.list_route = "Accounts Browser/Account";
cur_frm.cscript.refresh = function(doc, cdt, cdn) {
if(doc.__islocal) {
@@ -42,13 +41,13 @@ cur_frm.add_fetch('parent_account', 'root_type', 'root_type');
cur_frm.cscript.account_type = function(doc, cdt, cdn) {
if(doc.is_group==0) {
cur_frm.toggle_display(['tax_rate'], doc.account_type == 'Tax');
cur_frm.toggle_display('warehouse', doc.account_type=='Warehouse');
cur_frm.toggle_display('warehouse', doc.account_type=='Stock');
}
}
cur_frm.cscript.add_toolbar_buttons = function(doc) {
cur_frm.add_custom_button(__('Chart of Accounts'),
function() { frappe.set_route("Accounts Browser", "Account"); }, __("View"))
function() { frappe.set_route("Tree", "Account"); }, __("View"))
if (doc.is_group == 1) {
cur_frm.add_custom_button(__('Group to Non-Group'),
@@ -64,7 +63,7 @@ cur_frm.cscript.add_toolbar_buttons = function(doc) {
frappe.set_route("query-report", "General Ledger");
}, __("View"));
cur_frm.add_custom_button(__('Group to Group'),
cur_frm.add_custom_button(__('Non-Group to Group'),
function() { cur_frm.cscript.convert_to_group(); }, 'icon-retweet', 'btn-default')
}
}

View File

@@ -2,6 +2,7 @@
"allow_copy": 1,
"allow_import": 1,
"allow_rename": 1,
"beta": 0,
"creation": "2013-01-30 12:49:46",
"custom": 0,
"description": "Heads (or groups) against which Accounting Entries are made and balances are maintained.",
@@ -17,6 +18,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "",
@@ -41,6 +43,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -64,6 +67,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 1,
"label": "Account Name",
@@ -90,6 +94,7 @@
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Is Group",
@@ -114,6 +119,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Company",
@@ -140,6 +146,7 @@
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Root Type",
@@ -164,6 +171,7 @@
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Report Type",
@@ -189,6 +197,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Currency",
@@ -214,6 +223,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -237,6 +247,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 1,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Parent Account",
@@ -264,6 +275,7 @@
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Account Type",
@@ -271,7 +283,7 @@
"no_copy": 0,
"oldfieldname": "account_type",
"oldfieldtype": "Select",
"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",
"options": "\nAccumulated Depreciation\nBank\nCash\nChargeable\nCost of Goods Sold\nDepreciation\nEquity\nExpense Account\nExpenses Included In Valuation\nFixed Asset\nIncome Account\nPayable\nReceivable\nRound Off\nStock\nStock Adjustment\nStock Received But Not Billed\nTax\nTemporary",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
@@ -291,6 +303,7 @@
"fieldtype": "Float",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Rate",
@@ -317,6 +330,7 @@
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Frozen",
@@ -343,6 +357,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Warehouse",
@@ -367,6 +382,7 @@
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Balance must be",
@@ -391,6 +407,7 @@
"fieldtype": "Int",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Lft",
@@ -414,6 +431,7 @@
"fieldtype": "Int",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Rgt",
@@ -437,6 +455,7 @@
"fieldtype": "Data",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Old Parent",
@@ -457,13 +476,14 @@
"hide_toolbar": 0,
"icon": "icon-money",
"idx": 1,
"image_view": 0,
"in_create": 0,
"in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2015-12-12 10:19:54.365839",
"modified": "2016-06-24 13:33:45.504882",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Account",
@@ -570,7 +590,10 @@
"write": 1
}
],
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
"search_fields": ""
"search_fields": "",
"sort_order": "ASC",
"track_seen": 0
}

View File

@@ -16,7 +16,7 @@ class Account(Document):
frozen_accounts_modifier = frappe.db.get_value("Accounts Settings", "Accounts Settings",
"frozen_accounts_modifier")
if not frozen_accounts_modifier or frozen_accounts_modifier in frappe.get_roles():
self.get("__onload").can_freeze_account = True
self.set_onload("can_freeze_account", True)
def autoname(self):
# first validate if company exists
@@ -91,11 +91,11 @@ class Account(Document):
return
existing_is_group = frappe.db.get_value("Account", self.name, "is_group")
if self.is_group != existing_is_group:
if cint(self.is_group) != cint(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:
if self.account_type and not self.flags.exclude_account_type_check:
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"))
@@ -139,7 +139,7 @@ class Account(Document):
def convert_ledger_to_group(self):
if self.check_gle_exists():
throw(_("Account with existing transaction can not be converted to group."))
elif self.account_type:
elif self.account_type and not self.flags.exclude_account_type_check:
throw(_("Cannot covert to Group because Account Type is selected."))
else:
self.is_group = 1
@@ -164,23 +164,28 @@ class Account(Document):
def validate_warehouse_account(self):
if not cint(frappe.defaults.get_global_default("auto_accounting_for_stock")):
return
if self.account_type == "Warehouse":
if self.account_type == "Stock" and not cint(self.is_group):
if not self.warehouse:
throw(_("Warehouse is mandatory if account type is Warehouse"))
throw(_("Warehouse is mandatory"))
old_warehouse = cstr(frappe.db.get_value("Account", self.name, "warehouse"))
if old_warehouse != cstr(self.warehouse):
if old_warehouse:
self.validate_warehouse(old_warehouse)
if self.warehouse:
self.validate_warehouse(self.warehouse)
elif self.warehouse:
self.warehouse = None
def validate_warehouse(self, warehouse):
if frappe.db.get_value("Stock Ledger Entry", {"warehouse": warehouse}):
throw(_("Stock entries exist against warehouse {0}, hence you cannot re-assign or modify Warehouse").format(warehouse))
lft, rgt = frappe.db.get_value("Warehouse", warehouse, ["lft", "rgt"])
if lft and rgt:
if frappe.db.sql_list("""select sle.name from `tabStock Ledger Entry` sle where exists (select wh.name from
tabWarehouse wh where lft >= %s and rgt <= %s and sle.warehouse = wh.name)""", (lft, rgt)):
throw(_("Stock entries exist against Warehouse {0}, hence you cannot re-assign or modify it").format(warehouse))
def update_nsm_model(self):
"""update lft, rgt indices for nested set model"""

View File

@@ -0,0 +1,52 @@
frappe.treeview_settings["Account"] = {
breadcrumbs: "Accounts",
title: __("Chart Of Accounts"),
get_tree_root: false,
filters: [{
fieldname: "company",
fieldtype:"Select",
options: $.map(locals[':Company'], function(c) { return c.name; }).sort(),
label: __("Company"),
default: frappe.defaults.get_default('company') ? frappe.defaults.get_default('company'): ""
}],
root_label: "Accounts",
get_tree_nodes: 'erpnext.accounts.utils.get_children',
add_tree_node: 'erpnext.accounts.utils.add_ac',
menu_items:[
{
label: __('New Company'),
action: function() { frappe.new_doc("Company", true) },
condition: 'frappe.boot.user.can_create.indexOf("Company") !== -1'
}
],
fields: [
{fieldtype:'Data', fieldname:'account_name', label:__('New Account Name'), reqd:true,
description: __("Name of new Account. Note: Please don't create accounts for Customers and Suppliers")},
{fieldtype:'Check', fieldname:'is_group', label:__('Is Group'),
description: __('Further accounts can be made under Groups, but entries can be made against non-Groups')},
{fieldtype:'Select', fieldname:'root_type', label:__('Root Type'),
options: ['Asset', 'Liability', 'Equity', 'Income', 'Expense'].join('\n')},
{fieldtype:'Select', fieldname:'account_type', label:__('Account Type'),
options: ['', 'Bank', 'Cash', 'Stock', 'Tax', 'Chargeable', 'Fixed Asset'].join('\n'),
description: __("Optional. This setting will be used to filter in various transactions.")
},
{fieldtype:'Float', fieldname:'tax_rate', label:__('Tax Rate'),
depends_on: 'eval:doc.is_group==1&&doc.account_type=="Tax"'},
{fieldtype:'Link', fieldname:'warehouse', label:__('Warehouse'), options:"Warehouse",
depends_on: 'eval:(!doc.is_group&&doc.account_type=="Warehouse")'},
{fieldtype:'Link', fieldname:'account_currency', label:__('Currency'), options:"Currency",
description: __("Optional. Sets company's default currency, if not specified.")}
],
onrender: function(node) {
var dr_or_cr = node.data.balance < 0 ? "Cr" : "Dr";
if (node.data && node.data.balance!==undefined) {
$('<span class="balance-area pull-right text-muted small">'
+ (node.data.balance_in_account_currency ?
(format_currency(Math.abs(node.data.balance_in_account_currency),
node.data.account_currency) + " / ") : "")
+ format_currency(Math.abs(node.data.balance), node.data.company_currency)
+ " " + dr_or_cr
+ '</span>').insertBefore(node.$ul);
}
}
}

View File

@@ -37,12 +37,15 @@ def create_charts(chart_name, company):
"root_type": root_type,
"report_type": report_type,
"account_type": child.get("account_type"),
"account_currency": frappe.db.get_value("Company", company, "default_currency")
"account_currency": frappe.db.get_value("Company", company, "default_currency"),
"tax_rate": child.get("tax_rate")
})
if root_account or frappe.local.flags.allow_unverified_charts:
account.flags.ignore_mandatory = True
account.flags.ignore_permissions = True
account.insert()
accounts.append(account_name_in_db)
@@ -86,8 +89,9 @@ def get_charts_for_country(country):
def _get_chart_name(content):
if content:
content = json.loads(content)
if content and content.get("disabled", "No") == "No":
charts.append(content["name"])
if (content and content.get("disabled", "No") == "No") \
or frappe.local.flags.allow_unverified_charts:
charts.append(content["name"])
country_code = frappe.db.get_value("Country", country, "code")
if country_code:

View File

@@ -1,7 +1,6 @@
{
"country_code": "ar",
"name": "Plan de Cuentas",
"disabled": "Yes",
"name": "Argentina - Plan de Cuentas",
"tree": {
"Cuentas Patrimoniales": {
"ACTIVO": {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,7 +1,6 @@
{
"country_code": "cl",
"name": "Plan de Cuentas",
"disabled": "Yes",
"name": "Chile - Plan de Cuentas",
"tree": {
"Cuentas de Movimiento": {
"Compras": {

View File

@@ -1,7 +1,6 @@
{
"country_code": "cn",
"disabled": "Yes",
"name": "\u4e2d\u56fd\u4f1a\u8ba1\u79d1\u76ee\u8868 \uff08\u8d22\u4f1a[2006]3\u53f7\u300a\u4f01\u4e1a\u4f1a\u8ba1\u51c6\u5219\u300b\uff09",
"name": "China - \u4e2d\u56fd\u4f1a\u8ba1\u79d1\u76ee\u8868 \uff08\u8d22\u4f1a[2006]3\u53f7\u300a\u4f01\u4e1a\u4f1a\u8ba1\u51c6\u5219\u300b\uff09",
"tree": {
"\u4e3b\u8425\u4e1a\u52a1\u6210\u672c": {
"root_type": ""

View File

@@ -1,199 +0,0 @@
{
"country_code": "cn",
"disabled": "Yes",
"name": "\u5c0f\u4f01\u4e1a\u4f1a\u8ba1\u79d1\u76ee\u8868\uff08\u8d22\u4f1a[2011]17\u53f7\u300a\u5c0f\u4f01\u4e1a\u4f1a\u8ba1\u51c6\u5219\u300b\uff09",
"tree": {
"\u4e3b\u8425\u4e1a\u52a1\u6210\u672c": {
"root_type": ""
},
"\u4e3b\u8425\u4e1a\u52a1\u6536\u5165": {
"root_type": ""
},
"\u5176\u4ed6\u4e1a\u52a1\u6210\u672c": {
"root_type": ""
},
"\u5176\u4ed6\u4e1a\u52a1\u6536\u5165": {
"root_type": ""
},
"\u5176\u4ed6\u5e94\u6536\u6b3e": {
"root_type": ""
},
"\u5176\u4ed6\u8d27\u5e01\u8d44\u91d1": {
"root_type": ""
},
"\u5229\u6da6\u5206\u914d": {
"root_type": ""
},
"\u5236\u9020\u8d39\u7528": {
"root_type": ""
},
"\u539f\u6750\u6599": {
"root_type": ""
},
"\u5468\u8f6c\u6750\u6599": {
"root_type": ""
},
"\u5546\u54c1\u8fdb\u9500\u5dee\u4ef7": {
"root_type": ""
},
"\u56fa\u5b9a\u8d44\u4ea7": {
"root_type": ""
},
"\u56fa\u5b9a\u8d44\u4ea7\u6e05\u7406": {
"root_type": ""
},
"\u5728\u5efa\u5de5\u7a0b": {
"root_type": ""
},
"\u5728\u9014\u7269\u8d44": {
"root_type": ""
},
"\u59d4\u6258\u52a0\u5de5\u7269\u8d44": {
"root_type": ""
},
"\u5b9e\u6536\u8d44\u672c": {
"root_type": ""
},
"\u5de5\u7a0b\u65bd\u5de5": {
"root_type": ""
},
"\u5de5\u7a0b\u7269\u8d44": {
"root_type": ""
},
"\u5e93\u5b58\u5546\u54c1": {
"root_type": ""
},
"\u5e94\u4ea4\u7a0e\u8d39": {
"root_type": ""
},
"\u5e94\u4ed8\u5229\u606f": {
"root_type": ""
},
"\u5e94\u4ed8\u5229\u6da6": {
"root_type": ""
},
"\u5e94\u4ed8\u7968\u636e": {
"root_type": ""
},
"\u5e94\u4ed8\u804c\u5de5\u85aa\u916c": {
"root_type": ""
},
"\u5e94\u4ed8\u8d26\u6b3e": {
"root_type": ""
},
"\u5e94\u6536\u5229\u606f": {
"root_type": ""
},
"\u5e94\u6536\u7968\u636e": {
"root_type": ""
},
"\u5e94\u6536\u80a1\u5229": {
"root_type": ""
},
"\u5e94\u6536\u8d26\u6b3e": {
"root_type": ""
},
"\u5f85\u5904\u7406\u8d22\u4ea7\u635f\u6ea2": {
"root_type": ""
},
"\u6240\u5f97\u7a0e": {
"root_type": ""
},
"\u6295\u8d44\u6536\u76ca": {
"root_type": ""
},
"\u65e0\u5f62\u8d44\u4ea7": {
"root_type": ""
},
"\u672c\u5e74\u5229\u6da6": {
"root_type": ""
},
"\u673a\u68b0\u4f5c\u4e1a": {
"root_type": ""
},
"\u6750\u6599\u6210\u672c\u5dee\u5f02": {
"root_type": ""
},
"\u6750\u6599\u91c7\u8d2d": {
"root_type": ""
},
"\u6d88\u8017\u6027\u751f\u7269\u8d44\u4ea7": {
"root_type": ""
},
"\u73b0\u91d1": {
"root_type": ""
},
"\u751f\u4ea7\u6027\u751f\u7269\u8d44\u4ea7": {
"root_type": ""
},
"\u751f\u4ea7\u6027\u751f\u7269\u8d44\u4ea7\u7d2f\u8ba1\u6298\u65e7": {
"root_type": ""
},
"\u751f\u4ea7\u6210\u672c": {
"root_type": ""
},
"\u76c8\u4f59\u516c\u79ef": {
"root_type": ""
},
"\u77ed\u671f\u501f\u6b3e": {
"root_type": ""
},
"\u77ed\u671f\u6295\u8d44": {
"root_type": ""
},
"\u7814\u53d1\u652f\u51fa": {
"root_type": ""
},
"\u7ba1\u7406\u8d39\u7528": {
"root_type": ""
},
"\u7d2f\u8ba1\u644a\u9500": {
"root_type": ""
},
"\u8425\u4e1a\u5916\u652f\u51fa": {
"root_type": ""
},
"\u8425\u4e1a\u5916\u6536\u5165": {
"root_type": ""
},
"\u8425\u4e1a\u7a0e\u91d1\u53ca\u9644\u52a0": {
"root_type": ""
},
"\u8d22\u52a1\u8d39\u7528": {
"root_type": ""
},
"\u8d44\u672c\u516c\u79ef": {
"root_type": ""
},
"\u9012\u5ef6\u6536\u76ca": {
"root_type": ""
},
"\u94f6\u884c\u5b58\u6b3e": {
"root_type": ""
},
"\u9500\u552e\u8d39\u7528": {
"root_type": ""
},
"\u957f\u671f\u501f\u6b3e": {
"root_type": ""
},
"\u957f\u671f\u503a\u5238\u6295\u8d44": {
"root_type": ""
},
"\u957f\u671f\u5e94\u4ed8\u6b3e": {
"root_type": ""
},
"\u957f\u671f\u5f85\u644a\u8d39\u7528": {
"root_type": ""
},
"\u957f\u671f\u80a1\u6743\u6295\u8d44": {
"root_type": ""
},
"\u9884\u4ed8\u8d26\u6b3e": {
"root_type": ""
},
"\u9884\u6536\u8d26\u6b3e": {
"root_type": ""
}
}
}

View File

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

View File

@@ -1,6 +1,6 @@
{
"country_code": "cr",
"name": "Costa Rica - Company 0",
"name": "Costa Rica - Chart of Accounts 1",
"tree": {
"0-Activo": {
"0-Activo circulante": {

View File

@@ -1,6 +1,6 @@
{
"country_code": "cr",
"name": "Costa Rica - Company 1",
"name": "Costa Rica - Chart of Accounts 2",
"tree": {
"xActivo": {
"root_type": "Asset",

View File

@@ -1,7 +1,6 @@
{
"country_code": "de",
"name": "Deutscher Kontenplan SKR04",
"disabled": "Yes",
"name": "Germany - Kontenplan SKR04",
"tree": {
"Bilanz - Aktiva": {
"Anlageverm\u00f6gen": {
@@ -222,24 +221,8 @@
"Forderungen aus Lieferungen und Leistungen gegen Gesellschafter - Restlaufzeit bis 1 Jahr": {},
"Forderungen aus Lieferungen und Leistungen gegen Gesellschafter - Restlaufzeit gr\u00f6\u00dfer 1 Jahr": {}
},
"Forderungen geg. Untern.- m. d. e. Beteiligungsverh\u00e4ltnis besteht od. Verbindl. gegen Untern. - mit denen ein Beteiligungsverh\u00e4ltnis besteht": {
"Forderungen gegen Unternehmen- mit denen ein Beteiligungsverh\u00e4ltnis besteht": {
"Besitzwechsel gegen Unternehmen- mit denen ein Beteiligungsverh\u00e4ltnis besteht": {},
"Besitzwechsel gegen Unternehmen- mit denen ein Beteiligungsverh\u00e4ltnis besteht - Restlaufzeit bis 1 Jahr": {},
"Besitzwechsel gegen Unternehmen- mit denen ein Beteiligungsverh\u00e4ltnis besteht - Restlaufzeit gr\u00f6\u00dfer 1 Jahr": {},
"Besitzwechsel gegen Unternehmen- mit denen ein Beteiligungsverh\u00e4ltnis besteht- bundesbankf\u00e4hig": {},
"Forderungen aus Lieferungen und Leistungen gegen Unternehmen- mit denen ein Beteiligungsverh\u00e4ltnis besteht": {
"account_type": "Receivable"
},
"Forderungen aus Lieferungen und Leistungen gegen Unternehmen- mit denen ein Beteiligungsverh\u00e4ltnis besteht - Restlaufzeit bis 1 Jahr": {},
"Forderungen aus Lieferungen und Leistungen gegen Unternehmen- mit denen ein Beteiligungsverh\u00e4ltnis besteht - Restlaufzeit gr\u00f6\u00dfer 1 Jahr": {},
"Forderungen gegen Unternehmen- mit denen ein Beteiligungsverh\u00e4ltnis besteht - Restlaufzeit bis 1 Jahr": {},
"Forderungen gegen Unternehmen- mit denen ein Beteiligungsverh\u00e4ltnis besteht - Restlaufzeit gr\u00f6\u00dfer 1 Jahr": {}
}
},
"Forderungen gegen Unternehmen- mit denen ein Beteiligungsverh\u00e4ltnis besteht H-Saldo": {
"Wertberichtigungen zu Forderungen mit einer Restlaufzeit bis zu 1 Jahr gegen Unternhemen- mit denen ein Beteiligungsverh\u00e4ltnis besteht": {},
"Wertberichtigungen zu Forderungen mit einer Restlaufzeit von mehr als 1 Jahr gegen Unternhemen- mit denen ein Beteiligungsverh\u00e4ltnis besteht": {}
"is_group": 1
},
"Forderungen gegen verbundene Unternehmen H-Saldo": {
"Wertberichtigungen zu Forderungen mit einer Restlaufzeit bis zu 1 Jahr gegen verbundene Unternehmen": {},
@@ -459,7 +442,7 @@
"Gezeichnetes Kapital": {}
},
"Nicht eingeforderte ausstehende Einlagen": {
"Ausstehende Einlagen auf das gezeichnete Kapital- nicht eingefordert (Passivausweis- von gezeichnetem Kapital offen abgesetzt eingeforderte ausstehende Einlagen s. Konto 1298)": {}
"is_group": 1
}
},
"Kapital Teilhaber": {
@@ -758,19 +741,6 @@
"Verbindlichkeiten gegen\u00fcber Kreditinstituten aus Teilzahlungsvertr\u00e4gen Restlaufzeit gr\u00f6\u00dfer 5 Jahre": {}
}
},
"Verbindlichkeiten gegen\u00fcber Unternehmen- mit denen ein Beteiligungsverh\u00e4ltnis besteht oder Forderungen gegen Unternehmen- mit denen ein Beteiligungsverh\u00e4ltnis besteht": {
"Verbindlichkeiten gegen\u00fcber Unternehmen- mit denen ein Beteiligungsverh\u00e4ltnis besteht ": {
"Verbindlichkeiten aus Lieferungen und Leistungen gegen\u00fcber Unternehmen- mit denen ein Beteiligungsverh\u00e4ltnis besteht": {
"account_type": "Payable"
},
"Verbindlichkeiten aus Lieferungen und Leistungen gegen\u00fcber Unternehmen- mit denen ein Beteiligungsverh\u00e4ltnis besteht - Restlaufzeit 1 bis 5 Jahre": {},
"Verbindlichkeiten aus Lieferungen und Leistungen gegen\u00fcber Unternehmen- mit denen ein Beteiligungsverh\u00e4ltnis besteht - Restlaufzeit bis 1 Jahr": {},
"Verbindlichkeiten aus Lieferungen und Leistungen gegen\u00fcber Unternehmen- mit denen ein Beteiligungsverh\u00e4ltnis besteht - Restlaufzeit gr\u00f6\u00dfer 5 Jahre": {},
"Verbindlichkeiten gegen\u00fcber Unternehmen- mit denen ein Beteiligungsverh\u00e4ltnis besteht Restlaufzeit 1 bis 5 Jahre": {},
"Verbindlichkeiten gegen\u00fcber Unternehmen- mit denen ein Beteiligungsverh\u00e4ltnis besteht Restlaufzeit bis 1 Jahr": {},
"Verbindlichkeiten gegen\u00fcber Unternehmen- mit denen ein Beteiligungsverh\u00e4ltnis besteht Restlaufzeit gr\u00f6\u00dfer 5 Jahre": {}
}
},
"Verbindlichkeiten gegen\u00fcber verbundenen Unternehmen oder Forderungen gegen verbundene Unternehmen": {
"Verbindlichkeiten gegen\u00fcber verbundenen Unternehmen": {
"Verbindlichkeiten aus Lieferungen und Leistungen gegen\u00fcber verbundenen Unternehmen": {
@@ -884,10 +854,6 @@
"Statistische Konten f\u00fcr den Gewinnzuschlag nach \u00a7\u00a7 6b- 6c und 7g EStG (Haben-Buchung)": {},
"Statistische Konten f\u00fcr den Gewinnzuschlag- Gegenkonto zu 9890": {}
},
"Statistische Konten f\u00fcr den GuV-Ausweis in \"Gutschrift bzw. Belastung auf Verbindlichkeitskonten\" bei den Zuordnungstabellen f\u00fcr PersHG nach KapCoRiLiG": {
"Anteil f\u00fcr Verbindlichkeitskonten": {},
"Verrechnungskonto f\u00fcr Anteil Verbindlichkeitskonten": {}
},
"Statistische Konten f\u00fcr den Kennziffernteil der Bilanz": {
"Besch\u00e4ftigte Personen": {},
"Gegenkonto zu 9200": {},
@@ -1028,7 +994,6 @@
"Verbindlichkeiten aus Gew\u00e4hrleistungsvertr\u00e4gen": {},
"Verbindlichkeiten aus Gew\u00e4hrleistungsvertr\u00e4gen gegen\u00fcber verbundenen Unternehmen": {},
"Verbindlichkeiten aus der Begebung und \u00fcbertragung von Wechseln": {},
"Verbindlichkeiten aus der Begebung und \u00fcbertragung von Wechseln gegen\u00fcber verbundenen Unternehmen": {},
"Verpflichtungen aus Treuhandverm\u00f6gen": {}
},
"Statistische Konten zu \u00a7 4 (4a) EStG": {
@@ -1110,30 +1075,6 @@
"Vorwegnahme k\u00fcnftiger Wertschwankungen im Umlaufverm\u00f6gen (soweit un\u00fcblich hoch)": {}
}
},
"Abschreibungen auf immaterielle Verm\u00f6gensgegenst\u00e4nde des Anlageverm\u00f6gens und Sachanlagen sowie auf aktivierte Aufwendungen f\u00fcr die Ingangsetzung und Erweiterung des Gesch\u00e4ftsbetriebs": {
"Abschreibungen auf immaterielle Verm\u00f6gensgegenst\u00e4nde des Anlageverm\u00f6gens und Sachanlagen sowie auf aktivierte Aufwendungen f\u00fcr die Ingangsetzung und Erweiterung des Gesch\u00e4ftsbetriebs": {
"Abschreibungen auf Aufwendungen f\u00fcr die Ingangsetzung und Erweiterung des Gesch\u00e4ftsbetriebs": {},
"Abschreibungen auf Aufwendungen f\u00fcr die W\u00e4hrungsumstellung auf den Euro": {},
"Abschreibungen auf Geb\u00e4ude": {},
"Abschreibungen auf Geb\u00e4udeteil des h\u00e4uslischen Arbeitszimmers": {},
"Abschreibungen auf Kfz": {},
"Abschreibungen auf Sachanlagen (ohne AfA auf Kfz und Geb\u00e4ude)": {},
"Abschreibungen auf Sachanlagen auf Grund steuerlicher Sondervorschriften ": {},
"Abschreibungen auf aktivierte- geringwertige Wirtschaftsg\u00fcter": {},
"Abschreibungen auf den Gesch\u00e4fts- oder Firmenwert": {},
"Abschreibungen auf immaterielle Verm\u00f6gensgegenst\u00e4nde": {},
"Absetzung f\u00fcr Au\u00dfergew\u00f6hnliche technische und wirtschaftliche Abnutzung der Geb\u00e4ude": {},
"Absetzung f\u00fcr Au\u00dfergew\u00f6hnliche technische und wirtschaftliche Abnutzung des Kfz": {},
"Absetzung f\u00fcr Au\u00dfergew\u00f6hnliche technische und wirtschaftliche Abnutzung sonstiger Wirtschaftsg\u00fcter": {},
"Au\u00dferplanma\u00dfige Abschreibungen auf aktivierte- geringwertige Wirtschaftsg\u00fcter": {},
"Au\u00dferplanm\u00e4\u00dfige Abschreibungen auf Sachanlagen": {},
"Au\u00dferplanm\u00e4\u00dfige Abschreibungen auf immaterielle Verm\u00f6gensgegenst\u00e4nde": {},
"Kaufleasing": {},
"Sofortabschreibungen geringwertiger Wirtschaftsg\u00fcter": {},
"Sonderabschreibungen nach \u00a7 7g Abs. 1 u. 2 EStG (f\u00fcr Kfz)": {},
"Sonderabschreibungen nach \u00a7 7g Abs. 1 u. 2 EStG (ohne Kfz)": {}
}
},
"Kalkulatorische Kosten": {
"Sonstige betriebliche Aufwendungen": {
"Kalkulatorische Abschreibungen": {},
@@ -1369,16 +1310,6 @@
"Vorwegnahme k\u00fcnftiger Wertschwankungen bei Wertpapieren des Umlaufverm\u00f6gens": {}
}
},
"Aufwendungen aus Verlust\u00fcbernahme und auf Grund einer Gewinngemeinschaft- eines Gewinn- oder Teilgewinnabf\u00fchrungsvertrags abgef\u00fchrte Gewinne": {
"Auf Grund einer Gewinngemeinschaft- eines Gewinn- oder Teilgewinnabf\u00fchrungsvertrags abgef\u00fchrte Gewinne": {
"Abgef\u00fchrte Gewinnanteile an stille Gesellschafter \u00a7 8 GewStG": {},
"Abgef\u00fchrte Gewinne auf Grund einer Gewinngemeinschaft": {},
"Abgef\u00fchrte Gewinne auf Grund eines Gewinn- oder Teilgewinnabf\u00fchrungsvertrags": {}
},
"Aufwendungen aus Verlust\u00fcbernahme": {
"Aufwendungen aus Verlust\u00fcbernahme": {}
}
},
"Au\u00dferordentliche Aufwendungen": {
"Au\u00dferordentliche Aufwendungen": {
"Au\u00dferordentliche Aufwendungen": {},
@@ -1494,18 +1425,13 @@
"Anlagenabg\u00e4nge immaterielle Verm\u00f6gensgegenst\u00e4nde (Restbuchwert bei Buchgewinn)": {},
"Bank Bewertungsertrag": {},
"Bank Waehrungsverlust (Konto)": {},
"Erl. a. Verk. v. Wirtschaftsg. d. Umlaufv.- umsatzsteuerf. \u00a7 4 Nr. 8 ff UStG i. V. m. \u00a7 4 Abs. 3 Satz 4 EStG- 100%/50% steuerf.(inlandische Kap. Ges.)": {},
"Erl\u00f6se aus Verkauen von Wirtschaftsg\u00fctern des Umlaufverm\u00f6gens 19% USt f\u00fcr \u00a7 4 Abs. 3 Satz 4 EStG": {},
"Erl\u00f6se aus Verkauen von Wirtschaftsg\u00fctern des Umlaufverm\u00f6gens- umsatzsteuerfrei \u00a7 4 Nr. 8 ff UStG i. V. m. \u00a7 4 Abs. 3 Satz 4 EStG": {},
"Erl\u00f6se aus Verkauf immaterieller Verm\u00f6gensgegenst\u00e4nde (bei Buchgewinn)": {},
"Erl\u00f6se aus Verk\u00e4ufen Finanzanlagen (bei Buchgewinn)": {},
"Erl\u00f6se aus Verk\u00e4ufen Finanzanlagen 100% / 50% steuerfrei (inlandische Kap.Ges.)(bei Buchgewinn)": {},
"Erl\u00f6se aus Verk\u00e4ufen Sachanlageverm\u00f6gen (bei Buchgewinn)": {},
"Erl\u00f6se aus Verk\u00e4ufen Sachanlageverm\u00f6gen 16% USt (bei Buchgewinn)": {},
"Erl\u00f6se aus Verk\u00e4ufen Sachanlageverm\u00f6gen 19% USt (bei Buchgewinn)": {},
"Erl\u00f6se aus Verk\u00e4ufen Sachanlageverm\u00f6gen steuerfrei \u00a7 4 Nr. 1a UStG (bei Buchgewinn)": {},
"Erl\u00f6se aus Verk\u00e4ufen Sachanlageverm\u00f6gen steuerfrei \u00a7 4 Nr. 1b UStG (bei Buchgewinn)": {},
"Erl\u00f6se aus Verk\u00e4ufen von Wirtschaftsg\u00fctern des Umlaufverm\u00f6gens nach \u00a7 4 Abs. 3 Satz 4 EStG": {},
"Ertraege a. Waehrungsumstellung auf Euro": {},
"Ertr\u00e4ge aus Bewertung Finanzmittelfonds": {},
"Ertr\u00e4ge aus Kursdifferenzen": {},
@@ -1715,27 +1641,11 @@
"Ertr\u00e4ge aus Beteiligungen": {},
"Ertr\u00e4ge aus Beteiligungen an verbundenen Unternehmen": {},
"Gewinnanteile aus Mitunternehmerschaften \u00a7 9 GewStG": {},
"Gewinne aus Anteilen an nicht steuerbefreiten inl\u00e4ndischen Kapitalgesellschaften \u00a7 9 Nr. 2a GewStG": {},
"Laufende Ertr\u00e4ge aus Anteilen an Kapitalgesellschaften (Beteiligung) 100% / 50% steuerfrei (inl\u00e4ndische Kap. Ges.)": {},
"Laufende Ertr\u00e4ge aus Anteilen an Kapitalgesellschaften (verbundene Unternehmen) 100% / 50% steuerfrei (inl\u00e4ndische Kap. Ges.)": {}
}
},
"Ertr\u00e4ge aus Verlust\u00fcbernahme und auf Grund einer Gewinngemeinschaft- eines Gewinn- oder Teilgewinnabf\u00fchrungsvertrags erhaltene Gewinne": {
"Auf Grund einer Gewinngemeinschaft- eines Gewinn- oder Teilgewinnabf\u00fchrungsvertrags erhaltene ": {
"Erhaltene Gewinne auf Grund einer Gewinngemeinschaft": {},
"Erhaltene Gewinne auf Grund eines Gewinn- oder Teilgewinnabf\u00fchrungsvertrags": {}
},
"Ertr\u00e4ge aus Verlust\u00fcbernahme ": {
"Ertr\u00e4ge aus Verlust\u00fcbernahme": {}
"Gewinne aus Anteilen an nicht steuerbefreiten inl\u00e4ndischen Kapitalgesellschaften \u00a7 9 Nr. 2a GewStG": {}
}
},
"Ertr\u00e4ge aus anderen Wertpapieren und Ausleihungen des Finanzanlageverm\u00f6gens": {
"Ertr\u00e4ge aus anderen Wertpapieren und Ausleihungen des Finanzanlageverm\u00f6gens": {
"Ertr\u00e4ge aus anderen Wertpapieren und Ausleihungen des Finanzanlageverm\u00f6gens": {},
"Etr\u00e4ge aus anderen Wertpapieren und Ausleihungen des Finanzanlageverm\u00f6gens aus verbundenen Unternehmen": {},
"Laufende Ertr\u00e4ge aus Anteilen an Kapitalgesellschaften (Finanzanlageverm\u00f6gen) 100% / 50% steuerfrei (inl\u00e4ndische Kap. Ges.)": {},
"Laufende Ertr\u00e4ge aus Anteilen an Kapitalgesellschaften (verbundene Unternehmen) 100% / 50% steuerfrei (inl\u00e4ndische Kap. Ges.)": {}
}
"Ertr\u00e4ge aus anderen Wertpapieren und Ausleihungen des Finanzanlageverm\u00f6gens": {}
},
"Gewinnvortrag": {
"Gewinnvortrag nach Verwendung": {}

View File

@@ -1,7 +1,6 @@
{
"country_code": "de",
"name": "Deutscher Kontenplan SKR03",
"disabled": "Yes",
"name": "Germany - Kontenplan SKR03",
"tree": {
"Aktiva": {
"Abgrenzung latenter Steuern": {
@@ -399,8 +398,7 @@
"Jahres\u00fcberschuss Jahresfehlbetrag": {}
},
"Rechnungsabgrenzungsposten": {
"Passive Rechnungsabgrenzung": {},
"Verbindlichkeiten aus der Begebung und \u00dcbertragung von Wechseln, aus B\u00fcrgschaften, Wechsel- und Scheckb\u00fcrgschaften und aus Gew\u00e4hrleistungsvertr\u00e4gen sowie Haftung aus Bestellung von Sicherheiten f\u00fcr fremde Verbindlichkeiten": {}
"Passive Rechnungsabgrenzung": {}
},
"R\u00fcckstellungen": {
"R\u00fcckstellungen f\u00fcr Pensionen und \u00e4hnliche Verpflichtungen": {
@@ -1346,10 +1344,6 @@
"Statistische Konten f\u00fcr den Gewinnzuschlag nach \u00a7\u00a7 6b- 6c und 7g EStG (Haben-Buchung)": {},
"Statistische Konten f\u00fcr den Gewinnzuschlag- Gegenkonto zu 9890": {}
},
"Statistische Konten f\u00fcr den GuV-Ausweis in \"Gutschrift bzw. Belastung auf Verbindlichkeitskonten\" bei den Zuordnungstabellen f\u00fcr PersHG nach KapCoRiLiG": {
"Anteil f\u00fcr Verbindlichkeitskonten": {},
"Verrechnungskonto f\u00fcr Anteil Verbindlichkeitskonten": {}
},
"Statistische Konten f\u00fcr den Kennziffernteil der Bilanz": {
"Besch\u00e4ftigte Personen": {},
"Gegenkonto zu 9200": {},

View File

@@ -1,7 +1,6 @@
{
"country_code": "es",
"name": "PGCE com\u00fan",
"disabled": "Yes",
"name": "Spain - PGCE com\u00fan",
"tree": {
"Acreedores y deudores por operaciones comerciales": {
"Acreedores varios": {
@@ -1482,10 +1481,7 @@
}
},
"Deterioro del valor de inversiones financieras a corto plazo y de activos no corrientes mantenidos para la venta": {
"Deterioro de valor de activos no corrientes mantenidos para la venta": {
"Deterioro de valor de existencias, deudores comerciales y otras cuentas a cobrar integrados en un grupo enajenable mantenido para la venta": {
"Deterioro de valor de existencias, deudores comerciales y otras cuentas a cobrar integrados en un grupo enajenable mantenido para la venta": {}
},
"Deterioro de valor de activos no corrientes mantenidos para la venta": {
"Deterioro de valor de inmovilizado no corriente mantenido para la venta": {
"Deterioro de valor de inmovilizado no corriente mantenido para la venta": {}
},

View File

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

View File

@@ -1,6 +1,6 @@
{
"country_code": "fr",
"name": "Plan Comptable G\u00e9n\u00e9ral (France)",
"name": "France - Plan Comptable G\u00e9n\u00e9ral",
"tree": {
"Comptes de bilan": {
"Comptes d'immobilisations": {

View File

@@ -1,6 +1,6 @@
{
"country_code": "gr",
"name": "\u03a0\u03c1\u03cc\u03c4\u03c5\u03c0\u03bf \u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03bf\u03cd \u039b\u03bf\u03b3\u03b9\u03c3\u03c4\u03b9\u03ba\u03bf\u03cd \u03a3\u03c7\u03b5\u03b4\u03af\u03bf\u03c5",
"name": "Greece - \u03a0\u03c1\u03cc\u03c4\u03c5\u03c0\u03bf \u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03bf\u03cd \u039b\u03bf\u03b3\u03b9\u03c3\u03c4\u03b9\u03ba\u03bf\u03cd \u03a3\u03c7\u03b5\u03b4\u03af\u03bf\u03c5",
"tree": {
"\u0391\u03a0\u0391\u0399\u03a4\u0397\u03a3\u0395\u0399\u03a3 \u039a\u0391\u0399 \u0394\u0399\u0391\u0398\u0395\u03a3\u0399\u039c\u0391": {
"root_type": "",

View File

@@ -1,133 +0,0 @@
{
"country_code": "gt",
"name": "Plantilla de cuentas de Guatemala (sencilla)",
"tree": {
"Activo": {
"Activo Corriente": {
"Caja y Bancos": {
"Caja Chica": {}
},
"Cuentas y Documentos por Cobrar": {
"Cuentas por Cobrar Empresas Afilidas": {},
"Cuentas por Cobrar Generales": {},
"Otras Cuentas por Cobrar": {},
"Prestamos al Personal": {}
},
"IVA por Cobrar": {
"IVA por Cobrar": {},
"Retenciones de IVA recibidas": {}
},
"Inventario": {}
},
"Diferido": {
"Gastos Anticipados": {
"Gastos Anticipados": {}
},
"Gastos de Organizaci\u00f3n": {
"Gastos de Organizaci\u00f3n": {}
},
"Gastos por Amortizar": {
"Gastos por Amortizar": {}
},
"Otros Activos": {
"Otros Activos": {}
}
},
"No Corriente": {
"Depreciaciones Acumuladas": {
"Depreciaciones Acumuladas": {}
},
"Propiedad, Planta y Equipo": {
"Propiedad, Planta y Equipo": {}
}
},
"root_type": "Asset"
},
"Pasivo": {
"Cr\u00e9ditos Diferidos": {
"Cr\u00e9ditos Diferidos": {
"Anticipos": {}
}
},
"Pasivo Corto Plazo": {
"Cuentas y Documentos por Pagar": {
"Cuentas y Documentos por Pagar": {}
},
"IVA por Pagar": {
"IVA por Pagar": {}
},
"Impuestos": {
"Impuestos": {}
}
},
"Pasivo a Largo Plazo": {
"Provisi\u00f3n para Indemnizaciones": {
"Provisi\u00f3n para Indemnizaciones": {}
}
},
"root_type": "Liability"
},
"Patrimonio": {
"Patrimonio de los Accionistas": {
"Patrimonio de los Accionistas": {
"Capital Autorizado, Suscr\u00edto y Pagado": {},
"Perdidas y Ganancias": {},
"Reservas": {}
}
},
"root_type": "Asset"
},
"Egresos": {
"Costos": {
"Costos de Ventas": {
"Costos de Ventas": {}
}
},
"root_type": "Expense"
},
"Gastos": {
"Gastos de Operaci\u00f3n": {
"Gastos de Administraci\u00f3n": {
"Gastos de Administraci\u00f3n": {}
},
"Otros Gastos de Operaci\u00f3n": {
"Otros Gastos de Operaci\u00f3n": {}
}
},
"Gastos de Ventas": {
"Gastos de Ventas": {
"Gastos de Ventas": {}
}
},
"Gastos no Deducibles": {
"Gastos no Deducibles": {
"Gastos no Deducibles": {}
}
},
"root_type": "Expense"
},
"Ingresos": {
"Otros Ingresos": {
"Otros Ingresos": {
"Otros Ingresos": {}
}
},
"Ventas": {
"Ventas Netas": {
"Descuentos Sobre Ventas": {},
"Ventas": {}
}
},
"root_type": "Income"
},
"Otros Gastos y Productos Financieros": {
"Otros Gastos y Productos Financieros": {
"Otros Gastos y Productos Financieros": {
"Intereses": {},
"Otros Gastos Financieros": {}
}
},
"root_type": "Expense"
}
}
}

View File

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

View File

@@ -1,6 +1,6 @@
{
"country_code": "hr",
"name": "RRIF-ov ra\u010dunski plan za poduzetnike",
"name": "Croatia - RRIF-ov ra\u010dunski plan za poduzetnike",
"tree": {
"FINANCIJSKI REZULTAT POSLOVANJA": {
"DOBITAK ILI GUBITAK RAZDOBLJA": {

View File

@@ -1,6 +1,6 @@
{
"country_code": "hu",
"name": "Magyar f\u0151k\u00f6nyvi kivonat",
"name": "Hungary - Magyar f\u0151k\u00f6nyvi kivonat",
"tree": {
"Eredm\u00e9ny sz\u00e1ml\u00e1k": {
"AZ \u00c9RT\u00c9KES\u00cdT\u00c9S \u00c1RBEV\u00c9TELE, BEV\u00c9TELEK": {

View File

@@ -1,6 +1,6 @@
{
"country_code": "it",
"name": "Generic Chart of Accounts",
"name": "Italy - Generic Chart of Accounts",
"tree": {
"ATTIVO": {
"CREDITI COMMERCIALI": {

View File

@@ -1,6 +1,6 @@
{
"country_code": "ma",
"name": "compta Kazacube",
"name": "Morocco - Compta Kazacube",
"tree": {
"COMPTES DE BILAN": {
"COMPTES D'ACTIF CIRCULANT (HORS TRESORERIE)": {

View File

@@ -1,6 +1,6 @@
{
"country_code": "mx",
"name": "Plan de Cuentas para Mexico",
"name": "Mexico - Plan de Cuentas",
"tree": {
"ACTIVO": {
"ACTIVO CIRCULANTE": {

View File

@@ -1,6 +1,6 @@
{
"country_code": "nl",
"name": "Nederlands Grootboekschema",
"name": "Nederlands - Grootboekschema",
"tree": {
"FABRIKAGEREKENINGEN": {
"root_type": ""

View File

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

View File

@@ -1,6 +1,6 @@
{
"country_code": "pe",
"name": "Plan de Cuentas 2011",
"name": "Peru - Plan de Cuentas",
"tree": {
"Cuentas de Balance": {
"Acciones de inversi\u00f3n ": {

View File

@@ -1,6 +1,6 @@
{
"country_code": "pl",
"name": "Plan kont",
"name": "Poland - Plan kont",
"tree": {
"Aktywa Trwa\u0142e": {
"D\u0142ugoterminowe aktywa finansowe": {

View File

@@ -1,6 +1,6 @@
{
"country_code": "pt",
"name": "Template do Plano de Contas SNC",
"name": "Portugal - Template do Plano de Contas SNC",
"tree": {
"Capital, reservas e resultados transitados": {
"Ac\u00e7\u00f5es (quotas) pr\u00f3prias": {

View File

@@ -1,7 +1,6 @@
{
"country_code": "ro",
"name": "Romania - Chart of Accounts",
"disabled": "Yes",
"tree": {
"CONTURI FINANCIARE": {
"CONTURI DE BILANT": {
@@ -91,7 +90,6 @@
"Rezultatul reportat": {
"Rezultatul reportat provenit din adoptarea pentru prima data a IAS, mai pu\u00fein IAS 29": {},
"Rezultatul reportat provenit din corectarea erorilor contabile": {},
"Rezultatul reportat provenit din trecerea la aplicarea Reglementarilor contabile conforme cu Directiva a patra a Comunitatilor Economice Europene": {},
"Rezultatul reportat reprezentand profitul nerepartizat sau pierderea neacoperita": {}
}
}
@@ -154,8 +152,7 @@
}
},
"IMOBILIZARI CORPORALE IN CURS DE APROVIZIONARE": {
"Instalatii tehnice, mijloace de transport, animale si plantatii in curs de aprovizionare": {},
"Mobilier, aparatura birotica, echipamente de protectie a valorilor umane si materiale si alte active corporale in curs de aprovizionare": {}
"Instalatii tehnice, mijloace de transport, animale si plantatii in curs de aprovizionare": {}
},
"IMOBILIZARI FINANCIARE": {
"Actiuni detinute la entitatile afiliate": {},

View File

@@ -1,6 +1,6 @@
{
"country_code": "syscohada",
"name": "Plan de compte",
"name": "Syscohada - Plan de compte",
"tree": {
"Comptes de bilan": {
"Comptes d'immobilisations": {

View File

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

View File

@@ -1,6 +1,6 @@
{
"country_code": "tr",
"name": "Tek D\u00fczen Hesap Plan\u0131",
"name": "Turkey - Tek D\u00fczen Hesap Plan\u0131",
"tree": {
"Duran Varl\u0131klar": {
"Di\u011fer Alacaklar": {

View File

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

View File

@@ -1,6 +1,6 @@
{
"country_code": "ve",
"name": "Venezuelan - Account",
"name": "Venezuelan - Chart of Accounts",
"tree": {
"ACTIVO": {
"ACTIVO CIRCULANTE": {

View File

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

View File

@@ -1,6 +1,6 @@
{
"country_code": "at",
"name": "Austria - Chart of Accounts - Einheitskontenrahmen provided by fairkom.eu",
"name": "Austria - Chart of Accounts - Einheitskontenrahmen",
"tree": {
"Klasse 0 Aktiva: Anlageverm\u00f6gen": {
"0100 Konzessionen ": {"account_type": "Fixed Asset"},

View File

@@ -1,6 +1,6 @@
{
"country_code": "gt",
"name": "Cuentas de Guatemala",
"name": "Guatemala - Cuentas",
"tree": {
"Activos": {
"Activo Corriente": {

View File

@@ -1,6 +1,6 @@
{
"country_code": "in",
"name": "Chart of Accounts - India",
"name": "India - Chart of Accounts",
"tree": {
"Application of Funds (Assets)": {
"Current Assets": {
@@ -37,18 +37,24 @@
"Capital Equipments": {
"account_type": "Fixed Asset"
},
"Computers": {
"Electronic Equipments": {
"account_type": "Fixed Asset"
},
"Furniture and Fixture": {
"Furnitures and Fixtures": {
"account_type": "Fixed Asset"
},
"Office Equipments": {
"account_type": "Fixed Asset"
},
"Plant and Machinery": {
"Plants and Machineries": {
"account_type": "Fixed Asset"
}
},
"Buildings": {
"account_type": "Fixed Asset"
},
"Accumulated Depreciations": {
"account_type": "Accumulated Depreciation"
}
},
"Investments": {
"is_group": 1
@@ -71,67 +77,37 @@
},
"Stock Adjustment": {
"account_type": "Stock Adjustment"
},
"account_type": "Expense Account"
},
"account_type": "Expense Account"
}
}
},
"Indirect Expenses": {
"Administrative Expenses": {
"account_type": "Expense Account"
},
"Commission on Sales": {
"account_type": "Expense Account"
},
"Administrative Expenses": {},
"Commission on Sales": {},
"Depreciation": {
"account_type": "Expense Account"
},
"Entertainment Expenses": {
"account_type": "Expense Account"
"account_type": "Depreciation"
},
"Entertainment Expenses": {},
"Freight and Forwarding Charges": {
"account_type": "Chargeable"
},
"Legal Expenses": {
"account_type": "Expense Account"
},
"Marketing Expenses": {
"account_type": "Chargeable"
},
"Miscellaneous Expenses": {
"account_type": "Chargeable"
},
"Office Maintenance Expenses": {
"account_type": "Expense Account"
},
"Office Rent": {
"account_type": "Expense Account"
},
"Postal Expenses": {
"account_type": "Expense Account"
},
"Print and Stationary": {
"account_type": "Expense Account"
},
"Legal Expenses": {},
"Marketing Expenses": {},
"Miscellaneous Expenses": {},
"Office Maintenance Expenses": {},
"Office Rent": {},
"Postal Expenses": {},
"Print and Stationary": {},
"Rounded Off": {
"account_type": "Expense Account"
"account_type": "Round Off"
},
"Salary": {
"account_type": "Expense Account"
},
"Sales Expenses": {
"account_type": "Expense Account"
},
"Telephone Expenses": {
"account_type": "Expense Account"
},
"Travel Expenses": {
"account_type": "Expense Account"
},
"Utility Expenses": {
"account_type": "Expense Account"
},
"account_type": "Expense Account"
"Salary": {},
"Sales Expenses": {},
"Telephone Expenses": {},
"Travel Expenses": {},
"Utility Expenses": {},
"Write Off": {},
"Exchange Gain/Loss": {},
"Gain/Loss on Asset Disposal": {}
},
"root_type": "Expense"
},

View File

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

View File

@@ -1,6 +1,6 @@
{
"country_code": "sg",
"name": "Singapore Default Chart of Accounts",
"name": "Singapore - Chart of Accounts",
"tree": {
"Assets": {
"Current assets": {

View File

@@ -1,6 +1,6 @@
{
"country_code": "sg",
"name": "Singapore F&B Chart of Accounts",
"name": "Singapore - F&B Chart of Accounts",
"tree": {
"Assets": {
"Current assets": {

View File

@@ -41,17 +41,26 @@ def get():
_("Capital Equipments"): {
"account_type": "Fixed Asset"
},
_("Computers"): {
_("Electronic Equipments"): {
"account_type": "Fixed Asset"
},
_("Furniture and Fixture"): {
_("Furnitures and Fixtures"): {
"account_type": "Fixed Asset"
},
_("Office Equipments"): {
"account_type": "Fixed Asset"
},
_("Plant and Machinery"): {
_("Plants and Machineries"): {
"account_type": "Fixed Asset"
},
_("Buildings"): {
"account_type": "Fixed Asset"
},
_("Softwares"): {
"account_type": "Fixed Asset"
},
_("Accumulated Depreciation"): {
"account_type": "Accumulated Depreciation"
}
},
_("Investments"): {
@@ -68,92 +77,60 @@ def get():
_("Direct Expenses"): {
_("Stock Expenses"): {
_("Cost of Goods Sold"): {
"account_type": "Expense Account"
"account_type": "Cost of Goods Sold"
},
_("Expenses Included In Valuation"): {
"account_type": "Expenses Included In Valuation"
},
_("Stock Adjustment"): {
"account_type": "Stock Adjustment"
},
"account_type": "Expense Account"
}
},
"account_type": "Expense Account"
},
_("Indirect Expenses"): {
_("Administrative Expenses"): {
"account_type": "Expense Account"
},
_("Commission on Sales"): {
"account_type": "Expense Account"
},
_("Administrative Expenses"): {},
_("Commission on Sales"): {},
_("Depreciation"): {
"account_type": "Expense Account"
},
_("Entertainment Expenses"): {
"account_type": "Expense Account"
"account_type": "Depreciation"
},
_("Entertainment Expenses"): {},
_("Freight and Forwarding Charges"): {
"account_type": "Chargeable"
},
_("Legal Expenses"): {
"account_type": "Expense Account"
},
_("Legal Expenses"): {},
_("Marketing Expenses"): {
"account_type": "Chargeable"
},
_("Miscellaneous Expenses"): {
"account_type": "Chargeable"
},
_("Office Maintenance Expenses"): {
"account_type": "Expense Account"
},
_("Office Rent"): {
"account_type": "Expense Account"
},
_("Postal Expenses"): {
"account_type": "Expense Account"
},
_("Print and Stationary"): {
"account_type": "Expense Account"
},
_("Office Maintenance Expenses"): {},
_("Office Rent"): {},
_("Postal Expenses"): {},
_("Print and Stationary"): {},
_("Round Off"): {
"account_type": "Round Off"
},
_("Salary"): {
"account_type": "Expense Account"
},
_("Sales Expenses"): {
"account_type": "Expense Account"
},
_("Telephone Expenses"): {
"account_type": "Expense Account"
},
_("Travel Expenses"): {
"account_type": "Expense Account"
},
_("Utility Expenses"): {
"account_type": "Expense Account"
},
"account_type": "Expense Account"
_("Salary"): {},
_("Sales Expenses"): {},
_("Telephone Expenses"): {},
_("Travel Expenses"): {},
_("Utility Expenses"): {},
_("Write Off"): {},
_("Exchange Gain/Loss"): {},
_("Gain/Loss on Asset Disposal"): {}
},
"root_type": "Expense"
},
_("Income"): {
_("Direct Income"): {
_("Sales"): {
"account_type": "Income Account"
},
_("Service"): {
"account_type": "Income Account"
},
"account_type": "Income Account"
_("Sales"): {},
_("Service"): {}
},
_("Indirect Income"): {
"account_type": "Income Account",
"is_group": 1
},
"root_type": "Income"
"root_type": "Income"
},
_("Source of Funds (Liabilities)"): {
_("Current Liabilities"): {

View File

@@ -12,6 +12,7 @@ def _make_test_records(verbose):
["_Test Bank", "Bank Accounts", 0, "Bank", None],
["_Test Bank USD", "Bank Accounts", 0, "Bank", "USD"],
["_Test Bank EUR", "Bank Accounts", 0, "Bank", "EUR"],
["_Test Cash", "Cash In Hand", 0, "Cash", None],
["_Test Account Stock Expenses", "Direct Expenses", 1, None, None],
["_Test Account Shipping Charges", "_Test Account Stock Expenses", 0, "Chargeable", None],
@@ -32,10 +33,16 @@ def _make_test_records(verbose):
["_Test Account CST", "Direct Expenses", 0, "Tax", None],
["_Test Account Discount", "Direct Expenses", 0, None, None],
["_Test Write Off", "Indirect Expenses", 0, None, None],
["_Test Exchange Gain/Loss", "Indirect Expenses", 0, None, None],
# related to Account Inventory Integration
["_Test Account Stock In Hand", "Current Assets", 0, None, None],
["_Test Account Fixed Assets", "Current Assets", 0, None, None],
# fixed asset depreciation
["_Test Fixed Asset", "Current Assets", 0, "Fixed Asset", None],
["_Test Accumulated Depreciations", "Current Assets", 0, None, None],
["_Test Depreciations", "Expenses", 0, None, None],
["_Test Gain/Loss on Asset Disposal", "Expenses", 0, None, None],
# Receivable / Payable Account
["_Test Receivable", "Current Assets", 0, "Receivable", None],

View File

@@ -0,0 +1,8 @@
// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
frappe.ui.form.on('Accounts Settings', {
refresh: function(frm) {
}
});

View File

@@ -2,11 +2,14 @@
"allow_copy": 0,
"allow_import": 0,
"allow_rename": 0,
"beta": 0,
"creation": "2013-06-24 15:49:57",
"custom": 0,
"description": "Settings for Accounts",
"docstatus": 0,
"doctype": "DocType",
"document_type": "Other",
"editable_grid": 1,
"fields": [
{
"allow_on_submit": 0,
@@ -18,6 +21,7 @@
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Make Accounting Entry For Every Stock Movement",
@@ -42,6 +46,7 @@
"fieldtype": "Date",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Accounts Frozen Upto",
@@ -66,6 +71,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Role Allowed to Set Frozen Accounts & Edit Frozen Entries",
@@ -82,6 +88,30 @@
"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,
"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,
@@ -91,6 +121,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Credit Controller",
@@ -115,6 +146,7 @@
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Check Supplier Invoice Number Uniqueness",
@@ -136,13 +168,14 @@
"hide_toolbar": 0,
"icon": "icon-cog",
"idx": 1,
"image_view": 0,
"in_create": 0,
"in_dialog": 0,
"is_submittable": 0,
"issingle": 1,
"istable": 0,
"max_attachments": 0,
"modified": "2015-12-24 21:42:01.274459",
"modified": "2016-07-14 14:32:06.056888",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Accounts Settings",
@@ -169,6 +202,9 @@
"write": 1
}
],
"quick_entry": 1,
"read_only": 0,
"read_only_onload": 0
"read_only_onload": 0,
"sort_order": "ASC",
"track_seen": 0
}

View File

@@ -0,0 +1,273 @@
// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
frappe.provide("erpnext.asset");
frappe.ui.form.on('Asset', {
onload: function(frm) {
frm.set_query("item_code", function() {
return {
"filters": {
"disabled": 0,
"is_fixed_asset": 1,
"is_stock_item": 0
}
};
});
frm.set_query("warehouse", function() {
return {
"filters": {
"company": frm.doc.company
}
};
});
},
refresh: function(frm) {
frappe.ui.form.trigger("Asset", "is_existing_asset");
frm.toggle_display("next_depreciation_date", frm.doc.docstatus < 1);
if (frm.doc.docstatus==1) {
if (frm.doc.status=='Submitted' && !frm.doc.is_existing_asset && !frm.doc.purchase_invoice) {
frm.add_custom_button("Make Purchase Invoice", function() {
erpnext.asset.make_purchase_invoice(frm);
});
}
if (in_list(["Submitted", "Partially Depreciated", "Fully Depreciated"], frm.doc.status)) {
frm.add_custom_button("Transfer Asset", function() {
erpnext.asset.transfer_asset(frm);
});
frm.add_custom_button("Scrap Asset", function() {
erpnext.asset.scrap_asset(frm);
});
frm.add_custom_button("Sale Asset", function() {
erpnext.asset.make_sales_invoice(frm);
});
} else if (frm.doc.status=='Scrapped') {
frm.add_custom_button("Restore Asset", function() {
erpnext.asset.restore_asset(frm);
});
}
frm.trigger("show_graph");
}
},
show_graph: function(frm) {
var x_intervals = ["x", frm.doc.purchase_date];
var asset_values = ["Asset Value", frm.doc.gross_purchase_amount];
var last_depreciation_date = frm.doc.purchase_date;
if(frm.doc.opening_accumulated_depreciation) {
last_depreciation_date = frappe.datetime.add_months(frm.doc.next_depreciation_date,
-1*frm.doc.frequency_of_depreciation);
x_intervals.push(last_depreciation_date);
asset_values.push(flt(frm.doc.gross_purchase_amount) -
flt(frm.doc.opening_accumulated_depreciation));
}
$.each(frm.doc.schedules || [], function(i, v) {
x_intervals.push(v.schedule_date);
asset_value = flt(frm.doc.gross_purchase_amount) - flt(v.accumulated_depreciation_amount);
if(v.journal_entry) {
last_depreciation_date = v.schedule_date;
asset_values.push(asset_value)
} else {
if (in_list(["Scrapped", "Sold"], frm.doc.status)) {
asset_values.push(null)
} else {
asset_values.push(asset_value)
}
}
})
if(in_list(["Scrapped", "Sold"], frm.doc.status)) {
x_intervals.push(frm.doc.disposal_date);
asset_values.push(0);
last_depreciation_date = frm.doc.disposal_date;
}
frm.dashboard.setup_chart({
data: {
x: 'x',
columns: [x_intervals, asset_values],
regions: {
'Asset Value': [{'start': last_depreciation_date, 'style':'dashed'}]
}
},
legend: {
show: false
},
axis: {
x: {
type: 'timeseries',
tick: {
format: "%d-%m-%Y"
}
},
y: {
min: 0,
padding: {bottom: 10}
}
}
});
},
item_code: function(frm) {
if(frm.doc.item_code) {
frappe.call({
method: "erpnext.accounts.doctype.asset.asset.get_item_details",
args: {
item_code: frm.doc.item_code
},
callback: function(r, rt) {
if(r.message) {
$.each(r.message, function(field, value) {
frm.set_value(field, value);
})
}
}
})
}
},
is_existing_asset: function(frm) {
frm.toggle_enable("supplier", frm.doc.is_existing_asset);
frm.toggle_reqd("next_depreciation_date", !frm.doc.is_existing_asset);
},
});
frappe.ui.form.on('Depreciation Schedule', {
make_depreciation_entry: function(frm, cdt, cdn) {
var row = locals[cdt][cdn];
if (!row.journal_entry) {
frappe.call({
method: "erpnext.accounts.doctype.asset.depreciation.make_depreciation_entry",
args: {
"asset_name": frm.doc.name,
"date": row.schedule_date
},
callback: function(r) {
frappe.model.sync(r.message);
frm.refresh();
}
})
}
}
})
erpnext.asset.make_purchase_invoice = function(frm) {
frappe.call({
args: {
"asset": frm.doc.name,
"item_code": frm.doc.item_code,
"gross_purchase_amount": frm.doc.gross_purchase_amount,
"company": frm.doc.company,
"posting_date": frm.doc.purchase_date
},
method: "erpnext.accounts.doctype.asset.asset.make_purchase_invoice",
callback: function(r) {
var doclist = frappe.model.sync(r.message);
frappe.set_route("Form", doclist[0].doctype, doclist[0].name);
}
})
}
erpnext.asset.make_sales_invoice = function(frm) {
frappe.call({
args: {
"asset": frm.doc.name,
"item_code": frm.doc.item_code,
"company": frm.doc.company
},
method: "erpnext.accounts.doctype.asset.asset.make_sales_invoice",
callback: function(r) {
var doclist = frappe.model.sync(r.message);
frappe.set_route("Form", doclist[0].doctype, doclist[0].name);
}
})
}
erpnext.asset.scrap_asset = function(frm) {
frappe.confirm(__("Do you really want to scrap this asset?"), function () {
frappe.call({
args: {
"asset_name": frm.doc.name
},
method: "erpnext.accounts.doctype.asset.depreciation.scrap_asset",
callback: function(r) {
cur_frm.reload_doc();
}
})
})
}
erpnext.asset.restore_asset = function(frm) {
frappe.confirm(__("Do you really want to restore this scrapped asset?"), function () {
frappe.call({
args: {
"asset_name": frm.doc.name
},
method: "erpnext.accounts.doctype.asset.depreciation.restore_asset",
callback: function(r) {
cur_frm.reload_doc();
}
})
})
}
erpnext.asset.transfer_asset = function(frm) {
var dialog = new frappe.ui.Dialog({
title: __("Transfer Asset"),
fields: [
{
"label": __("Target Warehouse"),
"fieldname": "target_warehouse",
"fieldtype": "Link",
"options": "Warehouse",
"get_query": function () {
return {
filters: [["Warehouse", "company", "in", ["", cstr(frm.doc.company)]]]
}
},
"reqd": 1
},
{
"label": __("Date"),
"fieldname": "transfer_date",
"fieldtype": "Datetime",
"reqd": 1,
"default": frappe.datetime.now_datetime()
}
]
});
dialog.set_primary_action(__("Transfer"), function() {
args = dialog.get_values();
if(!args) return;
dialog.hide();
return frappe.call({
type: "GET",
method: "erpnext.accounts.doctype.asset.asset.transfer_asset",
args: {
args: {
"asset": frm.doc.name,
"transaction_date": args.transfer_date,
"source_warehouse": frm.doc.warehouse,
"target_warehouse": args.target_warehouse,
"company": frm.doc.company
}
},
freeze: true,
callback: function(r) {
cur_frm.reload_doc();
}
})
});
dialog.show();
}

View File

@@ -0,0 +1,241 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2016, 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.utils import flt, add_months, cint, nowdate, getdate
from frappe.model.document import Document
from erpnext.accounts.doctype.purchase_invoice.purchase_invoice import get_fixed_asset_account
from erpnext.accounts.doctype.asset.depreciation \
import get_disposal_account_and_cost_center, get_depreciation_accounts
class Asset(Document):
def validate(self):
self.status = self.get_status()
self.validate_item()
self.set_missing_values()
self.validate_asset_values()
self.make_depreciation_schedule()
self.validate_expected_value_after_useful_life()
# Validate depreciation related accounts
get_depreciation_accounts(self)
def on_submit(self):
self.set_status()
def on_cancel(self):
self.validate_cancellation()
self.delete_depreciation_entries()
self.set_status()
def validate_item(self):
item = frappe.db.get_value("Item", self.item_code,
["is_fixed_asset", "is_stock_item", "disabled"], as_dict=1)
if not item:
frappe.throw(_("Item {0} does not exist").format(self.item_code))
elif item.disabled:
frappe.throw(_("Item {0} has been disabled").format(self.item_code))
elif not item.is_fixed_asset:
frappe.throw(_("Item {0} must be a Fixed Asset Item").format(self.item_code))
elif item.is_stock_item:
frappe.throw(_("Item {0} must be a non-stock item").format(self.item_code))
def set_missing_values(self):
if self.item_code:
item_details = get_item_details(self.item_code)
for field, value in item_details.items():
if not self.get(field):
self.set(field, value)
self.value_after_depreciation = (flt(self.gross_purchase_amount) -
flt(self.opening_accumulated_depreciation))
def validate_asset_values(self):
if flt(self.expected_value_after_useful_life) >= flt(self.gross_purchase_amount):
frappe.throw(_("Expected Value After Useful Life must be less than Gross Purchase Amount"))
if not flt(self.gross_purchase_amount):
frappe.throw(_("Gross Purchase Amount is mandatory"), frappe.MandatoryError)
if not self.is_existing_asset:
self.opening_accumulated_depreciation = 0
self.number_of_depreciations_booked = 0
if not self.next_depreciation_date:
frappe.throw(_("Next Depreciation Date is mandatory for new asset"))
else:
depreciable_amount = flt(self.gross_purchase_amount) - flt(self.expected_value_after_useful_life)
if flt(self.opening_accumulated_depreciation) > depreciable_amount:
frappe.throw(_("Opening Accumulated Depreciation must be less than equal to {0}")
.format(depreciable_amount))
if self.opening_accumulated_depreciation:
if not self.number_of_depreciations_booked:
frappe.throw(_("Please set Number of Depreciations Booked"))
else:
self.number_of_depreciations_booked = 0
if cint(self.number_of_depreciations_booked) > cint(self.total_number_of_depreciations):
frappe.throw(_("Number of Depreciations Booked cannot be greater than Total Number of Depreciations"))
if self.next_depreciation_date and getdate(self.next_depreciation_date) < getdate(nowdate()):
frappe.throw(_("Next Depreciation Date must be on or after today"))
if (flt(self.value_after_depreciation) > flt(self.expected_value_after_useful_life)
and not self.next_depreciation_date):
frappe.throw(_("Please set Next Depreciation Date"))
def make_depreciation_schedule(self):
self.schedules = []
if not self.get("schedules") and self.next_depreciation_date:
accumulated_depreciation = flt(self.opening_accumulated_depreciation)
value_after_depreciation = flt(self.value_after_depreciation)
number_of_pending_depreciations = cint(self.total_number_of_depreciations) - \
cint(self.number_of_depreciations_booked)
if number_of_pending_depreciations:
for n in xrange(number_of_pending_depreciations):
schedule_date = add_months(self.next_depreciation_date,
n * cint(self.frequency_of_depreciation))
depreciation_amount = self.get_depreciation_amount(value_after_depreciation)
accumulated_depreciation += flt(depreciation_amount)
value_after_depreciation -= flt(depreciation_amount)
self.append("schedules", {
"schedule_date": schedule_date,
"depreciation_amount": depreciation_amount,
"accumulated_depreciation_amount": accumulated_depreciation
})
def get_depreciation_amount(self, depreciable_value):
if self.depreciation_method == "Straight Line":
depreciation_amount = (flt(self.value_after_depreciation) -
flt(self.expected_value_after_useful_life)) / (cint(self.total_number_of_depreciations) -
cint(self.number_of_depreciations_booked))
else:
factor = 200.0 / self.total_number_of_depreciations
depreciation_amount = flt(depreciable_value * factor / 100, 0)
value_after_depreciation = flt(depreciable_value) - depreciation_amount
if value_after_depreciation < flt(self.expected_value_after_useful_life):
depreciation_amount = flt(depreciable_value) - flt(self.expected_value_after_useful_life)
return depreciation_amount
def validate_expected_value_after_useful_life(self):
if self.depreciation_method == "Double Declining Balance":
accumulated_depreciation_after_full_schedule = \
max([d.accumulated_depreciation_amount for d in self.get("schedules")])
asset_value_after_full_schedule = (flt(self.gross_purchase_amount) -
flt(accumulated_depreciation_after_full_schedule))
if self.expected_value_after_useful_life < asset_value_after_full_schedule:
frappe.throw(_("Expected value after useful life must be greater than or equal to {0}")
.format(asset_value_after_full_schedule))
def validate_cancellation(self):
if self.status not in ("Submitted", "Partially Depreciated", "Fully Depreciated"):
frappe.throw(_("Asset cannot be cancelled, as it is already {0}").format(self.status))
if self.purchase_invoice:
frappe.throw(_("Please cancel Purchase Invoice {0} first").format(self.purchase_invoice))
def delete_depreciation_entries(self):
for d in self.get("schedules"):
if d.journal_entry:
frappe.get_doc("Journal Entry", d.journal_entry).cancel()
d.db_set("journal_entry", None)
self.db_set("value_after_depreciation",
(flt(self.gross_purchase_amount) - flt(self.opening_accumulated_depreciation)))
def set_status(self, status=None):
'''Get and update status'''
if not status:
status = self.get_status()
self.db_set("status", status)
def get_status(self):
'''Returns status based on whether it is draft, submitted, scrapped or depreciated'''
if self.docstatus == 0:
status = "Draft"
elif self.docstatus == 1:
status = "Submitted"
if self.journal_entry_for_scrap:
status = "Scrapped"
elif flt(self.value_after_depreciation) <= flt(self.expected_value_after_useful_life):
status = "Fully Depreciated"
elif flt(self.value_after_depreciation) < flt(self.gross_purchase_amount):
status = 'Partially Depreciated'
elif self.docstatus == 2:
status = "Cancelled"
return status
@frappe.whitelist()
def make_purchase_invoice(asset, item_code, gross_purchase_amount, company, posting_date):
pi = frappe.new_doc("Purchase Invoice")
pi.company = company
pi.currency = frappe.db.get_value("Company", company, "default_currency")
pi.posting_date = posting_date
pi.append("items", {
"item_code": item_code,
"is_fixed_asset": 1,
"asset": asset,
"expense_account": get_fixed_asset_account(asset),
"qty": 1,
"price_list_rate": gross_purchase_amount,
"rate": gross_purchase_amount
})
pi.set_missing_values()
return pi
@frappe.whitelist()
def make_sales_invoice(asset, item_code, company):
si = frappe.new_doc("Sales Invoice")
si.company = company
si.currency = frappe.db.get_value("Company", company, "default_currency")
disposal_account, depreciation_cost_center = get_disposal_account_and_cost_center(company)
si.append("items", {
"item_code": item_code,
"is_fixed_asset": 1,
"asset": asset,
"income_account": disposal_account,
"cost_center": depreciation_cost_center,
"qty": 1
})
si.set_missing_values()
return si
@frappe.whitelist()
def transfer_asset(args):
import json
args = json.loads(args)
movement_entry = frappe.new_doc("Asset Movement")
movement_entry.update(args)
movement_entry.insert()
movement_entry.submit()
frappe.db.commit()
frappe.msgprint(_("Asset Movement record {0} created").format("<a href='#Form/Asset Movement/{0}'>{0}</a>".format(movement_entry.name)))
@frappe.whitelist()
def get_item_details(item_code):
asset_category = frappe.db.get_value("Item", item_code, "asset_category")
if not asset_category:
frappe.throw(_("Please enter Asset Category in Item {0}").format(item_code))
ret = frappe.db.get_value("Asset Category", asset_category,
["depreciation_method", "total_number_of_depreciations", "frequency_of_depreciation"], as_dict=1)
ret.update({
"asset_category": asset_category
})
return ret

View File

@@ -0,0 +1,184 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2016, 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.utils import flt, today, getdate
def post_depreciation_entries(date=None):
if not date:
date = today()
for asset in get_depreciable_assets(date):
make_depreciation_entry(asset, date)
frappe.db.commit()
def get_depreciable_assets(date):
return frappe.db.sql_list("""select a.name
from tabAsset a, `tabDepreciation Schedule` ds
where a.name = ds.parent and a.docstatus=1 and ds.schedule_date<=%s
and a.status in ('Submitted', 'Partially Depreciated')
and ifnull(ds.journal_entry, '')=''""", date)
@frappe.whitelist()
def make_depreciation_entry(asset_name, date=None):
frappe.has_permission('Journal Entry', throw=True)
if not date:
date = today()
asset = frappe.get_doc("Asset", asset_name)
fixed_asset_account, accumulated_depreciation_account, depreciation_expense_account = \
get_depreciation_accounts(asset)
depreciation_cost_center = frappe.db.get_value("Company", asset.company, "depreciation_cost_center")
for d in asset.get("schedules"):
if not d.journal_entry and getdate(d.schedule_date) <= getdate(date):
je = frappe.new_doc("Journal Entry")
je.voucher_type = "Depreciation Entry"
je.posting_date = d.schedule_date
je.company = asset.company
je.remark = "Depreciation Entry against {0} worth {1}".format(asset_name, d.depreciation_amount)
je.append("accounts", {
"account": accumulated_depreciation_account,
"credit_in_account_currency": d.depreciation_amount,
"reference_type": "Asset",
"reference_name": asset.name
})
je.append("accounts", {
"account": depreciation_expense_account,
"debit_in_account_currency": d.depreciation_amount,
"reference_type": "Asset",
"reference_name": asset.name,
"cost_center": depreciation_cost_center
})
je.flags.ignore_permissions = True
je.submit()
d.db_set("journal_entry", je.name)
asset.value_after_depreciation -= d.depreciation_amount
asset.db_set("value_after_depreciation", asset.value_after_depreciation)
asset.set_status()
return asset
def get_depreciation_accounts(asset):
fixed_asset_account = accumulated_depreciation_account = depreciation_expense_account = None
accounts = frappe.db.get_value("Asset Category Account",
filters={'parent': asset.asset_category, 'company_name': asset.company},
fieldname = ['fixed_asset_account', 'accumulated_depreciation_account',
'depreciation_expense_account'], as_dict=1)
if accounts:
fixed_asset_account = accounts.fixed_asset_account
accumulated_depreciation_account = accounts.accumulated_depreciation_account
depreciation_expense_account = accounts.depreciation_expense_account
if not accumulated_depreciation_account or not depreciation_expense_account:
accounts = frappe.db.get_value("Company", asset.company,
["accumulated_depreciation_account", "depreciation_expense_account"])
if not accumulated_depreciation_account:
accumulated_depreciation_account = accounts[0]
if not depreciation_expense_account:
depreciation_expense_account = accounts[1]
if not fixed_asset_account or not accumulated_depreciation_account or not depreciation_expense_account:
frappe.throw(_("Please set Depreciation related Accounts in Asset Category {0} or Company {1}")
.format(asset.asset_category, asset.company))
return fixed_asset_account, accumulated_depreciation_account, depreciation_expense_account
@frappe.whitelist()
def scrap_asset(asset_name):
asset = frappe.get_doc("Asset", asset_name)
if asset.docstatus != 1:
frappe.throw(_("Asset {0} must be submitted").format(asset.name))
elif asset.status in ("Cancelled", "Sold", "Scrapped"):
frappe.throw(_("Asset {0} cannot be scrapped, as it is already {1}").format(asset.name, asset.status))
je = frappe.new_doc("Journal Entry")
je.voucher_type = "Journal Entry"
je.posting_date = today()
je.company = asset.company
je.remark = "Scrap Entry for asset {0}".format(asset_name)
for entry in get_gl_entries_on_asset_disposal(asset):
entry.update({
"reference_type": "Asset",
"reference_name": asset_name
})
je.append("accounts", entry)
je.flags.ignore_permissions = True
je.submit()
frappe.db.set_value("Asset", asset_name, "disposal_date", today())
frappe.db.set_value("Asset", asset_name, "journal_entry_for_scrap", je.name)
asset.set_status("Scrapped")
frappe.msgprint(_("Asset scrapped via Journal Entry {0}").format(je.name))
@frappe.whitelist()
def restore_asset(asset_name):
asset = frappe.get_doc("Asset", asset_name)
je = asset.journal_entry_for_scrap
asset.db_set("disposal_date", None)
asset.db_set("journal_entry_for_scrap", None)
frappe.get_doc("Journal Entry", je).cancel()
asset.set_status()
@frappe.whitelist()
def get_gl_entries_on_asset_disposal(asset, selling_amount=0):
fixed_asset_account, accumulated_depr_account, depr_expense_account = get_depreciation_accounts(asset)
disposal_account, depreciation_cost_center = get_disposal_account_and_cost_center(asset.company)
accumulated_depr_amount = flt(asset.gross_purchase_amount) - flt(asset.value_after_depreciation)
gl_entries = [
{
"account": fixed_asset_account,
"credit_in_account_currency": asset.gross_purchase_amount,
"credit": asset.gross_purchase_amount
},
{
"account": accumulated_depr_account,
"debit_in_account_currency": accumulated_depr_amount,
"debit": accumulated_depr_amount
}
]
profit_amount = flt(selling_amount) - flt(asset.value_after_depreciation)
if flt(asset.value_after_depreciation) and profit_amount:
debit_or_credit = "debit" if profit_amount < 0 else "credit"
gl_entries.append({
"account": disposal_account,
"cost_center": depreciation_cost_center,
debit_or_credit: abs(profit_amount),
debit_or_credit + "_in_account_currency": abs(profit_amount)
})
return gl_entries
@frappe.whitelist()
def get_disposal_account_and_cost_center(company):
disposal_account, depreciation_cost_center = frappe.db.get_value("Company", company,
["disposal_account", "depreciation_cost_center"])
if not disposal_account:
frappe.throw(_("Please set 'Gain/Loss Account on Asset Disposal' in Company {0}").format(company))
if not depreciation_cost_center:
frappe.throw(_("Please set 'Asset Depreciation Cost Center' in Company {0}").format(company))
return disposal_account, depreciation_cost_center

View File

@@ -0,0 +1,276 @@
# -*- 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 frappe.utils import cstr, nowdate, getdate
from erpnext.accounts.doctype.asset.depreciation import post_depreciation_entries, scrap_asset, restore_asset
from erpnext.accounts.doctype.asset.asset import make_sales_invoice, make_purchase_invoice
class TestAsset(unittest.TestCase):
def setUp(self):
set_depreciation_settings_in_company()
create_asset()
def test_purchase_asset(self):
asset = frappe.get_doc("Asset", "Macbook Pro 1")
asset.submit()
pi = make_purchase_invoice(asset.name, asset.item_code, asset.gross_purchase_amount,
asset.company, asset.purchase_date)
pi.supplier = "_Test Supplier"
pi.insert()
pi.submit()
asset.load_from_db()
self.assertEqual(asset.supplier, "_Test Supplier")
self.assertEqual(asset.purchase_date, getdate("2015-01-01"))
self.assertEqual(asset.purchase_invoice, pi.name)
expected_gle = (
("_Test Fixed Asset - _TC", 100000.0, 0.0),
("Creditors - _TC", 0.0, 100000.0)
)
gle = frappe.db.sql("""select account, debit, credit from `tabGL Entry`
where voucher_type='Purchase Invoice' and voucher_no = %s
order by account""", pi.name)
self.assertEqual(gle, expected_gle)
pi.cancel()
asset.load_from_db()
self.assertEqual(asset.supplier, None)
self.assertEqual(asset.purchase_invoice, None)
self.assertFalse(frappe.db.get_value("GL Entry",
{"voucher_type": "Purchase Invoice", "voucher_no": pi.name}))
def test_schedule_for_straight_line_method(self):
asset = frappe.get_doc("Asset", "Macbook Pro 1")
self.assertEqual(asset.status, "Draft")
expected_schedules = [
["2020-12-31", 30000, 30000],
["2021-03-31", 30000, 60000],
["2021-06-30", 30000, 90000]
]
schedules = [[cstr(d.schedule_date), d.depreciation_amount, d.accumulated_depreciation_amount]
for d in asset.get("schedules")]
self.assertEqual(schedules, expected_schedules)
def test_schedule_for_straight_line_method_for_existing_asset(self):
asset = frappe.get_doc("Asset", "Macbook Pro 1")
asset.is_existing_asset = 1
asset.number_of_depreciations_booked = 1
asset.opening_accumulated_depreciation = 40000
asset.save()
self.assertEqual(asset.status, "Draft")
expected_schedules = [
["2020-12-31", 25000, 65000],
["2021-03-31", 25000, 90000]
]
schedules = [[cstr(d.schedule_date), d.depreciation_amount, d.accumulated_depreciation_amount]
for d in asset.get("schedules")]
self.assertEqual(schedules, expected_schedules)
def test_schedule_for_double_declining_method(self):
asset = frappe.get_doc("Asset", "Macbook Pro 1")
asset.depreciation_method = "Double Declining Balance"
asset.save()
expected_schedules = [
["2020-12-31", 66667, 66667],
["2021-03-31", 22222, 88889],
["2021-06-30", 1111, 90000]
]
schedules = [[cstr(d.schedule_date), d.depreciation_amount, d.accumulated_depreciation_amount]
for d in asset.get("schedules")]
self.assertEqual(schedules, expected_schedules)
def test_schedule_for_double_declining_method_for_existing_asset(self):
asset = frappe.get_doc("Asset", "Macbook Pro 1")
asset.depreciation_method = "Double Declining Balance"
asset.is_existing_asset = 1
asset.number_of_depreciations_booked = 1
asset.opening_accumulated_depreciation = 50000
asset.save()
expected_schedules = [
["2020-12-31", 33333, 83333],
["2021-03-31", 6667, 90000]
]
schedules = [[cstr(d.schedule_date), d.depreciation_amount, d.accumulated_depreciation_amount]
for d in asset.get("schedules")]
self.assertEqual(schedules, expected_schedules)
def test_depreciation(self):
asset = frappe.get_doc("Asset", "Macbook Pro 1")
asset.submit()
asset.load_from_db()
self.assertEqual(asset.status, "Submitted")
post_depreciation_entries(date="2021-01-01")
asset.load_from_db()
self.assertEqual(asset.status, "Partially Depreciated")
expected_gle = (
("_Test Accumulated Depreciations - _TC", 0.0, 30000.0),
("_Test Depreciations - _TC", 30000.0, 0.0)
)
gle = frappe.db.sql("""select account, debit, credit from `tabGL Entry`
where against_voucher_type='Asset' and against_voucher = %s
order by account""", asset.name)
self.assertEqual(gle, expected_gle)
self.assertEqual(asset.get("value_after_depreciation"), 70000)
def test_scrap_asset(self):
asset = frappe.get_doc("Asset", "Macbook Pro 1")
asset.submit()
post_depreciation_entries(date="2021-01-01")
scrap_asset("Macbook Pro 1")
asset.load_from_db()
self.assertEqual(asset.status, "Scrapped")
self.assertTrue(asset.journal_entry_for_scrap)
expected_gle = (
("_Test Accumulated Depreciations - _TC", 30000.0, 0.0),
("_Test Fixed Asset - _TC", 0.0, 100000.0),
("_Test Gain/Loss on Asset Disposal - _TC", 70000.0, 0.0)
)
gle = frappe.db.sql("""select account, debit, credit from `tabGL Entry`
where voucher_type='Journal Entry' and voucher_no = %s
order by account""", asset.journal_entry_for_scrap)
self.assertEqual(gle, expected_gle)
restore_asset("Macbook Pro 1")
asset.load_from_db()
self.assertFalse(asset.journal_entry_for_scrap)
self.assertEqual(asset.status, "Partially Depreciated")
def test_asset_sale(self):
frappe.get_doc("Asset", "Macbook Pro 1").submit()
post_depreciation_entries(date="2021-01-01")
si = make_sales_invoice(asset="Macbook Pro 1", item_code="Macbook Pro", company="_Test Company")
si.customer = "_Test Customer"
si.due_date = nowdate()
si.get("items")[0].rate = 25000
si.insert()
si.submit()
self.assertEqual(frappe.db.get_value("Asset", "Macbook Pro 1", "status"), "Sold")
expected_gle = (
("_Test Accumulated Depreciations - _TC", 30000.0, 0.0),
("_Test Fixed Asset - _TC", 0.0, 100000.0),
("_Test Gain/Loss on Asset Disposal - _TC", 45000.0, 0.0),
("Debtors - _TC", 25000.0, 0.0)
)
gle = frappe.db.sql("""select account, debit, credit from `tabGL Entry`
where voucher_type='Sales Invoice' and voucher_no = %s
order by account""", si.name)
self.assertEqual(gle, expected_gle)
si.cancel()
self.assertEqual(frappe.db.get_value("Asset", "Macbook Pro 1", "status"), "Partially Depreciated")
def tearDown(self):
asset = frappe.get_doc("Asset", "Macbook Pro 1")
if asset.docstatus == 1 and asset.status not in ("Scrapped", "Sold", "Draft", "Cancelled"):
asset.cancel()
self.assertEqual(frappe.db.get_value("Asset", "Macbook Pro 1", "status"), "Cancelled")
frappe.delete_doc("Asset", "Macbook Pro 1")
def create_asset():
if not frappe.db.exists("Asset Category", "Computers"):
create_asset_category()
if not frappe.db.exists("Item", "Macbook Pro"):
create_fixed_asset_item()
asset = frappe.get_doc({
"doctype": "Asset",
"asset_name": "Macbook Pro 1",
"asset_category": "Computers",
"item_code": "Macbook Pro",
"company": "_Test Company",
"purchase_date": "2015-01-01",
"next_depreciation_date": "2020-12-31",
"gross_purchase_amount": 100000,
"expected_value_after_useful_life": 10000,
"warehouse": "_Test Warehouse - _TC"
})
try:
asset.save()
except frappe.DuplicateEntryError:
pass
return asset
def create_asset_category():
asset_category = frappe.new_doc("Asset Category")
asset_category.asset_category_name = "Computers"
asset_category.total_number_of_depreciations = 3
asset_category.frequency_of_depreciation = 3
asset_category.append("accounts", {
"company_name": "_Test Company",
"fixed_asset_account": "_Test Fixed Asset - _TC",
"accumulated_depreciation_account": "_Test Accumulated Depreciations - _TC",
"depreciation_expense_account": "_Test Depreciations - _TC"
})
asset_category.insert()
def create_fixed_asset_item():
try:
frappe.get_doc({
"doctype": "Item",
"item_code": "Macbook Pro",
"item_name": "Macbook Pro",
"description": "Macbook Pro Retina Display",
"asset_category": "Computers",
"item_group": "All Item Groups",
"stock_uom": "Nos",
"is_stock_item": 0,
"is_fixed_asset": 1
}).insert()
except frappe.DuplicateEntryError:
pass
def set_depreciation_settings_in_company():
company = frappe.get_doc("Company", "_Test Company")
company.accumulated_depreciation_account = "_Test Accumulated Depreciations - _TC"
company.depreciation_expense_account = "_Test Depreciations - _TC"
company.disposal_account = "_Test Gain/Loss on Asset Disposal - _TC"
company.depreciation_cost_center = "_Test Cost Center - _TC"
company.save()

View File

@@ -0,0 +1,53 @@
// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
frappe.ui.form.on('Asset Category', {
setup: function(frm) {
frm.get_field('accounts').grid.editable_fields = [
{fieldname: 'company_name', columns: 3},
{fieldname: 'fixed_asset_account', columns: 3},
{fieldname: 'accumulated_depreciation_account', columns: 2},
{fieldname: 'depreciation_expense_account', columns: 2}
];
},
onload: function(frm) {
frm.add_fetch('company_name', 'accumulated_depreciation_account', 'accumulated_depreciation_account');
frm.add_fetch('company_name', 'depreciation_expense_account', 'accumulated_depreciation_account');
frm.set_query('fixed_asset_account', 'accounts', function(doc, cdt, cdn) {
var d = locals[cdt][cdn];
return {
"filters": {
"account_type": "Fixed Asset",
"root_type": "Asset",
"is_group": 0,
"company": d.company_name
}
};
});
frm.set_query('accumulated_depreciation_account', 'accounts', function(doc, cdt, cdn) {
var d = locals[cdt][cdn];
return {
"filters": {
"root_type": "Asset",
"is_group": 0,
"company": d.company_name
}
};
});
frm.set_query('depreciation_expense_account', 'accounts', function(doc, cdt, cdn) {
var d = locals[cdt][cdn];
return {
"filters": {
"root_type": "Expense",
"is_group": 0,
"company": d.company_name
}
};
});
}
});

View File

@@ -0,0 +1,253 @@
{
"allow_copy": 0,
"allow_import": 1,
"allow_rename": 1,
"autoname": "field:asset_category_name",
"creation": "2016-03-01 17:41:39.778765",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "Document",
"fields": [
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "asset_category_name",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Asset Category Name",
"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
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"default": "Straight Line",
"fieldname": "depreciation_method",
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Depreciation Method",
"length": 0,
"no_copy": 0,
"options": "\nStraight Line\nDouble Declining Balance",
"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": "column_break_3",
"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": "total_number_of_depreciations",
"fieldtype": "Int",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Total Number of Depreciations",
"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
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "frequency_of_depreciation",
"fieldtype": "Int",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Frequency of Depreciation (Months)",
"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
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "section_break_2",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Accounts",
"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": "accounts",
"fieldtype": "Table",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Accounts",
"length": 0,
"no_copy": 0,
"options": "Asset Category 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
}
],
"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-04-20 13:23:09.890324",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Asset Category",
"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": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Accounts User",
"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": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Accounts Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
}
],
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
"sort_field": "modified",
"sort_order": "DESC",
"track_seen": 0
}

View File

@@ -0,0 +1,15 @@
# -*- 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.utils import cint
from frappe.model.document import Document
class AssetCategory(Document):
def validate(self):
for field in ("total_number_of_depreciations", "frequency_of_depreciation"):
if cint(self.get(field))<1:
frappe.throw(_("{0} must be greater than 0").format(self.meta.get_label(field)), frappe.MandatoryError)

View File

@@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# See license.txt
from __future__ import unicode_literals
import frappe
import unittest
class TestAssetCategory(unittest.TestCase):
def test_mandatory_fields(self):
asset_category = frappe.new_doc("Asset Category")
asset_category.asset_category_name = "Computers"
self.assertRaises(frappe.MandatoryError, asset_category.insert)
asset_category.total_number_of_depreciations = 3
asset_category.frequency_of_depreciation = 3
asset_category.append("accounts", {
"company_name": "_Test Company",
"fixed_asset_account": "_Test Fixed Asset - _TC",
"accumulated_depreciation_account": "_Test Accumulated Depreciations - _TC",
"depreciation_expense_account": "_Test Depreciations - _TC"
})
try:
asset_category.insert()
except frappe.DuplicateEntryError:
pass

View File

@@ -0,0 +1,141 @@
{
"allow_copy": 0,
"allow_import": 0,
"allow_rename": 0,
"beta": 0,
"creation": "2016-03-07 15:55:18.806409",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"editable_grid": 1,
"fields": [
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "company_name",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Company",
"length": 0,
"no_copy": 0,
"options": "Company",
"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": "fixed_asset_account",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Fixed Asset 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": "accumulated_depreciation_account",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Accumulated Depreciation 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": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "depreciation_expense_account",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Depreciation Expense 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": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"image_view": 0,
"in_create": 0,
"in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"max_attachments": 0,
"modified": "2016-07-11 03:27:58.048060",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Asset Category Account",
"name_case": "",
"owner": "Administrator",
"permissions": [],
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
"sort_field": "modified",
"sort_order": "DESC",
"track_seen": 0
}

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 AssetCategoryAccount(Document):
pass

View File

@@ -0,0 +1,15 @@
// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
frappe.ui.form.on('Asset Movement', {
onload: function(frm) {
frm.add_fetch("asset", "warehouse", "source_warehouse");
frm.set_query("target_warehouse", function() {
return {
filters: [["Warehouse", "company", "in", ["", cstr(frm.doc.company)]]]
}
})
}
});

View File

@@ -0,0 +1,274 @@
{
"allow_copy": 0,
"allow_import": 1,
"allow_rename": 0,
"autoname": "AM-.#####",
"creation": "2016-04-25 18:00:23.559973",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"fields": [
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "asset",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Asset",
"length": 0,
"no_copy": 0,
"options": "Asset",
"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": "transaction_date",
"fieldtype": "Datetime",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Transaction Date",
"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
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "company",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Company",
"length": 0,
"no_copy": 0,
"options": "Company",
"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": "column_break_4",
"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": "source_warehouse",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Source Warehouse",
"length": 0,
"no_copy": 0,
"options": "Warehouse",
"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": "target_warehouse",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Target Warehouse",
"length": 0,
"no_copy": 0,
"options": "Warehouse",
"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": "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": "Asset Movement",
"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-04-25 19:14:08.853429",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Asset Movement",
"name_case": "",
"owner": "Administrator",
"permissions": [
{
"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": "System 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": "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": "Stock Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 1,
"write": 1
}
],
"quick_entry": 1,
"read_only": 0,
"read_only_onload": 0,
"sort_field": "modified",
"sort_order": "DESC",
"track_seen": 0
}

View File

@@ -0,0 +1,48 @@
# -*- 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
class AssetMovement(Document):
def validate(self):
self.validate_asset()
self.validate_warehouses()
def validate_asset(self):
status, company = frappe.db.get_value("Asset", self.asset, ["status", "company"])
if status in ("Draft", "Scrapped", "Sold"):
frappe.throw(_("{0} asset cannot be transferred").format(status))
if company != self.company:
frappe.throw(_("Asset {0} does not belong to company {1}").format(self.asset, self.company))
def validate_warehouses(self):
if not self.source_warehouse:
self.source_warehouse = frappe.db.get_value("Asset", self.asset, "warehouse")
if self.source_warehouse == self.target_warehouse:
frappe.throw(_("Source and Target Warehouse cannot be same"))
def on_submit(self):
self.set_latest_warehouse_in_asset()
def on_cancel(self):
self.set_latest_warehouse_in_asset()
def set_latest_warehouse_in_asset(self):
latest_movement_entry = frappe.db.sql("""select target_warehouse from `tabAsset Movement`
where asset=%s and docstatus=1 and company=%s
order by transaction_date desc limit 1""", (self.asset, self.company))
if latest_movement_entry:
warehouse = latest_movement_entry[0][0]
else:
warehouse = frappe.db.sql("""select source_warehouse from `tabAsset Movement`
where asset=%s and docstatus=2 and company=%s
order by transaction_date asc limit 1""", (self.asset, self.company))[0][0]
frappe.db.set_value("Asset", self.asset, "warehouse", warehouse)

View File

@@ -0,0 +1,51 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# See license.txt
from __future__ import unicode_literals
import frappe
from frappe.utils import now
import unittest
from erpnext.accounts.doctype.asset.test_asset import create_asset
class TestAssetMovement(unittest.TestCase):
def test_movement(self):
asset = create_asset()
if asset.docstatus == 0:
asset.submit()
movement1 = create_asset_movement(asset, target_warehouse="_Test Warehouse 1 - _TC")
self.assertEqual(frappe.db.get_value("Asset", asset.name, "warehouse"), "_Test Warehouse 1 - _TC")
movement2 = create_asset_movement(asset, target_warehouse="_Test Warehouse 2 - _TC")
self.assertEqual(frappe.db.get_value("Asset", asset.name, "warehouse"), "_Test Warehouse 2 - _TC")
movement1.cancel()
self.assertEqual(frappe.db.get_value("Asset", asset.name, "warehouse"), "_Test Warehouse 2 - _TC")
movement2.cancel()
self.assertEqual(frappe.db.get_value("Asset", asset.name, "warehouse"), "_Test Warehouse - _TC")
asset.load_from_db()
asset.cancel()
frappe.delete_doc("Asset", asset.name)
def create_asset_movement(asset, target_warehouse, transaction_date=None):
if not transaction_date:
transaction_date = now()
movement = frappe.new_doc("Asset Movement")
movement.update({
"asset": asset.name,
"transaction_date": transaction_date,
"target_warehouse": target_warehouse,
"company": asset.company
})
movement.insert()
movement.submit()
return movement

View File

@@ -3,11 +3,22 @@
frappe.ui.form.on("Bank Reconciliation", {
setup: function(frm) {
frm.get_docfield("journal_entries").allow_bulk_edit = 1;
frm.get_docfield("payment_entries").allow_bulk_edit = 1;
frm.add_fetch("bank_account", "account_currency", "account_currency");
frm.get_field('payment_entries').grid.editable_fields = [
{fieldname: 'against_account', columns: 3},
{fieldname: 'amount', columns: 2},
{fieldname: 'cheque_number', columns: 3},
{fieldname: 'clearance_date', columns: 2}
];
},
onload: function(frm) {
var default_bank_account = locals[":Company"][frappe.defaults.get_user_default("Company")]["default_bank_account"];
frm.set_value("bank_account", default_bank_account);
frm.set_query("bank_account", function() {
return {
"filters": {
@@ -27,16 +38,21 @@ frappe.ui.form.on("Bank Reconciliation", {
update_clearance_date: function(frm) {
return frappe.call({
method: "update_details",
doc: frm.doc
});
},
get_relevant_entries: function(frm) {
return frappe.call({
method: "get_details",
method: "update_clearance_date",
doc: frm.doc,
callback: function(r, rt) {
frm.refresh()
frm.refresh_field("payment_entries");
frm.refresh_fields();
}
});
},
get_payment_entries: function(frm) {
return frappe.call({
method: "get_payment_entries",
doc: frm.doc,
callback: function(r, rt) {
frm.refresh_field("payment_entries");
frm.refresh_fields();
}
});
}

View File

@@ -2,6 +2,7 @@
"allow_copy": 1,
"allow_import": 0,
"allow_rename": 0,
"beta": 0,
"creation": "2013-01-10 16:34:05",
"custom": 0,
"docstatus": 0,
@@ -16,6 +17,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Bank Account",
@@ -40,6 +42,7 @@
"fieldtype": "Link",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Account Currency",
@@ -64,6 +67,7 @@
"fieldtype": "Date",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "From Date",
@@ -87,6 +91,7 @@
"fieldtype": "Date",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "To Date",
@@ -110,6 +115,7 @@
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Include Reconciled Entries",
@@ -129,13 +135,14 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "get_relevant_entries",
"fieldname": "get_payment_entries",
"fieldtype": "Button",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Get Relevant Entries",
"label": "Get Payment Entries",
"length": 0,
"no_copy": 0,
"options": "",
@@ -153,13 +160,14 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "journal_entries",
"fieldname": "payment_entries",
"fieldtype": "Table",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Journal Entries",
"label": "Payment Entries",
"length": 0,
"no_copy": 0,
"options": "Bank Reconciliation Detail",
@@ -181,6 +189,7 @@
"fieldtype": "Button",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Update Clearance Date",
@@ -205,6 +214,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Total Amount",
@@ -226,6 +236,7 @@
"hide_toolbar": 1,
"icon": "icon-check",
"idx": 1,
"image_view": 0,
"in_create": 0,
"in_dialog": 0,
"is_submittable": 0,
@@ -233,7 +244,7 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
"modified": "2015-11-30 12:44:45.105451",
"modified": "2016-06-28 13:11:09.396353",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Bank Reconciliation",
@@ -260,7 +271,10 @@
"write": 1
}
],
"quick_entry": 1,
"read_only": 1,
"read_only_onload": 0,
"sort_order": "ASC",
"track_seen": 0,
"version": 0
}

View File

@@ -12,7 +12,7 @@ form_grid_templates = {
}
class BankReconciliation(Document):
def get_details(self):
def get_payment_entries(self):
if not (self.bank_account and self.from_date and self.to_date):
msgprint("Bank Account, From Date and To Date are Mandatory")
return
@@ -22,48 +22,68 @@ class BankReconciliation(Document):
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_in_account_currency,
t2.credit_in_account_currency, t1.posting_date, t2.against_account, t1.clearance_date
journal_entries = frappe.db.sql("""
select
"Journal Entry" as payment_document, t1.name as payment_entry,
t1.cheque_no as cheque_number, t1.cheque_date,
abs(t2.debit_in_account_currency - t2.credit_in_account_currency) as amount,
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 DESC, t1.name DESC""" %
('%s', '%s', '%s', condition), (self.bank_account, self.from_date, self.to_date), as_dict=1)
self.set('journal_entries', [])
t2.parent = t1.name and t2.account = %s and t1.docstatus=1
and t1.posting_date >= %s and t1.posting_date <= %s
and ifnull(t1.is_opening, 'No') = 'No' {0}
order by t1.posting_date ASC, t1.name DESC
""".format(condition), (self.bank_account, self.from_date, self.to_date), as_dict=1)
payment_entries = frappe.db.sql("""
select
"Payment Entry" as payment_document, name as payment_entry,
reference_no as cheque_number, reference_date as cheque_date,
if(paid_from=%s, paid_amount, received_amount) as amount,
posting_date, party as against_account, clearance_date
from `tabPayment Entry`
where
(paid_from=%s or paid_to=%s) and docstatus=1
and posting_date >= %s and posting_date <= %s {0}
order by
posting_date ASC, name DESC
""".format(condition),
(self.bank_account, self.bank_account, self.bank_account, self.from_date, self.to_date), as_dict=1)
entries = sorted(list(payment_entries)+list(journal_entries),
key=lambda k: k['posting_date'] or getdate(nowdate()))
self.set('payment_entries', [])
self.total_amount = 0.0
for d in dl:
nl = self.append('journal_entries', {})
nl.posting_date = d.posting_date
nl.voucher_id = d.name
nl.cheque_number = d.cheque_no
nl.cheque_date = d.cheque_date
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_in_account_currency) - flt(d.credit_in_account_currency)
for d in entries:
row = self.append('payment_entries', {})
row.update(d)
self.total_amount += flt(d.amount)
def update_details(self):
vouchers = []
for d in self.get('journal_entries'):
def update_clearance_date(self):
clearance_date_updated = False
for d in self.get('payment_entries'):
if d.clearance_date:
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))
frappe.throw(_("Row #{0}: Clearance date {1} cannot be before Cheque Date {2}")
.format(d.idx, d.clearance_date, d.cheque_date))
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))
vouchers.append(d.voucher_id)
if vouchers:
msgprint("Clearance Date updated in: {0}".format(", ".join(vouchers)))
frappe.db.set_value(d.payment_document, d.payment_entry, "clearance_date", d.clearance_date)
frappe.db.sql("""update `tab{0}` set clearance_date = %s, modified = %s
where name=%s""".format(d.payment_document),
(d.clearance_date, nowdate(), d.payment_entry))
clearance_date_updated = True
if clearance_date_updated:
self.get_payment_entries()
msgprint(_("Clearance Date updated"))
else:
msgprint(_("Clearance Date not mentioned"))

View File

@@ -2,27 +2,56 @@
"allow_copy": 0,
"allow_import": 0,
"allow_rename": 0,
"beta": 0,
"creation": "2013-02-22 01:27:37",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"editable_grid": 1,
"fields": [
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "voucher_id",
"fieldname": "payment_document",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Payment Document",
"length": 0,
"no_copy": 0,
"options": "DocType",
"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_entry",
"fieldtype": "Dynamic Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Voucher ID",
"label": "Payment Entry",
"length": 0,
"no_copy": 0,
"oldfieldname": "voucher_id",
"oldfieldtype": "Link",
"options": "Journal Entry",
"options": "payment_document",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
@@ -42,6 +71,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Against Account",
@@ -64,13 +94,14 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "debit",
"fieldname": "amount",
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Debit",
"in_list_view": 1,
"label": "Amount",
"length": 0,
"no_copy": 0,
"oldfieldname": "debit",
@@ -86,32 +117,6 @@
"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,
@@ -120,6 +125,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -144,8 +150,9 @@
"fieldtype": "Date",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"in_list_view": 0,
"label": "Posting Date",
"length": 0,
"no_copy": 0,
@@ -169,6 +176,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Cheque Number",
@@ -194,6 +202,7 @@
"fieldtype": "Date",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Cheque Date",
@@ -219,6 +228,7 @@
"fieldtype": "Date",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Clearance Date",
@@ -240,6 +250,7 @@
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 1,
"image_view": 0,
"in_create": 0,
"in_dialog": 0,
"is_submittable": 0,
@@ -247,12 +258,15 @@
"istable": 1,
"max_attachments": 0,
"menu_index": 0,
"modified": "2016-02-17 06:50:40.074578",
"modified": "2016-07-11 03:27:58.139117",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Bank Reconciliation Detail",
"owner": "Administrator",
"permissions": [],
"quick_entry": 1,
"read_only": 0,
"read_only_onload": 0
"read_only_onload": 0,
"sort_order": "ASC",
"track_seen": 0
}

View File

@@ -0,0 +1,32 @@
// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
frappe.ui.form.on('Budget', {
onload: function(frm) {
frm.set_query("cost_center", function() {
return {
filters: {
company: frm.doc.company
}
}
})
frm.set_query("account", "accounts", function() {
return {
filters: {
company: frm.doc.company,
report_type: "Profit and Loss",
is_group: 0
}
}
})
frm.set_query("monthly_distribution", function() {
return {
filters: {
fiscal_year: frm.doc.fiscal_year
}
}
})
}
});

View File

@@ -0,0 +1,314 @@
{
"allow_copy": 0,
"allow_import": 1,
"allow_rename": 0,
"beta": 0,
"creation": "2016-05-16 11:42:29.632528",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"fields": [
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "cost_center",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Cost Center",
"length": 0,
"no_copy": 0,
"options": "Cost Center",
"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": "fiscal_year",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Fiscal Year",
"length": 0,
"no_copy": 0,
"options": "Fiscal Year",
"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": "monthly_distribution",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Monthly Distribution",
"length": 0,
"no_copy": 0,
"options": "Monthly Distribution",
"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_3",
"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": 1,
"bold": 0,
"collapsible": 0,
"default": "Stop",
"fieldname": "action_if_annual_budget_exceeded",
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Action if Annual Budget Exceeded",
"length": 0,
"no_copy": 0,
"options": "\nStop\nWarn\nIgnore",
"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": 1,
"bold": 0,
"collapsible": 0,
"default": "Warn",
"description": "",
"fieldname": "action_if_accumulated_monthly_budget_exceeded",
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Action if Accumulated Monthly Budget Exceeded",
"length": 0,
"no_copy": 0,
"options": "\nStop\nWarn\nIgnore",
"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": "company",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Company",
"length": 0,
"no_copy": 0,
"options": "Company",
"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": "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": "Budget",
"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
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "section_break_6",
"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": "accounts",
"fieldtype": "Table",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Budget Accounts",
"length": 0,
"no_copy": 0,
"options": "Budget 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
}
],
"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-05-16 15:00:40.233685",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Budget",
"name_case": "",
"owner": "Administrator",
"permissions": [
{
"amend": 1,
"apply_user_permissions": 0,
"cancel": 1,
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"if_owner": 0,
"import": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Accounts Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 1,
"write": 1
}
],
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
"sort_field": "modified",
"sort_order": "DESC",
"track_seen": 0
}

View File

@@ -0,0 +1,133 @@
# -*- 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.utils import flt, getdate, add_months, get_last_day
from frappe.model.naming import make_autoname
from frappe.model.document import Document
class BudgetError(frappe.ValidationError): pass
class DuplicateBudgetError(frappe.ValidationError): pass
class Budget(Document):
def autoname(self):
self.name = make_autoname(self.cost_center + "/" + self.fiscal_year + "/.###")
def validate(self):
self.validate_duplicate()
self.validate_accounts()
def validate_duplicate(self):
existing_budget = frappe.db.get_value("Budget", {"cost_center": self.cost_center,
"fiscal_year": self.fiscal_year, "company": self.company,
"name": ["!=", self.name], "docstatus": ["!=", 2]})
if existing_budget:
frappe.throw(_("Another Budget record {0} already exists against {1} for fiscal year {2}")
.format(existing_budget, self.cost_center, self.fiscal_year), DuplicateBudgetError)
def validate_accounts(self):
account_list = []
for d in self.get('accounts'):
if d.account:
account_details = frappe.db.get_value("Account", d.account,
["is_group", "company", "report_type"], as_dict=1)
if account_details.is_group:
frappe.throw(_("Budget cannot be assigned against Group Account {0}").format(d.account))
elif account_details.company != self.company:
frappe.throw(_("Account {0} does not belongs to company {1}")
.format(d.account, self.company))
elif account_details.report_type != "Profit and Loss":
frappe.throw(_("Budget cannot be assigned against {0}, as it's not an Income or Expense account")
.format(d.account))
if d.account in account_list:
frappe.throw(_("Account {0} has been entered multiple times").format(d.account))
else:
account_list.append(d.account)
def validate_expense_against_budget(args):
args = frappe._dict(args)
if frappe.db.get_value("Account", {"name": args.account, "root_type": "Expense"}):
cc_lft, cc_rgt = frappe.db.get_value("Cost Center", args.cost_center, ["lft", "rgt"])
budget_records = frappe.db.sql("""
select ba.budget_amount, b.monthly_distribution, b.cost_center,
b.action_if_annual_budget_exceeded, b.action_if_accumulated_monthly_budget_exceeded
from `tabBudget` b, `tabBudget Account` ba
where
b.name=ba.parent and b.fiscal_year=%s and ba.account=%s and b.docstatus=1
and exists(select name from `tabCost Center` where lft<=%s and rgt>=%s and name=b.cost_center)
""", (args.fiscal_year, args.account, cc_lft, cc_rgt), as_dict=True)
for budget in budget_records:
if budget.budget_amount:
yearly_action = budget.action_if_annual_budget_exceeded
monthly_action = budget.action_if_accumulated_monthly_budget_exceeded
if monthly_action in ["Stop", "Warn"]:
budget_amount = get_accumulated_monthly_budget(budget.monthly_distribution,
args.posting_date, args.fiscal_year, budget.budget_amount)
args["month_end_date"] = get_last_day(args.posting_date)
compare_expense_with_budget(args, budget.cost_center,
budget_amount, _("Accumulated Monthly"), monthly_action)
elif yearly_action in ["Stop", "Warn"]:
compare_expense_with_budget(args, budget.cost_center,
flt(budget.budget_amount), _("Annual"), yearly_action)
def compare_expense_with_budget(args, cost_center, budget_amount, action_for, action):
actual_expense = get_actual_expense(args, cost_center)
if actual_expense > budget_amount:
diff = actual_expense - budget_amount
msg = _("{0} Budget for Account {1} against Cost Center {2} is {3}. It will exceed by {4}").format(_(action_for), args.account, cost_center, budget_amount, diff)
if action=="Stop":
frappe.throw(msg, BudgetError)
else:
frappe.msgprint(msg)
def get_accumulated_monthly_budget(monthly_distribution, posting_date, fiscal_year, annual_budget):
distribution = {}
if monthly_distribution:
for d in frappe.db.sql("""select mdp.month, mdp.percentage_allocation
from `tabMonthly Distribution Percentage` mdp, `tabMonthly Distribution` md
where mdp.parent=md.name and md.fiscal_year=%s""", fiscal_year, as_dict=1):
distribution.setdefault(d.month, d.percentage_allocation)
dt = frappe.db.get_value("Fiscal Year", fiscal_year, "year_start_date")
accumulated_percentage = 0.0
while(dt <= getdate(posting_date)):
if monthly_distribution:
accumulated_percentage += distribution.get(getdate(dt).strftime("%B"), 0)
else:
accumulated_percentage += 100.0/12
dt = add_months(dt, 1)
return annual_budget * accumulated_percentage / 100
def get_actual_expense(args, cost_center):
lft_rgt = frappe.db.get_value("Cost Center", cost_center, ["lft", "rgt"], as_dict=1)
args.update(lft_rgt)
condition = " and gle.posting_date <= %(month_end_date)s" if args.get("month_end_date") else ""
return flt(frappe.db.sql("""
select sum(gle.debit) - sum(gle.credit)
from `tabGL Entry` gle
where gle.account=%(account)s
and exists(select name from `tabCost Center`
where lft>=%(lft)s and rgt<=%(rgt)s and name=gle.cost_center)
and gle.fiscal_year=%(fiscal_year)s
and gle.company=%(company)s
and gle.docstatus=1
{condition}
""".format(condition=condition), (args))[0][0])

View File

@@ -0,0 +1,120 @@
# -*- 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.accounts.doctype.budget.budget import get_actual_expense, BudgetError
from erpnext.accounts.doctype.journal_entry.test_journal_entry import make_journal_entry
class TestBudget(unittest.TestCase):
def test_monthly_budget_crossed_ignore(self):
set_total_expense_zero("2013-02-28")
budget = make_budget()
jv = make_journal_entry("_Test Account Cost for Goods Sold - _TC",
"_Test Bank - _TC", 40000, "_Test Cost Center - _TC", submit=True)
self.assertTrue(frappe.db.get_value("GL Entry",
{"voucher_type": "Journal Entry", "voucher_no": jv.name}))
budget.cancel()
def test_monthly_budget_crossed_stop(self):
set_total_expense_zero("2013-02-28")
budget = make_budget()
frappe.db.set_value("Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop")
jv = make_journal_entry("_Test Account Cost for Goods Sold - _TC",
"_Test Bank - _TC", 40000, "_Test Cost Center - _TC")
self.assertRaises(BudgetError, jv.submit)
budget.load_from_db()
budget.cancel()
def test_yearly_budget_crossed_stop(self):
set_total_expense_zero("2013-02-28")
budget = make_budget()
jv = make_journal_entry("_Test Account Cost for Goods Sold - _TC",
"_Test Bank - _TC", 150000, "_Test Cost Center - _TC")
self.assertRaises(BudgetError, jv.submit)
budget.cancel()
def test_monthly_budget_on_cancellation(self):
set_total_expense_zero("2013-02-28")
budget = make_budget()
jv1 = make_journal_entry("_Test Account Cost for Goods Sold - _TC",
"_Test Bank - _TC", 20000, "_Test Cost Center - _TC", submit=True)
self.assertTrue(frappe.db.get_value("GL Entry",
{"voucher_type": "Journal Entry", "voucher_no": jv1.name}))
jv2 = make_journal_entry("_Test Account Cost for Goods Sold - _TC",
"_Test Bank - _TC", 20000, "_Test Cost Center - _TC", submit=True)
self.assertTrue(frappe.db.get_value("GL Entry",
{"voucher_type": "Journal Entry", "voucher_no": jv2.name}))
frappe.db.set_value("Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop")
self.assertRaises(BudgetError, jv1.cancel)
budget.load_from_db()
budget.cancel()
def test_monthly_budget_against_group_cost_center(self):
set_total_expense_zero("2013-02-28")
set_total_expense_zero("2013-02-28", "_Test Cost Center 2 - _TC")
budget = make_budget("_Test Company - _TC")
frappe.db.set_value("Budget", budget.name, "action_if_accumulated_monthly_budget_exceeded", "Stop")
jv = make_journal_entry("_Test Account Cost for Goods Sold - _TC",
"_Test Bank - _TC", 40000, "_Test Cost Center 2 - _TC")
self.assertRaises(BudgetError, jv.submit)
budget.load_from_db()
budget.cancel()
def set_total_expense_zero(posting_date, cost_center=None):
existing_expense = get_actual_expense({
"account": "_Test Account Cost for Goods Sold - _TC",
"cost_center": cost_center or "_Test Cost Center - _TC",
"monthly_end_date": posting_date,
"company": "_Test Company",
"fiscal_year": "_Test Fiscal Year 2013"
}, cost_center or "_Test Cost Center - _TC")
make_journal_entry("_Test Account Cost for Goods Sold - _TC",
"_Test Bank - _TC", -existing_expense, "_Test Cost Center - _TC", submit=True)
def make_budget(cost_center=None):
budget = frappe.new_doc("Budget")
budget.cost_center = cost_center or "_Test Cost Center - _TC"
budget.fiscal_year = "_Test Fiscal Year 2013"
budget.monthly_distribution = "_Test Distribution"
budget.company = "_Test Company"
budget.action_if_annual_budget_exceeded = "Stop"
budget.action_if_accumulated_monthly_budget_exceeded = "Ignore"
budget.append("accounts", {
"account": "_Test Account Cost for Goods Sold - _TC",
"budget_amount": 100000
})
budget.insert()
budget.submit()
return budget

View File

@@ -0,0 +1,88 @@
{
"allow_copy": 0,
"allow_import": 0,
"allow_rename": 0,
"beta": 0,
"creation": "2016-05-16 11:54:09.286135",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"editable_grid": 1,
"fields": [
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "account",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "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": "budget_amount",
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Budget Amount",
"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,
"image_view": 0,
"in_create": 0,
"in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"max_attachments": 0,
"modified": "2016-07-11 03:27:58.705376",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Budget Account",
"name_case": "",
"owner": "Administrator",
"permissions": [],
"quick_entry": 1,
"read_only": 0,
"read_only_onload": 0,
"sort_field": "modified",
"sort_order": "DESC",
"track_seen": 0
}

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 BudgetAccount(Document):
pass

View File

@@ -1 +0,0 @@
Budget amounts for year and distribution for parent Cost Center.

View File

@@ -1 +0,0 @@
from __future__ import unicode_literals

View File

@@ -1,9 +0,0 @@
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe
from frappe.model.document import Document
class BudgetDetail(Document):
pass

View File

@@ -3,12 +3,12 @@
//c-form js file
// -----------------------------
frappe.require("assets/erpnext/js/utils.js");
cur_frm.fields_dict.invoices.grid.get_field("invoice_no").get_query = function(doc) {
return {
filters: {
"docstatus": 1,
"docstatus": 1,
"customer": doc.customer,
"company": doc.company,
"c_form_applicable": 'Yes',

View File

@@ -18,17 +18,17 @@ class CForm(Document):
`tabSales Invoice` where name = %s and docstatus = 1""", d.invoice_no)
if inv and inv[0][0] != 'Yes':
frappe.throw("C-form is not applicable for Invoice: {0}".format(d.invoice_no))
frappe.throw(_("C-form is not applicable for Invoice: {0}".format(d.invoice_no)))
elif inv and inv[0][1] and inv[0][1] != self.name:
frappe.throw("""Invoice {0} is tagged in another C-form: {1}.
frappe.throw(_("""Invoice {0} is tagged in another C-form: {1}.
If you want to change C-form no for this invoice,
please remove invoice no from the previous c-form and then try again"""\
.format(d.invoice_no, inv[0][1]))
.format(d.invoice_no, inv[0][1])))
elif not inv:
frappe.throw("Row {0}: Invoice {1} is invalid, it might be cancelled / does not exist. \
Please enter a valid Invoice".format(d.idx, d.invoice_no))
frappe.throw(_("Row {0}: Invoice {1} is invalid, it might be cancelled / does not exist. \
Please enter a valid Invoice".format(d.idx, d.invoice_no)))
def on_update(self):
""" Update C-Form No on invoices"""

View File

@@ -2,10 +2,12 @@
"allow_copy": 0,
"allow_import": 0,
"allow_rename": 0,
"beta": 0,
"creation": "2013-02-22 01:27:38",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"editable_grid": 1,
"fields": [
{
"allow_on_submit": 0,
@@ -15,6 +17,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Invoice No",
@@ -23,6 +26,7 @@
"options": "Sales Invoice",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"print_width": "160px",
"read_only": 0,
"report_hide": 0,
@@ -40,6 +44,7 @@
"fieldtype": "Date",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Invoice Date",
@@ -47,6 +52,7 @@
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"print_width": "120px",
"read_only": 1,
"report_hide": 0,
@@ -65,6 +71,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Territory",
@@ -73,6 +80,7 @@
"options": "Territory",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"print_width": "120px",
"read_only": 1,
"report_hide": 0,
@@ -90,6 +98,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Net Total",
@@ -98,6 +107,7 @@
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"print_width": "120px",
"read_only": 1,
"report_hide": 0,
@@ -115,6 +125,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Grand Total",
@@ -123,6 +134,7 @@
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"print_width": "120px",
"read_only": 1,
"report_hide": 0,
@@ -136,18 +148,21 @@
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 1,
"image_view": 0,
"in_create": 0,
"in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"max_attachments": 0,
"modified": "2015-11-16 06:29:43.221484",
"modified": "2016-07-11 03:27:58.768719",
"modified_by": "Administrator",
"module": "Accounts",
"name": "C-Form Invoice Detail",
"owner": "Administrator",
"permissions": [],
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0
"read_only_onload": 0,
"track_seen": 0
}

View File

@@ -0,0 +1,77 @@
// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
frappe.provide("erpnext.cheque_print");
frappe.ui.form.on('Cheque Print Template', {
refresh: function(frm) {
if(!frm.doc.__islocal) {
frm.add_custom_button(frm.doc.has_print_format?__("Update Print Format"):__("Create Print Format"),
function() {
erpnext.cheque_print.view_cheque_print(frm);
}).addClass("btn-primary");
$(frm.fields_dict.cheque_print_preview.wrapper).empty()
var template = '<div style="position: relative; overflow-x: scroll;">\
<div id="cheque_preview" style="width: {{ cheque_width }}cm; \
height: {{ cheque_height }}cm;\
background-repeat: no-repeat;\
background-size: cover;">\
<span style="top: {{ acc_pay_dist_from_top_edge }}cm;\
left: {{ acc_pay_dist_from_left_edge }}cm;\
border-bottom: solid 1px;border-top:solid 1px;\
position: absolute;"> {{ message_to_show || __("Account Pay Only") }} </span>\
<span style="top: {{ date_dist_from_top_edge }}cm;\
left: {{ date_dist_from_left_edge }}cm;\
position: absolute;"> {{ frappe.datetime.obj_to_user() }} </span>\
<span style="top: {{ acc_no_dist_from_top_edge }}cm;\
left: {{ acc_no_dist_from_left_edge }}cm;\
position: absolute;"> Acc. No. </span>\
<span style="top: {{ payer_name_from_top_edge }}cm;\
left: {{ payer_name_from_left_edge }}cm;\
position: absolute;"> Payer Name </span>\
<span style="top:{{ amt_in_words_from_top_edge }}cm;\
left: {{ amt_in_words_from_left_edge }}cm;\
position: absolute;\
display: block;\
width: {{ amt_in_word_width }}cm;\
line-height: {{ amt_in_words_line_spacing }}cm;\
word-wrap: break-word;"> Amount in Words </span>\
<span style="top: {{ amt_in_figures_from_top_edge }}cm;\
left: {{ amt_in_figures_from_left_edge }}cm;\
position: absolute;"> 1000 </span>\
<span style="top: {{ signatory_from_top_edge }}cm;\
left: {{ signatory_from_left_edge }}cm;\
position: absolute;"> Signatory Name </span>\
</div>\
</div>';
$(frappe.render(template, frm.doc)).appendTo(frm.fields_dict.cheque_print_preview.wrapper)
if (frm.doc.scanned_cheque) {
$(frm.fields_dict.cheque_print_preview.wrapper).find("#cheque_preview").css('background-image', 'url(' + frm.doc.scanned_cheque + ')');
}
}
}
});
erpnext.cheque_print.view_cheque_print = function(frm) {
frappe.call({
method: "erpnext.accounts.doctype.cheque_print_template.cheque_print_template.create_or_update_cheque_print_format",
args:{
"template_name": frm.doc.name
},
callback: function(r) {
if (!r.exe && !frm.doc.has_print_format) {
var doc = frappe.model.sync(r.message);
frappe.set_route("Form", r.message.doctype, r.message.name);
}
else {
frappe.msgprint(__("Print settings updated in respective print format"))
}
}
})
}

View File

@@ -0,0 +1,89 @@
# -*- 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
from frappe import _
class ChequePrintTemplate(Document):
pass
@frappe.whitelist()
def create_or_update_cheque_print_format(template_name):
if not frappe.db.exists("Print Format", template_name):
cheque_print = frappe.new_doc("Print Format")
cheque_print.update({
"doc_type": "Payment Entry",
"standard": "No",
"custom_format": 1,
"print_format_type": "Server",
"name": template_name
})
else:
cheque_print = frappe.get_doc("Print Format", template_name)
doc = frappe.get_doc("Cheque Print Template", template_name)
cheque_print.html = """
<div style="position: relative; top:%(starting_position_from_top_edge)scm">
<div style="width:%(cheque_width)scm;height:%(cheque_height)scm;">
<span style="top: {{ %(acc_pay_dist_from_top_edge)s }}cm; left: {{ %(acc_pay_dist_from_left_edge)s }}cm;
border-bottom: solid 1px;border-top:solid 1px; position: absolute;">
%(message_to_show)s
</span>
<span style="top:%(date_dist_from_top_edge)s cm; left:%(date_dist_from_left_edge)scm;
position: absolute;">
{{doc.reference_date or '' }}
</span>
<span style="top:%(acc_no_dist_from_top_edge)scm;left:%(acc_no_dist_from_left_edge)scm;
position: absolute;">
{{ doc.account_no or '' }}
</span>
<span style="top:%(payer_name_from_top_edge)scm;left: %(payer_name_from_left_edge)scm;
position: absolute;">
{{doc.party}}
</span>
<span style="top:%(amt_in_words_from_top_edge)scm; left:%(amt_in_words_from_left_edge)scm;
position: absolute; display: block; width: %(amt_in_word_width)scm;
line-height:%(amt_in_words_line_spacing)scm; word-wrap: break-word;">
{{frappe.utils.money_in_words(doc.base_paid_amount or doc.base_received_amount)}}
</span>
<span style="top:%(amt_in_figures_from_top_edge)scm;left: %(amt_in_figures_from_left_edge)scm;
position: absolute;">
{{doc.get_formatted("base_paid_amount") or doc.get_formatted("base_received_amount")}}
</span>
<span style="top:%(signatory_from_top_edge)scm;left: %(signatory_from_left_edge)scm;
position: absolute;">
{{doc.company}}
</span>
</div>
</div>"""%{
"starting_position_from_top_edge": doc.starting_position_from_top_edge \
if doc.cheque_size == "A4" else 0.0,
"cheque_width": doc.cheque_width, "cheque_height": doc.cheque_height,
"acc_pay_dist_from_top_edge": doc.acc_pay_dist_from_top_edge,
"acc_pay_dist_from_left_edge": doc.acc_pay_dist_from_left_edge,
"message_to_show": doc.message_to_show if doc.message_to_show else _("Account Pay Only"),
"date_dist_from_top_edge": doc.date_dist_from_top_edge,
"date_dist_from_left_edge": doc.date_dist_from_left_edge,
"acc_no_dist_from_top_edge": doc.acc_no_dist_from_top_edge,
"acc_no_dist_from_left_edge": doc.acc_no_dist_from_left_edge,
"payer_name_from_top_edge": doc.payer_name_from_top_edge,
"payer_name_from_left_edge": doc.payer_name_from_left_edge,
"amt_in_words_from_top_edge": doc.amt_in_words_from_top_edge,
"amt_in_words_from_left_edge": doc.amt_in_words_from_left_edge,
"amt_in_word_width": doc.amt_in_word_width,
"amt_in_words_line_spacing": doc.amt_in_words_line_spacing,
"amt_in_figures_from_top_edge": doc.amt_in_figures_from_top_edge,
"amt_in_figures_from_left_edge": doc.amt_in_figures_from_left_edge,
"signatory_from_top_edge": doc.signatory_from_top_edge,
"signatory_from_left_edge": doc.signatory_from_left_edge
}
cheque_print.save(ignore_permissions=True)
frappe.db.set_value("Cheque Print Template", template_name, "has_print_format", 1)
return cheque_print

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