Compare commits

...

611 Commits

Author SHA1 Message Date
Nabin Hait
4058af24e2 Merge branch 'hotfix' 2016-04-15 11:01:32 +05:30
Nabin Hait
66953941ea bumped to version 6.27.9 2016-04-15 11:31:32 +06:00
Nabin Hait
36c9d11bee Merge pull request #5211 from nabinhait/jv_precision_fix
[fix] Set debit / credit as per field precision
2016-04-15 10:58:49 +05:30
Nabin Hait
e393c62086 [fix] Set debit / credit as per field precision 2016-04-14 18:15:42 +05:30
Nabin Hait
9f553e7206 Merge branch 'hotfix' 2016-04-13 16:04:37 +05:30
Nabin Hait
ba7d8b0cac bumped to version 6.27.8 2016-04-13 16:34:37 +06:00
Nabin Hait
1ce6df8ff6 Merge pull request #5203 from nabinhait/credit_limit_fix
[fix] Ignore closed sales order in credit limit validation
2016-04-13 15:36:33 +05:30
Nabin Hait
7132bd3659 [fix] Ignore closed sales order in credit limit validation 2016-04-13 15:19:37 +05:30
Nabin Hait
13a2574bd6 Merge pull request #5159 from neilLasrado/setup-wizard-fix
Fixed setup wizard
2016-04-13 12:06:55 +05:30
Nabin Hait
09855fc3cc Merge pull request #5158 from neilLasrado/hotfix
Removed education as a domain in ERPNext setup wizard
2016-04-13 12:05:11 +05:30
Nabin Hait
55f6308169 Merge branch 'anandpdoshi-fix/quotation-lead-tax-rule' into hotfix 2016-04-13 12:03:22 +05:30
Nabin Hait
c2ae1a7375 fixed merge conflict 2016-04-13 11:55:15 +05:30
Nabin Hait
c792e65d99 Merge pull request #5196 from nabinhait/report_fix34
[fix] Fixed pending so items for material request report
2016-04-13 11:40:34 +05:30
Nabin Hait
471908ab9f Merge pull request #5194 from nabinhait/gross_profit_fix
Gross profit fix
2016-04-12 18:57:45 +05:30
Nabin Hait
9fef3df6a0 [fix] Fixed pending so items for material request report 2016-04-12 18:46:47 +05:30
Nabin Hait
8a686ba982 [fix] Prevent from directly creating payment request 2016-04-12 17:02:15 +05:30
Nabin Hait
f509d13d28 [fix] Get average selling rate based on group by 2016-04-12 17:01:39 +05:30
Nabin Hait
96d7905383 Merge pull request #5177 from rohitwaghchaure/support_hot_fix
[Fix] Default letter head
2016-04-12 11:03:18 +05:30
Rohit Waghchaure
b2e7a1f605 [Fix] Default letter head 2016-04-11 17:30:44 +05:30
Nabin Hait
3912a31a6f Merge pull request #5176 from nabinhait/ar_ap_print_currency
Currency column in AR/AP and Sales/Purchase register report
2016-04-11 17:13:04 +05:30
Nabin Hait
b713406e22 Merge pull request #5180 from nabinhait/stock_entry_actual_qty
[fix] Set actual qty onload of the draft stock entry. Fixed #5172
2016-04-11 17:12:34 +05:30
Nabin Hait
32b2a7795e [fix] Set actual qty onload of the draft stock entry. Fixed #5172 2016-04-11 15:14:05 +05:30
Nabin Hait
f945e10cce Currency column in AR/AP and sales/purchase register report 2016-04-11 11:56:57 +05:30
Anand Doshi
2f957f27b0 [fix] apply Tax Rule for lead 2016-04-08 17:43:08 +05:30
Neil Trini Lasrado
7b46e5148a Fixed setup wizard 2016-04-08 17:28:44 +05:30
Anand Doshi
79a415e3b8 [fix] Use for shopping cart validation in Tax Rule 2016-04-08 17:08:26 +05:30
Neil Trini Lasrado
ce893499d7 Removed education as a domain in ERPNext setup wizard 2016-04-08 16:52:53 +05:30
Anand Doshi
d89152e4a5 Merge pull request #5151 from anandpdoshi/fix/travis-frappe-branch
[fix] bench init using correct frappe branch
2016-04-07 19:56:49 +05:30
Anand Doshi
6677fd58ef [fix] bench init using correct frappe branch 2016-04-07 19:33:04 +05:30
Anand Doshi
c6a695d0f3 Merge branch 'hotfix' 2016-04-07 17:41:48 +05:30
Anand Doshi
54910000d4 bumped to version 6.27.7 2016-04-07 18:11:48 +06:00
Anand Doshi
1f2f82fcc2 Merge pull request #5147 from vjFaLk/leave-allocation-fix
[Fix] Leave Allocation now includes To Date in Difference
2016-04-07 16:53:29 +05:30
Anand Doshi
1a0d32cdfb [fix] [minor] Learn link in welcome to ERPNext 2016-04-07 16:28:01 +05:30
Valmik Jangla
c33e96f860 Leave Allocation Fix 2016-04-07 12:02:31 +05:30
Anand Doshi
ca95384f05 [fix] Salary Slip: use accounts.utils.get_fiscal_year 2016-04-06 12:31:01 +05:30
Anand Doshi
4b207647db [fix] sanitize html of product bundle description 2016-04-05 18:34:11 +05:30
Anand Doshi
ade5b82167 Merge branch 'hotfix' 2016-04-04 17:54:48 +05:30
Anand Doshi
bcbfeb0d53 bumped to version 6.27.6 2016-04-04 18:24:48 +06:00
Anand Doshi
710c38ffe1 Merge pull request #5120 from nabinhait/report_fix
[fix] received and delivered items to be billed report based on percentage billed
2016-04-04 17:43:24 +05:30
Nabin Hait
94360cca20 [fix] received and delivered items to be billed report based on percentage billed 2016-04-04 17:40:33 +05:30
Anand Doshi
f1b276122e Merge pull request #5117 from nabinhait/report_modified_change
[fix] Modified date changed in query report due to project field renaming
2016-04-04 17:04:14 +05:30
Anand Doshi
62be8dfd21 Merge pull request #5131 from shreyasp/creditnote-print-format
[Fix] Correct amount shown in credit note print format
2016-04-04 15:37:31 +05:30
Anand Doshi
1a922196fa Merge pull request #5130 from anandpdoshi/fix/validate-pos-paid-amount
[fix] POS paid amount validation using grand total
2016-04-04 15:22:51 +05:30
shreyas
c6b47bcdda [Fix] Show amount in credit note print format 2016-04-04 15:13:03 +05:30
Anand Doshi
15f7b1ee1a [fix] POS paid amount validation using grand total 2016-04-04 15:03:28 +05:30
Anand Doshi
08b39b1ff8 [fix] escape fg_item in production planning's get_so_items 2016-04-04 13:16:56 +05:30
Anand Doshi
da7d1667d5 [travis] 2016-04-04 12:36:52 +05:30
Nabin Hait
4f10f15686 [fix] Modified date changed in query report due to project field renaming 2016-04-01 17:59:06 +05:30
Rushabh Mehta
d02038f591 Merge pull request #5110 from nabinhait/warranty_claim_fix
[fix] Get query for item in warranty claim
2016-04-01 11:44:48 +05:30
Nabin Hait
83e61bf368 [fix] Get query for item in warranty claim 2016-04-01 11:10:27 +05:30
Nabin Hait
d95c376d57 Merge pull request #5094 from nabinhait/item_query_fix
[fix] Item query in bom
2016-03-31 11:53:24 +05:30
Nabin Hait
c6285069dc [fix] Item query in bom 2016-03-30 13:10:25 +05:30
Rushabh Mehta
4ccf692f7c Merge branch 'hotfix' 2016-03-29 10:49:46 +05:30
Rushabh Mehta
8573aee8b8 bumped to version 6.27.5 2016-03-29 11:19:46 +06:00
Rushabh Mehta
dab3cdc106 Merge pull request #5071 from neilLasrado/pricing-rule-fix
Fixed Issues in Pricing rule
2016-03-29 10:18:03 +05:30
Rushabh Mehta
2de1f86009 Merge pull request #5070 from vjFaLk/hotfix
Fix for Holiday List in Maintenance Schedule
2016-03-29 10:17:27 +05:30
Neil Trini Lasrado
b176dea74e Fixed issues in Pricing Rule if multiple pricing rules existed with same priority 2016-03-28 13:23:47 +05:30
Valmik Jangla
47b89756d9 Fix for Holiday List in Maintenance Schedule 2016-03-28 12:34:21 +05:30
Rushabh Mehta
aabc634afd Merge branch 'hot-fix-leave-application' 2016-03-25 11:30:22 +05:30
Rushabh Mehta
3becd4239f bumped to version 6.27.4 2016-03-25 12:00:22 +06:00
Rushabh Mehta
1b5edcbbd8 [fix] holiday_list issues in maintenance schedule too 2016-03-25 11:22:15 +05:30
Rushabh Mehta
51135a1522 [fix] fix get holidays in leave application 2016-03-25 11:13:11 +05:30
Rushabh Mehta
97e523b4a4 Merge branch 'develop' 2016-03-21 17:25:09 +05:30
Rushabh Mehta
09ec13f7cf bumped to version 6.27.3 2016-03-21 17:55:09 +06:00
Rushabh Mehta
2179cd97c8 Merge pull request #5026 from nabinhait/modified_fix
[fix] Updated modified datetime
2016-03-21 17:23:28 +05:30
Nabin Hait
c8baa01e9c [fix] Updated modified datetime 2016-03-21 17:20:03 +05:30
Rushabh Mehta
dda0906458 Merge branch 'develop' 2016-03-21 15:45:22 +05:30
Rushabh Mehta
cd04380149 bumped to version 6.27.2 2016-03-21 16:15:21 +06:00
Rushabh Mehta
df3bf5d76b Merge pull request #5020 from rohitwaghchaure/support_week_14_03_5
[formatting] Added between in trends.py
2016-03-21 15:42:34 +05:30
Rushabh Mehta
833432086b Merge pull request #5024 from nabinhait/recurring_doc_status
[patch] Fix delivery and billing status of recurring orders
2016-03-21 15:26:40 +05:30
Nabin Hait
2646f84a30 [patch] Fix delivery and billing status of recurring orders 2016-03-21 15:22:31 +05:30
Rushabh Mehta
7364f0cf1c [patch-fix] remove old patches for web-forms 2016-03-21 14:47:35 +05:30
Rushabh Mehta
a9ce706bfb [update] translations 2016-03-21 14:35:36 +05:30
rohitwaghchaure
49ccac5d95 [formatting] Added between in trends.py 2016-03-21 12:31:41 +05:30
Rushabh Mehta
98122a2574 Merge pull request #5013 from agusputra/patch-25
Update allow-over-delivery-billing-against-sales-order-upto-certain-l…
2016-03-21 12:22:01 +05:30
Rushabh Mehta
ea768ec132 Merge pull request #5019 from saurabh6790/supp1.0
[fixes] set todays date on employee attendance tool
2016-03-21 12:06:01 +05:30
Rushabh Mehta
d00ce6a8cf Merge pull request #5022 from nabinhait/recurring_fix3
[fix] set recurring id after saving
2016-03-21 12:04:56 +05:30
Nabin Hait
68a628ea1e [fix] set recurring id after saving 2016-03-21 12:03:30 +05:30
Saurabh
6a277e244c [fixes] set todays date on employee attendance tool 2016-03-20 19:00:26 +05:30
Agus Syahputra
383b13cdb5 Update allow-over-delivery-billing-against-sales-order-upto-certain-limit.md 2016-03-19 08:31:50 +07:00
Nabin Hait
f197d42503 Merge branch 'develop' 2016-03-18 16:36:40 +05:30
Nabin Hait
6d27470401 bumped to version 6.27.1 2016-03-18 17:06:40 +06:00
Nabin Hait
3f11f0ae44 Merge pull request #5010 from rohitwaghchaure/support_week_14_03_5
[Enhancement]Fetch default letter head of company on salary structure and salary slip
2016-03-18 16:35:14 +05:30
rohitwaghchaure
277b7fa641 [Enhancement]Fetch default letter head of company on salary structure and salary slip 2016-03-18 16:33:18 +05:30
Nabin Hait
9a75530c26 [fix] reload doctype for renaming project 2016-03-18 16:19:25 +05:30
Nabin Hait
dcedac7f25 Merge pull request #5008 from rohitwaghchaure/support_week_14_03_5
[fix]Letterhead not being changed with change in company
2016-03-18 15:41:54 +05:30
rohitwaghchaure
cef1086441 [fix]Letterhead not being changed with change in company 2016-03-18 15:37:24 +05:30
Nabin Hait
d6c59656e8 Merge pull request #5009 from saurabh6790/cart_fixes-1.0
[fixes] return debtors account name
2016-03-18 15:36:06 +05:30
Nabin Hait
5996b2f1bb [fix] recurring document logic 2016-03-18 15:19:54 +05:30
Saurabh
b43df36e85 [fixes] return debtors account name 2016-03-18 15:05:50 +05:30
rohitwaghchaure
90ff509f6d [fix]Earlier recurring billing 2016-03-18 10:44:53 +05:30
Nabin Hait
d61b21cedf Merge pull request #5002 from rohitwaghchaure/support_week_14_03_5
[fix]Fiscal year removed from trends report
2016-03-18 10:33:18 +05:30
rohitwaghchaure
5b9d517d04 [fix]Fiscal year removed from trends report 2016-03-17 22:46:09 +05:30
Nabin Hait
84806bf673 Merge branch 'develop' 2016-03-17 19:31:45 +05:30
Nabin Hait
eba2c4323e bumped to version 6.27.0 2016-03-17 20:01:45 +06:00
Nabin Hait
1ecd8cdaa3 [change-log] 2016-03-17 19:26:29 +05:30
Nabin Hait
21ade4a773 Merge pull request #5000 from nabinhait/develop
Minor fixes
2016-03-17 19:19:19 +05:30
Nabin Hait
24f1c50dca Create sample Material Requests via setup wizard only if warehouse exists 2016-03-17 19:14:53 +05:30
Nabin Hait
4f01704234 [fix] Fetch shipping address only if field exists 2016-03-17 19:14:53 +05:30
Nabin Hait
547d223b28 Merge pull request #4979 from vjFaLk/leave-improvements
Improved Leave Application / Approver feature
2016-03-17 19:06:06 +05:30
Nabin Hait
2e08e3e186 Merge pull request #4991 from neilLasrado/develop
Fixed Production Planning Tool
2016-03-17 19:05:09 +05:30
Nabin Hait
4e78cee1c2 Merge pull request #4959 from ShashaQin/patch-37
Improvements about Item Prices Report
2016-03-17 18:13:09 +05:30
Nabin Hait
2f7b210aac Merge pull request #4995 from nabinhait/develop
[fix] BOM Browser
2016-03-17 18:05:28 +05:30
Nabin Hait
2ed8f8f099 [fix] BOM Browser 2016-03-17 15:55:48 +05:30
Nabin Hait
cf8fd6274d Merge pull request #4994 from umairsy/report-fix
fixes in the Account Receivable print format - with Nabin
2016-03-17 15:53:26 +05:30
Rushabh Mehta
813b9efe28 [fix] [minor] address.py 2016-03-17 15:36:30 +05:30
Umair Sayyed
8cbc076dc2 fixes in the Account Receivale print format - with Nabin 2016-03-17 15:12:31 +05:30
Valmik Jangla
15343be386 Commonified functions for retrieving Leave Approvers 2016-03-17 11:47:30 +05:30
Valmik Jangla
33cc081c3b Improved Leave Application / Approver feature 2016-03-17 11:47:30 +05:30
Nabin Hait
6221117069 [fix] shipping address position in document 2016-03-16 16:23:30 +05:30
Nabin Hait
cd6c09fbee [fix] shipping address in purchasee cycle 2016-03-16 16:23:30 +05:30
Saurabh
0f063a5f46 [patch] map customer_address to shipping_address and customer_address_display to shipping_address_display 2016-03-16 16:23:30 +05:30
Saurabh
14d646f636 [fixes] shipping address on purchase flow 2016-03-16 16:23:30 +05:30
shreyas
7e2d7e88a6 [Partial]Some more changes to enable shipping address to be displayed in PO 2016-03-16 16:23:30 +05:30
shreyas
26bb6f37bc [Partial] Fix to add Shipping address in Purchase order 2016-03-16 16:23:29 +05:30
shreyas
77d23824df [Partial]Some more changes to enable shipping address to be displayed in PO 2016-03-16 16:23:29 +05:30
shreyas
22d26a1d82 [Partial] Fix to add Shipping address in Purchase order 2016-03-16 16:23:29 +05:30
Nabin Hait
91a69e4a8d Merge pull request #4992 from neilLasrado/project-rename
Fixed bug while selecting project in sales_invoice, sales_order, deli…
2016-03-16 16:03:18 +05:30
Neil Trini Lasrado
f433a5a124 Fixed bug while selecting project in sales_invoice, sales_order, delivery_note 2016-03-16 16:00:27 +05:30
Neil Trini Lasrado
41380dfad8 Fixed Production Planning Tool 2016-03-16 15:26:01 +05:30
Nabin Hait
2a5c1138a0 Merge pull request #4944 from rmehta/modules-redesign
[redesign] modules
2016-03-16 14:35:11 +05:30
ShashaQin
769b01e07a Update item_prices.py 2016-03-16 16:37:28 +08:00
Nabin Hait
fc827b329e Merge pull request #4932 from ci2014/patch-2
Update purchase-return.md
2016-03-16 12:33:33 +05:30
Nabin Hait
1f11b96533 Merge pull request #4931 from ci2014/patch-1
Update sales-return.md
2016-03-16 12:32:42 +05:30
Nabin Hait
a61930e7a7 [fix] reload doctype forcefully to rename project field 2016-03-16 12:29:32 +05:30
Nabin Hait
22d4a7e742 Merge branch 'prod-order' of https://github.com/neilLasrado/erpnext into neilLasrado-prod-order 2016-03-16 12:18:01 +05:30
Nabin Hait
df4deba515 minor fix 2016-03-16 11:16:31 +05:30
Neil Trini Lasrado
6e343e23d9 Renamed project_name to project 2016-03-15 17:50:53 +05:30
Nabin Hait
2c70238fbb Merge branch 'develop' 2016-03-15 16:43:05 +05:30
Nabin Hait
d0723f8a96 bumped to version 6.26.0 2016-03-15 17:13:05 +06:00
Nabin Hait
2ecf239925 [change-log] 2016-03-15 16:26:36 +05:30
Nabin Hait
29b01226ea [translations] 2016-03-15 16:17:21 +05:30
Nabin Hait
6c88331101 Merge pull request #4986 from nabinhait/ar_fix
Fixes in AR/AP Print Format
2016-03-15 16:11:06 +05:30
Nabin Hait
f853a92676 Fixes in AR/AP Print Format 2016-03-15 16:10:15 +05:30
Nabin Hait
d8d6579003 Merge pull request #4985 from nabinhait/minor_fixes
minot fixes
2016-03-15 15:22:34 +05:30
Nabin Hait
89301863e5 minot fixes 2016-03-15 15:20:49 +05:30
Nabin Hait
6c3cc3647b Merge pull request #4969 from rmehta/link-count
[enhancement] sort links on basis of link_count (idx)
2016-03-15 11:40:18 +05:30
Nabin Hait
b9126317b3 Merge pull request #4981 from umairsy/march1
updated manual
2016-03-15 11:39:29 +05:30
Nabin Hait
25716652b7 Merge pull request #4982 from rohitwaghchaure/support_week_14_03-1
[fixes]draft BOM showing in Material Request
2016-03-15 11:36:15 +05:30
rohitwaghchaure
986616f8ee [fixes]draft BOM showing in Material Request 2016-03-14 19:33:30 +05:30
Umair Sayyed
d3ed3638cf updated manual 2016-03-14 19:28:53 +05:30
Nabin Hait
5fc9552d29 Merge pull request #4980 from rohitwaghchaure/support_week_14_03
[fixes]Unable set recurring date in sales order
2016-03-14 19:20:13 +05:30
Nabin Hait
b1f0a7d52e Merge pull request #4876 from saurabh6790/valuation_rate_on_so
[enhancement] get valuation rate and gross profit on sales order item
2016-03-14 19:18:58 +05:30
rohitwaghchaure
c54b805981 [fixes]Unable set recurring date in sales order 2016-03-14 19:03:22 +05:30
Nabin Hait
a098b4178a Merge pull request #4976 from saurabh6790/pr_from_si
[fixes] set amount in PR by checking party_account_currency field
2016-03-14 19:01:07 +05:30
Nabin Hait
c2f973b521 Merge pull request #4977 from nabinhait/fix88
[fix] Item or Warehouse filter mandatory in Stock Balance if number of sle is greater than 500000
2016-03-14 19:00:42 +05:30
Anand Doshi
ad61a28730 [fix] [hot] compact print: check in_format_data for print format builder prints 2016-03-14 18:20:48 +05:30
Nabin Hait
e66b6ce01f Merge pull request #4978 from rohitwaghchaure/support_week_14_03
[fixes]indicator in material request item
2016-03-14 18:09:58 +05:30
rohitwaghchaure
bea7558908 [fixes]indicator in material request item 2016-03-14 17:47:36 +05:30
Nabin Hait
aa7e17cd80 Merge pull request #4970 from nabinhait/fix77
[fix] delete company transactions
2016-03-14 16:36:51 +05:30
Saurabh
c54619570a [fixes] check party_account_currency while creating Pull Request from Sales Invoice 2016-03-14 15:55:23 +05:30
Nabin Hait
d1f85c4fe6 [fix] Item or Warehouse filter mandatory in Stock Balance if number of sle is greater than 500000 2016-03-14 14:59:21 +05:30
Saurabh
9f94266892 [fixes] fetch value from grand total field while creating payment request from si 2016-03-14 11:23:03 +05:30
Anand Doshi
01a8473996 [fix] [docs] removed contents.md 2016-03-12 00:08:38 +05:30
Anand Doshi
f319206d22 [fix] [hot] reload doctype Holiday List 2016-03-11 19:45:28 +05:30
Nabin Hait
653f68d2e4 [fix] delete company transactions 2016-03-11 17:36:57 +05:30
Anand Doshi
a7aa2c70b5 Merge branch 'vjFaLk-holiday-list' into develop 2016-03-11 17:16:37 +05:30
Anand Doshi
4284fcf2a6 [fix] additional fixes for removal of Fiscal Year form Holiday List 2016-03-11 17:16:30 +05:30
ci2014
73db44d0b9 Update purchase-return.md
Added back {next}
2016-03-11 11:27:17 +01:00
Valmik Jangla
e2b8af16ed Fixed Salary Slip to work with new Holiday List 2016-03-11 14:58:55 +05:30
Valmik Jangla
ba54a43e32 Fixed Maintenance Schedule to work wit new Holiday List
Improved code in Holiday List for speed
2016-03-11 14:58:55 +05:30
Valmik Jangla
3427c939bd Removed unused code 2016-03-11 14:58:55 +05:30
Valmik Jangla
c666030f34 Get Weekly Off dates now gets dates dynamically
Fixed Holiday List test records
2016-03-11 14:58:55 +05:30
Valmik Jangla
3085186182 Removed Fiscal Year from Holiday List and Calendar 2016-03-11 14:58:55 +05:30
Anand Doshi
58fc9037b3 Merge branch 'vjFaLk-remove-fiscal-year' into develop 2016-03-11 14:57:08 +05:30
Anand Doshi
c75c1d7e3e [fix] additional fixes after deprecating Fiscal Year 2016-03-11 14:56:19 +05:30
Rushabh Mehta
3574b37ff3 [enhancement] sort links on basis of link_count (idx) 2016-03-11 14:33:04 +05:30
Valmik Jangla
d9cc14ddd5 Removed from Leave Block List and Monthly Attendance List 2016-03-11 13:07:49 +05:30
Valmik Jangla
13bb2ba779 Removed fiscal year related things from, Recurrent Document, Leave Application, Upload attendance, Stock Reconciliation and Stock Balance 2016-03-11 13:07:49 +05:30
Valmik Jangla
063946a02f Removed from Purchase Invoice and Purchase Reciept 2016-03-11 13:07:48 +05:30
Valmik Jangla
d89dcf60e6 Removed from Delivery Note and Appraisal
Added back in Stock Ledger Entry
Added validation in GL Entry and SL Entry
Stock Controller sets Fiscal Year using Posting Date
2016-03-11 13:07:48 +05:30
Valmik Jangla
d4ac3d8ceb Removed from Stock Ledger Entry and Sales Invoice 2016-03-11 13:07:48 +05:30
Valmik Jangla
98ec1164fc Removed from Attendance, Upload Attendance, and Sales Order 2016-03-11 13:07:16 +05:30
Valmik Jangla
836fd6450d Removed from Purchase Order and Supplier Quotation 2016-03-11 13:07:16 +05:30
Valmik Jangla
cd9daf6671 Removed from Journal Entry and Stock Reconciliation 2016-03-11 13:07:16 +05:30
Valmik Jangla
c7e774fda9 BudgetError Fix 2016-03-11 13:05:20 +05:30
Valmik Jangla
865d547965 Removed from GL Entry, Opportunity and Quotation 2016-03-11 13:05:20 +05:30
Valmik Jangla
bc60970fcb Removed from Maitenance Visit and Warranty Claim 2016-03-11 13:05:19 +05:30
Valmik Jangla
319bbad4d4 Removed from Stock Entry 2016-03-11 13:05:19 +05:30
Valmik Jangla
57b69cecbf Removed from C-Form 2016-03-11 13:05:19 +05:30
Valmik Jangla
634ecae020 Removed from Lead 2016-03-11 13:05:19 +05:30
Valmik Jangla
c4c603dcd2 Removed from Expense Claim 2016-03-11 13:05:19 +05:30
Valmik Jangla
1d797c1688 Removed from Installation Note 2016-03-11 13:05:19 +05:30
Anand Doshi
22ef68945d [minor] comment about hack 2016-03-11 12:47:14 +05:30
Anand Doshi
09f7cc4912 Merge branch 'develop' 2016-03-11 12:30:42 +05:30
Anand Doshi
39dda5cf49 bumped to version 6.25.5 2016-03-11 13:00:42 +06:00
Anand Doshi
1e1d8026ad Merge pull request #4966 from shreyasp/move-compny-fld-in-jv
[Minor] Moved company field to top of the form
2016-03-11 12:25:11 +05:30
shreyas
6c89bb1900 [Minor] Moved company field to top of the form, making it more consistent other doctypes 2016-03-11 12:12:30 +05:30
Anand Doshi
73a0265e4f Merge branch 'develop' 2016-03-10 15:51:35 +05:30
Anand Doshi
06b3ecb99b bumped to version 6.25.4 2016-03-10 16:21:35 +06:00
Anand Doshi
6d59a41b27 [fix] delete Web Form contact 2016-03-10 14:31:04 +05:30
Anand Doshi
eb395788b7 Merge branch 'develop' 2016-03-10 12:48:52 +05:30
Anand Doshi
1bca0780a4 bumped to version 6.25.3 2016-03-10 13:18:52 +06:00
Anand Doshi
b015f9eca2 [fix] [hot] web form fixtures - removed Contact, added Issues and Addresses 2016-03-10 12:40:10 +05:30
ShashaQin
e8d635827a Update item_prices.py 2016-03-10 14:55:06 +08:00
Anand Doshi
f0e16e68c5 Merge pull request #4962 from nabinhait/trial_balance_fix
[fix] Trial Balance report, showing rows with zero values
2016-03-10 12:24:24 +05:30
Anand Doshi
650b016584 Merge pull request #4961 from nabinhait/fix_658
[fix] Rearranged position of mode_of_payment in sales invoice
2016-03-10 12:15:11 +05:30
Nabin Hait
3883e86ad7 [fix] Trial Balance report, showing rows with zero values 2016-03-10 12:01:01 +05:30
Nabin Hait
dd8dbe000b [fix] Rearranged position of mode_of_payment in sales invoice 2016-03-10 10:58:31 +05:30
ShashaQin
c6b5f7dcae Update item_prices.py 2016-03-10 08:49:38 +08:00
Anand Doshi
4147106c88 Merge branch 'develop' 2016-03-09 19:04:54 +05:30
Anand Doshi
25e947bef6 bumped to version 6.25.2 2016-03-09 19:34:54 +06:00
Anand Doshi
bb4db5ae80 [fix] [hot] german translation for Sales Return = Rücklieferung 2016-03-09 19:00:30 +05:30
Anand Doshi
c88068eecf Merge branch 'develop' 2016-03-09 16:34:03 +05:30
Anand Doshi
a2d03c849f bumped to version 6.25.1 2016-03-09 17:04:03 +06:00
Anand Doshi
0179242f04 [fix] [hot] setup wizard domain 2016-03-09 16:32:13 +05:30
Anand Doshi
7670c9f07d Merge branch 'develop' 2016-03-09 15:47:14 +05:30
Anand Doshi
1d0c5896c0 bumped to version 6.25.0 2016-03-09 16:17:14 +06:00
Saurabh
3fbf3ce852 [fixes] raise if selects product bundle as sub item in another product bundle. 2016-03-09 15:42:01 +05:30
Saurabh
bd01a81638 [fixes] calculate valuation rate for stock, non-stop and product bundle items 2016-03-09 15:42:01 +05:30
Saurabh
5ada14b887 [fixes] calculate valuation rate for non stock item 2016-03-09 15:42:01 +05:30
Saurabh
2d7af63351 [fixe] typo-fixes and set base currency symbol to gross-profit and valuation rate 2016-03-09 15:42:00 +05:30
Saurabh
d313553ae3 [enhancement] get valuation rate and gross profit on sales order item 2016-03-09 15:42:00 +05:30
Anand Doshi
27e9b77a3d [translations] 2016-03-09 14:50:38 +05:30
Anand Doshi
71ea34a0ba [change log] 2016-03-09 14:50:37 +05:30
Anand Doshi
065d24b26d Merge pull request #4951 from shreyasp/gross-profit-wn-sup17486
[Minor] Remove Warehouse column while user groups by 'Item code' in Gross profit report
2016-03-09 14:22:16 +05:30
shreyas
7c42995949 [Minor] Remove Warehouse column while user groups by 'Item code' in Gross profit report 2016-03-09 13:15:38 +05:30
Anand Doshi
3fb67c7c3b Merge pull request #4945 from shreyasp/mr-wn-sup17487
[Minor] Displaying 'for warehouse' while creating Material request from BOM
2016-03-09 10:32:15 +05:30
ci2014
1e735a87aa Update purchase-return.md
Fixed the images.
2016-03-08 17:13:18 +01:00
Anand Doshi
c62927ad5d Merge branch 'neilLasrado-drip-emails' into develop 2016-03-08 20:22:45 +05:30
Neil Trini Lasrado
1b03e0a6d0 Added Other as a Domain in Company/setup wizard 2016-03-08 20:22:24 +05:30
Neil Trini Lasrado
342895c9df Added Domain to setup wizard 2016-03-08 19:55:57 +05:30
ci2014
6dd7e682af Update sales-return.md
Fixed the images.
2016-03-08 15:13:04 +01:00
shreyas
007e87b8a5 [Minor] Whitespace fixes 2016-03-08 19:01:50 +05:30
shreyas
405b66898e [Minor] Displaying 'for warehouse' while creating Material request from BOM 2016-03-08 18:39:20 +05:30
Rushabh Mehta
d1e1c52171 [redesign] modules 2016-03-08 18:07:20 +05:30
Anand Doshi
b073cf4fa1 [fix] POS amount_paid when not cash - Fixes #4686, #4828, #4289 2016-03-08 17:59:19 +05:30
Anand Doshi
20b2a75603 Merge pull request #4943 from strixaluco/develop
Minor typo fix in bulk-rename.md
2016-03-08 17:40:48 +05:30
Anand Doshi
f9148f3a6f Merge branch 'bohlian-develop' into develop 2016-03-08 17:40:10 +05:30
Javier Wong
102f9062e8 Whitelist get_month_details
This is useful when manually pulling the salary structure in custom scripts for processing of other customized deductables or perhaps contributions.
2016-03-08 17:39:58 +05:30
strixaluco
184f0fa264 Minor typo fix in bulk-rename.md 2016-03-08 16:57:04 +08:00
Anand Doshi
ba7b05ad27 Merge branch 'emakis-in_words_configurable' into develop 2016-03-07 20:00:54 +05:30
emakis
b5b3d478a2 Made In Words configurable 2016-03-07 20:00:41 +05:30
Anand Doshi
44f777eeec [fix] Material Request notifications docstatus < 2 2016-03-07 19:35:54 +05:30
Anand Doshi
a2bd145d68 Merge pull request #4935 from shreyasp/sales-inv-WN-SUP17465
[Minor] Fix print settings for custom print format
2016-03-07 19:21:51 +05:30
Anand Doshi
40b230ea9e Merge pull request #4926 from nabinhait/balance_sheet
[fix][report] Show group rows with zero values if there are values against children
2016-03-07 19:15:46 +05:30
shreyas
6f8dfa4c8d [Minor] Fix print settings for custom print format 2016-03-07 18:22:40 +05:30
Anand Doshi
dab167791c Merge pull request #4934 from anandpdoshi/fix/stock-balance-filters
[fix] Run Stock Balance report only after one of the filters is set
2016-03-07 14:31:08 +05:30
Anand Doshi
0902fb2e3d [fix] Run Stock Balance report only after one of the filters is set 2016-03-07 13:11:59 +05:30
Rushabh Mehta
5a700820e7 [fix] [minor] autoload chart of accounts 2016-03-07 11:57:54 +05:30
Anand Doshi
9a2dc8332b Merge pull request #4930 from frehu01/patch-3
Update journal-entry.md
2016-03-07 11:28:01 +05:30
ci2014
fde7bfec31 Update purchase-return.md
You swapped sales return and purchase return in the german documentation, see https://github.com/frappe/erpnext/pull/4931
2016-03-07 00:45:15 +01:00
ci2014
943d707021 Update sales-return.md
You swapped sales return and purchase return in the german documentation.
2016-03-07 00:42:55 +01:00
frehu01
eb5ad3f793 Update journal-entry.md 2016-03-06 17:52:29 +01:00
Nabin Hait
acb28954ff [fix][report] Show group rows with zero values if there are values against children 2016-03-04 12:32:44 +05:30
Rushabh Mehta
a0b21235d7 Merge branch 'develop' 2016-03-03 16:48:45 +05:30
Rushabh Mehta
d3c04a3eda bumped to version 6.24.5 2016-03-03 17:18:45 +06:00
Rushabh Mehta
0c1b8f4334 [fix] [minor] autoload chart of accounts 2016-03-03 16:47:36 +05:30
Rushabh Mehta
571a9d0f19 [fix] [tests] 2016-03-03 15:03:40 +05:30
Rushabh Mehta
3d101c3fd2 Merge branch 'develop' 2016-03-03 13:57:45 +05:30
Rushabh Mehta
563f023c11 bumped to version 6.24.4 2016-03-03 14:27:45 +06:00
Rushabh Mehta
1396b776bc [fix] print hide for submit_on_creation 2016-03-03 13:57:15 +05:30
Rushabh Mehta
c47d03cf8a Merge branch 'develop' 2016-03-03 13:13:21 +05:30
Rushabh Mehta
369b9cf928 bumped to version 6.24.3 2016-03-03 13:43:21 +06:00
Rushabh Mehta
7114b7786e [fix] print hide for submit_on_create 2016-03-03 13:12:21 +05:30
Rushabh Mehta
2c8dc1d273 Merge branch 'develop' 2016-03-03 13:02:23 +05:30
Rushabh Mehta
a8d04b11c3 bumped to version 6.24.2 2016-03-03 13:32:23 +06:00
Rushabh Mehta
756e518bc1 [fix] recurring 2016-03-03 13:00:30 +05:30
Rushabh Mehta
c72267b98b Merge pull request #4919 from agusputra/patch-24
Update item-price.md
2016-03-03 11:30:01 +05:30
Rushabh Mehta
526f042bb7 Merge pull request #4915 from jayala/patch-1
Update concepts-and-terms.md
2016-03-03 11:29:54 +05:30
Rushabh Mehta
a289ab75bf Merge branch 'develop' 2016-03-03 11:27:42 +05:30
Rushabh Mehta
14b83cf391 bumped to version 6.24.1 2016-03-03 11:57:42 +06:00
Rushabh Mehta
d627af2c97 [translations] 2016-03-03 11:25:46 +05:30
Rushabh Mehta
fe3f78b0f6 Merge branch 'develop' 2016-03-03 11:05:22 +05:30
Rushabh Mehta
cf6b786950 bumped to version 6.24.0 2016-03-03 11:35:22 +06:00
Rushabh Mehta
a12eb686a5 [change-log] 6.24.0 2016-03-03 11:03:38 +05:30
Rushabh Mehta
07263462f6 [minor] add translated get_formatted 2016-03-03 10:48:45 +05:30
Rushabh Mehta
69cfab8559 [fix] [patch] recurring 2016-03-03 10:37:45 +05:30
Agus Syahputra
32362f14f4 Update item-price.md 2016-03-03 08:03:59 +07:00
Jesús Ayala
18bfad5a66 Update concepts-and-terms.md 2016-03-02 10:05:45 -03:00
Rushabh Mehta
5839a8d7f0 [fixes] usability cleanup of recurring document and added explicit submit_on_creation 2016-03-02 17:51:52 +05:30
Rushabh Mehta
f1ad694356 Merge pull request #4912 from ShashaQin/patch-31
minor improvement on item query
2016-03-02 16:19:21 +05:30
Rushabh Mehta
aac4dcedc8 [fix] print language and contact_email fields and removed translations 2016-03-02 15:45:09 +05:30
Rushabh Mehta
b0f0aaf5b1 [minor] added chart of accounts, cost centers buttons on Company 2016-03-02 13:08:40 +05:30
Rushabh Mehta
fe6eadfe22 [cleanup] job opening and job applicant 2016-03-02 12:53:19 +05:30
ShashaQin
425ab6bb1e Update queries.py 2016-03-02 13:07:58 +08:00
Rushabh Mehta
cbed331047 Merge pull request #4909 from rohitwaghchaure/multilingual_print_format_test
Multilingual print format test
2016-03-01 17:10:50 +05:30
rohitwaghchaure
4151e3dc92 [enhancement] Multi-lingual print format 2016-03-01 16:33:08 +05:30
Rushabh Mehta
6020e9ceb3 Merge pull request #4906 from smorele/doc_fixes
fixe broken links
2016-03-01 16:15:56 +05:30
Rushabh Mehta
5b9d6494a6 Merge pull request #4900 from rmehta/minor-fixes
[minor] fix notification for material request, splash icon, cleanup project form layout
2016-03-01 16:15:25 +05:30
Rushabh Mehta
e670525c55 Merge pull request #4899 from nabinhait/seriailized_stock_valuation
Seriailized stock valuation
2016-03-01 16:13:09 +05:30
Rushabh Mehta
39a6f804bf Merge pull request #4871 from ShashaQin/patch-27
Improvements about recurring documents
2016-03-01 16:06:33 +05:30
Rushabh Mehta
ddeb576d52 Merge pull request #4849 from rasos/patch-1
Create at_austria_chart_Einheitskontenrahmen.json
2016-03-01 16:05:13 +05:30
smorele
0a58d9e0f4 fixe broken links 2016-03-01 09:53:23 +01:00
Rushabh Mehta
7bdd9979aa Merge pull request #4905 from KanchanChauhan/web-forms
[fix] added web form fixtures
2016-03-01 11:42:40 +05:30
Kanchan Chauhan
1f3d5b7ee9 [fix] added web form fixtures 2016-03-01 11:33:49 +05:30
Rushabh Mehta
45fd073094 Merge pull request #4897 from agusputra/patch-23
Update withdrawing-salary-from-owners-equity-account.md
2016-02-29 17:35:18 +05:30
Rushabh Mehta
980a00d9d7 Merge pull request #4892 from agusputra/patch-22
Update update-stock-option-in-sales-invoice.md
2016-02-29 17:34:54 +05:30
Rushabh Mehta
95ffe3bc7b [docs] added work-in-progress for Spanish manual 2016-02-29 17:22:25 +05:30
paulocoronado
18d465dc0d Adding WORK IN PROGRESS 2016-02-29 17:22:25 +05:30
paulocoronado
23ef60a467 work in progress
Spanish Transalation
2016-02-29 17:22:24 +05:30
paulocoronado
8f6b1e0549 Páginas de inicio de la traducción al español.
First commit of Spanish translation
2016-02-29 17:22:24 +05:30
Rushabh Mehta
ae7dc31d14 Merge pull request #4846 from KanchanChauhan/job-applicant
Added feature to allow people to apply for job from website
2016-02-29 17:22:01 +05:30
Rushabh Mehta
aabefe4b7c Merge branch 'develop' 2016-02-29 14:50:54 +05:30
Rushabh Mehta
6fa497c87a bumped to version 6.23.7 2016-02-29 15:20:54 +06:00
Rushabh Mehta
a4decc2c59 [minor] [test] fix for leap year 2016-02-29 14:44:20 +05:30
Rushabh Mehta
f1083c9a74 [minor] fix messages in material request 2016-02-29 14:38:25 +05:30
Rushabh Mehta
e1f68b9904 Merge pull request #4901 from nabinhait/time_log_overlap_fix
[fix] Time Log overlap validation and test cases
2016-02-29 14:16:59 +05:30
Nabin Hait
94a1f3eb90 [fix] Time Log overlap validation and test cases 2016-02-29 13:15:27 +05:30
Nabin Hait
5a4c7d3b62 [patch] repost valuation rate for serialized items 2016-02-29 12:07:42 +05:30
Nabin Hait
2620bf402f [fix] Stock Valuation for serialized items 2016-02-29 12:07:42 +05:30
Agus Syahputra
1b28f58829 Update withdrawing-salary-from-owners-equity-account.md 2016-02-29 08:04:02 +07:00
Agus Syahputra
034fcb3410 Update update-stock-option-in-sales-invoice.md 2016-02-28 11:49:00 +07:00
Rushabh Mehta
4403853828 [minor] fix notification for material request, splash icon, cleanup project form layout 2016-02-27 16:24:34 +05:30
ShashaQin
8d1dea6aad Update recurring_document.py 2016-02-27 14:00:58 +08:00
Nabin Hait
f34e63123f Merge pull request #4877 from agusputra/patch-18
Update period-closing-voucher.md
2016-02-27 10:11:20 +05:30
Nabin Hait
598c9c4679 Merge pull request #4884 from umairsy/feb-2nd
updated manual
2016-02-27 10:10:34 +05:30
Nabin Hait
2174790545 Merge pull request #4886 from saurabh6790/add_projected_qty_on_quotation
[fixes] set projected qty in Quotaion Item table
2016-02-27 10:04:20 +05:30
Nabin Hait
f9103b1b0b Merge pull request #4887 from sbkolate/patch-3
enable uom in BOM Table View
2016-02-27 10:02:59 +05:30
Nabin Hait
e0cc597f70 Merge pull request #4888 from agusputra/patch-19
Update freeze-accounting-entries.md
2016-02-27 10:02:24 +05:30
Nabin Hait
ab40cd8d08 Merge pull request #4889 from agusputra/patch-21
Update managing-transactions-in-multiple-currency.md
2016-02-27 10:02:10 +05:30
Agus Syahputra
8fa6f79f7e Update managing-transactions-in-multiple-currency.md 2016-02-27 07:22:50 +07:00
Agus Syahputra
f7face6384 Update freeze-accounting-entries.md 2016-02-27 07:08:20 +07:00
Anand Doshi
3ef8d066b9 Merge branch 'develop' 2016-02-26 20:58:26 +05:30
Anand Doshi
18e988e4ce bumped to version 6.23.6 2016-02-26 21:28:26 +06:00
Anand Doshi
7b52dc9f32 [hotfix] added back comment_feed_communication patch 2016-02-26 20:51:33 +05:30
sbkolate
a897882434 enable uom in BOM Table View
reference 
https://discuss.erpnext.com/t/uom-in-item-tables/10733/4
2016-02-26 19:32:11 +05:30
Saurabh
cc7132763f [fixes] set projected qty in Quotaion Item table 2016-02-26 18:33:53 +05:30
Nabin Hait
593bfddb74 Merge branch 'develop' 2016-02-26 17:34:46 +05:30
Nabin Hait
658b3260c2 bumped to version 6.23.5 2016-02-26 18:04:46 +06:00
Nabin Hait
6c30972931 Merge pull request #4883 from nabinhait/time_log_fix
[fix] Time log overlap validation
2016-02-26 17:33:11 +05:30
Umair Sayyed
d1029b54c2 updated manual 2016-02-26 17:32:44 +05:30
Nabin Hait
56f7fa66ad [fix] Time log overlap validation 2016-02-26 17:19:11 +05:30
Nabin Hait
bdf0f0a08d [fix] Show debit note button in purchase invoice 2016-02-26 16:26:28 +05:30
Nabin Hait
8f810c55d2 Merge branch 'develop' 2016-02-26 15:21:02 +05:30
Nabin Hait
eb0c08f328 bumped to version 6.23.4 2016-02-26 15:51:02 +06:00
Nabin Hait
c37c7ed5c6 Merge pull request #4881 from nabinhait/develop
[fix] Show credit note button in sales invoice
2016-02-26 15:18:52 +05:30
Nabin Hait
0f6eac3b35 [fix] Show credit note button in sales invoice 2016-02-26 13:01:32 +05:30
Agus Syahputra
91bd4ce3e1 Update period-closing-voucher.md 2016-02-26 07:45:14 +07:00
Nabin Hait
36c0faa744 Merge branch 'develop' 2016-02-25 19:13:31 +05:30
Nabin Hait
cd3b37dcfe bumped to version 6.23.3 2016-02-25 19:43:31 +06:00
Nabin Hait
55f0834e99 [fix] Show payment button in purchase invoice 2016-02-25 19:12:37 +05:30
Nabin Hait
a45a6005b8 Merge branch 'develop' 2016-02-25 15:18:42 +05:30
Nabin Hait
6107ccd5ea bumped to version 6.23.2 2016-02-25 15:48:42 +06:00
Nabin Hait
737849a0f5 [patch] Update stopped status to close 2016-02-25 15:16:02 +05:30
ShashaQin
ed71e6cea6 Update test_recurring_document.py 2016-02-25 15:47:25 +08:00
ShashaQin
5afca21571 Update test_recurring_document.py 2016-02-25 15:21:14 +08:00
Nabin Hait
7f8a5fe6d2 Merge branch 'develop' 2016-02-25 11:59:39 +05:30
Nabin Hait
6c7c1223c3 bumped to version 6.23.1 2016-02-25 12:29:39 +06:00
Nabin Hait
a1d5494fb3 Merge pull request #4867 from KanchanChauhan/item-group
Added pagination to Products web page
2016-02-25 11:56:30 +05:30
Nabin Hait
e9065677c6 Merge pull request #4866 from neilLasrado/develop
Fixes in Setup Wizard
2016-02-25 11:06:14 +05:30
Nabin Hait
1a9c1c4243 Merge pull request #4868 from nabinhait/bom_fix
[fix] validate BOMs in BOM Replace Tool
2016-02-25 10:41:38 +05:30
Nabin Hait
eb9a794993 Merge pull request #4869 from sbkolate/patch-2
opportunities status fix in Sales Funnel report
2016-02-25 10:41:11 +05:30
ShashaQin
6071ddc3dd Update recurring_document.py 2016-02-25 11:25:24 +08:00
ShashaQin
73c71f9dd5 Update sales_order.json 2016-02-25 11:22:27 +08:00
ShashaQin
2f0a14bda0 Update purchase_order.json 2016-02-25 11:19:56 +08:00
ShashaQin
ae629ad29f Update purchase_invoice.json 2016-02-25 11:17:13 +08:00
ShashaQin
02a38e8b5e Update sales_invoice.json
Add 'Notify by Email' check box and set next_date can be changed by user
2016-02-25 11:13:19 +08:00
sbkolate
f9a9754dab opportunities status fix in Sales Funnel report
reference https://discuss.erpnext.com/t/sales-funnel-not-showing-updated-opportunities/10702/4
2016-02-24 19:25:35 +05:30
Nabin Hait
baa6d96a82 [fix] validate BOMs in BOM Replace Tool 2016-02-24 18:51:13 +05:30
Nabin Hait
980f68a5fa Merge branch 'develop' 2016-02-24 18:19:23 +05:30
Nabin Hait
ed08e88de4 bumped to version 6.23.0 2016-02-24 18:49:22 +06:00
Nabin Hait
40505dcfb1 [change-log] 2016-02-24 18:17:14 +05:30
Neil Trini Lasrado
3c0d5cbab5 Fixes in Setup Wizard 2016-02-24 18:02:08 +05:30
Nabin Hait
ef3d18f127 Merge pull request #4859 from saurabh6790/cart_fixes
Shopping Cart with multi currency and checkout fixes
2016-02-24 17:29:55 +05:30
Kanchan Chauhan
0d6db633f7 Added pagination to Products web page 2016-02-24 17:29:25 +05:30
Saurabh
00212a23e1 [fixes] removed base_grand_total from payment request 2016-02-24 16:50:19 +05:30
Saurabh
6d1dbd6384 [fixes] currency exchange rate and payment gateway account fixes for multicurrency 2016-02-24 15:07:26 +05:30
Saurabh
4a6bbf9b72 [fixes] added filters company and currency to get account, removed account name wise comparison 2016-02-24 15:07:26 +05:30
Saurabh
f54be2c7f0 [fixes] test case fixes for multi-currency check 2016-02-24 15:07:25 +05:30
Saurabh
1864879b91 [fixes] fix grand total calculation for Payment Request and set visibility of Resend Payment Email button 2016-02-24 15:07:25 +05:30
Saurabh
3a2682919a [enhance] set customer payable account to new customer as per payment gateway account currency via cart if cart and checkout is enable 2016-02-24 15:07:25 +05:30
Saurabh
2dc2d671da [clean-up] 2016-02-24 15:07:25 +05:30
Saurabh
7d5b47e113 [fixes] minor fix in test-case 2016-02-24 15:07:25 +05:30
Saurabh
fa32588e72 [fixes] minor fix in test-case 2016-02-24 15:07:25 +05:30
Saurabh
1e800a9ef0 [fixes] multi-currency via payment request 2016-02-24 15:07:25 +05:30
Saurabh
da9e9cdb13 [fixes] minor get_payment_gateway_account 2016-02-24 15:07:24 +05:30
Saurabh
dca6302e15 [fixes] field renaming, cart checkout fixes, JE fixes for multi-currency payment 2016-02-24 15:07:24 +05:30
Saurabh
883cc04701 [fixes] compare attributes in lower case 2016-02-24 15:07:24 +05:30
Nabin Hait
da297dcfc5 [translations] 2016-02-24 14:37:38 +05:30
Anand Doshi
acd1bcffde [fix] changed field type to Code 2016-02-24 12:38:08 +05:30
Nabin Hait
57b30430e4 Merge pull request #4695 from neilLasrado/develop
Material Request of type Manufcture
2016-02-24 12:30:53 +05:30
Nabin Hait
d2d261dc87 Merge pull request #4854 from patilsangram/develop
Removed Stop Button from SO and PO
2016-02-24 11:21:17 +05:30
Nabin Hait
38f470288f Merge pull request #4806 from creador30/productbundle_improvement
Product Bundle improvement
2016-02-24 11:12:47 +05:30
Nabin Hait
1a16a4f394 Merge pull request #4863 from agusputra/patch-17
Update opening-accounts.md
2016-02-24 11:11:06 +05:30
Nabin Hait
5f6e76ee03 Merge pull request #4862 from agusputra/patch-16
Update multi-currency-accounting.md
2016-02-24 11:10:45 +05:30
Agus Syahputra
6338f407d9 Update opening-accounts.md 2016-02-24 07:28:46 +07:00
Agus Syahputra
eeda0460d4 Update multi-currency-accounting.md 2016-02-24 07:26:06 +07:00
creador
4b6b6fe5a8 [fix] unify packing description and packed item description 2016-02-23 22:12:02 +02:00
saurabh
64ec677cf7 deleted extra doctype 2016-02-24 01:07:49 +05:30
patilsangram
a812d67837 [fixes] 2016-02-23 19:04:29 +05:30
Nabin Hait
cfb05e429f Merge pull request #4825 from saurabh6790/git-issues
[enhance] Displaying stock balance while creating quotation
2016-02-23 18:41:14 +05:30
Neil Trini Lasrado
f79760ce2d Mumtiple fixes 2016-02-23 18:35:45 +05:30
Neil Trini Lasrado
0dd8500393 Fixed Documentation 2016-02-23 18:35:44 +05:30
Neil Trini Lasrado
d5e15eaadf Added test cases 2016-02-23 18:35:44 +05:30
Neil Trini Lasrado
fd9dc5e9f5 refactor code in Production Planning Tool 2016-02-23 18:35:44 +05:30
Neil Trini Lasrado
877e2ebff8 Fixed Production PLanning Tool 2016-02-23 18:35:44 +05:30
Neil Trini Lasrado
43114bab71 renamed label of Quantity Requested for Purchase to Requested Quantity in Bin 2016-02-23 18:35:44 +05:30
Neil Trini Lasrado
dddf42560f Added code to update Material Request on Submission of Production Order 2016-02-23 18:35:44 +05:30
Neil Trini Lasrado
abd9248ba6 Rename sales_order_no to sales_order in Material Request Item 2016-02-23 18:35:43 +05:30
Neil Trini Lasrado
0b40ccc43c Removed unwanted code 2016-02-23 18:35:43 +05:30
Neil Trini Lasrado
695bf47a1d changed image feild (type attach) to attach image, removed Image view 2016-02-23 18:35:43 +05:30
Neil Trini Lasrado
e9cd22aff9 Fixed make Prod_order from Material Request 2016-02-23 18:35:43 +05:30
Neil Trini Lasrado
9739dc3639 Added make Production Order button against Material Request 2016-02-23 18:35:42 +05:30
Neil Trini Lasrado
cc23bc0549 Removed Material Request type validation 2016-02-23 18:35:42 +05:30
Neil Trini Lasrado
966e5643c9 Added Material Request Link to Production Order 2016-02-23 18:35:42 +05:30
Neil Trini Lasrado
3353b5ee62 Added material request type Manufacture 2016-02-23 18:35:42 +05:30
Saurabh
ac33724656 [fixes] removed no copy for warehouse field 2016-02-23 18:18:04 +05:30
Saurabh
3724448cd3 [fixes] typo-fixes and fix in balance qty fetching 2016-02-23 18:18:04 +05:30
Saurabh
dcb72c6be7 [enhance] Displaying stock balance while creating quotation 2016-02-23 18:18:04 +05:30
Nabin Hait
3b06aeaffd Merge pull request #4860 from nabinhait/target_variance_fix
[fix] Sales Person target variance report: based on lft and rgt of item group
2016-02-23 18:00:08 +05:30
Nabin Hait
8a59c33e2f [fix] Sales Person target variance report: based on lft and rgt of item group 2016-02-23 15:23:24 +05:30
saurabh
42d5d8390d Resolved conflicts 2016-02-23 13:15:02 +05:30
saurabh
fb71f32ebf conflicts resolved 2016-02-23 02:26:37 +05:30
saurabh
2e2dd0fb42 Documentation of multilingual print format and minor fixes 2016-02-23 02:17:04 +05:30
rohit waghchaure
da321b44cb removed translator 2016-02-23 02:17:04 +05:30
saurabh
9364f35a2c fixed issue of stock_uom translator 2016-02-23 02:17:04 +05:30
saurabh
724b4b17a5 changed method to set code of language 2016-02-23 02:17:03 +05:30
saurabh
fbcf44657c test case for translation doctype 2016-02-23 02:17:03 +05:30
saurabh
c422c23813 import method to load all languages in language field on customer form 2016-02-23 02:17:03 +05:30
saurabh
f703198082 replaced methd 2016-02-23 02:17:03 +05:30
saurabh
ca3e7152d6 removed add fetch method 2016-02-23 02:17:03 +05:30
saurabh
8e49951821 fetch customer or supplier language and set on sales and purchase flow's form 2016-02-23 02:17:03 +05:30
saurabh
65820ed013 added new field language for users 2016-02-23 02:17:03 +05:30
saurabh
533a0f6527 created new file 2016-02-23 02:17:03 +05:30
saurabh
60def66644 added translator into print format 2016-02-23 02:17:02 +05:30
saurabh
24358db7bf changed fieldname from print_language to language 2016-02-23 02:17:02 +05:30
saurabh
648fd33576 removed languages filled methods, added this methods into new file 2016-02-23 02:17:02 +05:30
saurabh
5265aa43e4 added add_fetch method 2016-02-23 02:17:02 +05:30
saurabh
4db3b3cf1e removed add_fetch method 2016-02-23 02:17:02 +05:30
saurabh
29d77be648 pulled languages into the field print language 2016-02-23 02:17:02 +05:30
saurabh
cc7c9e4d0f on selection of supplier pulled default print language 2016-02-23 02:17:02 +05:30
saurabh
b1efceccd4 added field print languages 2016-02-23 02:17:02 +05:30
Nabin Hait
195619e6d4 Merge pull request #4855 from sbkolate/patch-1
better validation example for developer
2016-02-22 18:06:02 +05:30
sbkolate
b17d4035c1 better validation example for developer
throw "past date selected" will freeze the form and user can not correct value of  from_date.
but validated false will just throw the pop-up and user can correct value of from_date and save the form.

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

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

If there is e.g. a sales order for that item, the projected quantity
will fall below 0, which will trigger an automatic material request.
2016-02-14 11:58:21 +02:00
Agus Syahputra
e9a1f1c5d8 Update payment-request.md 2016-02-13 10:35:42 +07:00
Rushabh Mehta
f69b79fd16 Merge branch 'develop' 2016-02-12 13:12:49 +05:30
Rushabh Mehta
2e9f10934f bumped to version 6.21.5 2016-02-12 13:42:48 +06:00
Rushabh Mehta
cc57088f5c Merge pull request #4792 from anandpdoshi/optimize/stock-balance-report
[optimization] stock balance report - force index + improve memory usage
2016-02-12 13:09:15 +05:30
Anand Doshi
4b249fe8ec [optimization] stock balance report - force index + improve memory usage 2016-02-11 20:38:01 +05:30
Rushabh Mehta
eab1671214 [fix] [pos] refresh party field, fixes #4789 2016-02-11 18:35:59 +05:30
Rushabh Mehta
6f574cd60f [minor] do not commit pay-to-recd from in journal entry 2016-02-11 14:27:28 +05:30
Rushabh Mehta
4bef7a3a52 Merge branch 'develop' 2016-02-11 12:41:22 +05:30
Rushabh Mehta
580933998e bumped to version 6.21.4 2016-02-11 13:11:22 +06:00
Rushabh Mehta
b4a56bc45e Merge pull request #4790 from rmehta/map-custom-fields
[minor] map custom fields from delivery note to packing slip
2016-02-11 12:18:04 +05:30
Rushabh Mehta
adee283caf [minor] map custom fields from delivery note to packing slip 2016-02-11 11:58:50 +05:30
Rushabh Mehta
f2763d7abe [cleanup] warranty claim form 2016-02-11 11:06:15 +05:30
Rushabh Mehta
1652839086 [minor] [fix] address trigger in warranty claim 2016-02-11 11:06:15 +05:30
Nabin Hait
abfadce7d9 Merge branch 'develop' 2016-02-10 16:11:58 +05:30
Nabin Hait
1ec626f39b bumped to version 6.21.3 2016-02-10 16:41:58 +06:00
Nabin Hait
9bc0d18996 Merge pull request #4785 from nabinhait/fix55
[fix] Test case fixed
2016-02-10 16:08:42 +05:30
Nabin Hait
7e02831897 [fix] Test case fixed 2016-02-10 15:54:52 +05:30
Rushabh Mehta
c54d7ec445 Merge pull request #4768 from umairsy/feb-1st-week
Updated help on manufacturing module.
2016-02-10 15:44:42 +05:30
Rushabh Mehta
a4faffb813 Merge pull request #4783 from nabinhait/fixes54
[fix] call get_party_account only if party is set
2016-02-10 15:24:03 +05:30
Umair Sayyed
4715df1518 Removed current directory 2016-02-10 15:19:35 +05:30
Umair Sayyed
fc8d0f6ac7 help on manufacturing module 2016-02-10 15:19:35 +05:30
Rushabh Mehta
dc83bb8d18 Merge branch 'develop' 2016-02-10 14:51:18 +05:30
Rushabh Mehta
477ddf9119 bumped to version 6.21.2 2016-02-10 15:21:18 +06:00
Nabin Hait
ef864403a1 [fix] call get_party_account only if party is set 2016-02-10 14:47:25 +05:30
Anand Doshi
4fcf7bf01a [minor] Setup Wizard sample data: Clear Fiscal Year Error message 2016-02-10 14:35:48 +05:30
Anand Doshi
bb514467f6 Merge branch 'develop' 2016-02-10 13:19:17 +05:30
Anand Doshi
bec7e79ee8 bumped to version 6.21.1 2016-02-10 13:49:17 +06:00
Anand Doshi
247a8eedce [minor] fix add_comment 2016-02-10 13:17:40 +05:30
Rushabh Mehta
cc35f62514 Merge pull request #4781 from nabinhait/develop
Payment Request Fixes
2016-02-10 13:13:27 +05:30
Rushabh Mehta
8d1c7a2524 [fix] call get_party_account only if party is set 2016-02-10 13:08:42 +05:30
Nabin Hait
3070deb295 Packing Slip layout changes 2016-02-10 13:07:42 +05:30
Nabin Hait
e1f6e60cea [fix] Payment Request Fixes 2016-02-10 13:07:42 +05:30
Rushabh Mehta
3aa14f54b7 [fix] installation note item description to Text Editor 2016-02-10 11:56:05 +05:30
Rushabh Mehta
75de2238d1 Merge branch 'develop' 2016-02-09 12:45:25 +05:30
Rushabh Mehta
826900822c bumped to version 6.21.0 2016-02-09 13:15:24 +06:00
Rushabh Mehta
6584240277 [change log] 2016-02-09 12:35:51 +05:30
Rushabh Mehta
dd408d82da [translations] 2016-02-09 12:24:56 +05:30
Rushabh Mehta
5ddb8ea124 Merge pull request #4773 from agusputra/patch-14
Update search-record-by-specific-field.md
2016-02-09 11:20:19 +05:30
Rushabh Mehta
7f3983a3d6 Merge pull request #4769 from rmehta/pricing-rule-on-variant
[fix] pricing rule for variant, if rule for template available, use it
2016-02-09 11:20:00 +05:30
Rushabh Mehta
0c70a4ceb3 Merge pull request #4775 from nabinhait/advance32
[fix] validate advance only if invoice total is positive
2016-02-09 10:36:29 +05:30
Nabin Hait
adc0923c7e [fix] validate advance only if invoice total is positive 2016-02-09 10:32:41 +05:30
Agus Syahputra
cb7337f466 Update search-record-by-specific-field.md 2016-02-09 09:20:26 +07:00
Rushabh Mehta
b38fac8bf1 Merge pull request #4770 from agusputra/patch-13
Update managing-dynamic-link-fields.md
2016-02-09 07:45:20 +05:30
Agus Syahputra
68e6919d41 Update managing-dynamic-link-fields.md 2016-02-09 01:04:01 +07:00
Rushabh Mehta
57ebde2b9e Merge pull request #4765 from agusputra/patch-12
Update allow-fields-to-be-changed-after-submit.md
2016-02-08 18:53:51 +05:30
Rushabh Mehta
10663ab37f Merge pull request #4762 from nabinhait/multifixes3
Advance adjustment in invoice cannot be greater than grand total
2016-02-08 18:53:27 +05:30
Rushabh Mehta
0a67c9715c Merge pull request #4766 from nabinhait/permlevel1
[fix] Read permission to All for permlevel 1 fields
2016-02-08 18:52:03 +05:30
Rushabh Mehta
c403ce3b4f Merge pull request #4763 from rmehta/leave-app-cleanup
[cleanup] leave application
2016-02-08 18:51:29 +05:30
Rushabh Mehta
3cdf9e4105 Merge pull request #4764 from rmehta/remove-default-warehouse
[enhancement] default warehouse not mandatory in time, re-order level and re-order qty must always be set per warehosue
2016-02-08 18:51:01 +05:30
Rushabh Mehta
3cdf3544fb [enhancement] default warehouse not mandatory in time, re-order level and re-order qty must always be set per warehosue 2016-02-08 18:50:40 +05:30
Rushabh Mehta
faf9b589c4 [fix] pricing rule for variant, if rule for template available, use it 2016-02-08 18:49:27 +05:30
Rushabh Mehta
060f32d452 [fix] [minor] reset naming series in delete_company_transactions.py 2016-02-08 17:57:14 +05:30
Nabin Hait
4c6af87ad0 [fix] Read permission to All for permlevel 1 fields 2016-02-08 16:56:19 +05:30
Rushabh Mehta
a064e3a200 [minor] validate address template before saving 2016-02-08 14:51:14 +05:30
Anand Doshi
1106524121 Merge pull request #4644 from anandpdoshi/enhancement/comment-feed-communication-merge
[enhancement] Merge Comment and Feed into Communication 💥
2016-02-08 13:54:48 +05:30
Agus Syahputra
451ee87e9f Update allow-fields-to-be-changed-after-submit.md 2016-02-08 15:16:42 +07:00
Anand Doshi
17d4fc4fa7 [enhancement] Merge Comment and Feed into Communication 💥
Depends on frappe/frappe#1532
2016-02-08 13:06:56 +05:30
Rushabh Mehta
6bd9f7f5f0 [minor] catch duplicate entry error in bank account creation 2016-02-08 12:09:01 +05:30
Nabin Hait
289ffb788c [fix] Advance adjustment in invoice cannot be greater than grand total 2016-02-08 11:07:00 +05:30
Nabin Hait
45805622e4 [fix] Serial no query in Quality Inspection 2016-02-08 11:06:59 +05:30
Rushabh Mehta
467f5c7a75 Merge pull request #4751 from agusputra/patch-11
Update calendar.md
2016-02-08 10:59:06 +05:30
Rushabh Mehta
ca2ce13817 Merge pull request #4748 from vjFaLk/Monthly-attendance-fix
Employees with no attendance show up as blank now
2016-02-08 10:58:45 +05:30
Rushabh Mehta
57fb74f262 Merge pull request #4742 from nabinhait/multifixes1
Multi fixes
2016-02-08 10:55:48 +05:30
Rushabh Mehta
cde997edfa [cleanup] leave application 2016-02-08 10:53:22 +05:30
Nabin Hait
2b8472fe54 Merge pull request #4744 from ccfiel/develop
undo bank recon.
2016-02-08 10:45:55 +05:30
Rushabh Mehta
65ade073a9 Merge pull request #4733 from ShashaQin/patch-15
Update leave_application.py
2016-02-08 10:22:09 +05:30
Rushabh Mehta
e881b40ab2 Merge pull request #4759 from Tropicalrambler/patch-2
Corrected typo while translating
2016-02-08 10:10:57 +05:30
Rushabh Mehta
903f675b32 Merge pull request #4761 from Tropicalrambler/patch-4
Duplicate last line delete
2016-02-08 09:12:47 +05:30
Tropicalrambler
3ebd956090 Duplicate last line delete
Deleted the last line which was duplicated. Both read exactly the same.  Only one line is necessary.
2016-02-07 18:56:44 -06:00
Tropicalrambler
b01f1d2486 Corrected typo while translating
Found a switch of letters:  "wrokstation" instead of "workstation".  Corrected the item appropriately.  Found this while translating my fork of this page to spanish.
2016-02-07 16:39:12 -06:00
Agus Syahputra
4c0c69b388 Update calendar.md 2016-02-07 11:45:10 +07:00
Rushabh Mehta
16d58560a0 Merge pull request #4750 from agusputra/patch-10
Update wesite-home-page.md
2016-02-06 09:40:05 +05:30
Rushabh Mehta
dd556e7a89 Merge pull request #4749 from agusputra/patch-9
Update blogger.md
2016-02-06 09:39:36 +05:30
Agus Syahputra
12acd11814 Update wesite-home-page.md 2016-02-06 08:13:29 +07:00
Agus Syahputra
c4d3283879 Update blogger.md 2016-02-06 07:21:42 +07:00
Valmik Jangla
de7e760788 Employees with no attendance show up as blank 2016-02-05 17:46:14 +05:30
Nabin Hait
c2268caaf7 Merge pull request #4740 from vjFaLk/holiday-report-improvements
Added From and To date to Holiday Report
2016-02-05 15:13:11 +05:30
Valmik Jangla
235de6566e Minor fix 2016-02-05 15:07:16 +05:30
Nabin Hait
acd9040346 Merge pull request #4746 from agusputra/patch-8
Update overwriting-data-from-data-import-tool.md
2016-02-05 14:38:22 +05:30
Agus Syahputra
e24cfdc556 Update overwriting-data-from-data-import-tool.md 2016-02-05 08:27:20 +07:00
Chris Ian Fiel
53a46f68a2 Merge pull request #1 from ccfiel/ccfiel-patch-1
Update bank_reconciliation.py
2016-02-04 22:12:41 +08:00
Chris Ian Fiel
af667f77e6 Update bank_reconciliation.py
set to null if clearance_date is blank because if not it will set it just 0000-00-00.
2016-02-04 22:10:36 +08:00
Nabin Hait
ce4e8ec178 Merge pull request #4737 from ShashaQin/patch-18
Gross Profit report improvement
2016-02-04 17:26:20 +05:30
Nabin Hait
4129ae5395 [fix] Translations in Stock balance report 2016-02-04 17:22:57 +05:30
Nabin Hait
92c6c617de [fix] Remove filters on item group in territory and sales person target settings 2016-02-04 17:22:57 +05:30
Nabin Hait
a731ad4433 [fix] Set party account on chnage of company 2016-02-04 17:22:57 +05:30
Nabin Hait
3110c4a772 [fix] Make bank entry from expense claim 2016-02-04 17:22:57 +05:30
Rushabh Mehta
d50356dbab [docs] remove /docs/current from repo, they are re-built anyways 2016-02-04 17:10:24 +05:30
Rushabh Mehta
d1ba86a952 Merge branch 'develop' of github.com:frappe/erpnext into develop 2016-02-04 17:09:18 +05:30
Nabin Hait
03f7aa9dab Merge pull request #4741 from ShashaQin/patch-20
Report Improvement -  Item Wise Sales/Purchase History report
2016-02-04 14:38:29 +05:30
ShashaQin
8c63697f41 Update item_wise_purchase_history.json 2016-02-04 16:46:46 +08:00
ShashaQin
e7dccca782 Update item_wise_sales_history.json 2016-02-04 16:44:18 +08:00
Valmik Jangla
8d0ed21c04 Added From and To date to Holiday Report
Changed HD to H in Monthly Attendance Report
2016-02-04 12:18:55 +05:30
ShashaQin
bcc56a4557 Update gross_profit.py
Gross Profit report improvement
2016-02-04 11:45:00 +08:00
Rushabh Mehta
7bb2f3a27b [fix] newsletter priority 2016-02-03 16:20:59 +05:30
ShashaQin
995a71c854 Update leave_application.py
fix half day leave issue
2016-02-03 13:10:15 +08:00
964 changed files with 62318 additions and 159261 deletions

1
.gitignore vendored
View File

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

View File

@@ -16,16 +16,13 @@ install:
- sudo bash setup_frappe.sh --skip-setup-bench --mysql-root-password travis
- sudo pip install --upgrade pip
- rm $TRAVIS_BUILD_DIR/.git/shallow
- cd ~/ && bench init frappe-bench --frappe-path https://github.com/frappe/frappe.git --frappe-branch develop
- bash $TRAVIS_BUILD_DIR/travis/bench_init.sh
- cp -r $TRAVIS_BUILD_DIR/test_sites/test_site ~/frappe-bench/sites/
script:
- cd ~/frappe-bench
- bench get-app erpnext $TRAVIS_BUILD_DIR
- bench use test_site
- bench setup redis-cache
- bench setup redis-async-broker
- bench setup procfile --with-celery-broker
- bench reinstall
- bench build
- bench build-website

View File

@@ -1,11 +0,0 @@
#!/bin/bash
# stolen from http://cgit.drupalcode.org/octopus/commit/?id=db4f837
includedir=`mysql_config --variable=pkgincludedir`
thiscwd=`pwd`
_THIS_DB_VERSION=`mysql -V 2>&1 | tr -d "\n" | cut -d" " -f6 | awk '{ print $1}' | cut -d"-" -f1 | awk '{ print $1}' | sed "s/[\,']//g"`
if [ "$_THIS_DB_VERSION" = "5.5.40" ] && [ ! -e "$includedir-$_THIS_DB_VERSION-fixed.log" ] ; then
cd $includedir
sudo patch -p1 < $thiscwd/ci/my_config.h.patch &> /dev/null
sudo touch $includedir-$_THIS_DB_VERSION-fixed.log
fi

View File

@@ -1,22 +0,0 @@
diff -burp a/my_config.h b/my_config.h
--- a/my_config.h 2014-10-09 19:32:46.000000000 -0400
+++ b/my_config.h 2014-10-09 19:35:12.000000000 -0400
@@ -641,17 +641,4 @@
#define SIZEOF_TIME_T 8
/* #undef TIME_T_UNSIGNED */
-/*
- stat structure (from <sys/stat.h>) is conditionally defined
- to have different layout and size depending on the defined macros.
- The correct macro is defined in my_config.h, which means it MUST be
- included first (or at least before <features.h> - so, practically,
- before including any system headers).
-
- __GLIBC__ is defined in <features.h>
-*/
-#ifdef __GLIBC__
-#error <my_config.h> MUST be included first!
-#endif
-
#endif

View File

@@ -1,2 +1,2 @@
from __future__ import unicode_literals
__version__ = '6.20.0'
__version__ = '6.27.9'

View File

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

View File

@@ -7,6 +7,10 @@ from frappe.utils import flt, getdate, nowdate
from frappe import msgprint, _
from frappe.model.document import Document
form_grid_templates = {
"journal_entries": "templates/form_grid/bank_reconciliation_grid.html"
}
class BankReconciliation(Document):
def get_details(self):
if not (self.bank_account and self.from_date and self.to_date):
@@ -52,6 +56,8 @@ class BankReconciliation(Document):
frappe.throw(_("Clearance date cannot be before check date in row {0}").format(d.idx))
if d.clearance_date or self.include_reconciled_entries:
if not d.clearance_date:
d.clearance_date = None
frappe.db.set_value("Journal Entry", d.voucher_id, "clearance_date", d.clearance_date)
frappe.db.sql("""update `tabJournal Entry` set clearance_date = %s, modified = %s
where name=%s""", (d.clearance_date, nowdate(), d.voucher_id))

View File

@@ -235,29 +235,6 @@
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "data_10",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"hide_heading": 0,
@@ -270,13 +247,12 @@
"istable": 1,
"max_attachments": 0,
"menu_index": 0,
"modified": "2016-01-19 12:06:17.568428",
"modified": "2016-02-17 06:50:40.074578",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Bank Reconciliation Detail",
"owner": "Administrator",
"permissions": [],
"read_only": 0,
"read_only_onload": 0,
"version": 0
}
"read_only_onload": 0
}

View File

@@ -24,12 +24,4 @@ cur_frm.fields_dict.state.get_query = function(doc) {
cur_frm.cscript.invoice_no = function(doc, cdt, cdn) {
var d = locals[cdt][cdn];
return get_server_fields('get_invoice_details', d.invoice_no, 'invoices', doc, cdt, cdn, 1);
}
cur_frm.cscript.company = function(doc, cdt, cdn) {
erpnext.get_fiscal_year(doc.company, doc.received_date);
}
cur_frm.cscript.received_date = function(doc, cdt, cdn){
erpnext.get_fiscal_year(doc.company, doc.received_date);
}

View File

@@ -16,12 +16,14 @@
"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,
"print_hide": 0,
"print_hide_if_no_value": 0,
"print_width": "50%",
"read_only": 0,
"report_hide": 0,
@@ -39,6 +41,7 @@
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Series",
@@ -47,6 +50,7 @@
"options": "C-FORM-",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -62,6 +66,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "C-Form No",
@@ -69,6 +74,7 @@
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -84,6 +90,7 @@
"fieldtype": "Date",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Received Date",
@@ -91,6 +98,7 @@
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -106,6 +114,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Customer",
@@ -114,6 +123,7 @@
"options": "Customer",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -129,12 +139,14 @@
"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,
"print_hide": 0,
"print_hide_if_no_value": 0,
"print_width": "50%",
"read_only": 0,
"report_hide": 0,
@@ -152,6 +164,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Company",
@@ -160,6 +173,7 @@
"options": "Company",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -167,29 +181,6 @@
"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,
"in_filter": 0,
"in_list_view": 0,
"label": "Fiscal Year",
"length": 0,
"no_copy": 0,
"options": "Fiscal Year",
"permlevel": 0,
"print_hide": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
@@ -198,6 +189,7 @@
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Quarter",
@@ -206,6 +198,7 @@
"options": "\nI\nII\nIII\nIV",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -221,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",
@@ -229,6 +223,7 @@
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -244,6 +239,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "State",
@@ -251,6 +247,7 @@
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -266,12 +263,14 @@
"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,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -287,6 +286,7 @@
"fieldtype": "Table",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Invoices",
@@ -295,6 +295,7 @@
"options": "C-Form Invoice Detail",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -310,6 +311,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Total Invoiced Amount",
@@ -318,6 +320,7 @@
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -333,6 +336,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 1,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Amended From",
@@ -341,6 +345,7 @@
"options": "C-Form",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -359,7 +364,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 3,
"modified": "2015-11-16 06:29:43.143528",
"modified": "2016-03-03 04:31:05.340444",
"modified_by": "Administrator",
"module": "Accounts",
"name": "C-Form",
@@ -427,5 +432,7 @@
}
],
"read_only": 0,
"read_only_onload": 0
"read_only_onload": 0,
"sort_order": "DESC",
"timeline_field": "customer"
}

View File

@@ -18,6 +18,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "",
@@ -25,6 +26,7 @@
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -40,6 +42,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Cost Center Name",
@@ -49,6 +52,7 @@
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -64,6 +68,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 1,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Parent Cost Center",
@@ -74,6 +79,7 @@
"options": "Cost Center",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -89,6 +95,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Company",
@@ -99,6 +106,7 @@
"options": "Company",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -114,12 +122,14 @@
"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,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -137,6 +147,7 @@
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Is Group",
@@ -145,6 +156,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -161,6 +173,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Budget",
@@ -168,6 +181,7 @@
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -184,6 +198,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Distribution Id",
@@ -194,6 +209,7 @@
"options": "Monthly Distribution",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -210,6 +226,7 @@
"fieldtype": "Table",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Budgets",
@@ -220,6 +237,7 @@
"options": "Budget Detail",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -235,6 +253,7 @@
"fieldtype": "Int",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "lft",
@@ -244,6 +263,7 @@
"oldfieldtype": "Int",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 1,
"reqd": 0,
@@ -259,6 +279,7 @@
"fieldtype": "Int",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "rgt",
@@ -268,6 +289,7 @@
"oldfieldtype": "Int",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 1,
"reqd": 0,
@@ -283,6 +305,7 @@
"fieldtype": "Link",
"hidden": 1,
"ignore_user_permissions": 1,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "old_parent",
@@ -293,6 +316,7 @@
"options": "Cost Center",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 1,
"reqd": 0,
@@ -311,7 +335,8 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2015-11-16 06:29:43.870712",
"menu_index": 0,
"modified": "2016-03-14 15:59:51.508268",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Cost Center",
@@ -337,6 +362,26 @@
"submit": 0,
"write": 1
},
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 0,
"delete": 0,
"email": 0,
"export": 1,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 0,
"read": 1,
"report": 1,
"role": "Auditor",
"set_user_permissions": 0,
"share": 0,
"submit": 0,
"write": 0
},
{
"amend": 0,
"apply_user_permissions": 0,
@@ -396,29 +441,10 @@
"share": 0,
"submit": 0,
"write": 0
},
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 0,
"delete": 0,
"email": 0,
"export": 0,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 0,
"read": 1,
"report": 0,
"role": "Stock User",
"set_user_permissions": 0,
"share": 0,
"submit": 0,
"write": 0
}
],
"read_only": 0,
"read_only_onload": 0,
"search_fields": "parent_cost_center, is_group"
"search_fields": "parent_cost_center, is_group",
"version": 0
}

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('GL Entry', {
refresh: function(frm) {
}
});

View File

@@ -9,6 +9,7 @@ from frappe.model.document import Document
from erpnext.accounts.party import validate_party_gle_currency, validate_party_frozen_disabled
from erpnext.accounts.utils import get_account_currency
from erpnext.setup.doctype.company.company import get_company_currency
from erpnext.accounts.utils import get_fiscal_year
from erpnext.exceptions import InvalidAccountCurrency
exclude_from_linked_with = True
@@ -18,11 +19,11 @@ class GLEntry(Document):
self.flags.ignore_submit_comment = True
self.check_mandatory()
self.pl_must_have_cost_center()
self.validate_posting_date()
self.check_pl_account()
self.validate_cost_center()
self.validate_party()
self.validate_currency()
self.validate_and_set_fiscal_year()
def on_update_with_args(self, adv_adj, update_outstanding = 'Yes'):
self.validate_account_details(adv_adj)
@@ -37,7 +38,7 @@ class GLEntry(Document):
self.against_voucher)
def check_mandatory(self):
mandatory = ['account','remarks','voucher_type','voucher_no','fiscal_year','company']
mandatory = ['account','remarks','voucher_type','voucher_no','company']
for k in mandatory:
if not self.get(k):
frappe.throw(_("{0} is required").format(self.meta.get_label(k)))
@@ -57,10 +58,6 @@ class GLEntry(Document):
elif self.cost_center:
self.cost_center = None
def validate_posting_date(self):
from erpnext.accounts.utils import validate_fiscal_year
validate_fiscal_year(self.posting_date, self.fiscal_year, _("Posting Date"), self)
def check_pl_account(self):
if self.is_opening=='Yes' and \
frappe.db.get_value("Account", self.account, "report_type")=="Profit and Loss":
@@ -112,6 +109,12 @@ class GLEntry(Document):
if self.party_type and self.party:
validate_party_gle_currency(self.party_type, self.party, self.company, self.account_currency)
def validate_and_set_fiscal_year(self):
if not self.fiscal_year:
self.fiscal_year = get_fiscal_year(self.posting_date, company=self.company)[0]
def validate_balance_type(account, adv_adj=False):
if not adv_adj and account:
balance_must_be = frappe.db.get_value("Account", account, "balance_must_be")

View File

@@ -217,16 +217,6 @@ erpnext.accounts.JournalEntry = frappe.ui.form.Controller.extend({
cur_frm.script_manager.make(erpnext.accounts.JournalEntry);
cur_frm.cscript.company = function(doc, cdt, cdn) {
cur_frm.refresh_fields();
erpnext.get_fiscal_year(doc.company, doc.posting_date);
}
cur_frm.cscript.posting_date = function(doc, cdt, cdn){
cur_frm.posting_date = cur_frm.doc.posting_date;
erpnext.get_fiscal_year(doc.company, doc.posting_date);
}
cur_frm.cscript.update_totals = function(doc) {
var td=0.0; var tc =0.0;
var accounts = doc.accounts || [];
@@ -410,11 +400,11 @@ $.extend(erpnext.journal_entry, {
var row = locals[cdt][cdn];
frappe.model.set_value(cdt, cdn, "debit",
flt(flt(row.debit_in_account_currency)*row.exchange_rate), precision("debit", row));
flt(flt(row.debit_in_account_currency)*row.exchange_rate, precision("debit", row)));
frappe.model.set_value(cdt, cdn, "credit",
flt(flt(row.credit_in_account_currency)*row.exchange_rate), precision("credit", row));
flt(flt(row.credit_in_account_currency)*row.exchange_rate, precision("credit", row)));
cur_frm.cscript.update_totals(frm.doc);
},

File diff suppressed because it is too large Load Diff

View File

@@ -22,7 +22,6 @@ class JournalEntry(AccountsController):
self.is_opening='No'
self.clearance_date = None
super(JournalEntry, self).validate_date_with_fiscal_year()
self.validate_party()
self.validate_cheque_info()
self.validate_entries_for_advance()
@@ -203,7 +202,7 @@ class JournalEntry(AccountsController):
self.validate_invoices()
def validate_orders(self):
"""Validate totals, stopped and docstatus for orders"""
"""Validate totals, closed and docstatus for orders"""
for reference_name, total in self.reference_totals.iteritems():
reference_type = self.reference_types[reference_name]
account = self.reference_accounts[reference_name]
@@ -217,8 +216,8 @@ class JournalEntry(AccountsController):
if flt(order.per_billed) >= 100:
frappe.throw(_("{0} {1} is fully billed").format(reference_type, reference_name))
if cstr(order.status) == "Stopped":
frappe.throw(_("{0} {1} is stopped").format(reference_type, reference_name))
if cstr(order.status) == "Closed":
frappe.throw(_("{0} {1} is closed").format(reference_type, reference_name))
account_currency = get_account_currency(account)
if account_currency == self.company_currency:
@@ -354,23 +353,31 @@ class JournalEntry(AccountsController):
self.remark = ("\n").join(r) #User Remarks is not mandatory
def set_print_format_fields(self):
total_amount = 0.0
bank_account_currency = None
self.pay_to_recd_from = None
bank_amount = party_amount = total_amount = 0.0
currency = bank_account_currency = party_account_currency = pay_to_recd_from= None
for d in self.get('accounts'):
if d.party_type and d.party:
if not self.pay_to_recd_from:
self.pay_to_recd_from = frappe.db.get_value(d.party_type, d.party,
if not pay_to_recd_from:
pay_to_recd_from = frappe.db.get_value(d.party_type, d.party,
"customer_name" if d.party_type=="Customer" else "supplier_name")
party_amount += (d.debit_in_account_currency or d.credit_in_account_currency)
party_account_currency = d.account_currency
elif frappe.db.get_value("Account", d.account, "account_type") in ["Bank", "Cash"]:
total_amount += (d.debit_in_account_currency or d.credit_in_account_currency)
bank_amount += (d.debit_in_account_currency or d.credit_in_account_currency)
bank_account_currency = d.account_currency
if not self.pay_to_recd_from:
total_amount = 0
if pay_to_recd_from:
self.pay_to_recd_from = pay_to_recd_from
if bank_amount:
total_amount = bank_amount
currency = bank_account_currency
else:
total_amount = party_amount
currency = party_account_currency
self.set_total_amount(total_amount, bank_account_currency)
self.set_total_amount(total_amount, currency)
def set_total_amount(self, amt, currency):
self.total_amount = amt
@@ -549,7 +556,7 @@ def get_default_bank_cash_account(company, voucher_type, mode_of_payment=None, a
}
@frappe.whitelist()
def get_payment_entry_against_order(dt, dn, amount=None, journal_entry=False, bank_account=None):
def get_payment_entry_against_order(dt, dn, amount=None, debit_in_account_currency=None, journal_entry=False, bank_account=None):
ref_doc = frappe.get_doc(dt, dn)
if flt(ref_doc.per_billed, 2) > 0:
@@ -580,6 +587,7 @@ def get_payment_entry_against_order(dt, dn, amount=None, journal_entry=False, ba
"amount_field_party": amount_field_party,
"amount_field_bank": amount_field_bank,
"amount": amount,
"debit_in_account_currency": debit_in_account_currency,
"remarks": 'Advance Payment received against {0} {1}'.format(dt, dn),
"is_advance": "Yes",
"bank_account": bank_account,
@@ -587,7 +595,7 @@ def get_payment_entry_against_order(dt, dn, amount=None, journal_entry=False, ba
})
@frappe.whitelist()
def get_payment_entry_against_invoice(dt, dn, amount=None, journal_entry=False, bank_account=None):
def get_payment_entry_against_invoice(dt, dn, amount=None, debit_in_account_currency=None, journal_entry=False, bank_account=None):
ref_doc = frappe.get_doc(dt, dn)
if dt == "Sales Invoice":
party_type = "Customer"
@@ -612,6 +620,7 @@ def get_payment_entry_against_invoice(dt, dn, amount=None, journal_entry=False,
"amount_field_party": amount_field_party,
"amount_field_bank": amount_field_bank,
"amount": amount if amount else abs(ref_doc.outstanding_amount),
"debit_in_account_currency": debit_in_account_currency,
"remarks": 'Payment received against {0} {1}. {2}'.format(dt, dn, ref_doc.remarks),
"is_advance": "No",
"bank_account": bank_account,
@@ -660,10 +669,12 @@ def get_payment_entry(ref_doc, args):
bank_row.cost_center = cost_center
amount = args.get("debit_in_account_currency") or args.get("amount")
if bank_row.account_currency == args.get("party_account_currency"):
bank_row.set(args.get("amount_field_bank"), args.get("amount"))
bank_row.set(args.get("amount_field_bank"), amount)
else:
bank_row.set(args.get("amount_field_bank"), args.get("amount") * exchange_rate)
bank_row.set(args.get("amount_field_bank"), amount * exchange_rate)
# set multi currency check
if party_row.account_currency != ref_doc.company_currency \

View File

@@ -249,7 +249,6 @@ def make_journal_entry(account1, account2, amount, cost_center=None, exchange_ra
jv = frappe.new_doc("Journal Entry")
jv.posting_date = "2013-02-14"
jv.company = "_Test Company"
jv.fiscal_year = "_Test Fiscal Year 2013"
jv.user_remark = "test"
jv.multi_currency = 1
jv.set("accounts", [

View File

@@ -7,8 +7,8 @@
"accounts": [
{
"account": "_Test Receivable - _TC",
"party_type": "Customer",
"party": "_Test Customer",
"party_type": "Customer",
"party": "_Test Customer",
"credit_in_account_currency": 400.0,
"debit_in_account_currency": 0.0,
"doctype": "Journal Entry Account",
@@ -22,7 +22,6 @@
"parentfield": "accounts"
}
],
"fiscal_year": "_Test Fiscal Year 2013",
"naming_series": "_T-Journal Entry-",
"posting_date": "2013-02-14",
"user_remark": "test",
@@ -38,8 +37,8 @@
"accounts": [
{
"account": "_Test Payable - _TC",
"party_type": "Supplier",
"party": "_Test Supplier",
"party_type": "Supplier",
"party": "_Test Supplier",
"credit_in_account_currency": 0.0,
"debit_in_account_currency": 400.0,
"doctype": "Journal Entry Account",
@@ -53,7 +52,6 @@
"parentfield": "accounts"
}
],
"fiscal_year": "_Test Fiscal Year 2013",
"naming_series": "_T-Journal Entry-",
"posting_date": "2013-02-14",
"user_remark": "test",
@@ -69,8 +67,8 @@
"accounts": [
{
"account": "_Test Receivable - _TC",
"party_type": "Customer",
"party": "_Test Customer",
"party_type": "Customer",
"party": "_Test Customer",
"credit_in_account_currency": 0.0,
"debit_in_account_currency": 400.0,
"doctype": "Journal Entry Account",
@@ -85,7 +83,6 @@
"parentfield": "accounts"
}
],
"fiscal_year": "_Test Fiscal Year 2013",
"naming_series": "_T-Journal Entry-",
"posting_date": "2013-02-14",
"user_remark": "test",

View File

@@ -1,150 +1,156 @@
{
"allow_copy": 0,
"allow_import": 0,
"allow_rename": 0,
"autoname": "field:distribution_id",
"creation": "2013-01-10 16:34:05",
"custom": 0,
"description": "**Monthly Distribution** helps you distribute your budget across months if you have seasonality in your business.\n\nTo distribute a budget using this distribution, set this **Monthly Distribution** in the **Cost Center**",
"docstatus": 0,
"doctype": "DocType",
"allow_copy": 0,
"allow_import": 0,
"allow_rename": 0,
"autoname": "field:distribution_id",
"creation": "2013-01-10 16:34:05",
"custom": 0,
"description": "**Monthly Distribution** helps you distribute your budget across months if you have seasonality in your business.\n\nTo distribute a budget using this distribution, set this **Monthly Distribution** in the **Cost Center**",
"docstatus": 0,
"doctype": "DocType",
"fields": [
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"description": "Name of the Monthly Distribution",
"fieldname": "distribution_id",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Distribution Name",
"length": 0,
"no_copy": 0,
"oldfieldname": "distribution_id",
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"description": "Name of the Monthly Distribution",
"fieldname": "distribution_id",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Distribution Name",
"length": 0,
"no_copy": 0,
"oldfieldname": "distribution_id",
"oldfieldtype": "Data",
"permlevel": 0,
"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,
"in_filter": 1,
"in_list_view": 1,
"label": "Fiscal Year",
"length": 0,
"no_copy": 0,
"oldfieldname": "fiscal_year",
"oldfieldtype": "Select",
"options": "Fiscal Year",
"permlevel": 0,
"print_hide": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 1,
"set_only_once": 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": 1,
"in_list_view": 1,
"label": "Fiscal Year",
"length": 0,
"no_copy": 0,
"oldfieldname": "fiscal_year",
"oldfieldtype": "Select",
"options": "Fiscal Year",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 1,
"set_only_once": 0,
"unique": 0
},
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "percentages",
"fieldtype": "Table",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Monthly Distribution Percentages",
"length": 0,
"no_copy": 0,
"oldfieldname": "budget_distribution_details",
"oldfieldtype": "Table",
"options": "Monthly Distribution Percentage",
"permlevel": 0,
"print_hide": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "percentages",
"fieldtype": "Table",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Monthly Distribution Percentages",
"length": 0,
"no_copy": 0,
"oldfieldname": "budget_distribution_details",
"oldfieldtype": "Table",
"options": "Monthly Distribution Percentage",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"hide_heading": 0,
"hide_toolbar": 0,
"icon": "icon-bar-chart",
"idx": 1,
"in_create": 0,
"in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2015-11-16 06:29:50.431735",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Monthly Distribution",
"name_case": "Title Case",
"owner": "Administrator",
],
"hide_heading": 0,
"hide_toolbar": 0,
"icon": "icon-bar-chart",
"idx": 1,
"in_create": 0,
"in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2016-03-03 02:46:44.493857",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Monthly Distribution",
"name_case": "Title Case",
"owner": "Administrator",
"permissions": [
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"export": 0,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Accounts Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"export": 0,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Accounts Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
},
},
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 0,
"delete": 0,
"email": 0,
"export": 0,
"if_owner": 0,
"import": 0,
"permlevel": 2,
"print": 0,
"read": 1,
"report": 1,
"role": "Accounts Manager",
"set_user_permissions": 0,
"share": 0,
"submit": 0,
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 0,
"delete": 0,
"email": 0,
"export": 0,
"if_owner": 0,
"import": 0,
"permlevel": 2,
"print": 0,
"read": 1,
"report": 1,
"role": "Accounts Manager",
"set_user_permissions": 0,
"share": 0,
"submit": 0,
"write": 0
}
],
"read_only": 0,
"read_only_onload": 0,
"sort_field": "modified",
],
"read_only": 0,
"read_only_onload": 0,
"sort_field": "modified",
"sort_order": "DESC"
}
}

View File

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

View File

@@ -12,7 +12,7 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "gateway",
"fieldname": "payment_gateway",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -203,30 +203,6 @@
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "payment_success_url",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Payment Success URL",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"hide_heading": 0,
@@ -238,7 +214,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2016-01-18 03:53:50.534673",
"modified": "2016-01-21 11:32:10.311015",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Payment Gateway Account",

View File

@@ -8,9 +8,11 @@ from frappe.model.document import Document
class PaymentGatewayAccount(Document):
def autoname(self):
self.name = self.gateway + " - " + self.currency
self.name = self.payment_gateway + " - " + self.currency
def validate(self):
self.currency = frappe.db.get_value("Account", self.payment_account, "account_currency")
self.update_default_payment_gateway()
self.set_as_default_if_not_set()
@@ -20,5 +22,6 @@ class PaymentGatewayAccount(Document):
where is_default = 1 """)
def set_as_default_if_not_set(self):
if not frappe.db.get_value("Payment Gateway Account", {"is_default": 1, "name": ("!=", self.name)}, "name"):
if not frappe.db.get_value("Payment Gateway Account",
{"is_default": 1, "name": ("!=", self.name)}, "name"):
self.is_default = 1

View File

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

View File

@@ -17,6 +17,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Payment Details",
@@ -33,30 +34,6 @@
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "amount",
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Amount",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "2",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
@@ -65,9 +42,10 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Currency",
"label": "Transaction Currency",
"length": 0,
"no_copy": 0,
"options": "Currency",
@@ -86,18 +64,20 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"depends_on": "eval:doc.reference_doctype==\"Sales Order\"",
"fieldname": "make_sales_invoice",
"fieldtype": "Check",
"description": "Amount in customer's currency",
"fieldname": "grand_total",
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Make Sales Invoice",
"label": "Grand Total",
"length": 0,
"no_copy": 0,
"options": "currency",
"permlevel": 0,
"precision": "",
"precision": "2",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
@@ -115,6 +95,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -139,6 +120,7 @@
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Status",
@@ -156,6 +138,32 @@
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"depends_on": "eval:doc.reference_doctype==\"Sales Order\"",
"fieldname": "make_sales_invoice",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Make Sales Invoice",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
@@ -164,6 +172,57 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "payment_gateway_account",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Payment Gateway Account",
"length": 0,
"no_copy": 0,
"options": "Payment Gateway Account",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "column_break_9",
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -184,87 +243,16 @@
"bold": 0,
"collapsible": 0,
"fieldname": "payment_gateway",
"fieldtype": "Link",
"fieldtype": "Read Only",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Payment Gateway",
"length": 0,
"no_copy": 0,
"options": "Payment Gateway Account",
"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_success_url",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Payment Success URL",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "column_break_9",
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "gateway",
"fieldtype": "Read Only",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Gateway",
"length": 0,
"no_copy": 0,
"options": "payment_gateway.gateway",
"options": "payment_gateway_account.payment_gateway",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -284,12 +272,13 @@
"fieldtype": "Read Only",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Payment Account",
"length": 0,
"no_copy": 0,
"options": "payment_gateway.payment_account",
"options": "payment_gateway_account.payment_account",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -309,6 +298,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Recipient and Message",
@@ -334,6 +324,7 @@
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Print Format",
@@ -359,6 +350,7 @@
"fieldtype": "Check",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Mute Email",
@@ -383,6 +375,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Email To",
@@ -407,6 +400,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Subject",
@@ -431,6 +425,7 @@
"fieldtype": "Text Editor",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Message",
@@ -455,6 +450,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Payment URL Message",
@@ -479,6 +475,7 @@
"fieldtype": "Data",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "payment_url",
@@ -503,6 +500,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Reference Details",
@@ -527,6 +525,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Reference Doctype",
@@ -552,6 +551,7 @@
"fieldtype": "Dynamic Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Reference Name",
@@ -577,6 +577,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Amended From",
@@ -597,13 +598,13 @@
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"in_create": 0,
"in_create": 1,
"in_dialog": 0,
"is_submittable": 1,
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2016-01-11 05:49:28.342786",
"modified": "2016-04-12 15:26:22.756129",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Payment Request",
@@ -674,5 +675,6 @@
"read_only": 0,
"read_only_onload": 0,
"sort_field": "modified",
"sort_order": "DESC"
"sort_order": "DESC",
"track_seen": 0
}

View File

@@ -8,12 +8,10 @@ from frappe import _
from frappe.model.document import Document
from frappe.utils import flt, nowdate, get_url, cstr
from erpnext.accounts.party import get_party_account
from erpnext.accounts.utils import get_account_currency, get_balance_on
from erpnext.accounts.utils import get_account_currency
from erpnext.accounts.doctype.journal_entry.journal_entry import (get_payment_entry_against_invoice,
get_payment_entry_against_order)
from itertools import chain
class PaymentRequest(Document):
def validate(self):
self.validate_payment_gateway_account()
@@ -23,7 +21,7 @@ class PaymentRequest(Document):
def validate_payment_request(self):
if frappe.db.get_value("Payment Request", {"reference_name": self.reference_name,
"name": ("!=", self.name), "status": ("not in", ["Initiated", "Paid"]), "docstatus": 1}, "name"):
frappe.throw(_("Payment Request already exists {0}".fomart(self.reference_name)))
frappe.throw(_("Payment Request already exists {0}".format(self.reference_name)))
def validate_currency(self):
ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)
@@ -35,7 +33,7 @@ class PaymentRequest(Document):
frappe.throw(_("Payment Gateway Account is not configured"))
def validate_payment_gateway(self):
if self.gateway == "PayPal":
if self.payment_gateway == "PayPal":
if not frappe.db.get_value("PayPal Settings", None, "api_username"):
if not frappe.conf.paypal_username:
frappe.throw(_("PayPal Settings missing"))
@@ -49,14 +47,10 @@ class PaymentRequest(Document):
def on_cancel(self):
self.set_as_cancelled()
def on_update_after_submit(self):
pass
def set_status(self):
pass
def get_payment_url(self):
""" This is blanck method to trigger hooks call from individual payment gateway app
which will return respective payment gateway"""
pass
def make_invoice(self):
@@ -69,6 +63,7 @@ class PaymentRequest(Document):
def send_payment_request(self):
self.payment_url = get_url("/api/method/erpnext.accounts.doctype.payment_request.payment_request.generate_payment_request?name={0}".format(self.name))
if self.payment_url:
frappe.db.set_value(self.doctype, self.name, "payment_url", self.payment_url)
frappe.db.set_value(self.doctype, self.name, "status", "Initiated")
def set_as_paid(self):
@@ -82,29 +77,44 @@ class PaymentRequest(Document):
def create_journal_entry(self):
"""create entry"""
payment_details = {
"amount": self.amount,
"journal_entry": True,
"bank_account": self.payment_account
}
frappe.flags.ignore_account_permission = True
ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)
party_account = get_party_account("Customer", ref_doc.get("customer"), ref_doc.company)
party_account_currency = get_account_currency(party_account)
debit_in_account_currency = 0.0
if party_account_currency == ref_doc.company_currency:
amount = flt(flt(self.grand_total) * \
flt(ref_doc.conversion_rate, ref_doc.precision("conversion_rate")), \
ref_doc.precision("base_grand_total"))
if self.currency != ref_doc.company_currency:
debit_in_account_currency = self.grand_total
else:
amount = debit_in_account_currency = self.grand_total
if self.reference_doctype == "Sales Order":
jv = get_payment_entry_against_order(self.reference_doctype, self.reference_name,\
amount=self.amount, journal_entry=True, bank_account=self.payment_account)
jv = get_payment_entry_against_order(self.reference_doctype, self.reference_name,
amount=amount, debit_in_account_currency=debit_in_account_currency , journal_entry=True,
bank_account=self.payment_account)
if self.reference_doctype == "Sales Invoice":
jv = get_payment_entry_against_invoice(self.reference_doctype, self.reference_name,\
amount=self.amount, journal_entry=True, bank_account=self.payment_account)
if self.reference_doctype == "Sales Invoice":
jv = get_payment_entry_against_invoice(self.reference_doctype, self.reference_name,
amount=amount, debit_in_account_currency=debit_in_account_currency, journal_entry=True,
bank_account=self.payment_account)
jv.update({
"voucher_type": "Journal Entry",
"posting_date": nowdate()
})
})
jv.insert(ignore_permissions=True)
jv.submit()
#set status as paid for Payment Request
frappe.db.set_value(self.doctype, self.name, "status", "Paid")
@@ -148,70 +158,90 @@ def make_payment_request(**args):
args = frappe._dict(args)
ref_doc = frappe.get_doc(args.dt, args.dn)
gateway_account = get_gateway_details(args)
pr = frappe.new_doc("Payment Request")
pr.update({
"payment_gateway": gateway_account.name,
"gateway": gateway_account.gateway,
"payment_account": gateway_account.payment_account,
"currency": ref_doc.currency,
"make_sales_invoice": args.cart or 0,
"amount": get_amount(ref_doc, args.dt),
"mute_email": args.mute_email or 0,
"email_to": args.recipient_id or "",
"subject": "Payment Request for %s"%args.dn,
"message": gateway_account.message,
"payment_url_message": gateway_account.payment_url_message,
"payment_success_url": gateway_account.payment_success_url,
"reference_doctype": args.dt,
"reference_name": args.dn
})
grand_total = get_amount(ref_doc, args.dt)
if args.return_doc:
return pr
existing_payment_request = frappe.db.get_value("Payment Request",
{"reference_doctype": args.dt, "reference_name": args.dn})
if existing_payment_request:
pr = frappe.get_doc("Payment Request", existing_payment_request)
if args.submit_doc:
pr.insert(ignore_permissions=True)
pr.submit()
if args.cart:
generate_payment_request(pr.name)
frappe.db.commit()
if not args.cart:
else:
pr = frappe.new_doc("Payment Request")
pr.update({
"payment_gateway_account": gateway_account.name,
"payment_gateway": gateway_account.payment_gateway,
"payment_account": gateway_account.payment_account,
"currency": ref_doc.currency,
"make_sales_invoice": args.cart or 0,
"grand_total": grand_total,
"mute_email": args.mute_email or 0,
"email_to": args.recipient_id or "",
"subject": "Payment Request for %s"%args.dn,
"message": gateway_account.message,
"payment_url_message": gateway_account.payment_url_message,
"payment_success_url": gateway_account.payment_success_url,
"reference_doctype": args.dt,
"reference_name": args.dn
})
if args.return_doc:
return pr
if args.submit_doc:
pr.insert(ignore_permissions=True)
pr.submit()
if args.cart:
generate_payment_request(pr.name)
frappe.db.commit()
if not args.cart:
return pr
return pr.as_dict()
def get_amount(ref_doc, dt):
"""get amount based on doctype"""
if dt == "Sales Order":
amount = flt(ref_doc.base_grand_total) - flt(ref_doc.advance_paid)
grand_total = flt(ref_doc.grand_total) - flt(ref_doc.advance_paid)
if dt == "Sales Invoice":
amount = abs(ref_doc.outstanding_amount)
if amount > 0:
return amount
if ref_doc.party_account_currency == ref_doc.currency:
grand_total = flt(ref_doc.outstanding_amount)
else:
grand_total = flt(ref_doc.outstanding_amount) / ref_doc.conversion_rate
if grand_total > 0 :
return grand_total
else:
frappe.throw(_("Payment Entry is already created"))
def get_gateway_details(args):
"""return gateway and payment account of default payment gateway"""
if args.payemnt_gateway:
gateway_account = frappe.db.get_value("Payment Gateway Account", args.payemnt_gateway,
["name", "gateway", "payment_account", "message", "payment_url_message", "payment_success_url"],
as_dict=1)
if args.get("payment_gateway"):
return get_payment_gateway_account(args.get("payment_gateway"))
if args.cart:
payment_gateway_account = frappe.get_doc("Shopping Cart Settings").payment_gateway_account
return get_payment_gateway_account(payment_gateway_account)
gateway_account = frappe.db.get_value("Payment Gateway Account", {"is_default": 1},
["name", "gateway", "payment_account", "message", "payment_url_message", "payment_success_url"],
as_dict=1)
gateway_account = get_payment_gateway_account({"is_default": 1})
if not gateway_account:
frappe.throw(_("Payment Gateway Account is not configured"))
return gateway_account
def get_payment_gateway_account(args):
return frappe.db.get_value("Payment Gateway Account", args,
["name", "payment_gateway", "payment_account", "message", "payment_url_message"],
as_dict=1)
@frappe.whitelist()
def get_print_format_list(ref_doctype):

View File

@@ -6,8 +6,9 @@ from __future__ import unicode_literals
import frappe
import unittest
from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order
from erpnext.accounts.doctype.payment_request.payment_request import make_payment_request
from erpnext.accounts.doctype.payment_request.payment_request import make_payment_request, get_gateway_details
from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice
from erpnext.setup.utils import get_exchange_rate
# test_records = frappe.get_test_records('Payment Request')
test_dependencies = ["Currency Exchange", "Journal Entry", "Contact", "Address"]
@@ -21,14 +22,14 @@ payment_method = [
{
"doctype": "Payment Gateway Account",
"is_default": 1,
"gateway": "_Test Gateway",
"payment_gateway": "_Test Gateway",
"payment_account": "_Test Bank - _TC",
"currency": "INR"
},
{
"doctype": "Payment Gateway Account",
"gateway": "_Test Gateway",
"payment_account": "_Test Bank - _TC",
"payment_gateway": "_Test Gateway",
"payment_account": "_Test Bank USD - _TC",
"currency": "USD"
}
]
@@ -39,41 +40,49 @@ class TestPaymentRequest(unittest.TestCase):
frappe.get_doc(payment_gateway).insert(ignore_permissions=True)
for method in payment_method:
if not frappe.db.get_value("Payment Gateway Account", {"gateway": method["gateway"],
if not frappe.db.get_value("Payment Gateway Account", {"payment_gateway": method["payment_gateway"],
"currency": method["currency"]}, "name"):
frappe.get_doc(method).insert(ignore_permissions=True)
def test_payment_request_linkings(self):
SO_INR = make_sales_order(currency="INR")
pr = make_payment_request(dt="Sales Order", dn=SO_INR.name, recipient_id="saurabh@erpnext.com")
so_inr = make_sales_order(currency="INR")
pr = make_payment_request(dt="Sales Order", dn=so_inr.name, recipient_id="saurabh@erpnext.com")
self.assertEquals(pr.reference_doctype, "Sales Order")
self.assertEquals(pr.reference_name, SO_INR.name)
self.assertEquals(pr.reference_name, so_inr.name)
self.assertEquals(pr.currency, "INR")
SI_USD = create_sales_invoice(currency="USD", conversion_rate=50)
pr = make_payment_request(dt="Sales Invoice", dn=SI_USD.name, recipient_id="saurabh@erpnext.com")
conversion_rate = get_exchange_rate("USD", "INR")
si_usd = create_sales_invoice(currency="USD", conversion_rate=conversion_rate)
pr = make_payment_request(dt="Sales Invoice", dn=si_usd.name, recipient_id="saurabh@erpnext.com")
self.assertEquals(pr.reference_doctype, "Sales Invoice")
self.assertEquals(pr.reference_name, SI_USD.name)
self.assertEquals(pr.reference_name, si_usd.name)
self.assertEquals(pr.currency, "USD")
def test_payment_entry(self):
SO_INR = make_sales_order(currency="INR")
pr = make_payment_request(dt="Sales Order", dn=SO_INR.name, recipient_id="saurabh@erpnext.com",
mute_email=1, submit_doc=1)
jv = pr.set_as_paid()
SO_INR = frappe.get_doc("Sales Order", SO_INR.name)
self.assertEquals(SO_INR.advance_paid, jv.total_debit)
SI_USD = create_sales_invoice(customer="_Test Customer USD", debit_to="_Test Receivable USD - _TC",
currency="USD", conversion_rate=50)
pr = make_payment_request(dt="Sales Invoice", dn=SI_USD.name, recipient_id="saurabh@erpnext.com",
mute_email=1, return_doc=1, payemnt_gateway="_Test Gateway - USD")
self.assertRaises(frappe.ValidationError, pr.save)
def test_payment_entry(self):
so_inr = make_sales_order(currency="INR")
pr = make_payment_request(dt="Sales Order", dn=so_inr.name, recipient_id="saurabh@erpnext.com",
mute_email=1, submit_doc=1)
jv = pr.set_as_paid()
so_inr = frappe.get_doc("Sales Order", so_inr.name)
self.assertEquals(so_inr.advance_paid, jv.total_debit)
conversion_rate = get_exchange_rate("USD", "INR")
si_usd = create_sales_invoice(customer="_Test Customer USD", debit_to="_Test Receivable USD - _TC",
currency="USD", conversion_rate=conversion_rate)
pr = make_payment_request(dt="Sales Invoice", dn=si_usd.name, recipient_id="saurabh@erpnext.com",
mute_email=1, return_doc=1, payment_gateway="_Test Gateway - USD")
jv = pr.set_as_paid()
payment_gateway_details = get_gateway_details({"payment_gateway": "_Test Gateway - USD"})
self.assertEquals(jv.accounts[0].account, "_Test Receivable USD - _TC")
self.assertEquals(jv.accounts[1].account, payment_gateway_details.payment_account)

View File

@@ -133,7 +133,7 @@ def get_orders_to_be_billed(party_type, party, party_account_currency, company_c
where
{party_type} = %s
and docstatus = 1
and ifnull(status, "") != "Stopped"
and ifnull(status, "") != "Closed"
and {ref_field} > advance_paid
and abs(100 - per_billed) > 0.01
""".format(**{

View File

@@ -97,10 +97,10 @@ def apply_pricing_rule(args):
args = json.loads(args)
args = frappe._dict(args)
if not args.transaction_type:
set_transaction_type(args)
# list of dictionaries
out = []
@@ -142,7 +142,7 @@ def get_pricing_rule_for_item(args):
customer = frappe.db.get_value("Customer", args.customer, ["customer_group", "territory"])
if customer:
args.customer_group, args.territory = customer
args.supplier = args.supplier_type = None
elif args.supplier and not args.supplier_type:
@@ -186,7 +186,7 @@ def get_pricing_rules(args):
return condition
conditions = ""
conditions = item_variant_condition = ""
values = {"item_code": args.get("item_code"), "brand": args.get("brand")}
for field in ["company", "customer", "supplier", "supplier_type", "campaign", "sales_partner"]:
@@ -211,16 +211,26 @@ def get_pricing_rules(args):
values['transaction_date'] = args.get('transaction_date')
item_group_condition = _get_tree_conditions("Item Group", False)
if item_group_condition: item_group_condition = " or " + item_group_condition
if item_group_condition:
item_group_condition = " or " + item_group_condition
# load variant of if not defined
if "variant_of" not in args:
args.variant_of = frappe.db.get_value("Item", args.item_code, "variant_of")
if args.variant_of:
item_variant_condition = ' or item_code=%(variant_of)s '
values['variant_of'] = args.variant_of
return frappe.db.sql("""select * from `tabPricing Rule`
where (item_code=%(item_code)s {item_group_condition} or brand=%(brand)s)
where (item_code=%(item_code)s {item_variant_condition} {item_group_condition} or brand=%(brand)s)
and docstatus < 2 and disable = 0
and {transaction_type} = 1 {conditions}
order by priority desc, name desc""".format(
item_group_condition=item_group_condition,
transaction_type= args.transaction_type,
conditions=conditions), values, as_dict=1)
item_group_condition = item_group_condition,
item_variant_condition = item_variant_condition,
transaction_type = args.transaction_type,
conditions = conditions), values, as_dict=1)
def filter_pricing_rules(args, pricing_rules):
# filter for qty
@@ -228,6 +238,13 @@ def filter_pricing_rules(args, pricing_rules):
pricing_rules = filter(lambda x: (flt(args.get("qty"))>=flt(x.min_qty)
and (flt(args.get("qty"))<=x.max_qty if x.max_qty else True)), pricing_rules)
# add variant_of property in pricing rule
for p in pricing_rules:
if p.item_code and args.variant_of:
p.variant_of = args.variant_of
else:
p.variant_of = None
# find pricing rule with highest priority
if pricing_rules:
max_priority = max([cint(p.priority) for p in pricing_rules])
@@ -236,10 +253,10 @@ def filter_pricing_rules(args, pricing_rules):
# apply internal priority
all_fields = ["item_code", "item_group", "brand", "customer", "customer_group", "territory",
"supplier", "supplier_type", "campaign", "sales_partner"]
"supplier", "supplier_type", "campaign", "sales_partner", "variant_of"]
if len(pricing_rules) > 1:
for field_set in [["item_code", "item_group", "brand"],
for field_set in [["item_code", "variant_of", "item_group", "brand"],
["customer", "customer_group", "territory"], ["supplier", "supplier_type"]]:
remaining_fields = list(set(all_fields) - set(field_set))
if if_all_rules_same(pricing_rules, remaining_fields):
@@ -253,8 +270,7 @@ def filter_pricing_rules(args, pricing_rules):
or pricing_rules
if len(pricing_rules) > 1:
frappe.throw(_("Multiple Price Rule exists with same criteria, please resolve \
conflict by assigning priority. Price Rules: {0}")
frappe.throw(_("Multiple Price Rules exists with same criteria, please resolve conflict by assigning priority. Price Rules: {0}")
.format("\n".join([d.name for d in pricing_rules])), MultiplePricingRuleConflict)
elif pricing_rules:
return pricing_rules[0]
@@ -281,10 +297,10 @@ def apply_internal_priority(pricing_rules, field_set, args):
def set_transaction_type(args):
if args.doctype in ("Opportunity", "Quotation", "Sales Order", "Delivery Note", "Sales Invoice"):
args.transaction_type = "selling"
elif args.doctype in ("Material Request", "Supplier Quotation", "Purchase Order",
elif args.doctype in ("Material Request", "Supplier Quotation", "Purchase Order",
"Purchase Receipt", "Purchase Invoice"):
args.transaction_type = "buying"
elif args.customer:
args.transaction_type = "selling"
else:
args.transaction_type = "buying"
args.transaction_type = "buying"

View File

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

View File

@@ -24,11 +24,13 @@ erpnext.accounts.PurchaseInvoice = erpnext.buying.BuyingController.extend({
if(!doc.is_return) {
if(doc.docstatus==1) {
if(doc.outstanding_amount != 0) {
if(doc.outstanding_amount > 0) {
this.frm.add_custom_button(__('Payment'), this.make_bank_entry, __("Make"));
cur_frm.page.set_inner_btn_group_as_primary(__("Make"));
}
cur_frm.add_custom_button(__('Debit Note'), this.make_debit_note, __("Make"));
if(doc.outstanding_amount >= 0 || Math.abs(flt(doc.outstanding_amount)) < flt(doc.grand_total)) {
cur_frm.add_custom_button(__('Debit Note'), this.make_debit_note, __("Make"));
}
}
if(doc.docstatus===0) {
@@ -39,7 +41,7 @@ erpnext.accounts.PurchaseInvoice = erpnext.buying.BuyingController.extend({
get_query_filters: {
supplier: cur_frm.doc.supplier || undefined,
docstatus: 1,
status: ["not in", ["Stopped", "Closed"]],
status: ["!=", "Closed"],
per_billed: ["<", 99.99],
company: cur_frm.doc.company
}
@@ -116,7 +118,7 @@ erpnext.accounts.PurchaseInvoice = erpnext.buying.BuyingController.extend({
items_add: function(doc, cdt, cdn) {
var row = frappe.get_doc(cdt, cdn);
this.frm.script_manager.copy_from_first_row("items", row,
["expense_account", "cost_center", "project_name"]);
["expense_account", "cost_center", "project"]);
},
on_submit: function() {
@@ -240,7 +242,7 @@ cur_frm.cscript.cost_center = function(doc, cdt, cdn){
refresh_field('items');
}
cur_frm.fields_dict['items'].grid.get_field('project_name').get_query = function(doc, cdt, cdn) {
cur_frm.fields_dict['items'].grid.get_field('project').get_query = function(doc, cdt, cdn) {
return{
filters:[
['Project', 'status', 'not in', 'Completed, Cancelled']

View File

@@ -10,7 +10,7 @@ import frappe.defaults
from erpnext.controllers.buying_controller import BuyingController
from erpnext.accounts.party import get_party_account, get_due_date
from erpnext.accounts.utils import get_account_currency
from erpnext.accounts.utils import get_account_currency, get_fiscal_year
from erpnext.stock.doctype.purchase_receipt.purchase_receipt import update_billed_amount_based_on_po
form_grid_templates = {
@@ -49,7 +49,7 @@ class PurchaseInvoice(BuyingController):
self.check_conversion_rate()
self.validate_credit_to_acc()
self.clear_unallocated_advances("Purchase Invoice Advance", "advances")
self.check_for_stopped_or_closed_status()
self.check_for_closed_status()
self.validate_with_previous_doc()
self.validate_uom_is_integer("uom", "qty")
self.set_against_expense_account()
@@ -104,14 +104,14 @@ class PurchaseInvoice(BuyingController):
self.party_account_currency = account.account_currency
def check_for_stopped_or_closed_status(self):
def check_for_closed_status(self):
check_list = []
pc_obj = frappe.get_doc('Purchase Common')
for d in self.get('items'):
if d.purchase_order and not d.purchase_order in check_list and not d.purchase_receipt:
check_list.append(d.purchase_order)
pc_obj.check_for_stopped_or_closed_status('Purchase Order', d.purchase_order)
pc_obj.check_for_closed_status('Purchase Order', d.purchase_order)
def validate_with_previous_doc(self):
super(PurchaseInvoice, self).validate_with_previous_doc({
@@ -121,7 +121,7 @@ class PurchaseInvoice(BuyingController):
},
"Purchase Order Item": {
"ref_dn_field": "po_detail",
"compare_fields": [["project_name", "="], ["item_code", "="], ["uom", "="]],
"compare_fields": [["project", "="], ["item_code", "="], ["uom", "="]],
"is_child_table": True,
"allow_duplicate_prev_row_id": True
},
@@ -131,7 +131,7 @@ class PurchaseInvoice(BuyingController):
},
"Purchase Receipt Item": {
"ref_dn_field": "pr_detail",
"compare_fields": [["project_name", "="], ["item_code", "="], ["uom", "="]],
"compare_fields": [["project", "="], ["item_code", "="], ["uom", "="]],
"is_child_table": True
}
})
@@ -234,8 +234,6 @@ class PurchaseInvoice(BuyingController):
reconcile_against_document(lst)
def on_submit(self):
super(PurchaseInvoice, self).on_submit()
self.check_prev_docstatus()
frappe.get_doc('Authorization Control').validate_approving_authority(self.doctype,
@@ -405,7 +403,7 @@ class PurchaseInvoice(BuyingController):
make_gl_entries(gl_entries, cancel=(self.docstatus == 2))
def on_cancel(self):
self.check_for_stopped_or_closed_status()
self.check_for_closed_status()
if not self.is_return:
from erpnext.accounts.utils import remove_against_link_from_jv
@@ -421,22 +419,36 @@ class PurchaseInvoice(BuyingController):
def update_project(self):
project_list = []
for d in self.items:
if d.project_name and d.project_name not in project_list:
project = frappe.get_doc("Project", d.project_name)
if d.project and d.project not in project_list:
project = frappe.get_doc("Project", d.project)
project.flags.dont_sync_tasks = True
project.update_purchase_costing()
project.save()
project_list.append(d.project_name)
project_list.append(d.project)
def validate_supplier_invoice(self):
if self.bill_date:
if getdate(self.bill_date) > getdate(self.posting_date):
frappe.throw("Supplier Invoice Date cannot be greater than Posting Date")
if self.bill_no:
if cint(frappe.db.get_single_value("Accounts Settings", "check_supplier_invoice_uniqueness")):
pi = frappe.db.exists("Purchase Invoice", {"bill_no": self.bill_no,
"fiscal_year": self.fiscal_year, "name": ("!=", self.name), "docstatus": ("<", 2)})
fiscal_year = get_fiscal_year(self.posting_date, company=self.company, as_dict=True)
pi = frappe.db.sql('''select name from `tabPurchase Invoice`
where
bill_no = %(bill_no)s
and name != %(name)s
and docstatus < 2
and posting_date between %(year_start_date)s and %(year_end_date)s''', {
"bill_no": self.bill_no,
"name": self.name,
"year_start_date": fiscal_year.year_start_date,
"year_end_date": fiscal_year.year_end_date
})
if pi:
pi = pi[0][0]
frappe.throw("Supplier Invoice No exists in Purchase Invoice {0}".format(pi))
def update_billing_status_in_pr(self, update_modified=True):

View File

@@ -222,14 +222,14 @@ class TestPurchaseInvoice(unittest.TestCase):
def test_total_purchase_cost_for_project(self):
existing_purchase_cost = frappe.db.sql("""select sum(base_net_amount)
from `tabPurchase Invoice Item` where project_name = '_Test Project' and docstatus=1""")
from `tabPurchase Invoice Item` where project = '_Test Project' and docstatus=1""")
existing_purchase_cost = existing_purchase_cost and existing_purchase_cost[0][0] or 0
pi = make_purchase_invoice(currency="USD", conversion_rate=60, project_name="_Test Project")
pi = make_purchase_invoice(currency="USD", conversion_rate=60, project="_Test Project")
self.assertEqual(frappe.db.get_value("Project", "_Test Project", "total_purchase_cost"),
existing_purchase_cost + 15000)
pi1 = make_purchase_invoice(qty=10, project_name="_Test Project")
pi1 = make_purchase_invoice(qty=10, project="_Test Project")
self.assertEqual(frappe.db.get_value("Project", "_Test Project", "total_purchase_cost"),
existing_purchase_cost + 15500)
@@ -338,7 +338,7 @@ def make_purchase_invoice(**args):
"serial_no": args.serial_no,
"stock_uom": "_Test UOM",
"cost_center": "_Test Cost Center - _TC",
"project_name": args.project_name
"project": args.project
})
if not args.do_not_save:
pi.insert()

View File

@@ -40,7 +40,6 @@
"uom": "_Test UOM"
}
],
"fiscal_year": "_Test Fiscal Year 2013",
"grand_total": 0,
"naming_series": "_T-BILL",
"taxes": [
@@ -166,7 +165,6 @@
"uom": "_Test UOM"
}
],
"fiscal_year": "_Test Fiscal Year 2013",
"grand_total": 0,
"naming_series": "_T-Purchase Invoice-",
"taxes": [

View File

@@ -7,6 +7,7 @@
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "Document",
"fields": [
{
"allow_on_submit": 0,
@@ -16,6 +17,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 1,
"label": "Item",
@@ -26,6 +28,7 @@
"options": "Item",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -41,12 +44,14 @@
"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,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -62,6 +67,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Item Name",
@@ -71,6 +77,7 @@
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -86,6 +93,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Description",
@@ -94,6 +102,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -109,6 +118,7 @@
"fieldtype": "Text Editor",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Description",
@@ -118,6 +128,7 @@
"oldfieldtype": "Text",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"print_width": "300px",
"read_only": 0,
"report_hide": 0,
@@ -135,6 +146,7 @@
"fieldtype": "Attach",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Image",
@@ -143,6 +155,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -158,6 +171,7 @@
"fieldtype": "Image",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Image View",
@@ -167,6 +181,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -182,6 +197,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Quantity and Rate",
@@ -189,6 +205,7 @@
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -204,6 +221,7 @@
"fieldtype": "Float",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Qty",
@@ -213,6 +231,7 @@
"oldfieldtype": "Currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -228,12 +247,14 @@
"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,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -249,6 +270,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "UOM",
@@ -257,6 +279,7 @@
"options": "UOM",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -272,6 +295,7 @@
"fieldtype": "Float",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Conversion Factor",
@@ -279,6 +303,7 @@
"no_copy": 0,
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -294,12 +319,14 @@
"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,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -315,6 +342,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Price List Rate",
@@ -323,6 +351,7 @@
"options": "currency",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -339,6 +368,7 @@
"fieldtype": "Percent",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Discount on Price List Rate (%)",
@@ -346,6 +376,7 @@
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -361,12 +392,14 @@
"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,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -382,6 +415,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Price List Rate (Company Currency)",
@@ -390,6 +424,7 @@
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -405,12 +440,14 @@
"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,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -426,6 +463,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Rate ",
@@ -436,6 +474,7 @@
"options": "currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -451,6 +490,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Amount",
@@ -461,6 +501,7 @@
"options": "currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 1,
@@ -476,12 +517,14 @@
"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,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -497,6 +540,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Rate (Company Currency)",
@@ -507,6 +551,7 @@
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 1,
@@ -522,6 +567,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Amount (Company Currency)",
@@ -532,6 +578,7 @@
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 1,
@@ -547,6 +594,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Pricing Rule",
@@ -555,6 +603,7 @@
"options": "Pricing Rule",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -570,6 +619,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -577,6 +627,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -592,6 +643,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Net Rate",
@@ -601,6 +653,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -616,6 +669,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Net Amount",
@@ -625,6 +679,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -640,6 +695,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -647,6 +703,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -662,6 +719,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Net Rate (Company Currency)",
@@ -671,6 +729,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -686,6 +745,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Net Amount (Company Currency)",
@@ -695,6 +755,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -710,6 +771,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Accounting",
@@ -717,6 +779,7 @@
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -732,6 +795,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Expense Head",
@@ -742,6 +806,7 @@
"options": "Account",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"print_width": "120px",
"read_only": 0,
"report_hide": 0,
@@ -759,12 +824,14 @@
"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,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -776,18 +843,20 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "project_name",
"fieldname": "project",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Project Name",
"label": "Project",
"length": 0,
"no_copy": 0,
"options": "Project",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -804,6 +873,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Cost Center",
@@ -814,6 +884,7 @@
"options": "Cost Center",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"print_width": "120px",
"read_only": 0,
"report_hide": 0,
@@ -831,6 +902,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Reference",
@@ -838,6 +910,7 @@
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -853,6 +926,7 @@
"fieldtype": "Data",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Brand",
@@ -862,6 +936,7 @@
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -878,6 +953,7 @@
"fieldtype": "Link",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Item Group",
@@ -888,6 +964,7 @@
"options": "Item Group",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -901,9 +978,10 @@
"collapsible": 0,
"description": "Tax detail table fetched from item master as a string and stored in this field.\nUsed for Taxes and Charges",
"fieldname": "item_tax_rate",
"fieldtype": "Small Text",
"fieldtype": "Code",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Item Tax Rate",
@@ -913,6 +991,7 @@
"oldfieldtype": "Small Text",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 1,
"reqd": 0,
@@ -928,6 +1007,7 @@
"fieldtype": "Currency",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Item Tax Amount",
@@ -936,6 +1016,7 @@
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"print_width": "150px",
"read_only": 1,
"report_hide": 0,
@@ -953,6 +1034,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Purchase Order",
@@ -963,6 +1045,7 @@
"options": "Purchase Order",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -978,12 +1061,14 @@
"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,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -999,6 +1084,7 @@
"fieldtype": "Data",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Purchase Order Item",
@@ -1008,6 +1094,7 @@
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -1023,6 +1110,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Purchase Receipt",
@@ -1033,6 +1121,7 @@
"options": "Purchase Receipt",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -1048,6 +1137,7 @@
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Page Break",
@@ -1055,6 +1145,7 @@
"no_copy": 1,
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 1,
"reqd": 0,
@@ -1070,6 +1161,7 @@
"fieldtype": "Data",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "PR Detail",
@@ -1079,6 +1171,7 @@
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -1094,6 +1187,7 @@
"fieldtype": "Currency",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Valuation Rate",
@@ -1102,6 +1196,7 @@
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -1117,6 +1212,7 @@
"fieldtype": "Currency",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Raw Materials Supplied Cost",
@@ -1125,6 +1221,7 @@
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -1142,7 +1239,7 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
"modified": "2015-11-16 06:29:53.343792",
"modified": "2016-03-18 05:05:27.752823",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Purchase Invoice Item",

View File

@@ -17,6 +17,7 @@
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Consider Tax or Charge for",
@@ -27,6 +28,7 @@
"options": "Valuation and Total\nValuation\nTotal",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -43,6 +45,7 @@
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Add or Deduct",
@@ -53,6 +56,7 @@
"options": "Add\nDeduct",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -68,6 +72,7 @@
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Type",
@@ -78,6 +83,7 @@
"options": "\nActual\nOn Net Total\nOn Previous Row Amount\nOn Previous Row Total",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -94,6 +100,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Reference Row #",
@@ -103,6 +110,7 @@
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -119,6 +127,7 @@
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Is this Tax included in Basic Rate?",
@@ -127,6 +136,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 1,
"reqd": 0,
@@ -142,12 +152,14 @@
"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,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -163,6 +175,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Account Head",
@@ -173,6 +186,7 @@
"options": "Account",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -189,6 +203,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Cost Center",
@@ -199,6 +214,7 @@
"options": "Cost Center",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -214,6 +230,7 @@
"fieldtype": "Text Editor",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Description",
@@ -223,6 +240,7 @@
"oldfieldtype": "Small Text",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"print_width": "300px",
"read_only": 0,
"report_hide": 0,
@@ -240,6 +258,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -247,6 +266,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -262,6 +282,7 @@
"fieldtype": "Float",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Rate",
@@ -271,6 +292,7 @@
"oldfieldtype": "Currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -286,6 +308,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -293,6 +316,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -308,6 +332,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Amount",
@@ -318,6 +343,7 @@
"options": "currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -333,6 +359,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Tax Amount After Discount Amount",
@@ -342,6 +369,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -357,6 +385,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Total",
@@ -367,6 +396,7 @@
"options": "currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -382,6 +412,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -389,6 +420,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -404,6 +436,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Amount (Company Currency)",
@@ -413,6 +446,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -428,6 +462,7 @@
"fieldtype": "Currency",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Total (Company Currency)",
@@ -437,6 +472,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -452,6 +488,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Tax Amount After Discount Amount",
@@ -461,6 +498,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -473,9 +511,10 @@
"bold": 0,
"collapsible": 0,
"fieldname": "item_wise_tax_detail",
"fieldtype": "Small Text",
"fieldtype": "Code",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Item Wise Tax Detail ",
@@ -485,6 +524,7 @@
"oldfieldtype": "Small Text",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -500,6 +540,7 @@
"fieldtype": "Data",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Parenttype",
@@ -509,6 +550,7 @@
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -526,7 +568,7 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
"modified": "2015-11-16 06:29:54.644704",
"modified": "2016-02-22 09:33:46.131818",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Purchase Taxes and Charges",

View File

@@ -57,10 +57,12 @@ erpnext.accounts.SalesInvoiceController = erpnext.selling.SellingController.exte
return item.is_delivered_by_supplier ? true : false;
})
cur_frm.add_custom_button(doc.update_stock ? __('Sales Return') : __('Credit Note'),
this.make_sales_return, __("Make"));
cur_frm.page.set_inner_btn_group_as_primary(__("Make"));
if(doc.outstanding_amount >= 0 || Math.abs(flt(doc.outstanding_amount)) < flt(doc.grand_total)) {
cur_frm.add_custom_button(doc.update_stock ? __('Sales Return') : __('Credit Note'),
this.make_sales_return, __("Make"));
cur_frm.page.set_inner_btn_group_as_primary(__("Make"));
}
if(cint(doc.update_stock)!=1) {
// show Make Delivery Note button only if Sales Invoice is not created from Delivery Note
var from_delivery_note = false;
@@ -75,7 +77,7 @@ erpnext.accounts.SalesInvoiceController = erpnext.selling.SellingController.exte
}
}
if(doc.outstanding_amount!=0 && !cint(doc.is_return)) {
if(doc.outstanding_amount>0 && !cint(doc.is_return)) {
cur_frm.add_custom_button(__('Payment Request'), this.make_payment_request, __("Make"));
cur_frm.add_custom_button(__('Payment'), cur_frm.cscript.make_bank_entry, __("Make"));
}
@@ -114,7 +116,7 @@ erpnext.accounts.SalesInvoiceController = erpnext.selling.SellingController.exte
source_doctype: "Sales Order",
get_query_filters: {
docstatus: 1,
status: ["not in", ["Stopped", "Closed"]],
status: ["!=", "Closed"],
per_billed: ["<", 99.99],
customer: cur_frm.doc.customer || undefined,
company: cur_frm.doc.company
@@ -276,7 +278,7 @@ $.extend(cur_frm.cscript, new erpnext.accounts.SalesInvoiceController({frm: cur_
// Hide Fields
// ------------
cur_frm.cscript.hide_fields = function(doc) {
par_flds = ['project_name', 'due_date', 'is_opening', 'source', 'total_advance', 'get_advances_received',
par_flds = ['project', 'due_date', 'is_opening', 'source', 'total_advance', 'get_advances_received',
'advances', 'sales_partner', 'commission_rate', 'total_commission', 'advances', 'from_date', 'to_date'];
if(cint(doc.is_pos) == 1) {
@@ -379,7 +381,7 @@ cur_frm.fields_dict.write_off_cost_center.get_query = function(doc) {
//project name
//--------------------------
cur_frm.fields_dict['project_name'].get_query = function(doc, cdt, cdn) {
cur_frm.fields_dict['project'].get_query = function(doc, cdt, cdn) {
return{
query: "erpnext.controllers.queries.get_project_name",
filters: {'customer': doc.customer}

File diff suppressed because it is too large Load Diff

View File

@@ -53,7 +53,7 @@ class SalesInvoice(SellingController):
self.validate_proj_cust()
self.validate_with_previous_doc()
self.validate_uom_is_integer("stock_uom", "qty")
self.check_stop_or_close_sales_order("sales_order")
self.check_close_sales_order("sales_order")
self.validate_debit_to_acc()
self.validate_fixed_asset_account()
self.clear_unallocated_advances("Sales Invoice Advance", "advances")
@@ -81,8 +81,6 @@ class SalesInvoice(SellingController):
self.update_packing_list()
def on_submit(self):
super(SalesInvoice, self).on_submit()
if cint(self.update_stock) == 1:
self.update_stock_ledger()
else:
@@ -121,7 +119,7 @@ class SalesInvoice(SellingController):
if cint(self.update_stock) == 1:
self.update_stock_ledger()
self.check_stop_or_close_sales_order("sales_order")
self.check_close_sales_order("sales_order")
from erpnext.accounts.utils import remove_against_link_from_jv
remove_against_link_from_jv(self.doctype, self.name)
@@ -323,12 +321,12 @@ class SalesInvoice(SellingController):
super(SalesInvoice, self).validate_with_previous_doc({
"Sales Order": {
"ref_dn_field": "sales_order",
"compare_fields": [["customer", "="], ["company", "="], ["project_name", "="],
"compare_fields": [["customer", "="], ["company", "="], ["project", "="],
["currency", "="]],
},
"Delivery Note": {
"ref_dn_field": "delivery_note",
"compare_fields": [["customer", "="], ["company", "="], ["project_name", "="],
"compare_fields": [["customer", "="], ["company", "="], ["project", "="],
["currency", "="]],
},
})
@@ -365,19 +363,19 @@ class SalesInvoice(SellingController):
def validate_proj_cust(self):
"""check for does customer belong to same project as entered.."""
if self.project_name and self.customer:
if self.project and self.customer:
res = frappe.db.sql("""select name from `tabProject`
where name = %s and (customer = %s or customer is null or customer = '')""",
(self.project_name, self.customer))
(self.project, self.customer))
if not res:
throw(_("Customer {0} does not belong to project {1}").format(self.customer,self.project_name))
throw(_("Customer {0} does not belong to project {1}").format(self.customer,self.project))
def validate_pos(self):
if not self.cash_bank_account and flt(self.paid_amount):
frappe.throw(_("Cash or Bank Account is mandatory for making payment entry"))
if flt(self.paid_amount) + flt(self.write_off_amount) \
- flt(self.base_grand_total) > 1/(10**(self.precision("base_grand_total") + 1)):
- flt(self.grand_total) > 1/(10**(self.precision("grand_total") + 1)):
frappe.throw(_("""Paid amount + Write Off Amount can not be greater than Grand Total"""))

View File

@@ -16,14 +16,13 @@
"description": "138-CMS Shoe",
"doctype": "Sales Invoice Item",
"income_account": "Sales - _TC",
"expense_account": "_Test Account Cost for Goods Sold - _TC",
"expense_account": "_Test Account Cost for Goods Sold - _TC",
"item_name": "138-CMS Shoe",
"parentfield": "items",
"qty": 1.0,
"rate": 500.0
}
],
"fiscal_year": "_Test Fiscal Year 2013",
"base_grand_total": 561.8,
"grand_total": 561.8,
"is_pos": 0,
@@ -158,7 +157,6 @@
"stock_uom": "_Test UOM"
}
],
"fiscal_year": "_Test Fiscal Year 2013",
"grand_total": 0,
"is_pos": 0,
"naming_series": "_T-Sales Invoice-",
@@ -280,7 +278,6 @@
"stock_uom": "_Test UOM"
}
],
"fiscal_year": "_Test Fiscal Year 2013",
"grand_total": 0,
"is_pos": 0,
"naming_series": "_T-Sales Invoice-",

View File

@@ -16,6 +16,7 @@
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Type",
@@ -26,6 +27,7 @@
"options": "\nActual\nOn Net Total\nOn Previous Row Amount\nOn Previous Row Total",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -42,6 +44,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Reference Row #",
@@ -51,6 +54,7 @@
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -66,6 +70,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Account Head",
@@ -76,6 +81,7 @@
"options": "Account",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -92,6 +98,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Cost Center",
@@ -102,6 +109,7 @@
"options": "Cost Center",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -117,12 +125,14 @@
"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,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -139,6 +149,7 @@
"fieldtype": "Text Editor",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Description",
@@ -148,6 +159,7 @@
"oldfieldtype": "Small Text",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"print_width": "300px",
"read_only": 0,
"report_hide": 0,
@@ -166,6 +178,7 @@
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Is this Tax included in Basic Rate?",
@@ -173,6 +186,7 @@
"no_copy": 0,
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"print_width": "150px",
"read_only": 0,
"report_hide": 1,
@@ -190,6 +204,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -197,6 +212,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -212,6 +228,7 @@
"fieldtype": "Float",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Rate",
@@ -221,6 +238,7 @@
"oldfieldtype": "Currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -236,6 +254,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -243,6 +262,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -258,6 +278,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Amount",
@@ -267,6 +288,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -282,6 +304,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Total",
@@ -291,6 +314,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -306,6 +330,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Tax Amount After Discount Amount",
@@ -315,6 +340,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -330,6 +356,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -337,6 +364,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -352,6 +380,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Amount (Company Currency)",
@@ -362,6 +391,7 @@
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -377,6 +407,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Total (Company Currency)",
@@ -387,6 +418,7 @@
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -403,6 +435,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Tax Amount After Discount Amount (Company Currency)",
@@ -411,6 +444,7 @@
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -423,9 +457,10 @@
"bold": 0,
"collapsible": 0,
"fieldname": "item_wise_tax_detail",
"fieldtype": "Small Text",
"fieldtype": "Code",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Item Wise Tax Detail",
@@ -435,6 +470,7 @@
"oldfieldtype": "Small Text",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -450,6 +486,7 @@
"fieldtype": "Data",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Parenttype",
@@ -459,6 +496,7 @@
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -476,7 +514,7 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
"modified": "2015-11-16 06:29:57.263576",
"modified": "2016-02-22 09:35:25.423372",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Sales Taxes and Charges",

View File

@@ -19,19 +19,6 @@ frappe.ui.form.on("Tax Rule", "refresh", function(frm) {
frappe.ui.form.trigger("Tax Rule", "tax_type");
})
frappe.ui.form.on("Tax Rule", "use_for_shopping_cart", function(frm) {
if(!frm.doc.use_for_shopping_cart &&
(frappe.get_list("Tax Rule", {"use_for_shopping_cart":1}).length == 0)) {
frappe.model.get_value("Shopping Cart Settings", "Shopping Cart Settings",
"enabled", function(docfield) {
if(docfield.enabled){
frm.set_value("use_for_shopping_cart", 1);
frappe.throw(__("Shopping Cart is enabled"));
}
});
}
})
frappe.ui.form.on("Tax Rule", "customer", function(frm) {
frappe.call({
method:"erpnext.accounts.doctype.tax_rule.tax_rule.get_party_details",
@@ -64,4 +51,4 @@ frappe.ui.form.on("Tax Rule", "supplier", function(frm) {
}
}
});
});
});

View File

@@ -6,7 +6,7 @@ from __future__ import unicode_literals
import frappe
from frappe import _
from frappe.model.document import Document
from frappe.utils import cstr
from frappe.utils import cstr, cint
class IncorrectCustomerGroup(frappe.ValidationError): pass
class IncorrectSupplierType(frappe.ValidationError): pass
@@ -20,15 +20,16 @@ class TaxRule(Document):
self.validate_tax_template()
self.validate_date()
self.validate_filters()
self.validate_use_for_shopping_cart()
def validate_tax_template(self):
if self.tax_type== "Sales":
self.purchase_tax_template = self.supplier = self.supplier_type= None
self.purchase_tax_template = self.supplier = self.supplier_type = None
if self.customer:
self.customer_group = None
else:
self.sales_tax_template= self.customer = self.customer_group= None
self.sales_tax_template = self.customer = self.customer_group = None
if self.supplier:
self.supplier_type = None
@@ -81,6 +82,15 @@ class TaxRule(Document):
if tax_rule[0].priority == self.priority:
frappe.throw(_("Tax Rule Conflicts with {0}".format(tax_rule[0].name)), ConflictingTaxRule)
def validate_use_for_shopping_cart(self):
'''If shopping cart is enabled and no tax rule exists for shopping cart, enable this one'''
if (not self.use_for_shopping_cart
and cint(frappe.db.get_single_value('Shopping Cart Settings', 'enabled'))
and not frappe.db.get_value('Tax Rule', {'use_for_shopping_cart': 1, 'name': ['!=', self.name]})):
self.use_for_shopping_cart = 1
frappe.msgprint(_("Enabling 'Use for Shopping Cart', as Shopping Cart is enabled and there should be at least one Tax Rule for Shopping Cart"))
@frappe.whitelist()
def get_party_details(party, party_type, args=None):
out = {}
@@ -109,11 +119,11 @@ def get_party_details(party, party_type, args=None):
def get_tax_template(posting_date, args):
"""Get matching tax rule"""
args = frappe._dict(args)
conditions = ["""(from_date is null or from_date = '' or from_date <= '{0}')
conditions = ["""(from_date is null or from_date = '' or from_date <= '{0}')
and (to_date is null or to_date = '' or to_date >= '{0}')""".format(posting_date)]
for key, value in args.iteritems():
if key in "use_for_shopping_cart":
if key=="use_for_shopping_cart":
conditions.append("use_for_shopping_cart = {0}".format(1 if value else 0))
else:
conditions.append("ifnull({0}, '') in ('', '{1}')".format(key, frappe.db.escape(cstr(value))))

View File

@@ -117,7 +117,13 @@ def round_off_debit_credit(gl_map):
debit_credit_diff += entry.debit - entry.credit
debit_credit_diff = flt(debit_credit_diff, precision)
if abs(debit_credit_diff) >= (5.0 / (10**precision)):
if gl_map[0]["voucher_type"] == "Journal Entry":
allowance = 5.0 / (10**precision)
else:
allowance = 1
if abs(debit_credit_diff) >= allowance:
frappe.throw(_("Debit and Credit not equal for {0} #{1}. Difference is {2}.")
.format(gl_map[0].voucher_type, gl_map[0].voucher_no, debit_credit_diff))
@@ -136,7 +142,7 @@ def make_round_off_gle(gl_map, debit_credit_diff):
round_off_gle = frappe._dict()
for k in ["voucher_type", "voucher_no", "company",
"posting_date", "remarks", "fiscal_year", "is_opening"]:
"posting_date", "remarks", "is_opening"]:
round_off_gle[k] = gl_map[0][k]
round_off_gle.update({

View File

@@ -50,36 +50,32 @@ frappe.pages["Accounts Browser"].on_page_load = function(wrapper){
erpnext.account_chart && erpnext.account_chart.make_new();
}, "octicon octicon-plus");
var company_list = $.map(locals[':Company'], function(c) { return c.name; }).sort();
// company-select
wrapper.$company_select = wrapper.page.add_select("Company", [])
wrapper.$company_select = wrapper.page.add_select("Company", company_list)
.change(function() {
var ctype = frappe.get_route()[1] || 'Account';
erpnext.account_chart = new erpnext.AccountsChart(ctype, $(this).val(),
chart_area.get(0), wrapper.page);
})
// load up companies
return frappe.call({
method: 'erpnext.accounts.page.accounts_browser.accounts_browser.get_companies',
callback: function(r) {
wrapper.$company_select.empty();
$.each(r.message, function(i, v) {
$('<option>').html(v).attr('value', v).appendTo(wrapper.$company_select);
});
wrapper.$company_select.val(frappe.defaults.get_user_default("Company") || r.message[0]).change();
}
});
wrapper.$company_select.change();
}
frappe.pages["Accounts Browser"].on_page_show = function(wrapper){
// set route
var ctype = frappe.get_route()[1] || 'Account';
if(erpnext.account_chart && erpnext.account_chart.ctype != ctype) {
if(frappe.route_options) {
if(frappe.route_options.company) {
wrapper.$company_select.val(frappe.route_options.company).change();
}
frappe.route_options = null;
} else if(erpnext.account_chart && erpnext.account_chart.ctype != ctype) {
wrapper.$company_select.change();
}
}
erpnext.AccountsChart = Class.extend({

View File

@@ -92,9 +92,9 @@ def set_contact_details(out, party, party_type):
def set_other_values(out, party, party_type):
# copy
if party_type=="Customer":
to_copy = ["customer_name", "customer_group", "territory"]
to_copy = ["customer_name", "customer_group", "territory", "language"]
else:
to_copy = ["supplier_name", "supplier_type"]
to_copy = ["supplier_name", "supplier_type", "language"]
for f in to_copy:
out[f] = party.get(f)
@@ -299,8 +299,12 @@ def set_taxes(party, party_type, posting_date, company, customer_group=None, sup
else:
args.update(get_party_details(party, party_type))
if party_type=="Customer":
if party_type in ("Customer", "Lead"):
args.update({"tax_type": "Sales"})
if party_type=='Lead':
args['customer'] = None
del args['lead']
else:
args.update({"tax_type": "Purchase"})

View File

@@ -2,7 +2,7 @@
{%= frappe.boot.letter_heads[frappe.defaults.get_default("letter_head")] %}
</div>
<h2 class="text-center">{%= __(report.report_name) %}</h2>
<h4 class="text-center">{%= filters.account && (filters.account + ", ") || "" %} {%= filters.company %}</h4>
<h4 class="text-center">{%= filters.customer || filters.supplier %} </h4>
<h5 class="text-center">
{%= filters.ageing_based_on %}
{%= __("Until") %}
@@ -31,40 +31,37 @@
{% for(var i=0, l=data.length; i<l; i++) { %}
<tr>
{% if(__(report.report_name) == "Accounts Receivable" || __(report.report_name) == "Accounts Payable") { %}
{% if(data[i][__("Posting Date")]) { %}
{% if(data[i][__("Customer")] || data[i][__("Supplier")]) { %}
<td>{%= dateutil.str_to_user(data[i][__("Posting Date")]) %}</td>
<td>{%= data[i][__("Voucher Type")] %}
<br>{%= data[i][__("Voucher No")] %}</td>
<td>{%= data[i][__("Customer")] || data[i][__("Supplier")] %}
{% if(__(report.report_name) == "Accounts Receivable") { %}
<br>{%= __("Territory") %}: {%= data[i][__("Territory")] %}
{% } else { %}
<br>{%= __("Supplier Type") %}: {%= data[i][__("Supplier Type")] %}
{% } %}
<td>{%= data[i][__("Customer Name")] || data[i][__("Customer")] || data[i][__("Supplier Name")] || data[i][__("Supplier")] %}
<br>{%= __("Remarks") %}: {%= data[i][__("Remarks")] %}</td>
<td style="text-align: right">{%= format_currency(data[i][__("Invoiced Amount")]) %}</td>
<td style="text-align: right">{%= format_currency(data[i][__("Paid Amount")]) %}</td>
<td style="text-align: right">{%= format_currency(data[i][__("Outstanding Amount")]) %}</td>
<td style="text-align: right">
{%= format_currency(data[i][__("Invoiced Amount")], data[i]["currency"]) %}</td>
<td style="text-align: right">
{%= format_currency(data[i][__("Paid Amount")], data[i]["currency"]) %}</td>
<td style="text-align: right">
{%= format_currency(data[i][__("Outstanding Amount")], data[i]["currency"]) %}</td>
{% } else { %}
<td></td>
<td></td>
<td><b>{%= data[i][__("Customer")] || data[i][__("Supplier")] || "&nbsp;" %}</b></td>
<td><b>{%= __("Total") %}</b></td>
<td style="text-align: right">
{%= data[i][__("Account")] && format_currency(data[i][__("Invoiced Amount")]) %}</td>
{%= format_currency(data[i][__("Invoiced Amount")]) %}</td>
<td style="text-align: right">
{%= data[i][__("Account")] && format_currency(data[i][__("Paid Amount")]) %}</td>
{%= format_currency(data[i][__("Paid Amount")]) %}</td>
<td style="text-align: right">
{%= data[i][__("Account")] && format_currency(data[i][__("Outstanding Amount")]) %}</td>
{%= format_currency(data[i][__("Outstanding Amount")]) %}</td>
{% } %}
{% } else { %}
{% if(data[i][__("Customer")] || data[i][__("Supplier")]|| "&nbsp;") { %}
<td>{%= data[i][__("Customer")] || data[i][__("Supplier")] %}
{% if(__(report.report_name) == "Accounts Receivable Summary") { %}
<br>{%= __("Territory") %}: {%= data[i][__("Territory")] %}
{% } else { %}
<br>{%= __("Supplier Type") %}: {%= data[i][__("Supplier Type")] %}
{% } %}
{% if((data[i][__("Customer")] || data[i][__("Supplier")]) != __("'Total'")) { %}
<td>{%= data[i][__("Customer")] || data[i][__("Supplier")] %}
<br>{%= __("Remarks") %}: {%= data[i][__("Remarks")] %}</td>
{% } else { %}
<td><b>{%= __("Total") %}</b></td>
{% } %}
<td style="text-align: right">{%= format_currency(data[i][__("Total Invoiced Amt")]) %}</td>
<td style="text-align: right">{%= format_currency(data[i][__("Total Paid Amt")]) %}</td>
<td style="text-align: right">{%= format_currency(data[i][__("Total Outstanding Amt")]) %}</td>

View File

@@ -58,21 +58,19 @@ class ReceivablePayableReport(object):
"width": 120
})
columns.append({
"fieldname": "currency",
"label": _("Currency"),
"fieldtype": "Data",
"width": 100
})
if args.get("party_type") == "Customer":
columns += [_("Territory") + ":Link/Territory:80"]
if args.get("party_type") == "Supplier":
columns += [_("Supplier Type") + ":Link/Supplier Type:80"]
columns += [
{
"fieldname": "currency",
"label": _("Currency"),
"fieldtype": "Data",
"width": 100,
"hidden": 1
},
_("Remarks") + "::200"
]
columns.append(_("Remarks") + "::200")
return columns
def get_data(self, party_naming_by, args):
@@ -120,17 +118,17 @@ class ReceivablePayableReport(object):
row += get_ageing_data(cint(self.filters.range1), cint(self.filters.range2),
cint(self.filters.range3), self.age_as_on, entry_date, outstanding_amount)
if self.filters.get(scrub(args.get("party_type"))):
row.append(gle.account_currency)
else:
row.append(company_currency)
# customer territory / supplier type
if args.get("party_type") == "Customer":
row += [self.get_territory(gle.party)]
if args.get("party_type") == "Supplier":
row += [self.get_supplier_type(gle.party)]
if self.filters.get(scrub(args.get("party_type"))):
row.append(gle.account_currency)
else:
row.append(company_currency)
row.append(gle.remarks)
data.append(row)

View File

@@ -18,18 +18,25 @@ class AccountsReceivableSummary(ReceivablePayableReport):
columns += [ args.get("party_type") + " Name::140"]
columns += [
_("Total Invoiced Amt") + ":Currency:140",
_("Total Paid Amt") + ":Currency:140",
_("Total Outstanding Amt") + ":Currency:160",
"0-" + str(self.filters.range1) + ":Currency:100",
str(self.filters.range1) + "-" + str(self.filters.range2) + ":Currency:100",
str(self.filters.range2) + "-" + str(self.filters.range3) + ":Currency:100",
str(self.filters.range3) + _("-Above") + ":Currency:100"]
_("Total Invoiced Amt") + ":Currency/currency:140",
_("Total Paid Amt") + ":Currency/currency:140",
_("Total Outstanding Amt") + ":Currency/currency:160",
"0-" + str(self.filters.range1) + ":Currency/currency:100",
str(self.filters.range1) + "-" + str(self.filters.range2) + ":Currency/currency:100",
str(self.filters.range2) + "-" + str(self.filters.range3) + ":Currency/currency:100",
str(self.filters.range3) + _("-Above") + ":Currency/currency:100"]
if args.get("party_type") == "Customer":
columns += [_("Territory") + ":Link/Territory:80"]
if args.get("party_type") == "Supplier":
columns += [_("Supplier Type") + ":Link/Supplier Type:80"]
columns.append({
"fieldname": "currency",
"label": _("Currency"),
"fieldtype": "Data",
"width": 80
})
return columns
@@ -53,6 +60,8 @@ class AccountsReceivableSummary(ReceivablePayableReport):
row += [self.get_territory(party)]
if args.get("party_type") == "Supplier":
row += [self.get_supplier_type(party)]
row.append(party_dict.currency)
data.append(row)
return data
@@ -73,6 +82,8 @@ class AccountsReceivableSummary(ReceivablePayableReport):
)
for k in party_total[d.party].keys():
party_total[d.party][k] += d.get(k, 0)
party_total[d.party].currency = d.currency
return party_total
@@ -90,7 +101,7 @@ class AccountsReceivableSummary(ReceivablePayableReport):
cols += ["bill_no", "bill_date"]
cols += ["invoiced_amt", "paid_amt",
"outstanding_amt", "age", "range1", "range2", "range3", "range4"]
"outstanding_amt", "age", "range1", "range2", "range3", "range4", "currency"]
if args.get("party_type") == "Supplier":
cols += ["supplier_type", "remarks"]

View File

@@ -19,7 +19,7 @@ def execute(filters=None):
data = []
data.extend(asset or [])
data.extend(liability or [])
data.extend(liability or [])
data.extend(equity or [])
if provisional_profit_loss:
data.append(provisional_profit_loss)
@@ -43,11 +43,11 @@ def get_provisional_profit_loss(asset, liability, equity, period_list, company):
for period in period_list:
effective_liability = 0.0
if liability:
effective_liability += flt(liability[-2][period.key])
effective_liability += flt(liability[-2].get(period.key))
if equity:
effective_liability += flt(equity[-2][period.key])
effective_liability += flt(equity[-2].get(period.key))
provisional_profit_loss[period.key] = flt(asset[-2][period.key]) - effective_liability
provisional_profit_loss[period.key] = flt(asset[-2].get(period.key)) - effective_liability
if provisional_profit_loss[period.key]:
has_value = True

View File

@@ -7,12 +7,12 @@
"doctype": "Report",
"idx": 1,
"is_standard": "Yes",
"modified": "2015-11-02 12:32:02.048551",
"modified": "2016-04-04 17:27:19.104519",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Delivered Items To Be Billed",
"owner": "Administrator",
"query": "select\n `tabDelivery Note`.`name` as \"Delivery Note:Link/Delivery Note:120\",\n\t`tabDelivery Note`.`customer` as \"Customer:Link/Customer:120\",\n\t`tabDelivery Note`.`posting_date` as \"Date:Date\",\n\t`tabDelivery Note`.`project_name` as \"Project\",\n\t`tabDelivery Note Item`.`item_code` as \"Item:Link/Item:120\",\n\t(`tabDelivery Note Item`.`qty` - ifnull((select sum(qty) from `tabSales Invoice Item` \n\t where `tabSales Invoice Item`.docstatus=1 and \n `tabSales Invoice Item`.delivery_note = `tabDelivery Note`.name and\n\t `tabSales Invoice Item`.dn_detail = `tabDelivery Note Item`.name), 0))\n\t\tas \"Qty:Float:110\",\n\t(`tabDelivery Note Item`.`base_amount` - ifnull((select sum(base_amount) from `tabSales Invoice Item` \n where `tabSales Invoice Item`.docstatus=1 and \n `tabSales Invoice Item`.delivery_note = `tabDelivery Note`.name and\n `tabSales Invoice Item`.dn_detail = `tabDelivery Note Item`.name), 0))\n\t\tas \"Amount:Currency:110\",\n\t`tabDelivery Note Item`.`item_name` as \"Item Name::150\",\n\t`tabDelivery Note Item`.`description` as \"Description::200\",\n\t`tabDelivery Note`.`company` as \"Company:Link/Company:\"\nfrom `tabDelivery Note`, `tabDelivery Note Item`\nwhere\n `tabDelivery Note`.docstatus = 1 and\n\t`tabDelivery Note`.`status` not in (\"Stopped\", \"Closed\") and\n `tabDelivery Note`.name = `tabDelivery Note Item`.parent and\n (`tabDelivery Note Item`.qty > ifnull((select sum(qty) from `tabSales Invoice Item` \n where `tabSales Invoice Item`.docstatus=1 and \n `tabSales Invoice Item`.delivery_note = `tabDelivery Note`.name and\n `tabSales Invoice Item`.dn_detail = `tabDelivery Note Item`.name), 0))\norder by `tabDelivery Note`.`name` desc",
"query": "select\n `tabDelivery Note`.`name` as \"Delivery Note:Link/Delivery Note:120\",\n\t`tabDelivery Note`.`customer` as \"Customer:Link/Customer:120\",\n\t`tabDelivery Note`.`posting_date` as \"Date:Date\",\n\t`tabDelivery Note`.`project` as \"Project\",\n\t`tabDelivery Note Item`.`item_code` as \"Item:Link/Item:120\",\n\t`tabDelivery Note Item`.`billed_amt` as \"Pending Amount:Currency:110\",\n\t`tabDelivery Note Item`.`item_name` as \"Item Name::150\",\n\t`tabDelivery Note Item`.`description` as \"Description::200\",\n\t`tabDelivery Note`.`company` as \"Company:Link/Company:\"\nfrom `tabDelivery Note`, `tabDelivery Note Item`\nwhere\n `tabDelivery Note`.docstatus = 1 and\n\t`tabDelivery Note`.`status` not in (\"Stopped\", \"Closed\") and\n `tabDelivery Note`.name = `tabDelivery Note Item`.parent and\n `tabDelivery Note`.per_billed < 100\norder by `tabDelivery Note`.`name` desc",
"ref_doctype": "Sales Invoice",
"report_name": "Delivered Items To Be Billed",
"report_type": "Query Report"

View File

@@ -92,7 +92,7 @@ def get_data(company, root_type, balance_must_be, period_list,
if not accounts:
return None
accounts, accounts_by_name = filter_accounts(accounts)
accounts, accounts_by_name, parent_children_map = filter_accounts(accounts)
company_currency = frappe.db.get_value("Company", company, "default_currency")
@@ -109,6 +109,7 @@ def get_data(company, root_type, balance_must_be, period_list,
calculate_values(accounts_by_name, gl_entries_by_account, period_list, accumulated_values)
accumulate_values_into_parents(accounts, accounts_by_name, period_list, accumulated_values)
out = prepare_data(accounts, balance_must_be, period_list, company_currency)
out = filter_out_zero_value_rows(out, parent_children_map)
if out:
add_total_row(out, balance_must_be, period_list, company_currency)
@@ -134,15 +135,15 @@ def accumulate_values_into_parents(accounts, accounts_by_name, period_list, accu
d.get(period.key, 0.0)
def prepare_data(accounts, balance_must_be, period_list, company_currency):
out = []
data = []
year_start_date = period_list[0]["year_start_date"].strftime("%Y-%m-%d")
year_end_date = period_list[-1]["year_end_date"].strftime("%Y-%m-%d")
for d in accounts:
# add to output
has_value = False
total = 0
row = {
row = frappe._dict({
"account_name": d.account_name,
"account": d.name,
"parent_account": d.parent_account,
@@ -150,7 +151,7 @@ def prepare_data(accounts, balance_must_be, period_list, company_currency):
"year_start_date": year_start_date,
"year_end_date": year_end_date,
"currency": company_currency
}
})
for period in period_list:
if d.get(period.key):
# change sign based on Debit or Credit, since calculation is done using (debit - credit)
@@ -163,11 +164,27 @@ def prepare_data(accounts, balance_must_be, period_list, company_currency):
has_value = True
total += flt(row[period.key])
if has_value:
row["total"] = total
out.append(row)
row["has_value"] = has_value
row["total"] = total
data.append(row)
return data
def filter_out_zero_value_rows(data, parent_children_map, show_zero_values=False):
data_with_value = []
for d in data:
if show_zero_values or d.get("has_value"):
data_with_value.append(d)
else:
# show group with zero balance, if there are balances against child
children = [child.name for child in parent_children_map.get(d.get("account")) or []]
if children:
for row in data:
if row.get("account") in children and row.get("has_value"):
data_with_value.append(d)
break
return out
return data_with_value
def add_total_row(out, balance_must_be, period_list, company_currency):
total_row = {
@@ -187,10 +204,11 @@ def add_total_row(out, balance_must_be, period_list, company_currency):
total_row["total"] += flt(row["total"])
row["total"] = ""
out.append(total_row)
if total_row.has_key("total"):
out.append(total_row)
# blank row after Total
out.append({})
# blank row after Total
out.append({})
def get_accounts(company, root_type):
return frappe.db.sql("""select name, parent_account, lft, rgt, root_type, report_type, account_name from `tabAccount`
@@ -218,7 +236,7 @@ def filter_accounts(accounts, depth=10):
add_to_list(None, 0)
return filtered_accounts, accounts_by_name
return filtered_accounts, accounts_by_name, parent_children_map
def sort_root_accounts(roots):
"""Sort root types as Asset, Liability, Equity, Income, Expense"""

View File

@@ -9,17 +9,17 @@ from frappe.utils import flt
def execute(filters=None):
if not filters: filters = frappe._dict()
company_currency = frappe.db.get_value("Company", filters.company, "default_currency")
gross_profit_data = GrossProfitGenerator(filters)
data = []
source = gross_profit_data.grouped_data if filters.get("group_by") != "Invoice" else gross_profit_data.data
group_wise_columns = frappe._dict({
"invoice": ["parent", "customer", "posting_date", "posting_time", "item_code", "item_name", "brand", "description", \
"invoice": ["parent", "customer", "posting_date","item_code", "item_name","item_group", "brand", "description", \
"warehouse", "qty", "base_rate", "buying_rate", "base_amount",
"buying_amount", "gross_profit", "gross_profit_percent", "project"],
"item_code": ["item_code", "item_name", "brand", "description", "warehouse", "qty", "base_rate",
"item_code": ["item_code", "item_name", "brand", "description", "qty", "base_rate",
"buying_rate", "base_amount", "buying_amount", "gross_profit", "gross_profit_percent"],
"warehouse": ["warehouse", "qty", "base_rate", "buying_rate", "base_amount", "buying_amount",
"gross_profit", "gross_profit_percent"],
@@ -45,7 +45,7 @@ def execute(filters=None):
row = []
for col in group_wise_columns.get(scrub(filters.group_by)):
row.append(src.get(col))
row.append(company_currency)
data.append(row)
@@ -59,7 +59,7 @@ def get_columns(group_wise_columns, filters):
"posting_time": _("Posting Time"),
"item_code": _("Item Code") + ":Link/Item",
"item_name": _("Item Name"),
"item_group": _("Item Group") + ":Link/Item",
"item_group": _("Item Group") + ":Link/Item Group",
"brand": _("Brand"),
"description": _("Description"),
"warehouse": _("Warehouse") + ":Link/Warehouse",
@@ -80,7 +80,7 @@ def get_columns(group_wise_columns, filters):
for col in group_wise_columns.get(scrub(filters.group_by)):
columns.append(column_map.get(col))
columns.append({
"fieldname": "currency",
"label" : _("Currency"),
@@ -145,11 +145,11 @@ class GrossProfitGenerator(object):
self.data.append(row)
if self.grouped:
self.collapse_group()
self.get_average_rate_based_on_group_by()
else:
self.grouped_data = []
def collapse_group(self):
def get_average_rate_based_on_group_by(self):
# sum buying / selling totals for group
self.grouped_data = []
for key in self.grouped.keys():
@@ -166,6 +166,8 @@ class GrossProfitGenerator(object):
if new_row.base_amount else 0
new_row.buying_rate = (new_row.buying_amount / new_row.qty) \
if new_row.qty else 0
new_row.base_rate = (new_row.base_amount / new_row.qty) \
if new_row.qty else 0
self.grouped_data.append(new_row)
@@ -233,7 +235,7 @@ class GrossProfitGenerator(object):
conditions += " and posting_date <= %(to_date)s"
self.si_list = frappe.db.sql("""select item.parenttype, item.parent,
si.posting_date, si.posting_time, si.project_name, si.update_stock,
si.posting_date, si.posting_time, si.project, si.update_stock,
si.customer, si.customer_group, si.territory,
item.item_code, item.item_name, item.description, item.warehouse,
item.item_group, item.brand, item.dn_detail, item.delivery_note,

View File

@@ -16,6 +16,14 @@ def execute(filters=None):
if item_list:
item_tax, tax_accounts = get_tax_accounts(item_list, columns)
columns.append({
"fieldname": "currency",
"label": _("Currency"),
"fieldtype": "Data",
"width": 80
})
company_currency = frappe.db.get_value("Company", filters.company, "default_currency")
print company_currency
data = []
for d in item_list:
purchase_receipt = None
@@ -27,14 +35,14 @@ def execute(filters=None):
expense_account = d.expense_account or aii_account_map.get(d.company)
row = [d.item_code, d.item_name, d.item_group, d.parent, d.posting_date, d.supplier,
d.supplier_name, d.credit_to, d.project_name, d.company, d.purchase_order,
d.supplier_name, d.credit_to, d.project, d.company, d.purchase_order,
purchase_receipt, expense_account, d.qty, d.base_net_rate, d.base_net_amount]
for tax in tax_accounts:
row.append(item_tax.get(d.parent, {}).get(d.item_code, {}).get(tax, 0))
total_tax = sum(row[last_col:])
row += [total_tax, d.base_net_amount + total_tax]
row += [total_tax, d.base_net_amount + total_tax, company_currency]
data.append(row)
@@ -48,7 +56,8 @@ def get_columns():
"Supplier Name::120", "Payable Account:Link/Account:120", _("Project") + ":Link/Project:80",
_("Company") + ":Link/Company:100", _("Purchase Order") + ":Link/Purchase Order:100",
_("Purchase Receipt") + ":Link/Purchase Receipt:100", _("Expense Account") + ":Link/Account:140",
_("Qty") + ":Float:120", _("Rate") + ":Currency:120", _("Amount") + ":Currency:120"]
_("Qty") + ":Float:120", _("Rate") + ":Currency/currency:120", _("Amount") + ":Currency/currency:120"
]
def get_conditions(filters):
conditions = ""
@@ -69,7 +78,7 @@ def get_items(filters):
return frappe.db.sql("""select pi_item.parent, pi.posting_date, pi.credit_to, pi.company,
pi.supplier, pi.remarks, pi.base_net_total, pi_item.item_code, pi_item.item_name, pi_item.item_group,
pi_item.project_name, pi_item.purchase_order, pi_item.purchase_receipt, pi_item.po_detail,
pi_item.project, pi_item.purchase_order, pi_item.purchase_receipt, pi_item.po_detail,
pi_item.expense_account, pi_item.qty, pi_item.base_net_rate, pi_item.base_net_amount, pi.supplier_name
from `tabPurchase Invoice` pi, `tabPurchase Invoice Item` pi_item
where pi.name = pi_item.parent and pi.docstatus = 1 %s %s
@@ -110,7 +119,7 @@ def get_tax_accounts(item_list, columns):
(tax_amount * d.base_net_amount) / d.base_net_total
tax_accounts.sort()
columns += [account_head + ":Currency:80" for account_head in tax_accounts]
columns += ["Total Tax:Currency:80", "Total:Currency:80"]
columns += [account_head + ":Currency/currency:80" for account_head in tax_accounts]
columns += ["Total Tax:Currency/currency:80", "Total:Currency/currency:80"]
return item_tax, tax_accounts

View File

@@ -14,7 +14,14 @@ def execute(filters=None):
item_list = get_items(filters)
if item_list:
item_tax, tax_accounts = get_tax_accounts(item_list, columns)
columns.append({
"fieldname": "currency",
"label": _("Currency"),
"fieldtype": "Data",
"width": 80
})
company_currency = frappe.db.get_value("Company", filters.company, "default_currency")
data = []
for d in item_list:
delivery_note = None
@@ -25,14 +32,14 @@ def execute(filters=None):
from `tabDelivery Note Item` where docstatus=1 and so_detail=%s""", d.so_detail))
row = [d.item_code, d.item_name, d.item_group, d.parent, d.posting_date, d.customer, d.customer_name,
d.customer_group, d.debit_to, d.territory, d.project_name, d.company, d.sales_order,
d.customer_group, d.debit_to, d.territory, d.project, d.company, d.sales_order,
delivery_note, d.income_account, d.qty, d.base_net_rate, d.base_net_amount]
for tax in tax_accounts:
row.append(item_tax.get(d.parent, {}).get(d.item_code, {}).get(tax, 0))
total_tax = sum(row[last_col:])
row += [total_tax, d.base_net_amount + total_tax]
row += [total_tax, d.base_net_amount + total_tax, company_currency]
data.append(row)
@@ -48,7 +55,7 @@ def get_columns():
_("Project") + ":Link/Project:80", _("Company") + ":Link/Company:100",
_("Sales Order") + ":Link/Sales Order:100", _("Delivery Note") + ":Link/Delivery Note:100",
_("Income Account") + ":Link/Account:140", _("Qty") + ":Float:120",
_("Rate") + ":Currency:120", _("Amount") + ":Currency:120"
_("Rate") + ":Currency/currency:120", _("Amount") + ":Currency/currency:120"
]
def get_conditions(filters):
@@ -66,7 +73,7 @@ def get_conditions(filters):
def get_items(filters):
conditions = get_conditions(filters)
return frappe.db.sql("""select si_item.parent, si.posting_date, si.debit_to, si.project_name,
return frappe.db.sql("""select si_item.parent, si.posting_date, si.debit_to, si.project,
si.customer, si.remarks, si.territory, si.company, si.base_net_total, si_item.item_code, si_item.item_name,
si_item.item_group, si_item.sales_order, si_item.delivery_note, si_item.income_account,
si_item.qty, si_item.base_net_rate, si_item.base_net_amount, si.customer_name,
@@ -108,7 +115,7 @@ def get_tax_accounts(item_list, columns):
flt((tax_amount * d.base_net_amount) / d.base_net_total)
tax_accounts.sort()
columns += [account_head + ":Currency:80" for account_head in tax_accounts]
columns += ["Total Tax:Currency:80", "Total:Currency:80"]
columns += [account_head + ":Currency/currency:80" for account_head in tax_accounts]
columns += ["Total Tax:Currency/currency:80", "Total:Currency/currency:80"]
return item_tax, tax_accounts

View File

@@ -7,12 +7,12 @@
"doctype": "Report",
"idx": 1,
"is_standard": "Yes",
"modified": "2015-11-04 11:56:32.699103",
"modified": "2016-04-01 08:26:43.868609",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Ordered Items To Be Billed",
"owner": "Administrator",
"query": "select \n `tabSales Order`.`name` as \"Sales Order:Link/Sales Order:120\",\n `tabSales Order`.`customer` as \"Customer:Link/Customer:120\",\n `tabSales Order`.`status` as \"Status\",\n `tabSales Order`.`transaction_date` as \"Date:Date\",\n `tabSales Order`.`project_name` as \"Project\",\n `tabSales Order Item`.item_code as \"Item:Link/Item:120\",\n `tabSales Order Item`.base_amount as \"Amount:Currency:110\",\n (`tabSales Order Item`.billed_amt * ifnull(`tabSales Order`.conversion_rate, 1)) as \"Billed Amount:Currency:110\",\n (ifnull(`tabSales Order Item`.base_amount, 0) - (ifnull(`tabSales Order Item`.billed_amt, 0) * ifnull(`tabSales Order`.conversion_rate, 1))) as \"Pending Amount:Currency:120\",\n `tabSales Order Item`.item_name as \"Item Name::150\",\n `tabSales Order Item`.description as \"Description::200\",\n `tabSales Order`.`company` as \"Company:Link/Company:\"\nfrom\n `tabSales Order`, `tabSales Order Item`\nwhere\n `tabSales Order Item`.`parent` = `tabSales Order`.`name`\n and `tabSales Order`.docstatus = 1\n and `tabSales Order`.status not in (\"Stopped\", \"Closed\")\n and ifnull(`tabSales Order Item`.billed_amt,0) < ifnull(`tabSales Order Item`.amount,0)\norder by `tabSales Order`.transaction_date asc",
"query": "select \n `tabSales Order`.`name` as \"Sales Order:Link/Sales Order:120\",\n `tabSales Order`.`customer` as \"Customer:Link/Customer:120\",\n `tabSales Order`.`status` as \"Status\",\n `tabSales Order`.`transaction_date` as \"Date:Date\",\n `tabSales Order`.`project` as \"Project\",\n `tabSales Order Item`.item_code as \"Item:Link/Item:120\",\n `tabSales Order Item`.base_amount as \"Amount:Currency:110\",\n (`tabSales Order Item`.billed_amt * ifnull(`tabSales Order`.conversion_rate, 1)) as \"Billed Amount:Currency:110\",\n (ifnull(`tabSales Order Item`.base_amount, 0) - (ifnull(`tabSales Order Item`.billed_amt, 0) * ifnull(`tabSales Order`.conversion_rate, 1))) as \"Pending Amount:Currency:120\",\n `tabSales Order Item`.item_name as \"Item Name::150\",\n `tabSales Order Item`.description as \"Description::200\",\n `tabSales Order`.`company` as \"Company:Link/Company:\"\nfrom\n `tabSales Order`, `tabSales Order Item`\nwhere\n `tabSales Order Item`.`parent` = `tabSales Order`.`name`\n and `tabSales Order`.docstatus = 1\n and `tabSales Order`.status != \"Closed\"\n and ifnull(`tabSales Order Item`.billed_amt,0) < ifnull(`tabSales Order Item`.amount,0)\norder by `tabSales Order`.transaction_date asc",
"ref_doctype": "Sales Invoice",
"report_name": "Ordered Items To Be Billed",
"report_type": "Query Report"

View File

@@ -7,12 +7,12 @@
"doctype": "Report",
"idx": 1,
"is_standard": "Yes",
"modified": "2015-11-04 11:56:14.321664",
"modified": "2016-04-01 08:27:32.122070",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Purchase Order Items To Be Billed",
"owner": "Administrator",
"query": "select \n `tabPurchase Order`.`name` as \"Purchase Order:Link/Purchase Order:120\",\n `tabPurchase Order`.`transaction_date` as \"Date:Date:100\",\n\t`tabPurchase Order`.`supplier` as \"Supplier:Link/Supplier:120\",\n\t`tabPurchase Order Item`.`project_name` as \"Project\",\n\t`tabPurchase Order Item`.item_code as \"Item Code:Link/Item:120\",\n\t`tabPurchase Order Item`.base_amount as \"Amount:Currency:100\",\n\t(`tabPurchase Order Item`.billed_amt * ifnull(`tabPurchase Order`.conversion_rate, 1)) as \"Billed Amount:Currency:100\", \n\t(`tabPurchase Order Item`.base_amount - (ifnull(`tabPurchase Order Item`.billed_amt, 0) * ifnull(`tabPurchase Order`.conversion_rate, 1))) as \"Amount to Bill:Currency:100\",\n\t`tabPurchase Order Item`.item_name as \"Item Name::150\",\n\t`tabPurchase Order Item`.description as \"Description::200\",\n\t`tabPurchase Order`.company as \"Company:Link/Company:\"\nfrom\n\t`tabPurchase Order`, `tabPurchase Order Item`\nwhere\n\t`tabPurchase Order Item`.`parent` = `tabPurchase Order`.`name`\n\tand `tabPurchase Order`.docstatus = 1\n\tand `tabPurchase Order`.status not in (\"Stopped\", \"Closed\")\n\tand (ifnull(`tabPurchase Order Item`.billed_amt, 0) * ifnull(`tabPurchase Order`.conversion_rate, 1)) < ifnull(`tabPurchase Order Item`.base_amount, 0)\norder by `tabPurchase Order`.transaction_date asc",
"query": "select \n `tabPurchase Order`.`name` as \"Purchase Order:Link/Purchase Order:120\",\n `tabPurchase Order`.`transaction_date` as \"Date:Date:100\",\n\t`tabPurchase Order`.`supplier` as \"Supplier:Link/Supplier:120\",\n\t`tabPurchase Order Item`.`project` as \"Project\",\n\t`tabPurchase Order Item`.item_code as \"Item Code:Link/Item:120\",\n\t`tabPurchase Order Item`.base_amount as \"Amount:Currency:100\",\n\t(`tabPurchase Order Item`.billed_amt * ifnull(`tabPurchase Order`.conversion_rate, 1)) as \"Billed Amount:Currency:100\", \n\t(`tabPurchase Order Item`.base_amount - (ifnull(`tabPurchase Order Item`.billed_amt, 0) * ifnull(`tabPurchase Order`.conversion_rate, 1))) as \"Amount to Bill:Currency:100\",\n\t`tabPurchase Order Item`.item_name as \"Item Name::150\",\n\t`tabPurchase Order Item`.description as \"Description::200\",\n\t`tabPurchase Order`.company as \"Company:Link/Company:\"\nfrom\n\t`tabPurchase Order`, `tabPurchase Order Item`\nwhere\n\t`tabPurchase Order Item`.`parent` = `tabPurchase Order`.`name`\n\tand `tabPurchase Order`.docstatus = 1\n\tand `tabPurchase Order`.status != \"Closed\"\n\tand (ifnull(`tabPurchase Order Item`.billed_amt, 0) * ifnull(`tabPurchase Order`.conversion_rate, 1)) < ifnull(`tabPurchase Order Item`.base_amount, 0)\norder by `tabPurchase Order`.transaction_date asc",
"ref_doctype": "Purchase Invoice",
"report_name": "Purchase Order Items To Be Billed",
"report_type": "Query Report"

View File

@@ -21,18 +21,20 @@ def execute(filters=None):
invoice_expense_map, expense_accounts)
invoice_po_pr_map = get_invoice_po_pr_map(invoice_list)
supplier_details = get_supplier_deatils(invoice_list)
company_currency = frappe.db.get_value("Company", filters.company, "default_currency")
data = []
for inv in invoice_list:
# invoice details
purchase_order = list(set(invoice_po_pr_map.get(inv.name, {}).get("purchase_order", [])))
purchase_receipt = list(set(invoice_po_pr_map.get(inv.name, {}).get("purchase_receipt", [])))
project_name = list(set(invoice_po_pr_map.get(inv.name, {}).get("project_name", [])))
project = list(set(invoice_po_pr_map.get(inv.name, {}).get("project", [])))
row = [inv.name, inv.posting_date, inv.supplier, inv.supplier_name,
supplier_details.get(inv.supplier),
inv.credit_to, ", ".join(project_name), inv.bill_no, inv.bill_date, inv.remarks,
", ".join(purchase_order), ", ".join(purchase_receipt)]
inv.credit_to, ", ".join(project), inv.bill_no, inv.bill_date, inv.remarks,
", ".join(purchase_order), ", ".join(purchase_receipt), company_currency]
# map expense values
base_net_total = 0
@@ -62,10 +64,19 @@ def execute(filters=None):
def get_columns(invoice_list):
"""return columns based on filters"""
columns = [
_("Invoice") + ":Link/Purchase Invoice:120", _("Posting Date") + ":Date:80", _("Supplier Id") + "::120",
_("Supplier Name") + "::120", _("Supplier Type") + ":Link/Supplier Type:120", _("Payable Account") + ":Link/Account:120",
_("Project") + ":Link/Project:80", _("Bill No") + "::120", _("Bill Date") + ":Date:80", _("Remarks") + "::150",
_("Purchase Order") + ":Link/Purchase Order:100", _("Purchase Receipt") + ":Link/Purchase Receipt:100"
_("Invoice") + ":Link/Purchase Invoice:120",
_("Posting Date") + ":Date:80", _("Supplier Id") + "::120",
_("Supplier Name") + "::120", _("Supplier Type") + ":Link/Supplier Type:120",
_("Payable Account") + ":Link/Account:120", _("Project") + ":Link/Project:80",
_("Bill No") + "::120", _("Bill Date") + ":Date:80", _("Remarks") + "::150",
_("Purchase Order") + ":Link/Purchase Order:100",
_("Purchase Receipt") + ":Link/Purchase Receipt:100",
{
"fieldname": "currency",
"label": _("Currency"),
"fieldtype": "Data",
"width": 80
}
]
expense_accounts = tax_accounts = expense_columns = tax_columns = []
@@ -84,14 +95,14 @@ def get_columns(invoice_list):
', '.join(['%s']*len(invoice_list)), tuple([inv.name for inv in invoice_list]))
expense_columns = [(account + ":Currency:120") for account in expense_accounts]
expense_columns = [(account + ":Currency/currency:120") for account in expense_accounts]
for account in tax_accounts:
if account not in expense_accounts:
tax_columns.append(account + ":Currency:120")
tax_columns.append(account + ":Currency/currency:120")
columns = columns + expense_columns + [_("Net Total") + ":Currency:120"] + tax_columns + \
[_("Total Tax") + ":Currency:120", _("Grand Total") + ":Currency:120",
_("Rounded Total") + ":Currency:120", _("Outstanding Amount") + ":Currency:120"]
columns = columns + expense_columns + [_("Net Total") + ":Currency/currency:120"] + tax_columns + \
[_("Total Tax") + ":Currency/currency:120", _("Grand Total") + ":Currency/currency:120",
_("Rounded Total") + ":Currency/currency:120", _("Outstanding Amount") + ":Currency/currency:120"]
return columns, expense_accounts, tax_accounts
@@ -146,7 +157,7 @@ def get_invoice_tax_map(invoice_list, invoice_expense_map, expense_accounts):
def get_invoice_po_pr_map(invoice_list):
pi_items = frappe.db.sql("""select parent, purchase_order, purchase_receipt, po_detail,
project_name from `tabPurchase Invoice Item` where parent in (%s)
project from `tabPurchase Invoice Item` where parent in (%s)
and (ifnull(purchase_order, '') != '' or ifnull(purchase_receipt, '') != '')""" %
', '.join(['%s']*len(invoice_list)), tuple([inv.name for inv in invoice_list]), as_dict=1)
@@ -166,9 +177,9 @@ def get_invoice_po_pr_map(invoice_list):
if pr_list:
invoice_po_pr_map.setdefault(d.parent, frappe._dict()).setdefault("purchase_receipt", pr_list)
if d.project_name:
if d.project:
invoice_po_pr_map.setdefault(d.parent, frappe._dict()).setdefault(
"project_name", []).append(d.project_name)
"project", []).append(d.project)
return invoice_po_pr_map

View File

@@ -7,12 +7,12 @@
"doctype": "Report",
"idx": 1,
"is_standard": "Yes",
"modified": "2015-11-02 12:33:11.681513",
"modified": "2016-04-04 17:27:29.449124",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Received Items To Be Billed",
"owner": "Administrator",
"query": "select\n `tabPurchase Receipt`.`name` as \"Purchase Receipt:Link/Purchase Receipt:120\",\n `tabPurchase Receipt`.`supplier` as \"Supplier:Link/Supplier:120\",\n\t`tabPurchase Receipt`.`posting_date` as \"Date:Date\",\n\t`tabPurchase Receipt Item`.`project_name` as \"Project\",\n\t`tabPurchase Receipt Item`.`item_code` as \"Item:Link/Item:120\",\n\t(`tabPurchase Receipt Item`.`qty` - ifnull((select sum(qty) from `tabPurchase Invoice Item` \n\t where `tabPurchase Invoice Item`.purchase_receipt = `tabPurchase Receipt`.name and\n `tabPurchase Invoice Item`.docstatus = 1 and\n\t `tabPurchase Invoice Item`.pr_detail = `tabPurchase Receipt Item`.name), 0))\n\t as \"Qty:Float:110\",\n\t(`tabPurchase Receipt Item`.`base_amount` - ifnull((select sum(base_amount) \n from `tabPurchase Invoice Item` \n where `tabPurchase Invoice Item`.purchase_receipt = `tabPurchase Receipt`.name and\n `tabPurchase Invoice Item`.docstatus = 1 and\n `tabPurchase Invoice Item`.pr_detail = `tabPurchase Receipt Item`.name), 0))\n\t as \"Amount:Currency:110\",\n\t`tabPurchase Receipt Item`.`item_name` as \"Item Name::150\",\n\t`tabPurchase Receipt Item`.`description` as \"Description::200\",\n\t`tabPurchase Receipt`.`company` as \"Company:Link/Company:\"\nfrom `tabPurchase Receipt`, `tabPurchase Receipt Item`\nwhere\n `tabPurchase Receipt`.docstatus = 1 and `tabPurchase Receipt`.status != \"Closed\" and \n `tabPurchase Receipt`.name = `tabPurchase Receipt Item`.parent and\n (`tabPurchase Receipt Item`.qty > ifnull((select sum(qty) from `tabPurchase Invoice Item` \n where `tabPurchase Invoice Item`.purchase_receipt = `tabPurchase Receipt`.name and\n `tabPurchase Invoice Item`.docstatus=1 and \n `tabPurchase Invoice Item`.pr_detail = `tabPurchase Receipt Item`.name), 0))\norder by `tabPurchase Receipt`.`name` desc",
"query": "select\n `tabPurchase Receipt`.`name` as \"Purchase Receipt:Link/Purchase Receipt:120\",\n `tabPurchase Receipt`.`supplier` as \"Supplier:Link/Supplier:120\",\n\t`tabPurchase Receipt`.`posting_date` as \"Date:Date\",\n\t`tabPurchase Receipt Item`.`project` as \"Project\",\n\t`tabPurchase Receipt Item`.`item_code` as \"Item:Link/Item:120\",\n\t`tabPurchase Receipt Item`.`billed_amt` as \"Pending Amount:Currency:110\",\n\t`tabPurchase Receipt Item`.`item_name` as \"Item Name::150\",\n\t`tabPurchase Receipt Item`.`description` as \"Description::200\",\n\t`tabPurchase Receipt`.`company` as \"Company:Link/Company:\"\nfrom `tabPurchase Receipt`, `tabPurchase Receipt Item`\nwhere\n `tabPurchase Receipt`.docstatus = 1 and `tabPurchase Receipt`.status != \"Closed\" and \n `tabPurchase Receipt`.name = `tabPurchase Receipt Item`.parent and\n `tabPurchase Receipt`.per_billed < 100\norder by `tabPurchase Receipt`.`name` desc",
"ref_doctype": "Purchase Invoice",
"report_name": "Received Items To Be Billed",
"report_type": "Query Report"

View File

@@ -22,6 +22,7 @@ def execute(filters=None):
invoice_so_dn_map = get_invoice_so_dn_map(invoice_list)
customer_map = get_customer_deatils(invoice_list)
company_currency = frappe.db.get_value("Company", filters.company, "default_currency")
data = []
for inv in invoice_list:
@@ -32,7 +33,8 @@ def execute(filters=None):
row = [inv.name, inv.posting_date, inv.customer, inv.customer_name,
customer_map.get(inv.customer, {}).get("customer_group"),
customer_map.get(inv.customer, {}).get("territory"),
inv.debit_to, inv.project_name, inv.remarks, ", ".join(sales_order), ", ".join(delivery_note)]
inv.debit_to, inv.project, inv.remarks,
", ".join(sales_order), ", ".join(delivery_note), company_currency]
# map income values
base_net_total = 0
@@ -66,7 +68,13 @@ def get_columns(invoice_list):
_("Invoice") + ":Link/Sales Invoice:120", _("Posting Date") + ":Date:80", _("Customer Id") + "::120",
_("Customer Name") + "::120", _("Customer Group") + ":Link/Customer Group:120", _("Territory") + ":Link/Territory:80",
_("Receivable Account") + ":Link/Account:120", _("Project") +":Link/Project:80", _("Remarks") + "::150",
_("Sales Order") + ":Link/Sales Order:100", _("Delivery Note") + ":Link/Delivery Note:100"
_("Sales Order") + ":Link/Sales Order:100", _("Delivery Note") + ":Link/Delivery Note:100",
{
"fieldname": "currency",
"label": _("Currency"),
"fieldtype": "Data",
"width": 80
}
]
income_accounts = tax_accounts = income_columns = tax_columns = []
@@ -83,14 +91,14 @@ def get_columns(invoice_list):
and parent in (%s) order by account_head""" %
', '.join(['%s']*len(invoice_list)), tuple([inv.name for inv in invoice_list]))
income_columns = [(account + ":Currency:120") for account in income_accounts]
income_columns = [(account + ":Currency/currency:120") for account in income_accounts]
for account in tax_accounts:
if account not in income_accounts:
tax_columns.append(account + ":Currency:120")
tax_columns.append(account + ":Currency/currency:120")
columns = columns + income_columns + [_("Net Total") + ":Currency:120"] + tax_columns + \
[_("Total Tax") + ":Currency:120", _("Grand Total") + ":Currency:120",
_("Rounded Total") + ":Currency:120", _("Outstanding Amount") + ":Currency:120"]
columns = columns + income_columns + [_("Net Total") + ":Currency/currency:120"] + tax_columns + \
[_("Total Tax") + ":Currency/currency:120", _("Grand Total") + ":Currency/currency:120",
_("Rounded Total") + ":Currency/currency:120", _("Outstanding Amount") + ":Currency/currency:120"]
return columns, income_accounts, tax_accounts
@@ -107,7 +115,7 @@ def get_conditions(filters):
def get_invoices(filters):
conditions = get_conditions(filters)
return frappe.db.sql("""select name, posting_date, debit_to, project_name, customer,
return frappe.db.sql("""select name, posting_date, debit_to, project, customer,
customer_name, remarks, base_net_total, base_grand_total, base_rounded_total, outstanding_amount
from `tabSales Invoice`
where docstatus = 1 %s order by posting_date desc, name desc""" %

View File

@@ -4,8 +4,9 @@
from __future__ import unicode_literals
import frappe
from frappe import _
from frappe.utils import cint, flt, getdate, formatdate, cstr
from erpnext.accounts.report.financial_statements import filter_accounts, set_gl_entries_by_account
from frappe.utils import flt, getdate, formatdate, cstr
from erpnext.accounts.report.financial_statements \
import filter_accounts, set_gl_entries_by_account, filter_out_zero_value_rows
value_fields = ("opening_debit", "opening_credit", "debit", "credit", "closing_debit", "closing_credit")
@@ -17,11 +18,14 @@ def execute(filters=None):
def validate_filters(filters):
if not filters.fiscal_year:
frappe.throw(_("Fiscal Year {0} is required"))
filters.year_start_date, filters.year_end_date = frappe.db.get_value("Fiscal Year", filters.fiscal_year,
["year_start_date", "year_end_date"])
filters.year_start_date = getdate(filters.year_start_date)
filters.year_end_date = getdate(filters.year_end_date)
frappe.throw(_("Fiscal Year {0} is required").format(filters.fiscal_year))
fiscal_year = frappe.db.get_value("Fiscal Year", filters.fiscal_year, ["year_start_date", "year_end_date"], as_dict=True)
if not fiscal_year:
frappe.throw(_("Fiscal Year {0} does not exist").format(filters.fiscal_year))
else:
filters.year_start_date = getdate(fiscal_year.year_start_date)
filters.year_end_date = getdate(fiscal_year.year_end_date)
if not filters.from_date:
filters.from_date = filters.year_start_date
@@ -53,7 +57,7 @@ def get_data(filters):
if not accounts:
return None
accounts, accounts_by_name = filter_accounts(accounts)
accounts, accounts_by_name, parent_children_map = filter_accounts(accounts)
min_lft, max_rgt = frappe.db.sql("""select min(lft), max(rgt) from `tabAccount`
where company=%s""", (filters.company,))[0]
@@ -68,8 +72,10 @@ def get_data(filters):
total_row = calculate_values(accounts, gl_entries_by_account, opening_balances, filters)
accumulate_values_into_parents(accounts, accounts_by_name)
data = prepare_data(accounts, filters, total_row)
data = prepare_data(accounts, filters, total_row, parent_children_map)
data = filter_out_zero_value_rows(data, parent_children_map,
show_zero_values=filters.get("show_zero_values"))
return data
def get_opening_balances(filters):
@@ -153,10 +159,8 @@ def accumulate_values_into_parents(accounts, accounts_by_name):
for key in value_fields:
accounts_by_name[d.parent_account][key] += d[key]
def prepare_data(accounts, filters, total_row):
show_zero_values = cint(filters.show_zero_values)
def prepare_data(accounts, filters, total_row, parent_children_map):
data = []
accounts_with_zero_value = []
for d in accounts:
has_value = False
row = {
@@ -171,18 +175,15 @@ def prepare_data(accounts, filters, total_row):
prepare_opening_and_closing(d)
for key in value_fields:
row[key] = d.get(key, 0.0)
if row[key]:
row[key] = flt(d.get(key, 0.0), 3)
if abs(row[key]) >= 0.005:
# ignore zero values
has_value = True
if show_zero_values:
data.append(row)
else:
if not has_value:
accounts_with_zero_value.append(d.name)
elif d.parent_account not in accounts_with_zero_value:
data.append(row)
row["has_value"] = has_value
data.append(row)
data.extend([{},total_row])
return data

View File

@@ -16,10 +16,10 @@ class FiscalYearError(frappe.ValidationError): pass
class BudgetError(frappe.ValidationError): pass
@frappe.whitelist()
def get_fiscal_year(date=None, fiscal_year=None, label="Date", verbose=1, company=None):
return get_fiscal_years(date, fiscal_year, label, verbose, company)[0]
def get_fiscal_year(date=None, fiscal_year=None, label="Date", verbose=1, company=None, as_dict=False):
return get_fiscal_years(date, fiscal_year, label, verbose, company, as_dict=as_dict)[0]
def get_fiscal_years(transaction_date=None, fiscal_year=None, label="Date", verbose=1, company=None):
def get_fiscal_years(transaction_date=None, fiscal_year=None, label="Date", verbose=1, company=None, as_dict=False):
# if year start date is 2012-04-01, year end date should be 2013-03-31 (hence subdate)
cond = " disabled = 0"
if fiscal_year:
@@ -36,10 +36,10 @@ def get_fiscal_years(transaction_date=None, fiscal_year=None, label="Date", verb
"fiscal_year": fiscal_year,
"transaction_date": transaction_date,
"company": company
})
}, as_dict=as_dict)
if not fy:
error_msg = _("""{0} {1} not in any active Fiscal Year. For more details check {2}.""").format(label, formatdate(transaction_date), "https://erpnext.com/kb/accounts/fiscal-year-error")
error_msg = _("""{0} {1} not in any active Fiscal Year. For more details check {2}.""").format(label, formatdate(transaction_date), "https://frappe.github.io/erpnext/user/manual/en/accounts/articles/fiscal-year-error")
if verbose==1: frappe.msgprint(error_msg)
raise FiscalYearError, error_msg
return fy
@@ -105,11 +105,11 @@ def get_balance_on(account=None, date=None, party_type=None, party=None, in_acco
if acc.account_currency == frappe.db.get_value("Company", acc.company, "default_currency"):
in_account_currency = False
else:
cond.append("""gle.account = "%s" """ % (frappe.db.escape(account), ))
cond.append("""gle.account = "%s" """ % (frappe.db.escape(account, percent=False), ))
if party_type and party:
cond.append("""gle.party_type = "%s" and gle.party = "%s" """ %
(frappe.db.escape(party_type), frappe.db.escape(party)))
(frappe.db.escape(party_type), frappe.db.escape(party, percent=False)))
if account or (party_type and party):
if in_account_currency:
@@ -477,3 +477,14 @@ def get_outstanding_invoices(party_type, party, account, condition=None):
})
return outstanding_invoices
def get_account_name(account_type=None, root_type=None, is_group=None, account_currency=None, company=None):
"""return account based on matching conditions"""
return frappe.db.get_value("Account", {
"account_type": account_type or '',
"root_type": root_type or '',
"is_group": is_group or 0,
"account_currency": account_currency or frappe.defaults.get_defaults().currency,
"company": company or frappe.defaults.get_defaults().company
}, "name")

View File

@@ -142,14 +142,14 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({
}
},
project_name: function(doc, cdt, cdn) {
project: function(doc, cdt, cdn) {
var item = frappe.get_doc(cdt, cdn);
if(item.project_name) {
if(item.project) {
$.each(this.frm.doc["items"] || [],
function(i, other_item) {
if(!other_item.project_name) {
other_item.project_name = item.project_name;
refresh_field("project_name", other_item.name, other_item.parentfield);
if(!other_item.project) {
other_item.project = item.project;
refresh_field("project", other_item.name, other_item.parentfield);
}
});
}
@@ -170,10 +170,35 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({
this.frm.add_custom_button(__("Product Bundle"), function() {
erpnext.buying.get_items_from_product_bundle(me.frm);
}, __("Get items from"));
},
shipping_address: function(){
var me = this;
this.frm.set_query("shipping_address", function(){
if(me.frm.doc.customer){
return{
filters:{
"customer": me.frm.doc.customer
}
}
}
else{
return{
filters:{
"is_your_company_address": 1,
"company": me.frm.doc.company
}
}
}
});
erpnext.utils.get_address_display(this.frm, "shipping_address",
"shipping_address_display", is_your_company_address=true)
}
});
cur_frm.add_fetch('project_name', 'cost_center', 'cost_center');
cur_frm.add_fetch('project', 'cost_center', 'cost_center');
erpnext.buying.get_default_bom = function(frm) {
$.each(frm.doc["items"] || [], function(i, d) {

View File

@@ -80,10 +80,10 @@ class PurchaseCommon(BuyingController):
frappe.msgprint(_("Warning: Same item has been entered multiple times."))
def check_for_stopped_or_closed_status(self, doctype, docname):
def check_for_closed_status(self, doctype, docname):
status = frappe.db.get_value(doctype, docname, "status")
if status in ("Stopped", "Closed"):
if status == "Closed":
frappe.throw(_("{0} {1} status is {2}").format(doctype, docname, status), frappe.InvalidStatusError)
def check_docstatus(self, check, doctype, docname, detail_doctype = ''):

View File

@@ -38,16 +38,13 @@ erpnext.buying.PurchaseOrderController = erpnext.buying.BuyingController.extend(
cur_frm.set_df_property("drop_ship", "hidden", !is_drop_ship);
if(doc.docstatus == 1 && !in_list(["Stopped", "Closed", "Delivered"], doc.status)) {
if(doc.docstatus == 1 && !in_list(["Closed", "Delivered"], doc.status)) {
if (this.frm.has_perm("submit")) {
if(flt(doc.per_billed, 2) < 100 || doc.per_received < 100) {
cur_frm.add_custom_button(__('Stop'), this.stop_purchase_order, __("Status"));
cur_frm.add_custom_button(__('Close'), this.close_purchase_order, __("Status"));
}
cur_frm.add_custom_button(__('Close'), this.close_purchase_order, __("Status"));
}
if(is_drop_ship && doc.status!="Delivered"){
cur_frm.add_custom_button(__('Delivered'),
this.delivered_by_supplier, __("Status"));
@@ -58,13 +55,13 @@ erpnext.buying.PurchaseOrderController = erpnext.buying.BuyingController.extend(
cur_frm.cscript.add_from_mappers();
}
if(doc.docstatus == 1 && in_list(["Stopped", "Closed", "Delivered"], doc.status)) {
if(doc.docstatus == 1 && in_list(["Closed", "Delivered"], doc.status)) {
if (this.frm.has_perm("submit")) {
cur_frm.add_custom_button(__('Re-open'), this.unstop_purchase_order, __("Status"));
cur_frm.add_custom_button(__('Re-open'), this.unclose_purchase_order, __("Status"));
}
}
if(doc.docstatus == 1 && !in_list(["Stopped", "Closed"], doc.status)) {
if(doc.docstatus == 1 && doc.status != "Closed") {
if(flt(doc.per_received, 2) < 100 && allow_receipt) {
cur_frm.add_custom_button(__('Receive'), this.make_purchase_receipt, __("Make"));
@@ -192,11 +189,7 @@ erpnext.buying.PurchaseOrderController = erpnext.buying.BuyingController.extend(
});
},
stop_purchase_order: function(){
cur_frm.cscript.update_status('Stop', 'Stopped')
},
unstop_purchase_order: function(){
unclose_purchase_order: function(){
cur_frm.cscript.update_status('Re-open', 'Submitted')
},
@@ -247,7 +240,7 @@ cur_frm.fields_dict['contact_person'].get_query = function(doc, cdt, cdn) {
}
}
cur_frm.fields_dict['items'].grid.get_field('project_name').get_query = function(doc, cdt, cdn) {
cur_frm.fields_dict['items'].grid.get_field('project').get_query = function(doc, cdt, cdn) {
return {
filters:[
['Project', 'status', 'not in', 'Completed, Cancelled']

File diff suppressed because it is too large Load Diff

View File

@@ -39,7 +39,7 @@ class PurchaseOrder(BuyingController):
self.set_status()
pc_obj = frappe.get_doc('Purchase Common')
pc_obj.validate_for_items(self)
self.check_for_stopped_or_closed_status(pc_obj)
self.check_for_closed_status(pc_obj)
self.validate_uom_is_integer("uom", "qty")
self.validate_uom_is_integer("stock_uom", ["qty", "required_qty"])
@@ -58,7 +58,7 @@ class PurchaseOrder(BuyingController):
},
"Supplier Quotation Item": {
"ref_dn_field": "supplier_quotation_item",
"compare_fields": [["rate", "="], ["project_name", "="], ["item_code", "="]],
"compare_fields": [["rate", "="], ["project", "="], ["item_code", "="]],
"is_child_table": True
}
})
@@ -113,13 +113,13 @@ class PurchaseOrder(BuyingController):
d.base_price_list_rate = d.base_rate = d.price_list_rate \
= d.rate = item_last_purchase_rate
# Check for Stopped status
def check_for_stopped_or_closed_status(self, pc_obj):
# Check for Closed status
def check_for_closed_status(self, pc_obj):
check_list =[]
for d in self.get('items'):
if d.meta.get_field('prevdoc_docname') and d.prevdoc_docname and d.prevdoc_docname not in check_list:
check_list.append(d.prevdoc_docname)
pc_obj.check_for_stopped_or_closed_status( d.prevdoc_doctype, d.prevdoc_docname)
pc_obj.check_for_closed_status( d.prevdoc_doctype, d.prevdoc_docname)
def update_requested_qty(self):
material_request_map = {}
@@ -145,7 +145,6 @@ class PurchaseOrder(BuyingController):
and frappe.db.get_value("Item", d.item_code, "is_stock_item") \
and d.warehouse and not d.delivered_by_supplier:
item_wh_list.append([d.item_code, d.warehouse])
for item_code, warehouse in item_wh_list:
update_bin_qty(item_code, warehouse, {
"ordered_qty": get_ordered_qty(item_code, warehouse)
@@ -172,8 +171,6 @@ class PurchaseOrder(BuyingController):
if self.is_against_so():
self.update_status_updater()
super(PurchaseOrder, self).on_submit()
purchase_controller = frappe.get_doc("Purchase Common")
self.update_prevdoc_status()
@@ -193,7 +190,7 @@ class PurchaseOrder(BuyingController):
self.update_delivered_qty_in_sales_order()
pc_obj = frappe.get_doc('Purchase Common')
self.check_for_stopped_or_closed_status(pc_obj)
self.check_for_closed_status(pc_obj)
# Check if Purchase Receipt has been submitted against current Purchase Order
pc_obj.check_docstatus(check = 'Next', doctype = 'Purchase Receipt', docname = self.name, detail_doctype = 'Purchase Receipt Item')
@@ -253,7 +250,7 @@ class PurchaseOrder(BuyingController):
item.received_qty = item.qty
@frappe.whitelist()
def stop_or_unstop_purchase_orders(names, status):
def close_or_unclose_purchase_orders(names, status):
if not frappe.has_permission("Purchase Order", "write"):
frappe.throw(_("Not permitted"), frappe.PermissionError)
@@ -261,11 +258,11 @@ def stop_or_unstop_purchase_orders(names, status):
for name in names:
po = frappe.get_doc("Purchase Order", name)
if po.docstatus == 1:
if status in ("Stopped", "Closed"):
if po.status not in ("Stopped", "Cancelled", "Closed") and (po.per_received < 100 or po.per_billed < 100):
if status == "Closed":
if po.status not in ( "Cancelled", "Closed") and (po.per_received < 100 or po.per_billed < 100):
po.update_status(status)
else:
if po.status in ("Stopped", "Closed"):
if po.status == "Closed":
po.update_status("Draft")
frappe.local.message_log = []

View File

@@ -2,37 +2,31 @@ frappe.listview_settings['Purchase Order'] = {
add_fields: ["base_grand_total", "company", "currency", "supplier",
"supplier_name", "per_received", "per_billed", "status"],
get_indicator: function(doc) {
if(doc.status==="Stopped") {
return [__("Stopped"), "darkgrey", "status,=,Stopped"];
} else if(doc.status==="Closed"){
if(doc.status==="Closed"){
return [__("Closed"), "green", "status,=,Closed"];
} else if (doc.status==="Delivered") {
return [__("Delivered"), "green", "status,=,Closed"];
}else if(flt(doc.per_received, 2) < 100 && doc.status!=="Stopped") {
}else if(flt(doc.per_received, 2) < 100 && doc.status!=="Closed") {
if(flt(doc.per_billed, 2) < 100) {
return [__("To Receive and Bill"), "orange",
"per_received,<,100|per_billed,<,100|status,!=,Stopped"];
"per_received,<,100|per_billed,<,100|status,!=,Closed"];
} else {
return [__("To Receive"), "orange",
"per_received,<,100|per_billed,=,100|status,!=,Stopped"];
"per_received,<,100|per_billed,=,100|status,!=,Closed"];
}
} else if(flt(doc.per_received, 2) == 100 && flt(doc.per_billed, 2) < 100 && doc.status!=="Stopped") {
return [__("To Bill"), "orange", "per_received,=,100|per_billed,<,100|status,!=,Stopped"];
} else if(flt(doc.per_received, 2) == 100 && flt(doc.per_billed, 2) == 100 && doc.status!=="Stopped") {
return [__("Completed"), "green", "per_received,=,100|per_billed,=,100|status,!=,Stopped"];
} else if(flt(doc.per_received, 2) == 100 && flt(doc.per_billed, 2) < 100 && doc.status!=="Closed") {
return [__("To Bill"), "orange", "per_received,=,100|per_billed,<,100|status,!=,Closed"];
} else if(flt(doc.per_received, 2) == 100 && flt(doc.per_billed, 2) == 100 && doc.status!=="Closed") {
return [__("Completed"), "green", "per_received,=,100|per_billed,=,100|status,!=,Closed"];
}
},
onload: function(listview) {
var method = "erpnext.buying.doctype.purchase_order.purchase_order.stop_or_unstop_purchase_orders";
var method = "erpnext.buying.doctype.purchase_order.purchase_order.close_or_unclose_purchase_orders";
listview.page.add_menu_item(__("Close"), function() {
listview.call_for_selected_items(method, {"status": "Closed"});
});
listview.page.add_menu_item(__("Stop"), function() {
listview.call_for_selected_items(method, {"status": "Stopped"});
});
listview.page.add_menu_item(__("Re-open"), function() {
listview.call_for_selected_items(method, {"status": "Submitted"});
});

View File

@@ -6,7 +6,6 @@
"conversion_rate": 1.0,
"currency": "INR",
"doctype": "Purchase Order",
"fiscal_year": "_Test Fiscal Year 2013",
"base_grand_total": 5000.0,
"grand_total": 5000.0,
"is_subcontracted": "Yes",
@@ -40,7 +39,6 @@
"conversion_rate": 1.0,
"currency": "INR",
"doctype": "Purchase Order",
"fiscal_year": "_Test Fiscal Year 2013",
"base_grand_total": 5000.0,
"grand_total": 5000.0,
"is_subcontracted": "No",

View File

@@ -17,6 +17,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 1,
"label": "Item Code",
@@ -44,6 +45,7 @@
"fieldtype": "Data",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Supplier Part Number",
@@ -67,6 +69,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 1,
"label": "Item Name",
@@ -92,6 +95,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -115,6 +119,7 @@
"fieldtype": "Date",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Reqd By Date",
@@ -140,6 +145,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Description",
@@ -164,6 +170,7 @@
"fieldtype": "Text Editor",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Description",
@@ -191,6 +198,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -213,6 +221,7 @@
"fieldtype": "Attach",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Image",
@@ -237,6 +246,7 @@
"fieldtype": "Image",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Image View",
@@ -262,6 +272,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Quantity and Rate",
@@ -285,6 +296,7 @@
"fieldtype": "Float",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Quantity",
@@ -312,6 +324,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Stock UOM",
@@ -340,6 +353,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -362,6 +376,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "UOM",
@@ -390,6 +405,7 @@
"fieldtype": "Float",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "UOM Conversion Factor",
@@ -417,6 +433,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -439,6 +456,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Price List Rate",
@@ -464,6 +482,7 @@
"fieldtype": "Percent",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Discount on Price List Rate (%)",
@@ -487,6 +506,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -509,6 +529,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Price List Rate (Company Currency)",
@@ -533,6 +554,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -555,6 +577,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Rate ",
@@ -581,6 +604,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Amount",
@@ -607,6 +631,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -629,6 +654,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Rate (Company Currency)",
@@ -657,6 +683,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Amount (Company Currency)",
@@ -683,6 +710,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Pricing Rule",
@@ -707,6 +735,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -730,6 +759,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Net Rate",
@@ -755,6 +785,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Net Amount",
@@ -780,6 +811,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -803,6 +835,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Net Rate (Company Currency)",
@@ -828,6 +861,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Net Amount (Company Currency)",
@@ -853,6 +887,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Warehouse and Reference",
@@ -876,6 +911,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Warehouse",
@@ -898,13 +934,14 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "project_name",
"fieldname": "project",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Project Name",
"label": "Project",
"length": 0,
"no_copy": 0,
"options": "Project",
@@ -926,6 +963,7 @@
"fieldtype": "Link",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Reference Document Type",
@@ -952,6 +990,7 @@
"fieldtype": "Dynamic Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Reference Name",
@@ -980,6 +1019,7 @@
"fieldtype": "Data",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Material Request Detail No",
@@ -1005,6 +1045,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Supplier Quotation",
@@ -1029,6 +1070,7 @@
"fieldtype": "Link",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Supplier Quotation Item",
@@ -1053,6 +1095,7 @@
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "To be delivered to customer",
@@ -1077,6 +1120,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -1100,6 +1144,7 @@
"fieldtype": "Link",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Item Group",
@@ -1126,6 +1171,7 @@
"fieldtype": "Link",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Brand",
@@ -1152,6 +1198,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "BOM",
@@ -1177,6 +1224,7 @@
"fieldtype": "Float",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Qty as per Stock UOM",
@@ -1204,6 +1252,7 @@
"fieldtype": "Float",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Received Qty",
@@ -1230,6 +1279,7 @@
"fieldtype": "Float",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Returned Qty",
@@ -1254,6 +1304,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Billed Amt",
@@ -1276,9 +1327,10 @@
"collapsible": 0,
"description": "Tax detail table fetched from item master as a string and stored in this field.\nUsed for Taxes and Charges",
"fieldname": "item_tax_rate",
"fieldtype": "Small Text",
"fieldtype": "Code",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Item Tax Rate",
@@ -1304,6 +1356,7 @@
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Page Break",
@@ -1331,7 +1384,7 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
"modified": "2016-01-25 05:39:52.405200",
"modified": "2016-03-18 05:08:54.505417",
"modified_by": "Administrator",
"module": "Buying",
"name": "Purchase Order Item",

View File

@@ -46,18 +46,23 @@ cur_frm.fields_dict['item_code'].get_query = function(doc, cdt, cdn) {
// Serial No based on item_code
cur_frm.fields_dict['item_serial_no'].get_query = function(doc, cdt, cdn) {
var filter = {};
var filters = {};
if (doc.item_code) {
filter = {
'item_code': doc.item_code,
'status': "Available"
filters = {
'item_code': doc.item_code
}
} else
filter = { 'status': "Available" }
return { filters: filter }
}
return { filters: filters }
}
cur_frm.set_query("batch_no", function(doc) {
return {
filters: {
"item": doc.item_code
}
}
})
cur_frm.add_fetch('item_code', 'item_name', 'item_name');
cur_frm.add_fetch('item_code', 'description', 'description');

View File

@@ -2,6 +2,9 @@
// License: GNU General Public License v3. See license.txt
frappe.ui.form.on("Supplier", {
before_load: function(frm) {
frappe.setup_language_field(frm);
},
refresh: function(frm) {
frm.cscript.make_dashboard(frm.doc);

File diff suppressed because it is too large Load Diff

View File

@@ -46,7 +46,7 @@ cur_frm.cscript.uom = function(doc, cdt, cdn) {
// no need to trigger updation of stock uom, as this field doesn't exist in supplier quotation
}
cur_frm.fields_dict['items'].grid.get_field('project_name').get_query =
cur_frm.fields_dict['items'].grid.get_field('project').get_query =
function(doc, cdt, cdn) {
return{
filters:[

View File

@@ -17,6 +17,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "",
@@ -42,6 +43,7 @@
"fieldtype": "Data",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Title",
@@ -66,6 +68,7 @@
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Series",
@@ -93,6 +96,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Supplier",
@@ -119,6 +123,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Name",
@@ -134,98 +139,6 @@
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "address_display",
"fieldtype": "Small Text",
"hidden": 1,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Address",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "contact_display",
"fieldtype": "Small Text",
"hidden": 1,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Contact",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "contact_mobile",
"fieldtype": "Small Text",
"hidden": 1,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Mobile No",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "contact_email",
"fieldtype": "Small Text",
"hidden": 1,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Contact Email",
"length": 0,
"no_copy": 0,
"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,
@@ -234,6 +147,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -259,6 +173,7 @@
"fieldtype": "Date",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Date",
@@ -284,6 +199,7 @@
"fieldtype": "Link",
"hidden": 1,
"ignore_user_permissions": 1,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Amended From",
@@ -311,6 +227,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Company",
@@ -329,6 +246,178 @@
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 1,
"fieldname": "address_section",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Address and Contact",
"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": "supplier_address",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Supplier Address",
"length": 0,
"no_copy": 0,
"options": "Address",
"permlevel": 0,
"print_hide": 1,
"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": "contact_person",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Contact Person",
"length": 0,
"no_copy": 0,
"options": "Contact",
"permlevel": 0,
"print_hide": 1,
"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": "address_display",
"fieldtype": "Small Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Address",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "contact_display",
"fieldtype": "Small Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Contact",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "contact_mobile",
"fieldtype": "Small Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Mobile No",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "contact_email",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Contact Email",
"length": 0,
"no_copy": 0,
"options": "Email",
"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,
@@ -337,6 +426,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Currency and Price List",
@@ -361,6 +451,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Currency",
@@ -388,6 +479,7 @@
"fieldtype": "Float",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Exchange Rate",
@@ -414,6 +506,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -438,6 +531,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Price List",
@@ -463,6 +557,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Price List Currency",
@@ -488,6 +583,7 @@
"fieldtype": "Float",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Price List Exchange Rate",
@@ -512,6 +608,7 @@
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Ignore Pricing Rule",
@@ -535,6 +632,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "",
@@ -560,6 +658,7 @@
"fieldtype": "Table",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Items",
@@ -586,6 +685,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -608,6 +708,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Total (Company Currency)",
@@ -633,6 +734,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Net Total (Company Currency)",
@@ -659,6 +761,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -681,6 +784,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Total",
@@ -706,6 +810,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Net Total",
@@ -732,6 +837,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Taxes and Charges",
@@ -758,6 +864,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Taxes and Charges",
@@ -784,6 +891,7 @@
"fieldtype": "Table",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Purchase Taxes and Charges",
@@ -810,6 +918,7 @@
"fieldtype": "HTML",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Taxes and Charges Calculation",
@@ -834,6 +943,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "",
@@ -859,6 +969,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Taxes and Charges Added (Company Currency)",
@@ -885,6 +996,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Taxes and Charges Deducted (Company Currency)",
@@ -911,6 +1023,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Total Taxes and Charges (Company Currency)",
@@ -937,6 +1050,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -960,6 +1074,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Taxes and Charges Added",
@@ -986,6 +1101,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Taxes and Charges Deducted",
@@ -1012,6 +1128,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Total Taxes and Charges",
@@ -1038,6 +1155,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Additional Discount",
@@ -1063,6 +1181,7 @@
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Apply Additional Discount On",
@@ -1088,6 +1207,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Additional Discount Amount (Company Currency)",
@@ -1113,6 +1233,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -1136,6 +1257,7 @@
"fieldtype": "Float",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Additional Discount Percentage",
@@ -1160,6 +1282,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Additional Discount Amount",
@@ -1185,6 +1308,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -1208,6 +1332,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Grand Total (Company Currency)",
@@ -1235,6 +1360,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "In Words (Company Currency)",
@@ -1260,6 +1386,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Rounded Total (Company Currency)",
@@ -1286,6 +1413,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -1309,6 +1437,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Grand Total",
@@ -1335,6 +1464,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "In Words",
@@ -1361,6 +1491,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Terms and Conditions",
@@ -1386,6 +1517,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Terms",
@@ -1412,6 +1544,7 @@
"fieldtype": "Text Editor",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Terms and Conditions",
@@ -1429,79 +1562,6 @@
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 1,
"depends_on": "supplier",
"fieldname": "contact_section",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Contact Details",
"length": 0,
"no_copy": 0,
"options": "icon-bullhorn",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "supplier_address",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Supplier Address",
"length": 0,
"no_copy": 0,
"options": "Address",
"permlevel": 0,
"print_hide": 1,
"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": "contact_person",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Contact Person",
"length": 0,
"no_copy": 0,
"options": "Contact",
"permlevel": 0,
"print_hide": 1,
"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,
@@ -1510,6 +1570,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Printing Settings",
@@ -1534,6 +1595,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Print Heading",
@@ -1560,6 +1622,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Letter Head",
@@ -1578,6 +1641,31 @@
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "language",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Print Language",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"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,
@@ -1586,6 +1674,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "More Information",
@@ -1611,6 +1700,7 @@
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Status",
@@ -1629,31 +1719,6 @@
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"default": "No",
"fieldname": "is_subcontracted",
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Is Subcontracted",
"length": 0,
"no_copy": 0,
"options": "\nYes\nNo",
"permlevel": 0,
"print_hide": 1,
"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,
@@ -1662,6 +1727,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -1680,25 +1746,25 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "fiscal_year",
"fieldtype": "Link",
"default": "No",
"fieldname": "is_subcontracted",
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"in_filter": 1,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Fiscal Year",
"label": "Is Subcontracted",
"length": 0,
"no_copy": 0,
"oldfieldname": "fiscal_year",
"oldfieldtype": "Select",
"options": "Fiscal Year",
"options": "\nYes\nNo",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 1,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
@@ -1714,7 +1780,7 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
"modified": "2015-12-17 16:18:29.855942",
"modified": "2016-03-16 15:36:05.481917",
"modified_by": "Administrator",
"module": "Buying",
"name": "Supplier Quotation",
@@ -1846,5 +1912,6 @@
"search_fields": "status, transaction_date, supplier,grand_total",
"sort_field": "modified",
"sort_order": "DESC",
"timeline_field": "supplier",
"title_field": "title"
}

View File

@@ -5,7 +5,6 @@
"conversion_rate": 1.0,
"currency": "INR",
"doctype": "Supplier Quotation",
"fiscal_year": "_Test Fiscal Year 2013",
"base_grand_total": 5000.0,
"grand_total": 5000.0,
"is_subcontracted": "No",

View File

@@ -16,6 +16,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 1,
"label": "Item Code",
@@ -26,6 +27,7 @@
"options": "Item",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 1,
@@ -42,6 +44,7 @@
"fieldtype": "Data",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Supplier Part Number",
@@ -49,6 +52,7 @@
"no_copy": 0,
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -64,6 +68,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -71,6 +76,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -86,6 +92,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 1,
"label": "Item Name",
@@ -95,6 +102,7 @@
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -110,6 +118,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Description",
@@ -118,6 +127,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -133,6 +143,7 @@
"fieldtype": "Text Editor",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Description",
@@ -142,6 +153,7 @@
"oldfieldtype": "Small Text",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"print_width": "300px",
"read_only": 0,
"report_hide": 0,
@@ -159,12 +171,14 @@
"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,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -180,6 +194,7 @@
"fieldtype": "Attach",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Image",
@@ -188,6 +203,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -203,6 +219,7 @@
"fieldtype": "Image",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Image View",
@@ -212,6 +229,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -227,6 +245,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Quantity and Rate",
@@ -234,6 +253,7 @@
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -249,6 +269,7 @@
"fieldtype": "Float",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Quantity",
@@ -258,6 +279,7 @@
"oldfieldtype": "Currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"print_width": "60px",
"read_only": 0,
"report_hide": 0,
@@ -275,6 +297,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Price List Rate",
@@ -283,6 +306,7 @@
"options": "currency",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -299,6 +323,7 @@
"fieldtype": "Percent",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Discount on Price List Rate (%)",
@@ -306,6 +331,7 @@
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -321,12 +347,14 @@
"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,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -342,6 +370,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "UOM",
@@ -352,6 +381,7 @@
"options": "UOM",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"print_width": "100px",
"read_only": 0,
"report_hide": 0,
@@ -369,6 +399,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Price List Rate (Company Currency)",
@@ -377,6 +408,7 @@
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -392,12 +424,14 @@
"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,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -413,6 +447,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Rate ",
@@ -423,6 +458,7 @@
"options": "currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -438,6 +474,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Amount",
@@ -448,6 +485,7 @@
"options": "currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -463,12 +501,14 @@
"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,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -484,6 +524,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Rate (Company Currency)",
@@ -494,6 +535,7 @@
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"print_width": "100px",
"read_only": 1,
"report_hide": 0,
@@ -511,6 +553,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Amount (Company Currency)",
@@ -521,6 +564,7 @@
"options": "Company:company:default_currency",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 1,
@@ -536,6 +580,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Pricing Rule",
@@ -544,6 +589,7 @@
"options": "Pricing Rule",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -559,6 +605,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -566,6 +613,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -581,6 +629,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Net Rate",
@@ -589,6 +638,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -604,6 +654,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Net Amount",
@@ -613,6 +664,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -628,6 +680,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -635,6 +688,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -650,6 +704,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Net Rate (Company Currency)",
@@ -659,6 +714,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -674,6 +730,7 @@
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Net Amount (Company Currency)",
@@ -683,6 +740,7 @@
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -698,6 +756,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Warehouse and Reference",
@@ -705,6 +764,7 @@
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -720,6 +780,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "Warehouse",
@@ -730,6 +791,7 @@
"options": "Warehouse",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -741,18 +803,20 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"fieldname": "project_name",
"fieldname": "project",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Project Name",
"label": "Project",
"length": 0,
"no_copy": 0,
"options": "Project",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -768,6 +832,7 @@
"fieldtype": "Data",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Prevdoc DocType",
@@ -777,6 +842,7 @@
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -792,6 +858,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Material Request No",
@@ -802,6 +869,7 @@
"options": "Material Request",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"print_width": "120px",
"read_only": 1,
"report_hide": 0,
@@ -819,12 +887,14 @@
"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,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -840,6 +910,7 @@
"fieldtype": "Data",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Material Request Detail No",
@@ -849,6 +920,7 @@
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -864,6 +936,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Brand",
@@ -874,6 +947,7 @@
"options": "Brand",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -890,6 +964,7 @@
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
"in_list_view": 0,
"label": "Item Group",
@@ -900,6 +975,7 @@
"options": "Item Group",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 0,
@@ -913,9 +989,10 @@
"collapsible": 0,
"description": "Tax detail table fetched from item master as a string and stored in this field.\nUsed for Taxes and Charges",
"fieldname": "item_tax_rate",
"fieldtype": "Small Text",
"fieldtype": "Code",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Item Tax Rate",
@@ -925,6 +1002,7 @@
"oldfieldtype": "Small Text",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"report_hide": 1,
"reqd": 0,
@@ -940,6 +1018,7 @@
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Page Break",
@@ -949,6 +1028,7 @@
"oldfieldtype": "Check",
"permlevel": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
@@ -966,7 +1046,7 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
"modified": "2015-11-16 06:29:58.833849",
"modified": "2016-03-18 05:15:03.936587",
"modified_by": "Administrator",
"module": "Buying",
"name": "Supplier Quotation Item",

File diff suppressed because one or more lines are too long

View File

@@ -2,16 +2,17 @@
"add_total_row": 1,
"apply_user_permissions": 1,
"creation": "2013-05-03 14:55:53",
"disabled": 0,
"docstatus": 0,
"doctype": "Report",
"idx": 1,
"is_standard": "Yes",
"modified": "2015-03-30 05:39:39.876374",
"modified": "2016-04-01 08:26:52.361800",
"modified_by": "Administrator",
"module": "Buying",
"name": "Item-wise Purchase History",
"owner": "Administrator",
"query": "select\n po_item.item_code as \"Item Code:Link/Item:120\",\n\tpo_item.item_name as \"Item Name::120\",\n\tpo_item.description as \"Description::150\",\n\tpo_item.qty as \"Qty:Float:100\",\n\tpo_item.stock_uom as \"UOM:Link/UOM:80\",\n\tpo_item.base_rate as \"Rate:Currency:120\",\n\tpo_item.base_amount as \"Amount:Currency:120\",\n\tpo.name as \"Purchase Order:Link/Purchase Order:120\",\n\tpo.transaction_date as \"Transaction Date:Date:140\",\n\tpo.supplier as \"Supplier:Link/Supplier:130\",\n\tpo_item.project_name as \"Project:Link/Project:130\",\n\tifnull(po_item.received_qty, 0) as \"Received Qty:Float:120\",\n\tpo.company as \"Company:Link/Company:\"\nfrom\n\t`tabPurchase Order` po, `tabPurchase Order Item` po_item\nwhere\n\tpo.name = po_item.parent and po.docstatus = 1\norder by po.name desc",
"query": "select\n po_item.item_code as \"Item Code:Link/Item:120\",\n\tpo_item.item_name as \"Item Name::120\",\n po_item.item_group as \"Item Group:Link/Item Group:120\",\n\tpo_item.description as \"Description::150\",\n\tpo_item.qty as \"Qty:Float:100\",\n\tpo_item.uom as \"UOM:Link/UOM:80\",\n\tpo_item.base_rate as \"Rate:Currency:120\",\n\tpo_item.base_amount as \"Amount:Currency:120\",\n\tpo.name as \"Purchase Order:Link/Purchase Order:120\",\n\tpo.transaction_date as \"Transaction Date:Date:140\",\n\tpo.supplier as \"Supplier:Link/Supplier:130\",\n sup.supplier_name as \"Supplier Name::150\",\n\tpo_item.project as \"Project:Link/Project:130\",\n\tifnull(po_item.received_qty, 0) as \"Received Qty:Float:120\",\n\tpo.company as \"Company:Link/Company:\"\nfrom\n\t`tabPurchase Order` po, `tabPurchase Order Item` po_item, `tabSupplier` sup\nwhere\n\tpo.name = po_item.parent and po.supplier = sup.name and po.docstatus = 1\norder by po.name desc",
"ref_doctype": "Purchase Order",
"report_name": "Item-wise Purchase History",
"report_type": "Query Report"

View File

@@ -0,0 +1,3 @@
- Customer history (Quototations, Sales Invoices etc) can been seen in Customer timeline (based on permissions)
- Default Warehouse not mandatory in Item
- Use **Pricing Rule** of template in case of Item variant, if not Pricing Rule for Item variant is defined.

View File

@@ -0,0 +1,4 @@
- **Compact Item Print**: Show only "Description", "Quantity", "Rate" and "Amount" field in Print for the Item table. This can be enabled from *Setup > Customize > Features Setup*. Contributed by [Shasha Qin](https://github.com/ShashaQin).
- **Make Employee** from an Offer Letter
- **View Bank Entries** for an Expense Claim
- Fix: Get open Sales Orders for a specific Item in Production Planning Tool. Contributed by [Javier Wong](https://discuss.erpnext.com/users/bohlian/activity).

View File

@@ -0,0 +1,3 @@
- Employee Attendance Report: Also show inactive employees
- Bank Reconciliation table: Show Debit/Credit
- Allow a rounding loss of upto 1.0 instead of 0.05 when posting General Ledger Entry

View File

@@ -0,0 +1,10 @@
- Material Request for manufacturing, plan production based on Material Request via Production Planning Tool
- Merged **STOP** and **Close** button to a single button **Close**
- Reorder level can be set as zero
- Added Stock balance in Quotation Item table
- **Payment Request and Payment Gateway**
- Create Payment Request from Sales Order / Sales Invoice
- Install paypal_integration application and setup as a Payment Gateway
- Give link of PayPal payment page to your customer
- On sucessful payment, system will create payment entry automatically and update Payment Request status
- Payment option in shopping cart

View File

@@ -0,0 +1,9 @@
- **Multilingual Print Formats**
- Select language in Customer/Supplier
- Select print language in translations
- Language selector in Print Format preview
- Item name, description translatable via **Custom Translations**
- Publish **Job Openings** on the website and let applicants apply directly from the website
- Cleanup of **recurring orders and invoices**
- Email notifications are now optional
- Auto submit on creation is now also optional

View File

@@ -0,0 +1,5 @@
- Improved logic to hide accounts with zero values in Balance Sheet and Profit & Loss
- Item Code or Warehouse filter mandatory in Stock Balance Report
- For Item table print, combine Item Code, Item Name, Description and additional columns in Description only if **Compact Item Print** is checked in **Features Setup**
- **Disable 'In Words'** from all documents via Setup > Global Settings
- Bug fix: Paid Amount in POS view when the default Mode of Payment is not Cash

View File

@@ -0,0 +1,5 @@
- Fiscal Year has been removed from Transactions
- Holiday List based on From Date and To Date
- Valuation Rate and Gross Profit in Sales Order Item row
- Shopify sync status will be logged in Shopify Log
- Item Code or Warehouse filter mandatory in Stock Balance Report, if number of Stock Ledger Entries is greater than 500000

View File

@@ -0,0 +1,3 @@
- New Grouping in Module Pages
- Shipping Address in purchase cycle
- Improved Leave Application workflow

View File

@@ -4,14 +4,8 @@ from frappe import _
def get_data():
return [
{
"label": _("Documents"),
"icon": "icon-star",
"label": _("Billing"),
"items": [
{
"type": "doctype",
"name": "Journal Entry",
"description": _("Accounting journal entries.")
},
{
"type": "doctype",
"name": "Sales Invoice",
@@ -22,6 +16,59 @@ def get_data():
"name": "Purchase Invoice",
"description": _("Bills raised by Suppliers.")
},
{
"type": "doctype",
"name": "Payment Request",
"description": _("Payment Request")
},
{
"type": "report",
"name": "Accounts Receivable",
"doctype": "Sales Invoice",
"is_query_report": True
},
{
"type": "report",
"name": "Accounts Payable",
"doctype": "Purchase Invoice",
"is_query_report": True
},
]
},
{
"label": _("Company and Accounts"),
"items": [
{
"type": "doctype",
"name": "Company",
"description": _("Company (not Customer or Supplier) master.")
},
{
"type": "doctype",
"name": "Journal Entry",
"description": _("Accounting journal entries.")
},
{
"type": "page",
"name": "Accounts Browser",
"icon": "icon-sitemap",
"label": _("Chart of Accounts"),
"route": "Accounts Browser/Account",
"description": _("Tree of financial accounts."),
"doctype": "Account",
},
{
"type": "report",
"name":"General Ledger",
"doctype": "GL Entry",
"is_query_report": True,
},
]
},
{
"label": _("Masters"),
"items": [
{
"type": "doctype",
"name": "Customer",
@@ -34,93 +81,76 @@ def get_data():
},
{
"type": "doctype",
"name": "Payment Request",
"description": _("Payment Request")
},
{
"type": "page",
"name": "Accounts Browser",
"icon": "icon-sitemap",
"label": _("Chart of Accounts"),
"route": "Accounts Browser/Account",
"description": _("Tree of finanial accounts."),
"doctype": "Account",
"name": "Item",
},
]
},
{
"label": _("Tools"),
"icon": "icon-wrench",
"label": _("Accounting Statements"),
"items": [
{
"type": "doctype",
"name": "Bank Reconciliation",
"description": _("Update bank payment dates with journals.")
"type": "report",
"name": "Trial Balance",
"doctype": "GL Entry",
"is_query_report": True,
},
{
"type": "doctype",
"name": "Payment Reconciliation",
"description": _("Match non-linked Invoices and Payments.")
"type": "report",
"name": "Balance Sheet",
"doctype": "GL Entry",
"is_query_report": True
},
{
"type": "doctype",
"name": "Period Closing Voucher",
"description": _("Close Balance Sheet and book Profit or Loss.")
"type": "report",
"name": "Cash Flow",
"doctype": "GL Entry",
"is_query_report": True
},
{
"type": "report",
"name": "Profit and Loss Statement",
"doctype": "GL Entry",
"is_query_report": True
},
]
},
{
"label": _("Banking and Payments"),
"items": [
{
"type": "doctype",
"name": "Payment Tool",
"description": _("Create Payment Entries against Orders or Invoices.")
},
{
"type": "doctype",
"label": _("Update Bank Transaction Dates"),
"name": "Bank Reconciliation",
"description": _("Update bank payment dates with journals.")
},
{
"type": "doctype",
"label": _("Match Payments with Invoices"),
"name": "Payment Reconciliation",
"description": _("Match non-linked Invoices and Payments.")
},
{
"type": "report",
"name": "Bank Reconciliation Statement",
"is_query_report": True,
"doctype": "Journal Entry"
},
{
"type": "report",
"name": "Bank Clearance Summary",
"is_query_report": True,
"doctype": "Journal Entry"
},
]
},
{
"label": _("Setup"),
"icon": "icon-cog",
"label": _("Taxes"),
"items": [
{
"type": "doctype",
"name": "Company",
"description": _("Company (not Customer or Supplier) master.")
},
{
"type": "doctype",
"name": "Fiscal Year",
"description": _("Financial / accounting year.")
},
{
"type": "doctype",
"name": "Payment Gateway Account",
"description": _("Setup Gateway accounts.")
},
{
"type": "page",
"name": "Accounts Browser",
"icon": "icon-sitemap",
"label": _("Chart of Accounts"),
"route": "Accounts Browser/Account",
"description": _("Tree of finanial accounts."),
"doctype": "Account",
},
{
"type": "page",
"name": "Accounts Browser",
"icon": "icon-sitemap",
"label": _("Chart of Cost Centers"),
"route": "Accounts Browser/Cost Center",
"description": _("Tree of finanial Cost Centers."),
"doctype": "Cost Center",
},
{
"type": "doctype",
"name": "Accounts Settings",
"description": _("Default settings for accounting transactions.")
},
{
"type": "doctype",
"name": "Tax Rule",
"description": _("Tax Rule for transactions.")
},
{
"type": "doctype",
"name": "Sales Taxes and Charges Template",
@@ -133,19 +163,71 @@ def get_data():
},
{
"type": "doctype",
"name": "POS Profile",
"label": _("Point-of-Sale Profile"),
"description": _("Rules to calculate shipping amount for a sale")
"name": "Tax Rule",
"description": _("Tax Rule for transactions.")
},
{
"type": "report",
"name": "Sales Register",
"doctype": "Sales Invoice",
"is_query_report": True
},
{
"type": "report",
"name": "Purchase Register",
"doctype": "Purchase Invoice",
"is_query_report": True
},
]
},
{
"label": _("Budget and Cost Center"),
"items": [
{
"type": "page",
"name": "Accounts Browser",
"icon": "icon-sitemap",
"label": _("Chart of Cost Centers"),
"route": "Accounts Browser/Cost Center",
"description": _("Tree of financial Cost Centers."),
"doctype": "Cost Center",
},
{
"type": "report",
"name": "Budget Variance Report",
"is_query_report": True,
"doctype": "Cost Center"
},
{
"type":"doctype",
"name": "Monthly Distribution",
"description": _("Seasonality for setting budgets, targets etc.")
},
]
},
{
"label": _("Tools"),
"items": [
{
"type": "doctype",
"name": "Period Closing Voucher",
"description": _("Close Balance Sheet and book Profit or Loss.")
},
]
},
{
"label": _("Setup"),
"icon": "icon-cog",
"items": [
{
"type": "doctype",
"name": "Accounts Settings",
"description": _("Default settings for accounting transactions.")
},
{
"type": "doctype",
"name": "Shipping Rule",
"description": _("Rules for adding shipping costs.")
},
{
"type": "doctype",
"name": "Pricing Rule",
"description": _("Rules for applying pricing and discount.")
"name": "Fiscal Year",
"description": _("Financial / accounting year.")
},
{
"type": "doctype",
@@ -158,9 +240,15 @@ def get_data():
"description": _("Currency exchange rate master.")
},
{
"type":"doctype",
"name": "Monthly Distribution",
"description": _("Seasonality for setting budgets, targets etc.")
"type": "doctype",
"name": "Payment Gateway Account",
"description": _("Setup Gateway accounts.")
},
{
"type": "doctype",
"name": "POS Profile",
"label": _("Point-of-Sale Profile"),
"description": _("Rules to calculate shipping amount for a sale")
},
{
"type": "doctype",
@@ -182,93 +270,8 @@ def get_data():
]
},
{
"label": _("Main Reports"),
"icon": "icon-table",
"label": _("To Bill"),
"items": [
{
"type": "report",
"name":"General Ledger",
"doctype": "GL Entry",
"is_query_report": True,
},
{
"type": "report",
"name": "Trial Balance",
"doctype": "GL Entry",
"is_query_report": True,
},
{
"type": "report",
"name": "Trial Balance for Party",
"doctype": "GL Entry",
"is_query_report": True,
},
{
"type": "report",
"name": "Gross Profit",
"doctype": "Sales Invoice",
"is_query_report": True
},
{
"type": "report",
"name": "Accounts Receivable",
"doctype": "Sales Invoice",
"is_query_report": True
},
{
"type": "report",
"name": "Accounts Payable",
"doctype": "Purchase Invoice",
"is_query_report": True
},
{
"type": "report",
"name": "Sales Register",
"doctype": "Sales Invoice",
"is_query_report": True
},
{
"type": "report",
"name": "Purchase Register",
"doctype": "Purchase Invoice",
"is_query_report": True
},
{
"type": "report",
"name": "Balance Sheet",
"doctype": "GL Entry",
"is_query_report": True
},
{
"type": "report",
"name": "Cash Flow",
"doctype": "GL Entry",
"is_query_report": True
},
{
"type": "report",
"name": "Profit and Loss Statement",
"doctype": "GL Entry",
"is_query_report": True
},
{
"type": "page",
"name": "financial-analytics",
"label": _("Financial Analytics"),
"icon": "icon-bar-chart",
}
]
},
{
"label": _("Standard Reports"),
"icon": "icon-list",
"items": [
{
"type": "report",
"name": "Bank Reconciliation Statement",
"is_query_report": True,
"doctype": "Journal Entry"
},
{
"type": "report",
"name": "Ordered Items To Be Billed",
@@ -293,11 +296,47 @@ def get_data():
"is_query_report": True,
"doctype": "Purchase Invoice"
},
]
},
{
"label": _("Analytics"),
"items": [
{
"type": "page",
"name": "financial-analytics",
"label": _("Financial Analytics"),
"icon": "icon-bar-chart",
},
{
"type": "report",
"name": "Bank Clearance Summary",
"name": "Gross Profit",
"doctype": "Sales Invoice",
"is_query_report": True
},
{
"type": "report",
"name": "Purchase Invoice Trends",
"is_query_report": True,
"doctype": "Purchase Invoice"
},
{
"type": "report",
"name": "Sales Invoice Trends",
"is_query_report": True,
"doctype": "Sales Invoice"
},
]
},
{
"label": _("Other Reports"),
"icon": "icon-table",
"items": [
{
"type": "report",
"name": "Trial Balance for Party",
"doctype": "GL Entry",
"is_query_report": True,
"doctype": "Journal Entry"
},
{
"type": "report",
@@ -323,24 +362,6 @@ def get_data():
"is_query_report": True,
"doctype": "Purchase Invoice"
},
{
"type": "report",
"name": "Budget Variance Report",
"is_query_report": True,
"doctype": "Cost Center"
},
{
"type": "report",
"name": "Purchase Invoice Trends",
"is_query_report": True,
"doctype": "Purchase Invoice"
},
{
"type": "report",
"name": "Sales Invoice Trends",
"is_query_report": True,
"doctype": "Sales Invoice"
},
{
"type": "report",
"name": "Accounts Receivable Summary",

View File

@@ -4,14 +4,9 @@ from frappe import _
def get_data():
return [
{
"label": _("Documents"),
"label": _("Purchasing"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "Supplier",
"description": _("Supplier database."),
},
{
"type": "doctype",
"name": "Material Request",
@@ -27,6 +22,21 @@ def get_data():
"name": "Purchase Order",
"description": _("Purchase Orders given to Suppliers."),
},
]
},
{
"label": _("Supplier"),
"items": [
{
"type": "doctype",
"name": "Supplier",
"description": _("Supplier database."),
},
{
"type": "doctype",
"name": "Supplier Type",
"description": _("Supplier Type master.")
},
{
"type": "doctype",
"name": "Contact",
@@ -37,11 +47,7 @@ def get_data():
"name": "Address",
"description": _("All Addresses."),
},
{
"type": "doctype",
"name": "Item",
"description": _("All Products or Services."),
},
]
},
{
@@ -53,20 +59,6 @@ def get_data():
"name": "Buying Settings",
"description": _("Default settings for buying transactions.")
},
{
"type": "doctype",
"name": "Supplier Type",
"description": _("Supplier Type master.")
},
{
"type": "page",
"name": "Sales Browser",
"icon": "icon-sitemap",
"label": _("Item Group Tree"),
"link": "Sales Browser/Item Group",
"description": _("Tree of Item Groups."),
"doctype": "Item Group",
},
{
"type": "doctype",
"name":"Terms and Conditions",
@@ -78,11 +70,35 @@ def get_data():
"name": "Purchase Taxes and Charges Template",
"description": _("Tax template for buying transactions.")
},
]
},
{
"label": _("Items and Pricing"),
"items": [
{
"type": "doctype",
"name": "Item",
"description": _("All Products or Services."),
},
{
"type": "doctype",
"name": "Product Bundle",
"description": _("Bundle items at time of sale."),
},
{
"type": "doctype",
"name": "Price List",
"description": _("Price List master.")
},
{
"type": "page",
"name": "Sales Browser",
"icon": "icon-sitemap",
"label": _("Item Group"),
"link": "Sales Browser/Item Group",
"description": _("Tree of Item Groups."),
"doctype": "Item Group",
},
{
"type": "doctype",
"name": "Item Price",
@@ -94,10 +110,11 @@ def get_data():
"name": "Pricing Rule",
"description": _("Rules for applying pricing and discount.")
},
]
},
{
"label": _("Main Reports"),
"label": _("Analytics"),
"icon": "icon-table",
"items": [
{
@@ -106,10 +123,22 @@ def get_data():
"label": _("Purchase Analytics"),
"icon": "icon-bar-chart",
},
{
"type": "report",
"is_query_report": True,
"name": "Supplier-Wise Sales Analytics",
"doctype": "Stock Ledger Entry"
},
{
"type": "report",
"is_query_report": True,
"name": "Purchase Order Trends",
"doctype": "Purchase Order"
},
]
},
{
"label": _("Standard Reports"),
"label": _("Other Reports"),
"icon": "icon-list",
"items": [
{
@@ -136,24 +165,12 @@ def get_data():
"name": "Item-wise Purchase History",
"doctype": "Item"
},
{
"type": "report",
"is_query_report": True,
"name": "Purchase Order Trends",
"doctype": "Purchase Order"
},
{
"type": "report",
"is_query_report": True,
"name": "Supplier Addresses and Contacts",
"doctype": "Supplier"
},
{
"type": "report",
"is_query_report": True,
"name": "Supplier-Wise Sales Analytics",
"doctype": "Stock Ledger Entry"
}
]
},
{

View File

@@ -3,7 +3,7 @@ from frappe import _
def get_data():
return [
{
"label": _("Documents"),
"label": _("Sales Pipeline"),
"icon": "icon-star",
"items": [
{
@@ -13,19 +13,55 @@ def get_data():
},
{
"type": "doctype",
"name": "Customer",
"description": _("Customer database."),
"name": "Opportunity",
"description": _("Potential opportunities for selling."),
},
{
"type": "doctype",
"name": "Opportunity",
"description": _("Potential opportunities for selling."),
"name": "Customer",
"description": _("Customer database."),
},
{
"type": "doctype",
"name": "Contact",
"description": _("All Contacts."),
},
]
},
{
"label": _("Reports"),
"icon": "icon-list",
"items": [
{
"type": "page",
"name": "sales-funnel",
"label": _("Sales Funnel"),
"icon": "icon-bar-chart",
},
{
"type": "report",
"is_query_report": True,
"name": "Lead Details",
"doctype": "Lead"
},
{
"type": "report",
"is_query_report": True,
"name": "Customer Addresses and Contacts",
"doctype": "Contact"
},
{
"type": "report",
"is_query_report": True,
"name": "Inactive Customers",
"doctype": "Sales Order"
},
]
},
{
"label": _("Communication"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "Newsletter",
@@ -38,22 +74,6 @@ def get_data():
},
]
},
{
"label": _("Tools"),
"icon": "icon-wrench",
"items": [
{
"type": "doctype",
"name": "SMS Center",
"description":_("Send mass SMS to your contacts"),
},
{
"type": "doctype",
"name": "SMS Log",
"description":_("Logs for maintaining sms delivery status"),
}
]
},
{
"label": _("Setup"),
"icon": "icon-cog",
@@ -95,47 +115,27 @@ def get_data():
"name": "Newsletter List",
"description": _("Newsletter Mailing List"),
},
]
},
{
"label": _("SMS"),
"icon": "icon-wrench",
"items": [
{
"type": "doctype",
"name": "SMS Center",
"description":_("Send mass SMS to your contacts"),
},
{
"type": "doctype",
"name": "SMS Log",
"description":_("Logs for maintaining sms delivery status"),
},
{
"type": "doctype",
"name": "SMS Settings",
"description": _("Setup SMS gateway settings")
},
]
},
{
"label": _("Main Reports"),
"icon": "icon-table",
"items": [
{
"type": "page",
"name": "sales-funnel",
"label": _("Sales Funnel"),
"icon": "icon-bar-chart",
},
]
},
{
"label": _("Standard Reports"),
"icon": "icon-list",
"items": [
{
"type": "report",
"is_query_report": True,
"name": "Lead Details",
"doctype": "Lead"
},
{
"type": "report",
"is_query_report": True,
"name": "Customer Addresses and Contacts",
"doctype": "Contact"
},
{
"type": "report",
"is_query_report": True,
"name": "Customers Not Buying Since Long Time",
"doctype": "Sales Order"
},
}
]
},
{

View File

@@ -9,6 +9,13 @@ def get_data():
"icon": "octicon octicon-repo",
"type": "module"
},
{
"module_name": "Stock",
"color": "#f39c12",
"icon": "icon-truck",
"icon": "octicon octicon-package",
"type": "module"
},
{
"module_name": "CRM",
"color": "#EF4DB6",
@@ -60,13 +67,6 @@ def get_data():
"icon": "octicon octicon-rocket",
"type": "module"
},
{
"module_name": "Stock",
"color": "#f39c12",
"icon": "icon-truck",
"icon": "octicon octicon-package",
"type": "module"
},
{
"module_name": "Support",
"color": "#2c3e50",

View File

@@ -23,5 +23,5 @@ def get_context(context):
context.top_bar_items = [
{"label": "User Manual", "url": context.docs_base_url + "/user/manual", "right": 1},
{"label": "Videos", "url": context.docs_base_url + "/user/videos", "right": 1},
{"label": "Developer Docs", "url": context.docs_base_url + "/current", "right": 1}
{"label": "API Documentation", "url": context.docs_base_url + "/current", "right": 1}
]

View File

@@ -4,8 +4,7 @@ from frappe import _
def get_data():
return [
{
"label": _("Documents"),
"icon": "icon-star",
"label": _("Employee and Attendance"),
"items": [
{
"type": "doctype",
@@ -14,13 +13,10 @@ def get_data():
},
{
"type": "doctype",
"name": "Leave Application",
"description": _("Applications for leave."),
},
{
"type": "doctype",
"name": "Expense Claim",
"description": _("Claims for company expense."),
"name": "Employee Attendance Tool",
"label": _("Employee Attendance Tool"),
"description":_("Mark Employee Attendance in Bulk"),
"hide_count": True
},
{
"type": "doctype",
@@ -29,14 +25,15 @@ def get_data():
},
{
"type": "doctype",
"name": "Salary Slip",
"description": _("Monthly salary statement."),
},
{
"type": "doctype",
"name": "Appraisal",
"description": _("Performance appraisal."),
"name": "Upload Attendance",
"description":_("Upload attendance from a .csv file"),
"hide_count": True
},
]
},
{
"label": _("Recruitment"),
"items": [
{
"type": "doctype",
"name": "Job Applicant",
@@ -55,21 +52,50 @@ def get_data():
]
},
{
"label": _("Tools"),
"icon": "icon-wrench",
"label": _("Leaves and Holiday"),
"items": [
{
"type": "doctype",
"name": "Employee Attendance Tool",
"label": _("Employee Attendance Tool"),
"description":_("Mark Employee Attendance in Bulk"),
"name": "Leave Application",
"description": _("Applications for leave."),
},
{
"type": "doctype",
"name":"Leave Type",
"description": _("Type of leaves like casual, sick etc."),
},
{
"type": "doctype",
"name": "Holiday List",
"description": _("Holiday master.")
},
{
"type": "doctype",
"name": "Leave Allocation",
"description": _("Allocate leaves for a period.")
},
{
"type": "doctype",
"name": "Leave Control Panel",
"label": _("Leave Allocation Tool"),
"description":_("Allocate leaves for the year."),
"hide_count": True
},
{
"type": "doctype",
"name": "Upload Attendance",
"description":_("Upload attendance from a .csv file"),
"hide_count": True
"name": "Leave Block List",
"description": _("Block leave applications by department.")
},
]
},
{
"label": _("Payroll"),
"items": [
{
"type": "doctype",
"name": "Salary Slip",
"description": _("Monthly salary statement."),
},
{
"type": "doctype",
@@ -78,14 +104,60 @@ def get_data():
"description":_("Generate Salary Slips"),
"hide_count": True
},
{
"type": "doctype",
"name": "Leave Control Panel",
"label": _("Leave Allocation Tool"),
"description":_("Allocate leaves for the year."),
"hide_count": True
"name": "Salary Structure",
"description": _("Salary template master.")
},
{
"type": "doctype",
"name": "Earning Type",
"description": _("Salary components.")
},
{
"type": "doctype",
"name": "Deduction Type",
"description": _("Tax and other salary deductions.")
},
]
},
{
"label": _("Expense Claims"),
"items": [
{
"type": "doctype",
"name": "Expense Claim",
"description": _("Claims for company expense."),
},
{
"type": "doctype",
"name": "Expense Claim Type",
"description": _("Types of Expense Claim.")
},
]
},
{
"label": _("Appraisals"),
"items": [
{
"type": "doctype",
"name": "Appraisal",
"description": _("Performance appraisal."),
},
{
"type": "doctype",
"name": "Appraisal Template",
"description": _("Template for performance appraisals.")
},
]
},
{
"label": _("Tools"),
"icon": "icon-wrench",
"items": [
]
},
{
@@ -117,60 +189,10 @@ def get_data():
"name": "Designation",
"description": _("Employee designation (e.g. CEO, Director etc.).")
},
{
"type": "doctype",
"name": "Salary Structure",
"description": _("Salary template master.")
},
{
"type": "doctype",
"name": "Earning Type",
"description": _("Salary components.")
},
{
"type": "doctype",
"name": "Deduction Type",
"description": _("Tax and other salary deductions.")
},
{
"type": "doctype",
"name": "Leave Allocation",
"description": _("Allocate leaves for a period.")
},
{
"type": "doctype",
"name":"Leave Type",
"description": _("Type of leaves like casual, sick etc."),
},
{
"type": "doctype",
"name": "Holiday List",
"description": _("Holiday master.")
},
{
"type": "doctype",
"name": "Leave Block List",
"description": _("Block leave applications by department.")
},
{
"type": "doctype",
"name": "Appraisal Template",
"description": _("Template for performance appraisals.")
},
{
"type": "doctype",
"name": "Expense Claim Type",
"description": _("Types of Expense Claim.")
},
{
"type": "doctype",
"name": "Email Account",
"description": _("Setup incoming server for jobs email id. (e.g. jobs@example.com)")
},
]
},
{
"label": _("Standard Reports"),
"label": _("Reports"),
"icon": "icon-list",
"items": [
{

View File

@@ -4,25 +4,48 @@ from frappe import _
def get_data():
return [
{
"label": _("Documents"),
"label": _("Production"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "BOM",
"description": _("Bill of Materials (BOM)"),
"label": _("Bill of Material")
},
{
"type": "doctype",
"name": "Production Order",
"description": _("Orders released for production."),
},
{
"type": "doctype",
"name": "Production Planning Tool",
"description": _("Generate Material Requests (MRP) and Production Orders."),
},
{
"type": "doctype",
"name": "Stock Entry",
},
{
"type": "doctype",
"name": "Time Log",
"description": _("Time Logs for manufacturing."),
},
]
},
{
"label": _("Bill of Materials"),
"items": [
{
"type": "doctype",
"name": "BOM",
"description": _("Bill of Materials (BOM)"),
"label": _("Bill of Materials")
},
{
"type": "page",
"name": "bom-browser",
"icon": "icon-sitemap",
"label": _("BOM Browser"),
"description": _("Tree of Bill of Materials"),
"doctype": "BOM"
},
{
"type": "doctype",
"name": "Item",
@@ -45,24 +68,11 @@ def get_data():
"label": _("Tools"),
"icon": "icon-wrench",
"items": [
{
"type": "doctype",
"name": "Production Planning Tool",
"description": _("Generate Material Requests (MRP) and Production Orders."),
},
{
"type": "doctype",
"name": "BOM Replace Tool",
"description": _("Replace Item / BOM in all BOMs"),
},
{
"type": "page",
"name": "bom-browser",
"icon": "icon-sitemap",
"label": _("BOM Browser"),
"description": _("Tree of Bill of Materials"),
"doctype": "BOM"
}
]
},
{
@@ -76,7 +86,7 @@ def get_data():
]
},
{
"label": _("Standard Reports"),
"label": _("Reports"),
"icon": "icon-list",
"items": [
{

View File

@@ -4,19 +4,31 @@ from frappe import _
def get_data():
return [
{
"label": _("Documents"),
"label": _("Projects"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "Project",
"description": _("Project master."),
},
{
"type": "doctype",
"name": "Task",
"description": _("Project activity / task."),
},
{
"type": "doctype",
"name": "Project",
"description": _("Project master."),
"type": "report",
"route": "Gantt/Task",
"doctype": "Task",
"name": "Gantt Chart",
"description": _("Gantt chart of all tasks.")
},
]
},
{
"label": _("Time Tracking"),
"items": [
{
"type": "doctype",
"name": "Time Log",
@@ -40,20 +52,7 @@ def get_data():
]
},
{
"label": _("Tools"),
"icon": "icon-wrench",
"items": [
{
"type": "report",
"route": "Gantt/Task",
"doctype": "Task",
"name": "Gantt Chart",
"description": _("Gantt chart of all tasks.")
},
]
},
{
"label": _("Standard Reports"),
"label": _("Reports"),
"icon": "icon-list",
"items": [
{

View File

@@ -4,14 +4,9 @@ from frappe import _
def get_data():
return [
{
"label": _("Documents"),
"label": _("Sales"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "Customer",
"description": _("Customer database."),
},
{
"type": "doctype",
"name": "Quotation",
@@ -22,6 +17,25 @@ def get_data():
"name": "Sales Order",
"description": _("Confirmed orders from Customers."),
},
]
},
{
"label": _("Customers"),
"items": [
{
"type": "doctype",
"name": "Customer",
"description": _("Customer database."),
},
{
"type": "page",
"label": _("Customer Group"),
"name": "Sales Browser",
"icon": "icon-sitemap",
"link": "Sales Browser/Customer Group",
"description": _("Manage Customer Group Tree."),
"doctype": "Customer Group",
},
{
"type": "doctype",
"name": "Contact",
@@ -32,57 +46,58 @@ def get_data():
"name": "Address",
"description": _("All Addresses."),
},
]
},
{
"label": _("Items and Pricing"),
"items": [
{
"type": "doctype",
"name": "Item",
"description": _("All Products or Services."),
},
]
},
{
"label": _("Tools"),
"icon": "icon-wrench",
"items": [
{
"type": "doctype",
"name": "SMS Center",
"description":_("Send mass SMS to your contacts"),
"name": "Product Bundle",
"description": _("Bundle items at time of sale."),
},
{
"type": "doctype",
"name": "SMS Log",
"description":_("Logs for maintaining sms delivery status"),
},
{
"type": "doctype",
"name": "Newsletter",
"description": _("Newsletters to contacts, leads."),
},
]
},
{
"label": _("Setup"),
"icon": "icon-cog",
"items": [
{
"type": "doctype",
"name": "Selling Settings",
"description": _("Default settings for selling transactions.")
},
{
"type": "doctype",
"name": "Campaign",
"description": _("Sales campaigns."),
"name": "Price List",
"description": _("Price List master.")
},
{
"type": "page",
"label": _("Customer Group"),
"name": "Sales Browser",
"icon": "icon-sitemap",
"link": "Sales Browser/Customer Group",
"description": _("Manage Customer Group Tree."),
"doctype": "Customer Group",
"label": _("Item Group"),
"link": "Sales Browser/Item Group",
"description": _("Tree of Item Groups."),
"doctype": "Item Group",
},
{
"type": "doctype",
"name": "Item Price",
"description": _("Multiple Item prices."),
"route": "Report/Item Price"
},
{
"type": "doctype",
"name": "Shipping Rule",
"description": _("Rules for adding shipping costs.")
},
{
"type": "doctype",
"name": "Pricing Rule",
"description": _("Rules for applying pricing and discount.")
},
]
},
{
"label": _("Sales Partners and Territory"),
"items": [
{
"type": "page",
"label": _("Territory"),
@@ -107,13 +122,34 @@ def get_data():
"doctype": "Sales Person",
},
{
"type": "page",
"name": "Sales Browser",
"icon": "icon-sitemap",
"label": _("Item Group Tree"),
"link": "Sales Browser/Item Group",
"description": _("Tree of Item Groups."),
"doctype": "Item Group",
"type": "report",
"is_query_report": True,
"name": "Territory Target Variance (Item Group-Wise)",
"route": "query-report/Territory Target Variance Item Group-Wise",
"doctype": "Territory"
},
{
"type": "report",
"is_query_report": True,
"name": "Sales Person Target Variance (Item Group-Wise)",
"route": "query-report/Sales Person Target Variance Item Group-Wise",
"doctype": "Sales Person",
},
]
},
{
"label": _("Setup"),
"icon": "icon-cog",
"items": [
{
"type": "doctype",
"name": "Selling Settings",
"description": _("Default settings for selling transactions.")
},
{
"type": "doctype",
"name": "Campaign",
"description": _("Sales campaigns."),
},
{
"type": "doctype",
@@ -126,51 +162,15 @@ def get_data():
"name": "Sales Taxes and Charges Template",
"description": _("Tax template for selling transactions.")
},
{
"type": "doctype",
"name": "Shipping Rule",
"description": _("Rules for adding shipping costs.")
},
{
"type": "doctype",
"name": "Price List",
"description": _("Price List master.")
},
{
"type": "doctype",
"name": "Item Price",
"description": _("Multiple Item prices."),
"route": "Report/Item Price"
},
{
"type": "doctype",
"name": "Pricing Rule",
"description": _("Rules for applying pricing and discount.")
},
{
"type": "doctype",
"name": "Product Bundle",
"description": _("Bundle items at time of sale."),
},
{
"type": "doctype",
"name": "Email Account",
"description": _("Setup incoming server for sales email id. (e.g. sales@example.com)")
},
{
"type": "doctype",
"name": "Industry Type",
"description": _("Track Leads by Industry Type.")
},
{
"type": "doctype",
"name": "SMS Settings",
"description": _("Setup SMS gateway settings")
},
]
},
{
"label": _("Main Reports"),
"label": _("Analytics"),
"icon": "icon-table",
"items": [
{
@@ -192,10 +192,22 @@ def get_data():
"doctype": "Customer",
"icon": "icon-bar-chart",
},
{
"type": "report",
"is_query_report": True,
"name": "Quotation Trends",
"doctype": "Quotation"
},
{
"type": "report",
"is_query_report": True,
"name": "Sales Order Trends",
"doctype": "Sales Order"
},
]
},
{
"label": _("Standard Reports"),
"label": _("Other Reports"),
"icon": "icon-list",
"items": [
{
@@ -228,20 +240,6 @@ def get_data():
"name": "Item-wise Sales History",
"doctype": "Item"
},
{
"type": "report",
"is_query_report": True,
"name": "Territory Target Variance (Item Group-Wise)",
"route": "query-report/Territory Target Variance Item Group-Wise",
"doctype": "Territory"
},
{
"type": "report",
"is_query_report": True,
"name": "Sales Person Target Variance (Item Group-Wise)",
"route": "query-report/Sales Person Target Variance Item Group-Wise",
"doctype": "Sales Person",
},
{
"type": "report",
"is_query_report": True,
@@ -251,19 +249,7 @@ def get_data():
{
"type": "report",
"is_query_report": True,
"name": "Customers Not Buying Since Long Time",
"doctype": "Sales Order"
},
{
"type": "report",
"is_query_report": True,
"name": "Quotation Trends",
"doctype": "Quotation"
},
{
"type": "report",
"is_query_report": True,
"name": "Sales Order Trends",
"name": "Inactive Customers",
"doctype": "Sales Order"
},
{
@@ -286,6 +272,27 @@ def get_data():
},
]
},
{
"label": _("SMS"),
"icon": "icon-wrench",
"items": [
{
"type": "doctype",
"name": "SMS Center",
"description":_("Send mass SMS to your contacts"),
},
{
"type": "doctype",
"name": "SMS Log",
"description":_("Logs for maintaining sms delivery status"),
},
{
"type": "doctype",
"name": "SMS Settings",
"description": _("Setup SMS gateway settings")
},
]
},
{
"label": _("Help"),
"items": [

View File

@@ -4,19 +4,8 @@ from frappe import _
def get_data():
return [
{
"label": _("Documents"),
"icon": "icon-star",
"label": _("Stock Transactions"),
"items": [
{
"type": "doctype",
"name": "Item",
"description": _("All Products or Services."),
},
{
"type": "doctype",
"name": "Material Request",
"description": _("Requests for items."),
},
{
"type": "doctype",
"name": "Stock Entry",
@@ -34,14 +23,90 @@ def get_data():
},
{
"type": "doctype",
"name": "Installation Note",
"description": _("Installation record for a Serial No.")
"name": "Material Request",
"description": _("Requests for items."),
},
]
},
{
"label": _("Stock Reports"),
"items": [
{
"type": "report",
"is_query_report": True,
"name": "Stock Ledger",
"doctype": "Stock Ledger Entry",
},
{
"type": "report",
"is_query_report": True,
"name": "Stock Balance",
"doctype": "Stock Ledger Entry"
},
{
"type": "report",
"is_query_report": True,
"name": "Stock Projected Qty",
"doctype": "Item",
},
{
"type": "report",
"is_query_report": True,
"name": "Stock Ageing",
"doctype": "Item",
},
]
},
{
"label": _("Items and Pricing"),
"items": [
{
"type": "doctype",
"name": "Item",
"description": _("All Products or Services."),
},
{
"type": "doctype",
"name": "Warehouse",
"description": _("Where items are stored."),
"name": "Product Bundle",
"description": _("Bundle items at time of sale."),
},
{
"type": "doctype",
"name": "Price List",
"description": _("Price List master.")
},
{
"type": "page",
"name": "Sales Browser",
"icon": "icon-sitemap",
"label": _("Item Group"),
"link": "Sales Browser/Item Group",
"description": _("Tree of Item Groups."),
"doctype": "Item Group",
},
{
"type": "doctype",
"name": "Item Price",
"description": _("Multiple Item prices."),
"route": "Report/Item Price"
},
{
"type": "doctype",
"name": "Shipping Rule",
"description": _("Rules for adding shipping costs.")
},
{
"type": "doctype",
"name": "Pricing Rule",
"description": _("Rules for applying pricing and discount.")
},
]
},
{
"label": _("Serial No and Batch"),
"items": [
{
"type": "doctype",
"name": "Serial No",
@@ -52,6 +117,26 @@ def get_data():
"name": "Batch",
"description": _("Batch (lot) of an Item."),
},
{
"type": "doctype",
"name": "Installation Note",
"description": _("Installation record for a Serial No.")
},
{
"type": "report",
"name": "Serial No Service Contract Expiry",
"doctype": "Serial No"
},
{
"type": "report",
"name": "Serial No Status",
"doctype": "Serial No"
},
{
"type": "report",
"name": "Serial No Warranty Expiry",
"doctype": "Serial No"
},
]
},
{
@@ -90,13 +175,9 @@ def get_data():
"description": _("Default settings for stock transactions.")
},
{
"type": "page",
"name": "Sales Browser",
"icon": "icon-sitemap",
"label": _("Item Group Tree"),
"link": "Sales Browser/Item Group",
"description": _("Tree of Item Groups."),
"doctype": "Item Group",
"type": "doctype",
"name": "Warehouse",
"description": _("Where items are stored."),
},
{
"type": "doctype",
@@ -106,60 +187,20 @@ def get_data():
},
{
"type": "doctype",
"name": "Warehouse",
"description": _("Warehouses.")
"name": "Item Attribute",
"description": _("Attributes for Item Variants. e.g Size, Color etc."),
},
{
"type": "doctype",
"name": "Brand",
"description": _("Brand master.")
},
{
"type": "doctype",
"name": "Price List",
"description": _("Price List master.")
},
{
"type": "doctype",
"name": "Item Price",
"description": _("Multiple Item prices."),
"route": "Report/Item Price"
},
{
"type": "doctype",
"name": "Item Attribute",
"description": _("Attributes for Item Variants. e.g Size, Color etc."),
},
]
},
{
"label": _("Main Reports"),
"label": _("Analytics"),
"icon": "icon-table",
"items": [
{
"type": "report",
"is_query_report": True,
"name": "Stock Ledger",
"doctype": "Stock Ledger Entry",
},
{
"type": "report",
"is_query_report": True,
"name": "Stock Balance",
"doctype": "Stock Ledger Entry"
},
{
"type": "report",
"is_query_report": True,
"name": "Stock Projected Qty",
"doctype": "Item",
},
{
"type": "report",
"is_query_report": True,
"name": "Stock Ageing",
"doctype": "Item",
},
{
"type": "report",
"is_query_report": False,
@@ -171,11 +212,24 @@ def get_data():
"name": "stock-analytics",
"label": _("Stock Analytics"),
"icon": "icon-bar-chart"
}
},
{
"type": "report",
"is_query_report": True,
"name": "Delivery Note Trends",
"doctype": "Delivery Note"
},
{
"type": "report",
"is_query_report": True,
"name": "Purchase Receipt Trends",
"doctype": "Purchase Receipt"
},
]
},
{
"label": _("Standard Reports"),
"label": _("Reports"),
"icon": "icon-list",
"items": [
{
@@ -196,21 +250,6 @@ def get_data():
"route": "Report/Bin/Item Shortage Report",
"doctype": "Purchase Receipt"
},
{
"type": "report",
"name": "Serial No Service Contract Expiry",
"doctype": "Serial No"
},
{
"type": "report",
"name": "Serial No Status",
"doctype": "Serial No"
},
{
"type": "report",
"name": "Serial No Warranty Expiry",
"doctype": "Serial No"
},
{
"type": "report",
"is_query_report": True,
@@ -235,18 +274,6 @@ def get_data():
"name": "Itemwise Recommended Reorder Level",
"doctype": "Item"
},
{
"type": "report",
"is_query_report": True,
"name": "Delivery Note Trends",
"doctype": "Delivery Note"
},
{
"type": "report",
"is_query_report": True,
"name": "Purchase Receipt Trends",
"doctype": "Purchase Receipt"
},
]
},
{

View File

@@ -4,8 +4,7 @@ from frappe import _
def get_data():
return [
{
"label": _("Documents"),
"icon": "icon-star",
"label": _("Issues"),
"items": [
{
"type": "doctype",
@@ -14,9 +13,14 @@ def get_data():
},
{
"type": "doctype",
"name": "Warranty Claim",
"description": _("Warranty Claim against Serial No."),
"name": "Communication",
"description": _("Communication log."),
},
]
},
{
"label": _("Maintenance"),
"items": [
{
"type": "doctype",
"name": "Maintenance Schedule",
@@ -28,14 +32,20 @@ def get_data():
"description": _("Visit report for maintenance call."),
},
{
"type": "doctype",
"name": "Newsletter",
"description": _("Newsletters to contacts, leads."),
"type": "report",
"name": "Maintenance Schedules",
"is_query_report": True,
"doctype": "Maintenance Schedule"
},
]
},
{
"label": _("Warranty"),
"items": [
{
"type": "doctype",
"name": "Communication",
"description": _("Communication log."),
"name": "Warranty Claim",
"description": _("Warranty Claim against Serial No."),
},
{
"type": "doctype",
@@ -45,18 +55,7 @@ def get_data():
]
},
{
"label": _("Setup"),
"icon": "icon-cog",
"items": [
{
"type": "doctype",
"name": "Email Account",
"description": _("Setup incoming server for support email id. (e.g. support@example.com)")
},
]
},
{
"label": _("Standard Reports"),
"label": _("Reports"),
"icon": "icon-list",
"items": [
{
@@ -65,12 +64,6 @@ def get_data():
"label": _("Support Analytics"),
"icon": "icon-bar-chart"
},
{
"type": "report",
"name": "Maintenance Schedules",
"is_query_report": True,
"doctype": "Maintenance Schedule"
},
]
},
]

View File

@@ -42,17 +42,14 @@ class AccountsController(TransactionBase):
if self.doctype in ("Sales Invoice", "Purchase Invoice") and not self.is_return:
self.validate_due_date()
if self.meta.get_field("is_recurring"):
validate_recurring_document(self)
if self.meta.get_field("taxes_and_charges"):
self.validate_enabled_taxes_and_charges()
self.validate_party()
self.validate_currency()
def on_submit(self):
if self.meta.get_field("is_recurring"):
if self.meta.get_field("is_recurring") and not self.get("__islocal"):
validate_recurring_document(self)
convert_to_recurring(self, self.get("posting_date") or self.get("transaction_date"))
def on_update_after_submit(self):
@@ -220,10 +217,10 @@ class AccountsController(TransactionBase):
gl_dict = frappe._dict({
'company': self.company,
'posting_date': self.posting_date,
'fiscal_year': get_fiscal_year(self.posting_date, company=self.company)[0],
'voucher_type': self.doctype,
'voucher_no': self.name,
'remarks': self.get("remarks"),
'fiscal_year': self.fiscal_year,
'debit': 0,
'credit': 0,
'debit_in_account_currency': 0,
@@ -239,7 +236,7 @@ class AccountsController(TransactionBase):
if self.doctype not in ["Journal Entry", "Period Closing Voucher"]:
self.validate_account_currency(gl_dict.account, account_currency)
self.set_balance_in_account_currency(gl_dict, account_currency)
set_balance_in_account_currency(gl_dict, account_currency, self.get("conversion_rate"), self.company_currency)
return gl_dict
@@ -252,23 +249,6 @@ class AccountsController(TransactionBase):
frappe.throw(_("Account {0} is invalid. Account Currency must be {1}")
.format(account, _(" or ").join(valid_currency)))
def set_balance_in_account_currency(self, gl_dict, account_currency=None):
if (not self.get("conversion_rate") and account_currency!=self.company_currency):
frappe.throw(_("Account: {0} with currency: {1} can not be selected")
.format(gl_dict.account, account_currency))
gl_dict["account_currency"] = self.company_currency if account_currency==self.company_currency \
else account_currency
# set debit/credit in account currency if not provided
if flt(gl_dict.debit) and not flt(gl_dict.debit_in_account_currency):
gl_dict.debit_in_account_currency = gl_dict.debit if account_currency==self.company_currency \
else flt(gl_dict.debit / (self.get("conversion_rate")), 2)
if flt(gl_dict.credit) and not flt(gl_dict.credit_in_account_currency):
gl_dict.credit_in_account_currency = gl_dict.credit if account_currency==self.company_currency \
else flt(gl_dict.credit / (self.get("conversion_rate")), 2)
def clear_unallocated_advances(self, childtype, parentfield):
self.set(parentfield, self.get(parentfield, {"allocated_amount": ["not in", [0, None, ""]]}))
@@ -541,3 +521,20 @@ def validate_inclusive_tax(tax, doc):
_on_previous_row_error("1 - %d" % (tax.row_id,))
elif tax.get("category") == "Valuation":
frappe.throw(_("Valuation type charges can not marked as Inclusive"))
def set_balance_in_account_currency(gl_dict, account_currency=None, conversion_rate=None, company_currency=None):
if (not conversion_rate) and (account_currency!=company_currency):
frappe.throw(_("Account: {0} with currency: {1} can not be selected")
.format(gl_dict.account, account_currency))
gl_dict["account_currency"] = company_currency if account_currency==company_currency \
else account_currency
# set debit/credit in account currency if not provided
if flt(gl_dict.debit) and not flt(gl_dict.debit_in_account_currency):
gl_dict.debit_in_account_currency = gl_dict.debit if account_currency==company_currency \
else flt(gl_dict.debit / conversion_rate, 2)
if flt(gl_dict.credit) and not flt(gl_dict.credit_in_account_currency):
gl_dict.credit_in_account_currency = gl_dict.credit if account_currency==company_currency \
else flt(gl_dict.credit / conversion_rate, 2)

View File

@@ -1,9 +1,29 @@
# 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.utils import cint
def print_settings_for_item_table(doc):
doc.print_templates = {
"description": "templates/print_formats/includes/item_table_description.html",
"qty": "templates/print_formats/includes/item_table_qty.html"
}
doc.hide_in_print_layout = ["item_code", "item_name", "image", "uom", "stock_uom"]
doc.hide_in_print_layout = ["uom", "stock_uom"]
doc.flags.compact_item_print = cint(frappe.db.get_value("Features Setup", None, "compact_item_print"))
if doc.flags.compact_item_print:
doc.print_templates["description"] = "templates/print_formats/includes/item_table_description.html"
doc.hide_in_print_layout += ["item_code", "item_name", "image"]
doc.flags.compact_item_fields = ["description", "qty", "rate", "amount"]
doc.flags.show_in_description = []
for df in doc.meta.fields:
if df.fieldtype not in ("Section Break", "Column Break", "Button"):
if not doc.is_print_hide(df.fieldname):
if df.fieldname not in doc.hide_in_print_layout and df.fieldname not in doc.flags.compact_item_fields:
doc.hide_in_print_layout.append(df.fieldname)
doc.flags.show_in_description.append(df.fieldname)

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