Compare commits

..

1344 Commits

Author SHA1 Message Date
Nabin Hait
da82674b47 Merge branch 'hotfix' 2017-12-28 18:46:51 +05:30
Nabin Hait
07be33805d bumped to version 10.0.4 2017-12-28 19:16:51 +06:00
rohitwaghchaure
a84d38999c [Fix] Sales order erased on production order on selection of sales order (#12225) 2017-12-28 18:45:27 +05:30
rohitwaghchaure
c9ed09440c Re-execute uae vat patch (#12230) 2017-12-28 18:42:22 +05:30
rohitwaghchaure
fe22686a8f Update last purchase rate from the purchase invoice (#12189) 2017-12-28 16:11:27 +05:30
Nabin Hait
31d7433946 Merge branch 'hotfix' 2017-12-28 14:22:58 +05:30
Nabin Hait
c70a78dcf6 bumped to version 10.0.3 2017-12-28 14:52:57 +06:00
rohitwaghchaure
d45266881a [Enhance] New print format for UAE/KSA for vat/excise (#12202)
* [Enhance] New print format for UAE/KSA for vat/excise

* Fixed spelling
2017-12-28 14:20:13 +05:30
rohitwaghchaure
dbb5ae9a9e [fix] Closing balance showing at wrong side (#12220) 2017-12-28 13:15:21 +05:30
Nabin Hait
ca674bec42 Set numeric ranges in Item tamplate if blank (#12199) 2017-12-28 12:35:11 +05:30
Saurabh
28ce1c0c3a [fix] add flag ignore mandatory (#12201) 2017-12-28 12:34:58 +05:30
Manas Solanki
91017cba8d Additional fields in the instructor doctype for the academics log and minor permission changes (#12204) 2017-12-28 12:34:36 +05:30
Frappe PR Bot
878b5f7e71 [Translation] Updated Translations (#12212) 2017-12-28 12:31:01 +05:30
Manas Solanki
e20a0f1115 [Fix] make PE unique for the combination of academic year and academic term (#12214) 2017-12-28 12:29:11 +05:30
Fahim Ali Zain TP
5f7cedb206 Fix v8 to v10 migration issue (#12177) 2017-12-27 17:14:54 +05:30
Nabin Hait
ff2fb653be Merge branch 'develop' 2017-12-26 18:35:50 +05:30
Nabin Hait
a47ea94ab4 bumped to version 10.0.2 2017-12-26 19:05:49 +06:00
Nabin Hait
58384215b6 Merge branch 'hotfix' 2017-12-26 18:34:16 +05:30
Nabin Hait
9e16697702 Merge branch 'master' into develop 2017-12-26 18:34:16 +05:30
Nabin Hait
451af06d2f bumped to version 10.0.1 2017-12-26 19:04:16 +06:00
Nabin Hait
123759aff7 Fixes for travis (#12161)
* Fixes for travis

* Testcase fixes for get_item_details

* Testcase fixes for get_item_details

* Travis fixes

* Travis fixes
2017-12-26 17:50:34 +05:30
rohitwaghchaure
30e38ff7c7 [Fix] Asset make sales invoice (#12168) 2017-12-26 16:23:06 +05:30
Vishal Dhayagude
f06c281964 [fix] allow to change doc status on get items (#12174) 2017-12-26 16:22:40 +05:30
Manas Solanki
389b9a2be3 Merge pull request #12173 from manassolanki/fix-15
Minor fix
2017-12-26 15:43:19 +05:30
Manas Solanki
5e9d1246e8 remove the autoname from the supplier json 2017-12-26 15:21:03 +05:30
Nabin Hait
7e1dc0d724 Merge branch 'develop' 2017-12-25 15:24:49 +05:30
Nabin Hait
6211a3edf2 bumped to version 10.0.0 2017-12-25 15:54:48 +06:00
Nabin Hait
ed13b3c19a Fixed minor issue 2017-12-25 15:11:56 +05:30
Nabin Hait
c65279b584 Reloaded account doctype in UAE Vat patch 2017-12-25 15:02:54 +05:30
Nabin Hait
92615901a7 Fixed merge conflict 2017-12-25 13:41:04 +05:30
Nabin Hait
537db4c2c7 Merge branch 'hotfix' 2017-12-25 13:38:06 +05:30
Nabin Hait
f4c5cf5bd0 bumped to version 9.2.24 2017-12-25 14:08:05 +06:00
Nabin Hait
e9dabd5cec Settings to show payment schedule in print (#12158) 2017-12-25 13:30:01 +05:30
Prateeksha Singh
293c700c08 Merge pull request #12157 from pratu16x7/setup-fixes
[setup] remove sample data commit, fix namespace
2017-12-25 12:31:23 +05:30
Prateeksha Singh
b61d091f4c [setup] remove sample data commit, fix namespace 2017-12-25 12:30:35 +05:30
Nabin Hait
9da6844b52 Version 10 change log 2017-12-25 12:25:52 +05:30
rohitwaghchaure
79f8784772 Merge pull request #12156 from rohitwaghchaure/company_setup_issue
[Fix] Setup wizard UAE/KSA
2017-12-25 12:12:57 +05:30
Rohit Waghchaure
cfafb21842 [Fix] Setup wizard UAE/KSA 2017-12-25 12:12:07 +05:30
tundebabzy
590bd0a8e5 trigger payment_terms_template only when needed (#12124) 2017-12-25 11:40:19 +05:30
rohitwaghchaure
bd5e01b09b [fix] Shipping address not fetch from purchase order in to purchase invoice & receipt. (#12134) 2017-12-25 11:28:07 +05:30
rohitwaghchaure
d8c6449f3a [Fix] Bom raw materials not in order in the stock entry (#12149) 2017-12-25 11:26:40 +05:30
rohitwaghchaure
75789b65c2 [Fix] Sales payment summary report (#12151) 2017-12-25 11:26:15 +05:30
Zarrar
adc184c872 [Minor] Fix adding child to root task issue (#12121)
* make parent_task none

* adding multiple tasks - set project of parent
2017-12-22 11:00:19 +05:30
rohitwaghchaure
443691aaf8 [Fix] Allow to change exchange rate in the payment entry if allow stale is enabled (#12128) 2017-12-22 10:59:01 +05:30
Ameya Shenoy
3909bd4e9f [agri] Disease task creation on new CropCycle fix (#12131) 2017-12-22 10:58:47 +05:30
Manas Solanki
5807cd8e6f Set the guardian role automatically. (#12136)
* Add the guardian role for parent portal

* invite guardian as user
2017-12-22 10:50:10 +05:30
Prateeksha Singh
6401678e63 Merge pull request #12141 from tundebabzy/fix-test-cases
[Minor] Fix typo
2017-12-22 10:00:14 +05:30
tunde
e3104938ff fix typo 2017-12-21 16:25:44 +01:00
Manas Solanki
45cb791878 Merge pull request #12130 from manassolanki/leaderboard
remove the print statements
2017-12-21 13:04:25 +05:30
Manas Solanki
1f4b530e68 remove the print statements 2017-12-21 12:57:43 +05:30
Prateeksha Singh
8b0b56dda4 [Setup Wizard] Use setup stages (#12000)
* setup working with packages imports for operations

* setup stages

* use setup_stages hook

* remove commit from app setup
2017-12-21 11:55:58 +05:30
Umair Sayed
82035c6c7a Update index.md (#12118) 2017-12-21 11:55:05 +05:30
Nabin Hait
e591c85f7c Payment schedule total amount validation considering write off amount 2017-12-21 11:47:08 +05:30
Nabin Hait
a5cc84f8af Reverted gl entry splitting based on payment terms (#12117)
* Reverted gl entry splitting based on payment terms

* changed modified date
2017-12-21 11:37:18 +05:30
rohitwaghchaure
174900506e [HotFix] Validation issue for subcontract stock entry (#12127)
* [Fix] Validation issue for subcontract stock entry

* Update stock_entry.py
2017-12-21 11:28:01 +05:30
Nabin Hait
2f9f4f9c01 Multiple fixes related to payment terms (#12115) 2017-12-20 12:24:59 +05:30
rohitwaghchaure
84da00da2f Allow to add items in manufacturing process which are not part of bom items (#12110) 2017-12-20 12:06:09 +05:30
Manas Solanki
8413f76c19 set the mandatory field in the backend (#12102) 2017-12-20 12:03:19 +05:30
Vishal Dhayagude
c8ecfa15f3 [new] Make Timesheet UX Added (#12100) 2017-12-20 12:02:34 +05:30
Ameya Shenoy
87b7844ae8 [Agri] Item amount set on item set (#12091)
* [Agri] Item amount set on item set

- closes #12008
- fixes #12010

* used frappe.call instead of frm.call in crop

* made modifications for sql query for BOM Item

- done since Crop doctype in Agri module also uses 'BOM Item' child table

* hide BOM no from BOM Item childtable in Crop
2017-12-20 12:00:24 +05:30
Prateeksha Singh
9a57049faa Merge pull request #12113 from pratu16x7/leaderboard
Add Leaderboard to desktop
2017-12-20 11:39:05 +05:30
Prateeksha Singh
04c4ce353c Add leaderboard to desktop 2017-12-20 10:51:25 +05:30
Saurabh
fb6912b38e Merge pull request #12101 from saurabh6790/patch_fix
[fix] set asset owner demo data
2017-12-19 14:56:19 +05:30
Saurabh
6386e9a1bd [fix] set asset owner demo data 2017-12-19 14:52:07 +05:30
tundebabzy
dbd068c44b Sales Order With Payment Terms Not Split In Payment Entry #12051 (#12065)
* validate schedule dates in non-invoice documents

* change query for orders

* take care of orders with/without payment schedule

* clean up, refactor, PEP8
2017-12-19 14:36:39 +05:30
Prateeksha Singh
41d2feab35 Merge pull request #12099 from pratu16x7/user-progress-items-fix
Create item price only if item created
2017-12-19 12:54:58 +05:30
Prateeksha Singh
3942cd353a create item price only if item created, fixes #12041 2017-12-19 12:53:39 +05:30
tundebabzy
90076bc3b5 Make Journal entry from Invoice based on Payment Terms (due date) #11989 (#12047)
* split journal entry according to invoice due date

* fix bug where reference_due_dates options are not populated:
- after making JE, add options to _onload
- use __onload to add options

* cater for case where no payment_schedule
2017-12-19 11:58:31 +05:30
Ameya Shenoy
6e5b8bb5d3 fixed logic for creating disease tasks (#12081) 2017-12-19 11:41:10 +05:30
tundebabzy
5825dedf7c Payment schedule error #12057 (#12096)
* use 12 places precision for sums

* use high float precision, fix decimal place late

* Update accounts_controller.py
2017-12-19 11:39:20 +05:30
Nabin Hait
f592f2c9a9 Revert "[Fix] Payment terms validation issue" (#12098)
* Revert "test fixed (#12094)"

This reverts commit dd700a550f.

* Revert "[fix] Column Heading in received item to be billed report (#12083)"

This reverts commit 7c57b6ecd8.

* Revert "[fix] Mobile no search issue in the pos (#12090)"

This reverts commit b725affe0c.

* Revert "[Fix] Payment terms validation issue (#12092)"

This reverts commit 9b8e1cb10e.
2017-12-19 11:31:34 +05:30
Shreya Shah
dd700a550f test fixed (#12094) 2017-12-19 11:24:07 +05:30
Vishal Dhayagude
7c57b6ecd8 [fix] Column Heading in received item to be billed report (#12083) 2017-12-19 11:23:34 +05:30
rohitwaghchaure
b725affe0c [fix] Mobile no search issue in the pos (#12090) 2017-12-19 11:21:00 +05:30
rohitwaghchaure
9b8e1cb10e [Fix] Payment terms validation issue (#12092) 2017-12-19 11:20:29 +05:30
Nabin Hait
33c9da9ab1 Patch to update due_date in GLE, Journal Entry and Payment Entry (#12093) 2017-12-19 11:18:36 +05:30
Shreya Shah
ec1cb79e5f Fetch employee advance in expense claim on adding it manually (#12069)
* added trigger on manually adding an advance

* improvised the query

* codacy fix

* updated
2017-12-18 18:06:01 +05:30
Zarrar
0acf687e20 Land unit tree (#12072)
* improvise tree structure

* remove set intro code

* remove all land units dependency

* test case corrected
2017-12-18 14:01:07 +05:30
Manas Solanki
2bca5a98ae add the data import icon in the desktop.py (#12062) 2017-12-18 13:55:30 +05:30
rohitwaghchaure
e067beda49 [fix] Promise issue, in cart against item displaying zero values (#12078) 2017-12-18 12:32:49 +05:30
Shreya Shah
d903bd6a70 patch fix for asset (#12079) 2017-12-18 12:31:23 +05:30
Nabin Hait
4c816a1054 Patch to set calculate_depreciation if schedule already exists (#12061) 2017-12-16 11:17:36 +05:30
rohitwaghchaure
e3b5c0f727 [fix] Regional print format showing for other countries users (#12045) 2017-12-16 10:53:53 +05:30
rohitwaghchaure
938a1fee80 [minor] Tax id of supplier not fetching in purchase invoice (#12052) 2017-12-16 10:51:07 +05:30
Kenneth Sequeira
9bceb388c8 changed dead YouTube link for videos (#12053) 2017-12-16 10:50:29 +05:30
rohitwaghchaure
1bc47fa43c [fix] Sales order tax not fetching on the sales invoice (#12055) 2017-12-16 10:49:58 +05:30
Ameya Shenoy
eb8446f01f Agri fixes (#12033)
* crop_cycle, moving point in geojson from js to py

* crop fields are fetched into crop_cycle

- fixes #12011

* area is a readonly field

- fixes #11994

* [agri] land unit child geojson bug fixed

* set_intro null if parent field entered, list only group nodes

* minor fixes
2017-12-16 10:43:35 +05:30
Nabin Hait
2a9dc9019a Fixed closing debit/credit in general ledger report 2017-12-15 19:41:20 +05:30
Prateeksha Singh
228c341d12 [setup-progress] Rerun letterhead slide patch 2017-12-15 18:32:27 +05:30
Nabin Hait
2afcff1852 Get outstanding invoices on payment entry 2017-12-15 17:32:03 +05:30
Nabin Hait
b9ca91a832 Update company.py 2017-12-15 17:23:11 +05:30
Faris Ansari
c7b92b73a6 fix patches for v7 sites (#12043) 2017-12-15 16:49:11 +05:30
Manas Solanki
53e47e6ba5 frappe call only if item code or serial no is ther (#12036) 2017-12-15 15:47:52 +05:30
Nabin Hait
13435dddcc BOM: Fetch valuation rate of raw materials from Item master if not found based on SLE 2017-12-15 15:46:43 +05:30
rohitwaghchaure
78a17355be [fix] Item search in POS (#12037) 2017-12-15 15:38:12 +05:30
Nabin Hait
6a640b78c4 Minor fixes in payroll entry and opening invoice tool 2017-12-15 15:34:14 +05:30
rohitwaghchaure
5a344576b8 [minor] Address fix (#12025) 2017-12-15 13:14:36 +05:30
Nabin Hait
9771b9376d Merge branch 'master' into develop 2017-12-15 12:53:56 +05:30
Nabin Hait
d257af910b Merge branch 'hotfix' 2017-12-15 12:53:55 +05:30
Nabin Hait
2f22d2b307 bumped to version 9.2.23 2017-12-15 13:23:54 +06:00
rohitwaghchaure
ce8adecbad Incoming rate fixes (#11986) 2017-12-15 12:13:50 +05:30
Jignesh Greycube
7f13283b66 Renamed Tax Breakup Label to In Words (#12016)
Detailed Invoice  Print format, Renamed "Tax Breakup" Label  to "In Words"
2017-12-15 11:59:30 +05:30
tundebabzy
1d459c4327 Make Journal entry from Invoice based on Payment Terms (due date) #11989 (#12019)
* don"t summarise due_dates query

* reference_due_date to fetch outstanding based on due date

* use if else so that no need to do useless checks

* clear debit and credit fields before fetching outstanding

* grid keeps forgetting drop down so add to options

* clear debit and credit fields before fetching outstanding properly
2017-12-15 11:29:27 +05:30
Vishal Dhayagude
d377018695 [fix] Shipping charges change on qty, item_code and conversion_factor trigger (#12001)
* [wip] shipping rule

* [wip] Shipping Rule tax auto calculate

* [wip] Shipping Rule

* [new] Shipping charges change on different triggers

* [minor] Removed unnecessary comments

* [fix] Minor Changes in function calls
2017-12-14 18:06:02 +05:30
Pawan Mehta
d6cb617520 Fix 11948 - Sales Payment Summary (#11950)
* [fix] #11948

* [fix] #11948

* [fix] #11948

* codacy issues
2017-12-14 18:04:31 +05:30
Nabin Hait
6b0d4bd01b Minor fixes related to employee advance 2017-12-14 18:03:10 +05:30
Saurabh
65b3356dee [fix] merge case in rename_translated_domains_in_en #11879 (#12007) 2017-12-14 16:52:50 +05:30
rohitwaghchaure
2b95a5438b POS batch fixes (#12005) 2017-12-14 16:06:23 +05:30
Vishal Dhayagude
ee7b4f00f8 [minor] Chapter head link with Member (#12003) 2017-12-14 13:26:22 +05:30
Nabin Hait
d0249b0880 Employee advance (#11875)
* Employee Advances against Expense Claim

* added employee advance test cases and docs

* Default Employee Advance Account field in company

* Cleanup and fixes of employee advance
2017-12-14 13:25:57 +05:30
tundebabzy
02b4b5f526 Payroll Entry (#11936) (#11968)
* add functions for tracking related salary slips

* PEP 8 style

* put buttons into Make based on context

* add function to test for bank entry journal

* refeactor `add_bank_entry_button`

* "View Salary Slips" made a standalone secondary button

* set_inner_btn_group for Make Bank Entry

* refresh button after journal is submitted

* edit javascript test case

* codacy

* fix as per review

* no longer use $c
2017-12-14 13:15:28 +05:30
rohitwaghchaure
24e5265281 [enhance] Search customer using primary contact mobile number (#11998)
* [enhance] Search customer using primary contact mobile number

* Update build.json
2017-12-14 13:06:21 +05:30
Shreya Shah
a2cfd97cd7 fetch party name (#11985) 2017-12-14 12:42:01 +05:30
Umair Sayed
4667cb2f62 Update implementation-strategy.md (#12002) 2017-12-14 12:21:47 +05:30
Zarrar
6e0acbe4d0 Patch to copy old field data to new field (#11997)
* patch to copy old fields data to new ones

* fix for patches related to project

* use rename_field function, copy if only field present
2017-12-14 12:21:00 +05:30
rohitwaghchaure
5759258dcf [fix] Added total closing in general ledger (#11961) 2017-12-13 18:57:37 +05:30
rohitwaghchaure
40f5d8edd4 [fix] Pull subcontracted item if subassembly is not defined (#11996) 2017-12-13 18:51:05 +05:30
Ameya Shenoy
cc05c0b348 Agri fixes (#11988)
* minor fixes in agri

* updated desktop.py

* [agri] fixed recreation of dotypes in setup.py

* setup_wizard changes

- converted agriculture from alpha to beta
- rearranged the domains alphabetically

* [agri] linked doctype is collapsible
2017-12-13 18:50:39 +05:30
Shreya Shah
8cad3f12a2 Salary Slip not updating when adding/removing Timesheet links (#11982)
* timesheet on salary slip

* changes

* cal total wages

* calculate gross_pay and net_pay

* codacy fix
2017-12-13 18:43:01 +05:30
Nabin Hait
aaf378e340 Validate numeric attribute value based on range defined in template (#11981) 2017-12-13 18:40:52 +05:30
Zarrar
de8f6120f3 [Fix] Restrict domain specific roles (#11975)
* restrict roles to its specific domain

* missing hook for Non Profit
2017-12-13 18:36:08 +05:30
rohitwaghchaure
659b46832c [fix] Patch (#11976) 2017-12-13 18:35:22 +05:30
Saurabh
aa66fa17d7 key fix in demo setup completion (#11980) 2017-12-13 18:34:43 +05:30
Manas Solanki
56f5b5f75c Update the desktop.py (#11974)
Remove the data import desktop icons
2017-12-13 11:28:18 +05:30
Nabin Hait
0f97eda7c9 Merge branch 'master' into develop 2017-12-12 19:17:53 +05:30
Nabin Hait
96d6498226 Merge branch 'hotfix' 2017-12-12 19:17:51 +05:30
Nabin Hait
66456dae34 bumped to version 9.2.22 2017-12-12 19:47:51 +06:00
Zarrar
21ea6cdb91 batch.expiry should be sorted in ascending order too (#11960) 2017-12-12 18:54:17 +05:30
Nabin Hait
af9bdfeaa3 Fixed calculation of taxes and totals if tax is entered as Actual, for Deduction or valuation (#11965) 2017-12-12 18:50:05 +05:30
Nabin Hait
aab1182c73 Update stock_entry.js 2017-12-12 18:45:39 +05:30
Pawan Mehta
bb7fab52d1 [fix] #11880- Item wise report showing price list and stock available (#11885)
* [fix] #11880

* review comments

* codacy fixes
2017-12-12 15:05:03 +05:30
KanchanChauhan
34ed1df9ef [Minor] Update Status based on Asset Maintenance and Asse Repair (#11886) 2017-12-12 15:03:21 +05:30
Charles-Henri Decultot
d18423d9c7 Project Margin Calculation Improvement (#11911)
* Project Margin Calculation Improvement

* Documentation modification

* Change Total Planned Sales to Total Sales Amount

* Change documentation screenshot
2017-12-12 14:59:59 +05:30
Maxwell Morais
d06b7049c7 Allow manufacturing order from SO with Packed Items that contains BOM's (#11947) 2017-12-12 14:46:16 +05:30
rohitwaghchaure
4e17fae63b [enhance] UAE/KSA VAT/Excise implementation (#11923) 2017-12-12 14:40:52 +05:30
Shreya Shah
ea723e59c6 POS Profile validation message rephrased (#11934)
* pos validation message improvised

* removed unused field
2017-12-12 14:24:00 +05:30
Shreya Shah
db499dcaa4 fixed fiscal dates (#11939) 2017-12-12 14:19:35 +05:30
tundebabzy
f628184c68 Error in Opening Invoice creation Tool (#11938) (#11941)
* add qty field

* cast qty to float

* PEP8 compliance
2017-12-12 14:19:07 +05:30
tundebabzy
ff1b875661 Improve Validation Message in the Payroll Entry (#11937) (#11944)
* change error message from `create_log`

* PEP 8 compliance
2017-12-12 14:18:14 +05:30
rohitwaghchaure
47749f4635 [fix] Cur_frm breaking offline pos (#11955) 2017-12-12 14:16:03 +05:30
Manas Solanki
6a415bd32d set desktop icons (#11953) 2017-12-12 13:24:13 +05:30
Nabin Hait
de1e29bf1b Production Order fixes (#11951)
* Production Order from Sales Order fixes: Validate SO and set required items on save

* Codacy fixes
2017-12-12 13:22:48 +05:30
Prateeksha Singh
903e9f4b6f Merge pull request #11943 from pratu16x7/hub-connector-fixes
[fix] hub connection, fixes #11357
2017-12-11 23:23:37 +05:30
Prateeksha Singh
1126a43979 [fix] hub connection, fixes #11357 2017-12-11 23:22:30 +05:30
pawan
1892454036 Add Total Row 2017-12-11 17:48:56 +05:30
KanchanChauhan
3ca00c7143 Items should not be used from Sample Retention warehouse (#11905) 2017-12-11 14:59:19 +05:30
rohitwaghchaure
d19be49889 [fix] Error opening the POS (#11929) 2017-12-11 14:57:43 +05:30
Shreya Shah
1b30642362 cal difference amount when qty 0 (#11925) 2017-12-11 14:56:57 +05:30
rohitwaghchaure
efbc0667ec [fix] On change of payment terms template, not fetch respective schedule data (#11928) 2017-12-11 14:54:20 +05:30
rohitwaghchaure
505661b5c0 [fix] Wrong company's default tax fetch (#11927) 2017-12-11 14:52:28 +05:30
Manas Solanki
3fe59b4443 remove the unnecessery files (#11922) 2017-12-11 13:01:27 +05:30
KanchanChauhan
236ac5eb38 [Fix] Customer and Address blank if does not exist in Delivery Stops (#11895) 2017-12-11 12:38:30 +05:30
KanchanChauhan
7f8df06663 [Minor]Removed alert=true from frappe.throw (#11904) 2017-12-11 12:24:43 +05:30
Prateeksha Singh
0419e2384d reinitialize variant attribute table, fixes #11900 (#11921) 2017-12-11 12:22:28 +05:30
Nabin Hait
d10014bdeb minor fix in fetching payment terms template 2017-12-08 16:51:53 +05:30
Asharam Seervi
98d5878aa2 Added Column Break in Item Master (#11887)
* Fixed: On Item form, added cb.

* Fixed: On Item form, added cb.
2017-12-08 16:18:23 +05:30
Shreya Shah
6b64947f47 Route to Payment Entry instead of Journal Entry in paid Expense Claim (#11874)
* route fixed

* improvised
2017-12-08 16:14:23 +05:30
Zarrar
17fd6610dc Fix travis (#11882)
* fieldname wrong

* bifurcated test into two - error when both were running async

* minor fixes with link and route

* move school domain rename up

* fix async creation of operations test

* edit-in-full-page is button, not link

* set_route issue in production order test

* minor changes

* fix task tree test

* more fixes

* fix server side issue

* improvising ui tests
2017-12-08 14:57:38 +05:30
Zarrar
2ba198ec70 improvise query (#11878) 2017-12-08 11:35:53 +05:30
Vishal Dhayagude
6d250f8789 [fix] Missing value Net Weight Added in Calculate Based On select field (#11883) 2017-12-08 11:35:18 +05:30
Shreya Shah
88dbc26a98 replace process payroll (#11873) 2017-12-07 18:24:42 +05:30
Zarrar
5ee5d43295 ontrash of nestedset wasn't ideal for employee's usecase (#11876) 2017-12-07 17:16:59 +05:30
Ameya Shenoy
396feba874 agri_docs fix links (#11870) 2017-12-07 12:53:57 +05:30
Nabin Hait
4cad7fc36c Fixed Merge conflict 2017-12-07 12:04:19 +05:30
Nabin Hait
84a44f7758 Merge branch 'hotfix' 2017-12-07 12:03:40 +05:30
Nabin Hait
6674ba8bd1 bumped to version 9.2.21 2017-12-07 12:33:40 +06:00
Nabin Hait
5de499e5d5 Minor cleanups 2017-12-07 12:01:06 +05:30
pawan
271b7cd4f9 codacy issues 2017-12-07 12:01:00 +05:30
pawan
19f09b0b69 fix codacy issues 2017-12-07 12:00:06 +05:30
pawan
d8e91982ca Fixed Merge conflict 2017-12-07 12:00:01 +05:30
Ameya Shenoy
e0d461c2eb [Agriculture] documentaion (#11867) 2017-12-07 11:53:12 +05:30
Doridel Cahanap
9f7e109c3e [minor] Fix Delivery Trip Error (#11868) 2017-12-07 11:52:33 +05:30
Nabin Hait
4cfbeebdef Merge branch 'shreyashah115-payroll_entry' into develop 2017-12-06 19:56:11 +05:30
Nabin Hait
97b8a7b237 Minor fixes in payroll entry 2017-12-06 19:55:57 +05:30
Nabin Hait
bb09437d1f Merge branch 'develop' into payroll_entry 2017-12-06 19:18:40 +05:30
Shreya Shah
b13a54ac74 Checkbox in Price list for Price not UOM dependant (#11836)
* checkbox price not uom dependant

* change price list rate on uom dependancy condition

* test case

* Update get_item_details.py
2017-12-06 19:17:03 +05:30
KanchanChauhan
f6aff3de96 [New Feature] Sample Retention from a Batch of item recieved (#11624) 2017-12-06 18:38:01 +05:30
Ameya Shenoy
5c62368a65 [Agriculture Domain] (#11663)
* created Soil Analysis, Water Analysis, Weather and Fertilizer doctype

* soil doctype edited and crop doctype added

* minor stuff

* Land Unit + Leaflet

* crop cycle added

* Land Unit changes + Crop cycle

* autoname for plant_analysis

* created Agriculture Task

* minor stuff

* - deleted agriculture_task
- current state after the call

* [Agriculture] modified fertilizer doctype to have a link to Item
This was done so that the `Fertilizer` doctype could track the contents exclusive to the fertilizer, whereas the `Fertilizer Item` could be a seperate entity, so as to leverage the existing ERPNext doctypes

* Added fields to `Water Analysis` doctype
- Collection Datetime
- Laboratory Testing Datetime
- Results Datetime (default to Laboratory Testing Datetime)

* Edited the doctypes `Agrivulture Task`, `Pest` and `Soil Texture`
- Created `agriculture task` doctype
- added fields `Common Name`, `Scientific Name`, `Treatment` and `Treatment Options` to `Pest` doctype
- edited `Soil Texture` doctype to contain a soil texture ternary plot diagram made using SnapSVG. The code was put in public folder so as to be accessible by the entire agriculture module

* Recursively reflect child land unit feature changes on parents

* fixed feature repition bug

* added legeneds to ternary plot

* added stuff

* changes

* fix Task

* reverted the Task Doctype to have naming in the form TASK.#####

* fixed modifications made to TASK doctype

* [dirty commit] added auto create Task from Crop on creation of Crop Cycle

* Changed the Crop Cycle Doctype
- Deleted the "Crop Cycly Task" doctype and its link from "Crop Cycle"
- Creation of a new Project with the same name as the Crop Cycle on creation of a new Crop Cycle
- Creation of all the tasks imported from Agriculture Task doctype of the Crop in the Crop Cycle

* [Agriculture Module] Modifications
- Created childtable doctype "Pest Detected"
- Added childtable "Pest Detected" to Pest
- Modified "Agriculture Task" to include "Start Day" and "End Day" of task
- Modified the code in "Crop Cycle" to create a parent task with same name as Crop Cycle

* [Agriculture Module] fixed Pest doctype not saving issue

* [Agrcilture Module] Changes in Crop Cycle
- removed the creation of a master task on creation of a new crop cycle
- temporary fix to add the pest tasks from the pests added in crop cycle

* land_unit_tree.js fields modified to have field objects instead of just field names

* Revert "land_unit_tree.js modified"

* land_unit_tree.js fields modified to have field objects instead of just field names

* [Agriculture Domain] Converted Agriculture Module to a Domain
- Converted into a Domain field from Select to Link field in Company doctype, linked to Domain doctype
- Agriculture (alpha) is now a Domain

* land_unit area aggregation enabled

* land_unit.py checks feature diff for every ancestor and not just the parent

* Removed unnecessary print messages

* agriculture.py modified to include fixtures

* fixtures added to setup.py inside agriculture module

* [Agriculture Domain] UI tests added
- 'materials' table renamed to 'materials_required' in 'Crop'
- wrote UI test for Crop, Fertilizer, Crop Cycle, Pest, Water Analysis, Soil Texture
- moved creation of tasks from client side to server side in Crop Cycle
- Plant Analysis, Water Analysis, Soil Analysis, Soil Texture docs are now autonamed in the format PAnalysis.#####, WAnalysis.#####, SAnalysis.#####, STexture.##### respectively
- company_name changed in domains.py from 'Schrute Farms.' to 'Schrute Farms'

* [Agriculture Domain] Mostly written server side tests and moved client side code to server side
- moved client side code to server side for Crop, Water Analysis, Pest, Soil Texture,
- wrote server side tests for Crop, Crop Cycle, Fertilizer, Soil Texture, Pest
- NOTE: none of the server side codes were tested

* [Agriculture Domain] All server side tests working locally

* [Agriculture Domain] Testing
- added sample test for Land Unit, which needs to be modified to test multiple things
- modified tests to be independant of each other

* Land Units tests added and area aggregation code migrated to server side

* added land_unit server side tests and on_trash added to land_unit

* Changing field location for start date

* [Agriculture Domain] deleted unnecessary comments

* [Agriculture Domain] reverted changes

* [Agriculture Domain] Modified the code to replace Pest doctype with Land Unit doctype
- Deleted the Pest doctype and replaced it with the more generic Disease doctype
- Deleted the Detected Pest doctype and replaced it with Detected Disease doctype

* [Agriculture Domain] resolves #11654, resolves #11653

* [Agriculture] Added links to soil analysis, soil texture, plant analysis in crop cycle and land unit
- not working perfectly yet
- docs are fetched but not appended

* [Agricuture] Crop Cycle modifed to link with relevent analysis docs, not fully functional

* [Agriculture] added seperate stage for client side agriculture tests

* [Agriculture] minor modification to crop_cycle.js test

* [Agriculture] fixed tests

* upgrade chromedriver in .travis.yml from 2.32 to 2.33

* [Agriculture] added land unit ui test

* [Agriculture] added Agriculture server side test as a seperate stage in travis

* tesing travis.yml

* [Agriculture] Crop Cycle is able to fetch linked analysis docs

* Modified travis.yml for modular server side testing

* [minor fix][Agriculture] in soil_texture

- fixed multiple soil_texture ternary plot creation on refresh
- fixed error on soil composition change

* Update .travis.yml

* removed location field from linked doctypes

* minor fixes and cleanup of agri

* minor fix in agriculture and domain patches

* permissions added to agriculture

- Agriculture Manager and Agriculture User roles were added to all Agriculture doctypes

* [Agriculture]

- Created Agiculture Analysis Criteria and added sample records to it
- All the analysis doctypes now fetch their fields inside a child table, form Agriculture Analysis Criteria
- Also Fertilizer does the same
  This was introduced so that, new parameters could be added on demand

* minor changes requested in Agriculture

* minor changes

* minor fix

* Update desktop.py

* Update .travis.yml
2017-12-06 18:36:27 +05:30
Vishal Dhayagude
b930dfa74c [fix] fix patch failed erpnext/patches/v7_2/make_all_assessment_group.py (#11864) 2017-12-06 18:03:21 +05:30
Vishal Dhayagude
d4e439906c [fix] Modification in Non Profit docs (#11862) 2017-12-06 18:02:31 +05:30
Prateeksha Singh
11e27b2990 Merge pull request #11865 from Zlash65/fix-setup
[Minor] Setup-wizard fix
2017-12-06 17:13:44 +05:30
Zlash65
5fc8923322 fix setup-wizard leftovers 2017-12-06 17:04:03 +05:30
Nabin Hait
c84476bd27 Fixed merge conflict 2017-12-06 14:17:51 +05:30
Nabin Hait
7ff6e378dd Merge branch 'hotfix' 2017-12-06 14:17:14 +05:30
Nabin Hait
7de5d3bb1d bumped to version 9.2.20 2017-12-06 14:47:13 +06:00
Manas Solanki
a160879159 set the reference document in the payment entry while creating from fees (#11861)
* set the reference document in the payment entry while creating from fees

* allocate the paid amount in the reference document
2017-12-06 14:05:39 +05:30
Prateeksha Singh
7351709980 [multicheck] Select multiple domains in setup (#11709)
* [multicheck] select multiple domains in setup

* use multiple domains in make_sample_data

* revert to setting in domains child table

* domains slide validation

* update setup wizard test
2017-12-06 13:28:06 +05:30
rohitwaghchaure
1b16bca843 [minor] Escape special characters (#11855) 2017-12-06 13:16:06 +05:30
tundebabzy
6a418f2a9b change Purchase Taxes and Charges default to 'Total' (#11857) 2017-12-06 13:15:33 +05:30
rohitwaghchaure
d52c64ff11 [fix] Show total for opening and closing dr/cr (#11860) 2017-12-06 13:14:28 +05:30
Nabin Hait
cd477fc187 Merge branch 'vishdha-non_profit2' into develop 2017-12-06 12:58:20 +05:30
Nabin Hait
51ce1027de non-profit module cleanups 2017-12-06 12:58:04 +05:30
Nabin Hait
419db49806 non-profit module cleanups 2017-12-06 12:57:53 +05:30
Vishal
54f5b115a7 [new] Role added 2017-12-05 17:51:15 +05:30
Vishal
474d58cecf [fix] minor changes 2017-12-05 17:19:02 +05:30
Vishal
5ffbd4f492 [fix] Reviewed Modification in Grant Application 2017-12-05 16:41:09 +05:30
Vishal
91236fa9d6 [fix] Reviewed modification on donor and volunteer 2017-12-05 16:41:09 +05:30
Vishal
139545a0f7 [fix] Minor changes in membership 2017-12-05 16:41:09 +05:30
Vishal
74116172b8 [fix] Reviewed Chapter Doctype Modification 2017-12-05 16:41:09 +05:30
Vishal
debc93c58a [new] Non Profit Domain patch added 2017-12-05 16:41:09 +05:30
Vishal
5ade836713 [new] Non Profit Documentation Modified 2017-12-05 16:41:09 +05:30
Vishal
7e50bf3674 [fix] Minor changes in patch set member as party type 2017-12-05 16:41:09 +05:30
Vishal
55480491bf [minor] changes added in member and membership doctype 2017-12-05 16:41:09 +05:30
Vishal
5a4611df95 [fix] fetch expiary date from membership to member doctype 2017-12-05 16:41:09 +05:30
Vishal
0dbf00a283 [fix] Minor changes in grant application 2017-12-05 16:41:09 +05:30
Vishal
344f5d9cd6 [fix] Minor changes in grant_application.html 2017-12-05 16:41:09 +05:30
Vishal
155ec4ba58 [new] Grant application doctype clean up after review 2017-12-05 16:41:09 +05:30
Vishal
74fb550a70 [new] sidebar added on chapter web page 2017-12-05 16:41:09 +05:30
Vishal
a72a3bd536 [new] Chapter Module clean up after review 2017-12-05 16:41:09 +05:30
Vishal
fe0c6c8e28 [fix] Non Profit Domain clean up after review 2017-12-05 16:41:09 +05:30
Vishal
a68234d345 [new] Fontawesome icon added 2017-12-05 16:41:09 +05:30
Vishal
fca5cfe986 [fixed] Codacy fixed 2017-12-05 16:41:09 +05:30
Vishal
397a8761f7 [new] Convert Non Profit Module into Non Profit Domain 2017-12-05 16:41:09 +05:30
Vishal
43977a1422 [fix] Minor Changes in grant_application.py 2017-12-05 16:41:09 +05:30
Vishal
fa8f762805 [fix] Grant Application Url added in message body on sendmail 2017-12-05 16:41:09 +05:30
Vishal
da05b3ce7f [fix] Modified Grant Application Test 2017-12-05 16:41:09 +05:30
Vishal
b4a8e11edc [new] Account table added in Grant Application 2017-12-05 16:41:09 +05:30
Vishal
1a88562ef9 [new] Assessment Manager for grant Review, web portal added 2017-12-05 16:41:09 +05:30
Vishal
7c7c3522cb [new] Codacy fixed 2017-12-05 16:41:09 +05:30
Vishal
a6a302f8a6 [new] Grant Application Web Form Added 2017-12-05 16:41:09 +05:30
Vishal
6a4fd7d89e [fix] UI Test 2017-12-05 16:41:09 +05:30
Vishal
788f41707e Chapter Message Link field added 2017-12-05 16:41:09 +05:30
Vishal
5cd70bed25 [new] Test Cases Added for Non Profit 2017-12-05 16:41:09 +05:30
Vishal
86140c8659 [fix] Codacy Issue 2017-12-05 16:41:09 +05:30
Vishal
f86984c785 [fix]travis build issue 2017-12-05 16:41:09 +05:30
Vishal
d051921ff8 [fix] Codacy issue 2017-12-05 16:41:09 +05:30
Vishal
722c06e819 [fix] travis 2017-12-05 16:41:09 +05:30
Vishal
1ebdeacee3 UI Test Added for Membership Type 2017-12-05 16:41:09 +05:30
Vishal
1c5bf8e3ca modified index.md 2017-12-05 16:41:09 +05:30
Vishal
d5d0813b2d [new] Modified Doctypes for list view 2017-12-05 16:41:09 +05:30
Vishal
2c9ce190eb [new] Grant Application Doctype Added 2017-12-05 16:41:09 +05:30
Vishal
18ac423c47 [new] Volunteer skills and Availability Added 2017-12-05 16:41:09 +05:30
Vishal
7525bc6f1d [new] Doctype Donor and Volunteer Added 2017-12-05 16:41:09 +05:30
Vishal
b4d73cbda0 [fix] Imported getdate in erpnext 2017-12-05 16:41:09 +05:30
Vishal
546130c046 Documentation added for Non Profit 2017-12-05 16:41:09 +05:30
Vishal
b4cda1b4a1 [fix] Address field removed in Member 2017-12-05 16:41:09 +05:30
Vishal
10608e8c65 [fix] Removed address field in Member doctype 2017-12-05 16:41:09 +05:30
Vishal
e01846051d Membership Type shows under memberhip section 2017-12-05 16:41:09 +05:30
Vishal
3a75a5e9b5 New Party Type Member Added 2017-12-05 16:41:09 +05:30
Vishal
5dae126f56 Membership Doctype Added 2017-12-05 16:41:09 +05:30
Vishal
cc06d291c6 link member in dynamic link table 2017-12-05 16:41:09 +05:30
Vishal
50f13e17a7 [new] Chapter Doctype Added 2017-12-05 16:41:09 +05:30
Vishal
ca61453fa3 [new] Non Profit module Added 2017-12-05 16:41:09 +05:30
Zarrar
a263ff2842 chromedriver update (#11849) 2017-12-04 19:29:16 +05:30
rohitwaghchaure
3a5ca927e7 [Fix] Asset depreciations and balances report showing wrong accumulated depreciation amount if multiple asset against same asset category (#11848)
* [Fix] Asset depreciations and balances report showing wrong accumulated depreciation amount if multiple asset against same asset category

* Update asset_depreciations_and_balances.py
2017-12-04 19:29:03 +05:30
Zarrar
c47745ea83 only fetch distinct names of events (#11846) 2017-12-04 19:23:20 +05:30
Kenneth Sequeira
406cb920ae Documentation Update (#11844)
* Delete payment-tool.md

* Update index.txt

Removed Payment Tools from Index

* Update index.txt

removed barcode setup from index

* Delete barcode-1.png

removed barcode-1.png

* Delete barcode-2.png

* Delete bar-code.md

removing barcode set up as functionality is deprecated. Barcode can be directly entered in Item Master.

* Delete bar-code.md

removing barcode set up as functionality is deprecated. Barcode can be directly entered in Item Master.

* Update index.txt

remove bar-code set up link from index de (german)

* Update index.txt

remove bar-code set up link from index de (german)
2017-12-04 19:22:50 +05:30
Manas Solanki
e6fd07fda9 Changes in the Fee structure (#11842)
* academic year non mandatory in the fee structure and minor changes

* update the docs
2017-12-04 19:21:50 +05:30
Shreya
e570e4a049 fixed a test 2017-12-04 16:49:44 +05:30
Shreya
f8e7bc7c5b removed process payroll doctype 2017-12-04 16:49:44 +05:30
Shreya Shah
db332f2c08 employee_details table added 2017-12-04 16:49:44 +05:30
Shreya
9956f15c80 added py test 2017-12-04 16:49:44 +05:30
Shreya
b5dff03453 added changes from process payroll 2017-12-04 16:49:44 +05:30
Shreya
d1defa5fc7 set salary components 2017-12-04 16:49:44 +05:30
Shreya
d73dd056d6 test case 2017-12-04 16:49:44 +05:30
Shreya
7b2870431e new doctype payroll_entry 2017-12-04 16:49:44 +05:30
rohitwaghchaure
58ae5ee563 Merge pull request #11843 from shreyashah115/bugf
Travis fix for asset and delivery trip tests
2017-12-04 16:35:30 +05:30
Shreya
eba3f39bbe test delivery trip fix 2017-12-04 16:04:56 +05:30
Shreya
3febe0215e test asset fix 2017-12-04 16:04:42 +05:30
Shreya Shah
8ee1ea456d travis fix (#11841) 2017-12-04 14:28:02 +05:30
Nabin Hait
a11dcb6e59 Pull items in Stock Entry from Purchase Invoice (#11839) 2017-12-04 13:36:50 +05:30
rohitwaghchaure
148fccd45a [Fix] Wrong value showing in the email digest (#11840) 2017-12-04 13:36:01 +05:30
Manas Solanki
3bac586ee2 fix in the assessment result tool while entering the zero marks (#11837) 2017-12-04 12:55:10 +05:30
tundebabzy
3061fc92fd Batch Stock Items, having serial number can't be moved without inserting Serial Number (#11792) (#11813)
* if doctype is batch, add extra information to args

* automatically fetch serial numbers if possible

* take advantage of changes in make_stock_entry

* code clean up

* PEP 8 compliance

* fix bug that clears serial number
2017-12-04 11:23:21 +05:30
Zarrar
5e470f757f [Fix] Filter on child table not working in Calendar (#11824)
* use the new get_events method

* using the common get_events method for calendar_view

* using add_fetch to fill customer_name
2017-12-04 11:22:25 +05:30
Charles-Henri Decultot
8a052cb153 Translation issue (#11833) 2017-12-04 11:17:05 +05:30
vwithv1602
78d5ccf5fc Invalid return against purchase invoice Error - Issue#11834 (#11835) 2017-12-04 11:16:34 +05:30
tundebabzy
1fb285c165 hide html example in print (#11830) 2017-12-04 11:13:36 +05:30
Shreya Shah
11938a47ec fixed typo (#11825) 2017-12-01 17:38:26 +05:30
Saurabh
d505d83cb6 [fix] merge conflicts 2017-12-01 16:23:46 +05:30
Saurabh
b36dc5e906 Merge branch 'hotfix' 2017-12-01 16:22:43 +05:30
Saurabh
a067ddbc20 bumped to version 9.2.19 2017-12-01 16:52:43 +06:00
Charles-Henri Decultot
e90a1caeb1 Portal print format correction (#11812)
* Portal print format correction

* Correction following Rushabh's comment
2017-12-01 16:19:45 +05:30
Kenneth Sequeira
9e27b347ca Delete payment-tool.md (#11820)
* Delete payment-tool.md

* Update index.txt

Removed Payment Tools from Index
2017-12-01 16:17:53 +05:30
KanchanChauhan
8380253178 On changing assign_to assign maintenance task in Asset Maintenance (#11804) 2017-12-01 16:14:05 +05:30
Jamsheer
f4d9af1ab9 Fix Patch - remove company from patient (#11819) 2017-12-01 16:10:39 +05:30
rohitwaghchaure
b1ac979ac5 [fix] Do not allow zero valuation rate for serial no and fetch previous valuation rate for serial no (#11817) 2017-12-01 16:09:02 +05:30
Nabin Hait
7a294e6ef5 Update asset_category.json 2017-11-30 18:02:22 +05:30
Nabin Hait
5e801955f1 Update asset_category.json 2017-11-30 18:01:56 +05:30
Saurabh
34a0e90115 [fix] merge conflicts 2017-11-30 16:45:01 +05:30
Saurabh
aa25e95510 Merge branch 'hotfix' 2017-11-30 16:41:46 +05:30
Saurabh
f9509a084a bumped to version 9.2.18 2017-11-30 17:11:46 +06:00
Nabin Hait
1b89be0c66 Fixed rounding issue in subcontracting (#11802) 2017-11-30 15:59:56 +05:30
rohitwaghchaure
e34ef60e3e [fix] Asset test cases and added make_sales_invoice (#11800)
* [fix] Asset test cases and added make_sales_invoice

* vehicle trip test cases
2017-11-30 15:59:40 +05:30
Faris Ansari
ec3be9eebf [hotfix] Party Type name (#11797) 2017-11-30 15:53:39 +05:30
Nabin Hait
c5e0d22464 Update set_delivery_date_in_so_item.py 2017-11-30 15:52:47 +05:30
Nabin Hait
e761b9de40 Rearranged fields due to merge conflict messup 2017-11-30 14:29:10 +05:30
Vishal Dhayagude
8677cd1565 [patch] Patch added to rename net_weight field (#11798) 2017-11-30 13:52:30 +05:30
Manas Solanki
f9cc56cd62 minor fixes in the assessment result tool (#11795) 2017-11-30 11:39:06 +05:30
tundebabzy
ce63ab7602 Show Batch Selector Dialog Only If There Are Multiple Batches (#11794)
* check if multiple batches available before showing dialog

* Update point_of_sale.js
2017-11-30 11:38:53 +05:30
tundebabzy
8ae53cacc5 When Warehouse Field Is Changed, Batch Number Field Should Be Updated (#11789) (#11790)
* reset batch_no field if no batch number returned

* on warehouse change, query for batch number
2017-11-30 11:37:21 +05:30
rohitwaghchaure
2d48cc0aa9 Merge pull request #11786 from shreyashah115/fix-json
Fixed json affected by latest merge
2017-11-30 10:13:48 +05:30
Shreya
c0c470b56d fixed json affected by latest merge 2017-11-29 19:31:15 +05:30
Zarrar
95ee7654a1 Employee tree (#11667)
* nested set implemented

* treeview for employee

* patch added to assign lft rgt, update nsm_model on trash

* call on_trash method of super class
2017-11-29 18:44:02 +05:30
rohitwaghchaure
facf503f11 Merge pull request #11783 from rohitwaghchaure/minor_sales_invoice
[minor] Removed hidden for field pos profile
2017-11-29 17:43:59 +05:30
Rohit Waghchaure
17e03cf3fc [minor] Removed hidden for field pos profile 2017-11-29 17:40:42 +05:30
Rushabh Mehta
0154538c06 [fix] [minor] pos.js 2017-11-29 16:42:02 +05:30
Vishal Dhayagude
855e390265 [fix] Sales Invoice json conflict (#11779) 2017-11-29 16:25:24 +05:30
rohitwaghchaure
1b344ca81e [Fix] POS not loading if pos profile not defined (#11778) 2017-11-29 16:21:51 +05:30
Vishal Dhayagude
d42242df22 [Feature] Shipping Rule Calculation based on Net Weight (#11770)
* [new] Calculate shipping tax based on weight

* [fix] Change field name weight to weight_per_unit in SI Item

* [new] Shipping Rule based tax for selling module

* [new] Shipping rule based on weight added to Buying module

* [fix] Conflict in jsons

* [fix] Removed Redudant add_fetch

* [fix] Codacy fixed

* [fix] Print hide added
2017-11-29 16:09:59 +05:30
KanchanChauhan
2d1cbd0b2e Delete old asset doctypes from Accounts module and minor changes (#11766) 2017-11-29 16:03:00 +05:30
Nabin Hait
29390d3cb7 Merge branch 'creamdory-add_delivery' into develop 2017-11-29 15:53:29 +05:30
Nabin Hait
ad2a3e4f38 Cleanup and fixes on delivery trip 2017-11-29 15:53:01 +05:30
Nabin Hait
46e285efe9 Merge branch 'add_delivery' of https://github.com/creamdory/erpnext into creamdory-add_delivery 2017-11-29 14:15:16 +05:30
rohitwaghchaure
f591a220c9 Fetch items of item groups defined in the pos profile (#11763) 2017-11-29 13:55:13 +05:30
Zarrar
c43c5cae5a Set query sales order (#11772)
* set_query for sales order based on production_item

* codacy fix

* check in packed item to fetch sales order

* Update production_order.py
2017-11-29 13:54:35 +05:30
rohitwaghchaure
2fb8cc5f2c [fix] Options must be a valid DocType for field Asset Category in row 18 (#11773)
* [fix] Options must be a valid DocType for field Asset Category in row 18

* test cases
2017-11-29 13:50:04 +05:30
rohitwaghchaure
4a15711b04 Merge pull request #11768 from tundebabzy/issue-11749
add missing field and value parameters
2017-11-29 11:22:20 +05:30
tundebabzy
2a4fefc6ff Auto fetch batches based on quantity on POS (#11004) (#11767)
* prevent premature escape when item has serial no and batch no

* fetch actual_batch_qty for item

* add available_qty to dialog

* remove expired batches from drop-down

* Update queries.py
2017-11-29 10:53:09 +05:30
Julian Robbins
d7216b559f Fix missing space and improve wording (#11764) 2017-11-29 10:49:35 +05:30
Julian Robbins
d785e22211 Fix spelling of accessibility (#11765) 2017-11-29 10:49:12 +05:30
tunde
0d82b6979e add missing field and value parameters 2017-11-28 23:30:03 +01:00
tundebabzy
bc7c387a0d set read only property properly (#11761) 2017-11-28 22:40:05 +05:30
Prateeksha Singh
bf31d853e7 Merge pull request #11762 from manassolanki/fix
fix for module in the new report
2017-11-28 19:08:52 +05:30
Manas Solanki
34a8be83ea delete the old files 2017-11-28 18:47:56 +05:30
Manas Solanki
49ff065684 fix for the new report module 2017-11-28 18:44:06 +05:30
Manas Solanki
84e9d45055 Minor fixes for the Education domain (#11758)
* add the new role Education Manager for education settings

* minor changes in the hooks for bootinfo

* Fix for amending the assessment plan
2017-11-28 18:04:08 +05:30
Nabin Hait
7e07c150ed Merge branch 'KanchanChauhan-asset-maintenance' into develop 2017-11-28 16:57:56 +05:30
Nabin Hait
cf9573ab2f Removed asset doctypes files from accounts module and patches 2017-11-28 16:56:53 +05:30
rohitwaghchaure
c037dc775e Refactor multi pos profile selection in the pos invoice (#11721) 2017-11-28 16:11:15 +05:30
Shreya Shah
8d9edbf133 Letterhead in user progress (#11679)
* added letter-head to user progress slides

* added letterhead action to patch

* improvised

* added date in patches.txt
2017-11-28 16:09:58 +05:30
Kanchan Chauhan
e58a41a8a2 Added maintenance to Asset and enhanced maintenance for Asset Maintenance 2017-11-28 15:14:56 +05:30
Nabin Hait
35cd1d325f [fix] Set GST State code based on state, even if GSTIN not mentioned (#11755) 2017-11-28 13:01:01 +05:30
Doridel Cahanap
de82fe9e8f [minor] Set Rename for Training Program (#11740) 2017-11-28 11:26:23 +05:30
Saurabh
b750b304dd fixed merge-conflicts 2017-11-28 11:02:28 +05:30
Saurabh
7b833802a9 Merge branch 'hotfix' 2017-11-28 11:00:17 +05:30
Saurabh
d86ace41a1 bumped to version 9.2.17 2017-11-28 11:30:17 +06:00
Jamsheer
b488475d92 Remove Company from Patient - Patches Added (#11716)
* Remove Company from Patient - Patches Added

* Update patient DOB field label to Date of birth

* Patient marital status default null

* Update patient.py
2017-11-28 10:47:06 +05:30
Saurabh
8eda0cc8ba [fix] validate bom if order type is subcontracting (#11705)
* [fix] validate bom if order type is subcontracting

* [fix] moved validation to server side
2017-11-28 10:41:35 +05:30
rohitwaghchaure
a14baf4188 Merge pull request #11739 from rohitwaghchaure/payment_terms_test_case
[fix] payment terms test case
2017-11-27 12:05:57 +05:30
Saurabh
9d0092f89a [fix] pull source warehouse from production order child table (#11718) 2017-11-27 12:04:41 +05:30
Shreya Shah
e3d6d21ec5 [Fix] Item name and description in production order (#11723)
* fetch item name and description from bom

* Update production_order.py

* patch added

* Update set_item_name_in_production_order.py
2017-11-27 12:02:13 +05:30
Charles-Henri Decultot
22641e44ad Allowing the creation of an Oganization as Lead (#11724)
* Allow the creation of an organization lead

* Changes following test fails

* Test case correction
2017-11-27 11:58:22 +05:30
Shreya Shah
dcbc4284d3 expenses included in valuation account type in purchase taxes and charges (#11725) 2017-11-27 11:48:09 +05:30
Rohit Waghchaure
52bf56d415 [fix] payment terms test case 2017-11-27 11:43:52 +05:30
rohitwaghchaure
373b5702a9 [fix] Server test cases (#11727) 2017-11-27 11:27:28 +05:30
Saurabh
ab5e77ecf1 [fix] do not pull disabled pos profiles (#11733) 2017-11-27 11:26:13 +05:30
rohitwaghchaure
15f8fe0179 [fix] Batch selected in the sales transaction for non batch item (#11713) 2017-11-24 10:46:27 +05:30
Saurabh
41f60546a1 [fix] do not allow user to create party type (#11706) 2017-11-23 18:02:51 +05:30
Nabin Hait
82ef26b327 Minor fix in patch 2017-11-23 17:57:33 +05:30
Nabin Hait
aa5b566ea9 Merge branch 'ashish-greycube-feature_10861-1' into develop 2017-11-23 17:49:25 +05:30
Nabin Hait
68768252ce Cleanup and fixes on bypass credit limit check on sales order 2017-11-23 17:48:59 +05:30
rohitwaghchaure
1e381584de Merge pull request #11703 from rohitwaghchaure/pos_bind_event_issue
Code cleanup
2017-11-23 16:31:54 +05:30
Rohit Waghchaure
09b39f06ea Code cleanup 2017-11-23 16:30:10 +05:30
Nabin Hait
57952f6946 Merge branch 'develop' into feature_10861 2017-11-23 16:12:55 +05:30
Manas Solanki
966f141f62 Rename schools to Education (#11524)
* renaming for the docs, demo data and patch

* changes in the doctypes and reports

* rename the config file

* Few name changes in messages and license

* rename the school settings to education settings

* changes in the documentation

* added the setup file for the fixtures

* corrected the ui tests file path

* fix the codacy

* add the patch for renaming few doctypes and fields

* changes in the patch
2017-11-23 15:22:10 +05:30
Nabin Hait
cda4d50063 Fixed reserved qty for production logic and patch for reposting (#11691) 2017-11-23 13:05:43 +05:30
tundebabzy
acccdb3890 Default batch number selection (#11454)
* fetch batch_no in `get_basic_details`

* PEP8 changes and docstring

* only auto-fetch batch number for Sales documents:
otherwise, automatic batch creation will not work properly because all new
stock will be added to old batch

* new function to fetch batch number using FEFO:
FEFO - First Expiring First Out

* fetch batch number in `get_basic_details` using FEFO

* add new function - `set_batch_number`

* `set_batch_number` when `qty` is triggered

* `set_batch_number` when `uom` is triggered

* whitelist `get_batch_no_fefo`

* code clean up

* move `set_batch_number` to conversion_factor instead of uom

* rename `get_batch_no_fefo` to `get_batch_no`

* fix test case

* final cleanup

* Revert "fetch batch_no in `get_basic_details`"

This reverts commit dd024b1eb3.

* fix test case

* update Sales Invoice manual

* move changes away from `transaction.js`

* query should not fetch expired batches

* refactor `get_batch_no`:
add new function `get_batches`

* Update batch.py
2017-11-23 13:05:15 +05:30
Nabin Hait
82027ea3bf Set print hide property for payment terms 2017-11-23 12:49:42 +05:30
Manas Solanki
30babee2ef add courses in the program enrollment (#11694) 2017-11-23 12:19:57 +05:30
Zarrar
a90274fed9 linking issue in dashboard (#11701) 2017-11-23 12:19:40 +05:30
Jamsheer
1ce56316ea Populate patient_name in Healthcare Doctypes (#11690)
* On Cancel Consultation - Open Appointment - Delete Medical Record

* Add Filter on Account Selection - is_group: 0

* Patient Medical Record - List view Fixes

* Update consultation.py

* Set Appointment Refrence in Vital Signs

* Add Other in Gender Selection

* Populate patient_name in Healthcare Doctypes
2017-11-23 12:18:43 +05:30
Saurabh
ed4191ec5b [fix] merge-conflicts 2017-11-22 18:01:56 +05:30
Saurabh
7cf945c975 Merge branch 'hotfix' 2017-11-22 17:54:18 +05:30
Saurabh
4bc12b68e4 bumped to version 9.2.16 2017-11-22 18:24:18 +06:00
Nabin Hait
02ac901345 [fix] Rounding adjustment in company currency 2017-11-22 16:12:20 +05:30
rohitwaghchaure
4dc5f0efaf [Fix] Item details not fetching if item has no default bom (#11688) 2017-11-22 15:21:47 +05:30
Nabin Hait
96abfd2ab9 [fix] In payment entry, run some events serially to avoid async issue 2017-11-22 15:13:16 +05:30
Nabin Hait
036bf6de6e Merge branch 'develop' of https://github.com/frappe/erpnext into develop 2017-11-21 20:19:13 +05:30
Nabin Hait
32a62a02df Fixed merge conflict 2017-11-21 20:18:03 +05:30
Nabin Hait
0551f7bb00 Cleanup and fixes of payment terms feature 2017-11-21 19:58:16 +05:30
Zarrar
657ceef105 skipped tax_account (#11678) 2017-11-21 17:40:22 +05:30
Faris Ansari
6ca6a69070 Course Scheduling Tool (#11676)
* [education] Fix Course Scheduling Tool

* minor
2017-11-21 17:28:51 +05:30
Rushabh Mehta
476c66d699 [fix] tests.txt 2017-11-21 17:02:39 +05:30
Rushabh Mehta
26ca6afd11 [fix] test.txt for accounts 2017-11-21 16:17:58 +05:30
rohitwaghchaure
e8ccc0e942 [enhance] Added multi UOM feature in Material Request (#11352)
* [enhance] Added multi UOM in Material Request

* test cases

* patch to update multi uom fields in material request item
2017-11-21 16:17:22 +05:30
Makarand Bauskar
75443a94ee [minor] set the pos profile name while creating demo (#11664) 2017-11-21 16:12:40 +05:30
Zarrar
f71f3af938 adding task to root node (#11666) 2017-11-21 16:12:01 +05:30
Saurabh
5add4897a5 Merge pull request #11506 from saurabh6790/test_patches
[travis] run patches by restoring v7 database
2017-11-21 15:56:54 +05:30
Saurabh
6edf12540a Merge pull request #11675 from saurabh6790/test-case-path-fixes
[fix] ui test-case path
2017-11-21 15:56:23 +05:30
Saurabh
d503f12713 [fix] ui test-case path 2017-11-21 15:22:41 +05:30
Rushabh Mehta
5171da81a1 [minor] fix-patch 2017-11-21 15:18:47 +05:30
Nabin Hait
cc884578b5 Update sales_order.py 2017-11-21 12:24:03 +05:30
rohitwaghchaure
834541a7e8 [fix] Added primary action in the modal which will show on the submission in the pos (#11575) 2017-11-20 11:31:53 +05:30
Britlog
1484793055 Shopping cart addresses management (#11657) 2017-11-20 11:22:18 +05:30
rohitwaghchaure
179e0c1d8d Added party name in accounts receivable/payable report (#11656) 2017-11-20 11:18:55 +05:30
creamdory
fd1503c6a5 [New Feature] Delivery 2017-11-20 10:28:49 +08:00
rohitwaghchaure
34d6340be6 Merge pull request #11647 from rohitwaghchaure/pos_selling_price_issue
[fix] Price list not loaded from pos profile, auto set outstanding amount in the mode of payment
2017-11-18 21:33:32 +05:30
Rohit Waghchaure
77940493a8 [fix] Price list not loaded from pos profile, auto set outstanding amount in the mode of payment 2017-11-18 19:06:31 +05:30
Prateeksha Singh
e1b8629313 Fix setup wiz test (#11640)
* increase timeout in setup wiz test

* enable profile slide
2017-11-17 20:08:45 +05:30
KanchanChauhan
0fe455a991 [Minor][Bug] Fix syntax error (#11633) 2017-11-17 20:08:15 +05:30
Saurabh
00e82cdab3 [fix] patch fixes to setup patch tester on travis 2017-11-17 19:08:01 +05:30
Saurabh
a8823eadb6 [travis] run patches by restoring v7 database 2017-11-17 19:08:01 +05:30
Prateeksha Singh
241d64d8c1 Merge pull request #11634 from pratu16x7/variant-modal-fix
[minor] fix plurals spacing
2017-11-17 15:34:34 +05:30
pratu16x7
83587c72f6 [minor] fix plurals spacing 2017-11-17 15:33:12 +05:30
Saurabh
a4f78211ab Merge branch 'master' into develop 2017-11-17 14:55:24 +05:30
Saurabh
a5b53e9480 Merge branch 'hotfix' 2017-11-17 14:55:23 +05:30
Saurabh
f773af6053 bumped to version 9.2.15 2017-11-17 15:25:23 +06:00
Saurabh
119a50e228 Merge pull request #11630 from saurabh6790/domain_settings_fix
[fix] set default language in local
2017-11-17 14:54:38 +05:30
Saurabh
11ec2c50e0 [fix] set default language in local 2017-11-17 14:51:08 +05:30
Zarrar
1b4894c33a make root_type null if not root (#11626) 2017-11-17 14:32:12 +05:30
Rushabh Mehta
30dc9a14c6 [feature] [refactor] Shipping Rule for Buying + Refactor (#11628)
* Shipping rule for Buying

* [refactor] shipping rule
2017-11-17 14:31:09 +05:30
Saurabh
66e65dc104 [fix] merge-conflicts 2017-11-17 14:03:13 +05:30
Saurabh
1e74519726 Merge branch 'hotfix' 2017-11-17 14:01:30 +05:30
Saurabh
05ed86a00e bumped to version 9.2.14 2017-11-17 14:31:29 +06:00
Saurabh
d40ae81fc9 Merge pull request #11627 from rohitwaghchaure/pos_redirect_issue
[fix] POS redirect issue
2017-11-17 13:55:10 +05:30
Rohit Waghchaure
44f7b157ff [fix] POS redirect issue 2017-11-17 13:52:11 +05:30
Nabin Hait
7fa111de45 Update sales_invoice.py 2017-11-17 12:55:08 +05:30
Nabin Hait
6b70906deb Update purchase_invoice.py 2017-11-17 12:54:32 +05:30
Nabin Hait
1c4653ed97 Merge branch 'develop' into payment-terms 2017-11-17 12:41:56 +05:30
Saurabh
3499ba08df [fix] do not translate domains while creating db record (#11616) 2017-11-17 12:29:26 +05:30
Nabin Hait
877e1bb377 Post GL Entry based on rounded total in Sales/Purchase Invoice (#11542) 2017-11-17 12:27:43 +05:30
Nabin Hait
1783549e75 Minor fixes in patch 2017-11-17 12:20:07 +05:30
Rushabh Mehta
58dccf38c5 [fix] for tests 2017-11-17 12:12:53 +05:30
Prateeksha Singh
744ff0010b Variant report (#11618)
* Item Variant Details Report

* remove queries from inside for loop

* make attribute value map

* Update item_variant_details.py
2017-11-17 12:00:29 +05:30
hiousi
d81e9f30dd [fix] issue #11456 (#11612)
using bench export-fixtures create a erpnext/fixtures/web_form.json file 
see :
https://github.com/frappe/erpnext/issues/11456#issuecomment-344846063
2017-11-17 11:42:24 +05:30
Britlog
b6096057c6 Hide cart icon and badge count after logging out (#11530) 2017-11-17 11:41:35 +05:30
Britlog
2a89a502f0 [Website] Items list and stock (#11480)
* Add stock availability in items list and a parameter to set the number of products per page

* Substract reserved_qty from actual_qty for website stock
2017-11-17 11:41:07 +05:30
Vishal Dhayagude
82b200e497 [fix] Patch fail (#11623) 2017-11-17 11:01:42 +05:30
Britlog
d9978d9c4f Check stock in shopping cart (#11529) 2017-11-16 18:38:13 +05:30
rohitwaghchaure
51a397c97f [fix] Valuation rate in stock entry and code cleanup (#11614) 2017-11-16 18:23:16 +05:30
Manas Solanki
bb34c57603 link the address and contact with the sales partner (#11592) 2017-11-16 18:10:04 +05:30
Prateeksha Singh
8f43d2514c Multiple variant creation dialog (#11608)
* Multiple variant creation dialog

* variant dialog codacy fixes

* [multiple variants] show_alert, and other minors
2017-11-16 18:06:26 +05:30
Nabin Hait
1749b7c16b Minor fixes related to account renaming and deletion 2017-11-16 17:49:54 +05:30
Rushabh Mehta
a5ebebd09c [enhance] Add Issue Type and Opportunity Type masters (#11598)
* [enhance] added & linked Issue Type & Opportunity Type with opportunity

* [patch] create issue and opportunity type from the custom field if available

* [minor] issue_type and opportunity type should be mandatory

* [patches] removed try catch from the patch

* [fix] patch

* [refactor] cleanup issue/opportunity type
2017-11-16 17:03:52 +05:30
Nabin Hait
46be9896a9 Account number in chart of accounts (#10551)
* Account number in chart of accounts

* Include account number while renaming account

* Test case fixed

* Standard coa with and without numbers

* Standard coa with and without numbers
2017-11-16 16:51:55 +05:30
augustinfotech
135a54ca93 Allow print before pay in POS (#11590) 2017-11-16 15:28:42 +05:30
tundebabzy
f7e6934d7c handle None case in update_reserved_qty_for_production (#11593) 2017-11-16 14:13:49 +05:30
Manas Solanki
eb3982044b convert html into text in the taxes description as it can break the reports (#11603) 2017-11-16 14:11:39 +05:30
Pawan Mehta
bda07c6db4 Added Warehouse, Cost Center, Owner filters to Sales Register (#11600)
* [fix] #3668

* fix codacy space issue
2017-11-16 14:09:17 +05:30
Neil Trini Lasrado
0df93d61eb Update update_sales_cost_in_project.py (#11595)
Will break if select sum(base_grand_total) from `tabSales Order` where project=p.name and docstatus=1 returns Null. Gives - "OperationalError: (1048, "Column 'total_sales_cost' cannot be null")" Error
2017-11-16 14:07:55 +05:30
rohitwaghchaure
21cbbae88f [fix] Payment reconcillation showing linked journal entries (#11611) 2017-11-16 14:05:57 +05:30
ashish
f17ca7866a removed names from comments 2017-11-16 11:08:14 +05:30
ashish
604eb9d689 added flag to function get_customer_outstanding and removed names in comments 2017-11-16 11:05:59 +05:30
ashish
a20c8dbd5c instead of caller as 3rd arg added a flag 2017-11-16 11:03:39 +05:30
ashish
a1feb32891 added json for bypass credit limit checkbox 2017-11-16 11:01:43 +05:30
ashish
f67372cfb3 removed logic from delivery note for checking bypass credit limit flag 2017-11-16 10:58:25 +05:30
ashish
8146c7a3df not required as default is set by default 2017-11-16 10:54:22 +05:30
ashish
bccdf74344 set default value of bypass_credit_limit flag removed as it is not required 2017-11-16 10:53:22 +05:30
ashish
62155fa0e5 Merge branch 'feature_10861' of https://github.com/ashish-greycube/erpnext into feature_10861 2017-11-16 10:47:44 +05:30
Rushabh Mehta
8e5dcd06fb [fix] item.py 2017-11-15 17:53:44 +05:30
Rushabh Mehta
083dabaaf8 [fix] item.py 2017-11-15 17:08:53 +05:30
Frappe PR Bot
978cfdec2c [Translation] Updated Translations (#11591) 2017-11-15 16:30:08 +05:30
Rushabh Mehta
d3f5d0961a [feature] Opening Invoice Creation Tool (#11589)
* [enhance] Opening Invoice Tool create Opening Sales/Purchase Invoices

* [minor] added progress bar while creating invoice

* [minor] allow bulk upload for the invoices

* [minor] calculate item rate from net total

* [minor] added defaults for invoices fields, create gl entries only if grand_total is greater than 0

* [minor] check mandatory values before making opening invoices

* [minor] enable primary button if there is any error while creating invoices

* [minor] minor fixes, set company currency as invoice currency added tests

* [dashboard] added Opening Invoice Summery section in Dashboard

* [minor] added total invoices count on dashboard

* [minor] don't show dashboard if there are no opening invoices available

* [minor] added Opening Invoice Tools to Account's Tools section

* [minor] codecy fixes

* [fix] refactored general ledger and buttons on charts

* [fix] tests
2017-11-15 16:29:53 +05:30
Nabin Hait
78ab8235f6 Minor code cleanups in stock balance report 2017-11-15 14:43:54 +05:30
Brown-Harry Boma
b9e44217a2 [Fix]Codacy Issues 2017-11-15 14:43:54 +05:30
Brown-Harry Boma
2da8f6e89d Add Items Variants Attributes columns to Stock Balance Report 2017-11-15 14:43:54 +05:30
Zarrar
24b8aa2e80 set field dependent on link field fix (#11580) 2017-11-15 14:27:00 +05:30
Nabin Hait
94704beba3 Merge branch 'hotfix' 2017-11-15 14:08:17 +05:30
Nabin Hait
6fd163bc55 Merge branch 'master' into develop 2017-11-15 14:08:17 +05:30
Nabin Hait
429e5d57d5 bumped to version 9.2.13 2017-11-15 14:38:17 +06:00
Jamsheer
0abec034df Healthcare hotfix (#11586)
* On Cancel Consultation - Open Appointment - Delete Medical Record

* Add Filter on Account Selection - is_group: 0

* Patient Medical Record - List view Fixes

* Update consultation.py
2017-11-15 13:53:50 +05:30
Umair Sayed
3a9ca883b9 Update party.py (#11584) 2017-11-15 13:44:04 +05:30
Manas Solanki
bf59b5927f make route from item code if item name is None (#11579) 2017-11-15 10:55:22 +05:30
ppd1990
9bd84277db Propagate projected_qty all the way to the root warehouse to make 'check in group' actually work for more complex warehouse topologies (#10842) 2017-11-15 10:13:09 +05:30
schilgod
e418a5bdc1 Option to disable fetching last purchase details in Purchase Order (#11573)
* add check for enable/disable last purchase details in Purchase Order

* fix tabs
2017-11-15 09:49:49 +05:30
Jamsheer
bab226698f Healthcare hotfix (#11574)
* Patient dashboard - Vital Signs

* Remove submit validation in Consultation

* Physician Schedule - Add Time Slots - Fix

* Patient Appointment - Client side - fixes
2017-11-15 09:47:00 +05:30
rohitwaghchaure
43edd5d03c Employee loan fixes (#11495)
* Employee loan fixes

* Update update_employee_loan_details.py
2017-11-14 17:59:20 +05:30
Nabin Hait
50616da905 Merge branch 'master' into develop 2017-11-14 17:48:43 +05:30
Nabin Hait
3f83afe4e1 Merge branch 'hotfix' 2017-11-14 17:48:42 +05:30
Nabin Hait
ea3e6b93a7 bumped to version 9.2.12 2017-11-14 18:18:42 +06:00
Nabin Hait
10823e5a25 Merge branch 'neilLasrado-develop1' into develop 2017-11-14 17:40:45 +05:30
Nabin Hait
b55e98570f Minor fixes 2017-11-14 17:40:30 +05:30
Shreya Shah
be690ef817 Rate with margin in customer and company currency (#11437)
* field for company margin

* added base_rate_with_margin

* calculate company margin

* test for item price

* test for delivery note

* test for sales order

* test for quotation

* test for sales invoice
2017-11-14 17:22:41 +05:30
Nabin Hait
42274a4591 Delete healthcare domain items (#11567) 2017-11-14 17:15:11 +05:30
Nabin Hait
cd13a28417 Get items from quotation in sales invoice 2017-11-14 17:13:53 +05:30
AravindPranera
04e3518fad Update request_for_quotation.py 2017-11-14 17:13:53 +05:30
AravindPranera
5bae488f25 Update request_for_quotation.py 2017-11-14 17:13:53 +05:30
AravindPranera
86e726158b Getting Quotation Document in Sales Invoice 2017-11-14 17:13:53 +05:30
AravindPranera
0ebd3c373c Getting Quotation Document in Sales Invoice 2017-11-14 17:13:53 +05:30
Rushabh Mehta
b8b8dc119f [fix] item.py fix for _doc_before_save 2017-11-14 16:52:05 +05:30
Rushabh Mehta
cc1262c36d Add option to clean description html in item description. (#11565)
* [fix] add item settings

* [docs] Item Settings

* [fix] enqueue in item_settings.py

* [refactor] move to stock settings

* [refactor] move to stock settings
2017-11-14 16:36:25 +05:30
Rushabh Mehta
d5c6416d91 [new feature] Product Configurator (via Item Quick Entry) (#11535)
* [Feature] Item Variant Creation from Quick Entry

* [minor] formatted js

* [minor] set 3 attribute per page instead of 5 in template

* [fix] fixed codecy issue

* [fix] label translation

* [minor] changed trigger event of item template

* [fix] moved item ui tests under stock

* [UI test] added test for item attribute

* [UI test] added test for creation of item variant from quick entry

* [fix] item variant ui test fixes

* [wip]

* [cleanup] item quick entry

* [remove] tests, fixtures were missing

* [refactor] use set_only_once in item
2017-11-14 15:27:28 +05:30
tunde
ffa659fd2c Merge branch 'develop' into payment-terms 2017-11-14 09:59:45 +01:00
Nabin Hait
66f460ffbc Merge branch 'hotfix' 2017-11-14 13:58:37 +05:30
Nabin Hait
4d99ebaeb5 Merge branch 'master' into develop 2017-11-14 13:58:37 +05:30
Nabin Hait
0590d1da05 bumped to version 9.2.11 2017-11-14 14:28:37 +06:00
Saurabh
7d05a3470c [fix] added pygithub dependancy (#11559) 2017-11-14 13:41:01 +05:30
Rushabh Mehta
d8bc8de6ca [minor] remove unnecessary description in upload attendance, fixes #10603 2017-11-14 12:52:53 +05:30
Rushabh Mehta
98aa581864 [fix] default tax only on insert (#11544)
* [fix] default tax only on insert

* [fix] default tax only on insert

* [fix] default tax only on insert
2017-11-14 09:32:32 +05:30
Faris Ansari
3a5dceae18 Add Github Connector (#11259)
- Add new module ERPNext Integrations
2017-11-13 19:19:13 +05:30
Manas Solanki
e5aa9c5f2f new report - assessment plan status (#11504)
* new report - assessment plan status

* add the report in the school dashboard

* fix for the print format
2017-11-13 18:56:53 +05:30
Manas Solanki
69be5362a5 minor fixes in the assessment result (#11543) 2017-11-13 18:32:06 +05:30
Nabin Hait
ec8a0a22d7 Merge branch 'master' into develop 2017-11-13 15:10:17 +05:30
Nabin Hait
758c389ef3 Merge branch 'hotfix' 2017-11-13 15:10:16 +05:30
Nabin Hait
58ab203fc0 bumped to version 9.2.10 2017-11-13 15:40:16 +06:00
Nabin Hait
6605919ecd GL Entries on sale of an asset (#11538) 2017-11-13 15:06:35 +05:30
Saurabh
feeb47dbbe [fix] if not students in student groups then raise exception (#11537) 2017-11-13 13:52:58 +05:30
Nabin Hait
deeb1380b1 Ignore paid credit note in outstanding invoices in Payment Entry (#11534) 2017-11-13 13:52:05 +05:30
Saurabh
0f86d86e27 [fix] validate party account (#11517) 2017-11-10 19:21:09 +05:30
Faris Ansari
4ec4e3fb29 [patch] Revert Manufacturing User role (#11514) 2017-11-10 19:15:17 +05:30
Prateeksha Singh
17b7209032 remove erroneous column breaks (#11522) 2017-11-10 18:54:03 +05:30
Prateeksha Singh
731b66b788 remove erroneous column breaks (#11523) 2017-11-10 18:53:52 +05:30
Rushabh Mehta
4313326ba0 [fix] treeview for tasks (#11515)
[fix] treeview for tasks
2017-11-10 18:52:21 +05:30
Saurabh
a5275a1ba9 Merge branch 'master' into develop 2017-11-10 15:53:44 +05:30
Saurabh
241139001e Merge branch 'hotfix' 2017-11-10 15:53:43 +05:30
Saurabh
a10cd10640 bumped to version 9.2.9 2017-11-10 16:23:43 +06:00
Saurabh
44ef8654f9 Merge pull request #11510 from rohitwaghchaure/issue_11502
Add item directly in the cart only if serial no, batch, barcode has enter in the search field
2017-11-10 15:51:14 +05:30
Saurabh
71862f9024 Merge pull request #11509 from saurabh6790/bom_search_query_fix
[fix] query param fixes
2017-11-10 15:50:55 +05:30
Rohit Waghchaure
a5e3c3a79f Add item directly in the cart only if serial no, batch, barcode has enter in the search field 2017-11-10 15:29:26 +05:30
rohitwaghchaure
cc97ec9202 [hotfix] Salary slip, leave considered in amount calculation even if depends on lwp is disabled in salary slip (#11507) 2017-11-10 15:06:58 +05:30
Saurabh
022ab63a0f [fix] query param fixes 2017-11-10 15:06:02 +05:30
Pawan Mehta
1368ba00bc [fix] #11337 (#11339) 2017-11-10 14:59:26 +05:30
Saurabh
cdf8016bcd Merge branch 'hotfix' 2017-11-10 13:15:04 +05:30
Saurabh
7b78a83592 Merge branch 'master' into develop 2017-11-10 13:15:04 +05:30
Saurabh
18c8cf965f bumped to version 9.2.8 2017-11-10 13:45:04 +06:00
Nabin Hait
29741fee08 Merge branch 'develop' into staging 2017-11-10 11:46:50 +05:30
Saurabh
7ab28ec562 [fix] give preference to gateway selected on shopping cart settings (#11393) 2017-11-10 11:17:01 +05:30
KanchanChauhan
e59c9ce9f4 Checkbox has_expiry_date in Item to make suer Expiry Date is entered in Batch (#11413) 2017-11-10 11:16:29 +05:30
Alchez
1077c782a3 [Fix] Packing Slip creation if custom field does not have a value (#11423)
* [Fix] Packing Slip creation if custom field is Column/Section Break

* Used no_value_fields and sorted imports

* Update packing_slip.py
2017-11-10 11:14:57 +05:30
Nabin Hait
15753074bf Nestedset model fixes for changing parent and renaming (#11467) 2017-11-10 11:12:43 +05:30
Nabin Hait
8e3da7f70e Update test_assessment_plan.js 2017-11-10 10:59:17 +05:30
Nabin Hait
887285ed1a Update test_assessment_plan.js 2017-11-10 10:59:07 +05:30
Manas Solanki
aeb0026354 commits from develop merged PR's (#11491)
* better student search queries and minor fixes in the student group

* remove the print option for the tools

* fixes for the chart

* minor fixes in the fee module for print and permission, delete redundant doctype

* set the naming series and independent dob validation
2017-11-10 10:58:43 +05:30
rohitwaghchaure
1ce48e7032 [fix] POS profile patch (#11501) 2017-11-10 10:53:12 +05:30
Faris Ansari
99e31f97b8 set default params for paging (#11500) 2017-11-10 10:50:49 +05:30
Faris Ansari
4a864c1eea [fix] Update bom item description (#11498)
* [fix] Update bom item description

* Update item.py
2017-11-09 19:01:21 +05:30
Nabin Hait
c4de619eac Update assessment_plan.py 2017-11-09 14:36:11 +05:30
Nabin Hait
fe72ed003e Update test_assessment_plan.js 2017-11-09 11:47:13 +05:30
Prateeksha Singh
3e998bccba Merge pull request #11490 from pratu16x7/hotfix
[minor][hotfix] naming_series variable assignment
2017-11-08 17:22:49 +05:30
pratu16x7
40016372c6 [minor][hotfix] naming_series variable assignment 2017-11-08 16:30:15 +05:30
Saurabh
b97f08e0ac [fixed] merge-conflicts 2017-11-08 15:08:38 +05:30
Saurabh
af22f84809 Merge branch 'hotfix' 2017-11-08 15:07:33 +05:30
Saurabh
3894a5ed94 bumped to version 9.2.7 2017-11-08 15:37:33 +06:00
Saurabh
045b2877b7 [fix] remove warehouse from Stock Settings if warehouse wont exists (#11487) 2017-11-08 14:57:03 +05:30
Manas Solanki
a658630751 remove the print option from the tools (#11484)
* remove the print option for the tools

* better student search queries and minor fixes in the student group
2017-11-08 14:55:54 +05:30
Saurabh
148b62a206 Merge pull request #11486 from saurabh6790/patch_fixes_
[fix] catch link validation exception in POS profile and reload fees …
2017-11-08 14:48:33 +05:30
Saurabh
d2cef208fe [fix] catch link validation exception in POS profile and reload fees doctype 2017-11-08 14:44:43 +05:30
Nabin Hait
ff73646212 Made POS Profile mandatory and changed test order 2017-11-08 14:34:38 +05:30
Saurabh
4c617d6496 Merge branch 'staging' 2017-11-08 12:20:46 +05:30
Saurabh
eb760d6d09 Merge branch 'master' into develop 2017-11-08 12:20:46 +05:30
Saurabh
f985ae1379 bumped to version 9.2.6 2017-11-08 12:50:46 +06:00
Saurabh
98aa544f25 Merge branch 'master' into staging 2017-11-08 12:18:50 +05:30
Saurabh
f41b13b736 [fix] merge-conflicts 2017-11-08 12:18:41 +05:30
Saurabh
6ad1082433 Merge branch 'hotfix' 2017-11-08 12:12:37 +05:30
Saurabh
db781e607a bumped to version 9.2.5 2017-11-08 12:42:37 +06:00
rohitwaghchaure
521606e433 Merge pull request #11398 from rohitwaghchaure/item_variants_donot_copy_option
[enhance] In item variants settings added provision, do not update the variants of variants from the template but will copy the value while making new variant aginst the template
2017-11-08 11:49:24 +05:30
Rohit Waghchaure
acc8995c48 [enhance] In item variants settings added provision, do not update the fields of variants from the template but will copy the value while making new variant aginst the template 2017-11-08 11:39:08 +05:30
Sushant Nadkar
72c40f0383 Enabled track seen for Sales Order, Sales Invoice, Production Order, and Delivery Note (#11440) 2017-11-08 11:35:46 +05:30
Shreya Shah
d9e2b24535 task name in gantt view - clickable (#11459) 2017-11-08 11:35:19 +05:30
rohitwaghchaure
f688af3809 [fix] Offline pos name is not defined issue in the POS (#11469) 2017-11-08 11:33:39 +05:30
Achilles Rasquinha
7fd20f303f moved from MySQLdb to pymysql (#11462) 2017-11-08 11:33:24 +05:30
rohitwaghchaure
9f2a27c99c Merge pull request #11477 from rohitwaghchaure/pos_profile_test_cases
[fix] POS Profile test cases
2017-11-07 16:35:52 +05:30
rohitwaghchaure
6058dcc2ce Merge pull request #11470 from rohitwaghchaure/pos_online_invalid_grand_total_issue
[Fix] Fast clicking on an item, showing invalid grand total and quantity in the POS cart
2017-11-07 16:19:51 +05:30
Rohit Waghchaure
35fc45eff9 [fix] POS Profile test cases 2017-11-07 10:43:16 +05:30
Rohit Waghchaure
57cc924d29 [Fix] Fast clicking on an item, showing invalid grand total and quantity in the POS cart 2017-11-06 18:42:37 +05:30
Manas Solanki
36e2fb8d58 minor fixes in the fee module for print and permission, delete redundant doctype (#11430) 2017-11-06 17:44:59 +05:30
Nabin Hait
e552a51266 Minor cleanups 2017-11-06 17:39:31 +05:30
pawan
436f7b980c codacy issues 2017-11-06 17:39:31 +05:30
pawan
438dfc081b fix codacy issues 2017-11-06 17:39:30 +05:30
pawan
d59225635d remove old report 2017-11-06 17:39:30 +05:30
pawan
b699b86b76 Add Total Row 2017-11-06 17:39:30 +05:30
pawan
8d1d64aa29 [fix] #11449 2017-11-06 17:39:30 +05:30
pawan
e61a275651 [fix] #11427 2017-11-06 17:39:30 +05:30
Manas Solanki
6ba2eda04a fixes for the chart (#11460) 2017-11-06 17:22:14 +05:30
rohitwaghchaure
bcb7854340 Merge pull request #10982 from netchampfaris/multiple-users-pos-profile
[Enhancement] Allow Multiple users in POS Profile
2017-11-06 16:45:01 +05:30
rohitwaghchaure
adbbb0b0f3 Merge pull request #11364 from manassolanki/set-pos-profile
set the pos profile in the sales invoice
2017-11-06 14:08:59 +05:30
Manas Solanki
40ef7e7039 patch for renaming the pos profile and setting the pos profile name 2017-11-06 13:53:52 +05:30
Manas Solanki
b1616a0cb3 changes in thepos profile 2017-11-06 13:53:52 +05:30
Manas Solanki
3f0dfd720f set the pos profile in the sales invoice 2017-11-06 13:53:52 +05:30
Nabin Hait
f15a8409eb [tests] Test case fixes for task and project (#11445)
* [tests] Test case fixes for task and project

* Removed hard-coded dates from test cases

* Codacy fix
2017-11-06 11:11:34 +05:30
Saurabh
e850655c1d Merge branch 'master' into staging 2017-11-03 16:56:24 +05:30
Saurabh
5647bf081a Merge branch 'hotfix' 2017-11-03 16:56:23 +05:30
Saurabh
0faa61009f Merge branch 'master' into develop 2017-11-03 16:56:23 +05:30
Saurabh
56cb0aa9c1 bumped to version 9.2.4 2017-11-03 17:26:23 +06:00
Faris Ansari
cbaa0e629c fix codacy 2017-11-03 11:35:49 +05:30
Manas Solanki
76ce074c63 return the account details if and only if there is single account of that type (#11407) 2017-11-02 18:12:47 +05:30
rohitwaghchaure
7677ff00a2 [hotfix] User not able to edit exchange rate even if Allow Stale Exchange Rates is disabled in the accounts settings (#11409) 2017-11-02 18:12:14 +05:30
Saurabh
62fd4007b0 Merge branch 'master' into staging 2017-11-02 12:14:42 +05:30
Saurabh
75f3f81a9b Merge branch 'hotfix' 2017-11-02 12:14:41 +05:30
Saurabh
3be72ef187 Merge branch 'master' into develop 2017-11-02 12:14:41 +05:30
Saurabh
870ce3cfea bumped to version 9.2.3 2017-11-02 12:44:40 +06:00
rohitwaghchaure
1473a37d8c Merge pull request #11395 from jay-parikh/develop
POS - Add % to the Discount Field #9749
2017-11-02 12:11:12 +05:30
Saurabh
0ad2cc3def Merge pull request #11403 from tundebabzy/issue-11402
Error In Employee Loan Form (#11402)
2017-11-02 12:09:54 +05:30
Saurabh
00f6c2d61d Merge pull request #11417 from rohitwaghchaure/issue_not_save_v9
[Fix] Customer is manadatory even if customer has selected in the Issue
2017-11-02 12:07:32 +05:30
Saurabh
38008f8daa Merge pull request #11406 from rohitwaghchaure/payment_entry_differnece_amount_issue
[Fix] Wrong difference amount in the payment entry for the internal transfer type
2017-11-02 12:07:14 +05:30
Saurabh
afb63af3b6 Merge pull request #11397 from rohitwaghchaure/delivery_note_issue_from_so
[Fix] Getting an error while making delivery note from sales order and sales order has no item code
2017-11-02 12:06:08 +05:30
Rohit Waghchaure
816ce33daf [Fix] Customer is manadatory even if customer has selected in the Issue 2017-11-01 19:02:09 +05:30
rohitwaghchaure
69c6501842 Merge pull request #11399 from manassolanki/student-applicant
set the naming series from student admission and independent dob validation
2017-11-01 13:39:32 +05:30
Rohit Waghchaure
99748dbacf [Fix] Wrong difference amount in the payment entry for the internal transfer type 2017-11-01 11:45:02 +05:30
tunde
31287b00a6 call get_employee_loan_application only when appropriate 2017-10-31 18:10:17 +01:00
Faris Ansari
3d59179205 Load default pos profile if not found 2017-10-31 21:56:16 +05:30
Manas Solanki
a941a394ba set the naming series and independent dob validation 2017-10-31 17:34:50 +05:30
Rohit Waghchaure
5ec9f6930b [Fix] Getting an error while making delivery note from sales order and sales order has no item code 2017-10-31 15:26:56 +05:30
Jay Parikh
96f167573b POS - Add % to the Discount Field #9749 2017-10-31 01:07:09 -07:00
Zarrar
6d41a9a647 Converting Task to a Tree structure (#11117)
* added support for tree view

* nestedset added to handle tree based structure

* treeview ui added

* removed is_group dependency

* added validation while editing a group-task

* codacy fix

* BOM like filter added

* Added ui-test for treeview-task
2017-10-31 13:10:55 +05:30
Manas Solanki
160e710ebf set bank account only if there is single bank type account (#11363)
* set bank account only if there is single bank type account

* Update journal_entry.py
2017-10-31 13:04:02 +05:30
Faris Ansari
40611e4f69 [fix] hub get_item_details (#11383) 2017-10-31 13:00:09 +05:30
KanchanChauhan
21f946f365 [Minor] Source Warehouse should be filtered by Company in Production Order (#11376) 2017-10-31 12:59:45 +05:30
Prateeksha Singh
6b26e391b8 use the new frappe charts :D (#11391) 2017-10-31 12:58:48 +05:30
Saurabh
dd0bdc7fa6 Merge pull request #11356 from tundebabzy/issue-11355
fix object has not attribute 'is_item_from_hub'
2017-10-31 12:23:09 +05:30
Faris Ansari
895aa7b7ac fix codacy 2017-10-30 17:12:50 +05:30
Faris Ansari
2c8a309106 Merge branch 'develop' into multiple-users-pos-profile 2017-10-30 15:02:28 +05:30
Faris Ansari
7095de03ef Merge branch 'develop' into multiple-users-pos-profile 2017-10-30 15:00:55 +05:30
Faris Ansari
79be8f969f Add to patches.txt 2017-10-30 14:46:09 +05:30
ci2014
e741b91f1d Update issue.js (#11381)
Make the close / reopen button more flexible for customized user status.

For example, if the user has several status, it will now show the Close button every time the ticket is not closed! It will show Reopen only, if the ticket is closed, and not if it's on hold for example.

This will make it more flexible.
2017-10-30 10:13:05 +05:30
tunde
5ea10a77a3 Merge branch 'develop' into payment-terms 2017-10-27 17:37:15 +01:00
Faris Ansari
638e3f9fa6 Merge pull request #11154 from netchampfaris/hub-item-image
[hub] fix company page routing
2017-10-27 17:07:10 +05:30
Saurabh
1bc8e32f94 Merge pull request #11360 from manassolanki/fix-fee-patch
fix the fee patch
2017-10-27 17:00:11 +05:30
Faris Ansari
8c1099d236 Add POS Profile User DocType 2017-10-27 16:48:07 +05:30
Manas Solanki
8637e52d4c fix the fee patch 2017-10-27 11:55:15 +05:30
ashish
b883e4ee0d customer.py -- get_credit_limit function which gets called by the above customer_credit_balance report is updated to deduct the amount of sales order for which credit limit bypass flag is set. cint function is added. 2017-10-26 20:32:08 +05:30
ashish
ca2250c440 sales_invoice.py -- Check credit limit when make delivery is done from sales invoice.We need to check the credit limit as there could be multiple partially paid sales order(note we are bypassing credit check at sales order) so we need to recheck credit balance of customer to avoid any delivery crossing credit limit from sales invoice.cint function is added. 2017-10-26 20:22:34 +05:30
ashish
751b05f1e8 sales_order.py -- Three changes are done (a) if bypass credit limit check is enabled we should not check customer credit on submit of sales order (b.1/b.2) There is provision to make delivery note and sales invoice from sales order. Since credit limit is bypassed at sales order level we need to check credit of customer on make of (b.1)delivery note or (b.2)sales invoice. cint function is added. 2017-10-26 20:15:24 +05:30
ashish
9dfc0f32ab customer.json -- a checkbox field is added which gives user ability to bypass credit limit check at sales order level for a customer. It is default to 0. Also patch is added to update value of new field to 0 after migrate.
test_customer.js -- It is auto generated file as customer.json is modified. And it is removed.
2017-10-26 20:07:32 +05:30
tunde
bbce7b7e5d get attribute with get method 2017-10-26 14:31:13 +01:00
tunde
6575a615b1 get attribute with get method 2017-10-26 14:30:18 +01:00
tunde
14e97ce0c8 Merge branch 'develop' into payment-terms 2017-10-26 13:35:42 +01:00
Faris Ansari
c83413134d Merge pull request #11294 from revant/map_field_docs
[Docs] added field for storing map
2017-10-26 17:19:46 +05:30
Nabin Hait
c799a22d55 Merge branch 'master' into staging 2017-10-26 14:35:34 +05:30
Nabin Hait
edef9811f9 Merge branch 'master' into develop 2017-10-26 14:35:34 +05:30
Nabin Hait
92e09c0b7b Merge branch 'hotfix' 2017-10-26 14:35:33 +05:30
Nabin Hait
819c50c042 bumped to version 9.2.2 2017-10-26 15:05:33 +06:00
Faris Ansari
6887cedaea [fix] item qty trigger (#11349) 2017-10-26 14:34:15 +05:30
Nabin Hait
aa7896f1e1 [test] Fixed physician test cases (#11347) 2017-10-26 14:33:28 +05:30
Nabin Hait
52909b73bb [test] Fixed advance jv cancellation (#11333) 2017-10-26 11:06:07 +05:30
Saurabh
b445633e56 Merge branch 'master' into staging 2017-10-26 09:59:22 +05:30
Saurabh
0d597cef8d Merge branch 'master' into develop 2017-10-26 09:59:22 +05:30
Saurabh
5235aa833c Merge branch 'hotfix' 2017-10-26 09:59:22 +05:30
Saurabh
d0131762cc bumped to version 9.2.1 2017-10-26 10:29:22 +06:00
Saurabh
97b98b6c01 Merge pull request #11345 from saurabh6790/setup_wiz_fixes
[HOTFIX] translate domain
2017-10-26 09:52:45 +05:30
Saurabh
92a6155bb0 [fix] translate domain 2017-10-26 09:44:51 +05:30
Faris Ansari
33d74ce6e5 Merge branch 'develop' into hub-item-image 2017-10-25 18:06:42 +05:30
Saurabh
d6e67ce123 [fix] check for null date fields (#11334) 2017-10-25 17:44:22 +05:30
Nabin Hait
6a4e230cde [fix] Status of Item (#11326) 2017-10-25 17:06:30 +05:30
rohitwaghchaure
c65f1d7745 Search item using name instead of item code (#11327) 2017-10-25 17:04:56 +05:30
rohitwaghchaure
e02ee898e9 [Fix] Production order not displaying in the calendar view, if po has no operations (#11328) 2017-10-25 17:04:31 +05:30
rohitwaghchaure
2e6f6d6749 [minor] cleanup code (#11331) 2017-10-25 17:03:49 +05:30
ashish
8fbf10f5db New test case files added.(a)test_sales_order_with_bypass_credit_limit_check.js -- New feature: i.e. bypass credit limit check at sales order.(b)test_sales_order_without_bypass_credit_limit_check.js --Regression test case : the existing default flow is checked i.e. credit limit check happens at sales order level 2017-10-25 16:20:50 +05:30
ashish
fb364df091 customer_credit_balance.py -- Credit limit should now reflect outstanding amount for each customer based on value of flage bypass credit limit check at sales order level. A new column is added to show the value of this flag. customer.py -- get_credit_limit function which gets called by the above customer_credit_balance report is updated to deduct the amount of sales order for which credit limit bypass flag is set 2017-10-25 16:17:55 +05:30
ashish
ff20182d03 sales_invoice.py -- Check credit limit when make delivery is done from sales invoice.We need to check the credit limit as there could be multiple partially paid sales order(note we are bypassing credit check at sales order) so we need to recheck credit balance of customer to avoid any delivery crossing credit limit from sales invoice 2017-10-25 16:11:58 +05:30
ashish
8ad4efee25 sales_order.py -- Three changes are done (a) if bypass credit limit check is enabled we should not check customer credit on submit of sales order (b.1/b.2) There is provision to make delivery note and sales invoice from sales order. Since credit limit is bypassed at sales order level we need to check credit of customer on make of (b.1)delivery note or (b.2)sales invoice 2017-10-25 16:07:21 +05:30
ashish
06e6a82d56 customer.json -- a checkbox field is added which gives user ability to bypass credit limit check at sales order level for a customer. test_customer.js : auto generated file as customer.json is modified 2017-10-25 15:56:39 +05:30
Nabin Hait
014b138074 Merge branch 'tundebabzy-issue-11080' into hotfix 2017-10-25 15:53:53 +05:30
Nabin Hait
fb734976eb Removed appintment field from Invoice, it should be a custom field and will be added from domain settings 2017-10-25 15:53:07 +05:30
Nabin Hait
6500af9aa2 Merge branch 'develop' into staging 2017-10-25 14:25:06 +05:30
Nabin Hait
8f2500083c Merge branch 'master' into develop 2017-10-25 14:10:39 +05:30
Nabin Hait
8e7ba95b78 Merge branch 'staging' 2017-10-25 14:10:38 +05:30
Nabin Hait
e146143bd1 bumped to version 9.2.0 2017-10-25 14:40:38 +06:00
Nabin Hait
4d22b6db30 Fixed Merge Conflict 2017-10-25 14:09:46 +05:30
Nabin Hait
cd3dbcb2ef Fixed Merge Conflict 2017-10-25 14:07:25 +05:30
Nabin Hait
bdfc074a7d Merge branch 'hotfix' 2017-10-25 14:02:33 +05:30
Nabin Hait
c7bd77111e bumped to version 9.1.8 2017-10-25 14:32:32 +06:00
rohitwaghchaure
4a60554b91 Green indicator in the cart for non stock item (#11325) 2017-10-25 13:59:29 +05:30
rohitwaghchaure
3dc21b099d [Fix] Translation issue (#11323) 2017-10-25 12:38:17 +05:30
tundebabzy
40a02769c5 Error in the Address fetched in Sales Order.(#11129) (#11145)
* add new function - `get_party_shipping_address`

* `swap `get_default_address` with `get_party_shipping_address`

* test cases

* properly sets order by direction

* move `get_party_shipping_address` to party.py

* fix test module import
2017-10-25 12:24:34 +05:30
tundebabzy
bafcd7418a Add Bundle Description Field To Product Bundle (#11122)
* add description field that shows in list view

* description field should be simply `description`
2017-10-25 12:22:08 +05:30
Makarand Bauskar
085b4842a1 [minor] minor fixes in get_company_details for Hub page (#11168) 2017-10-25 12:19:10 +05:30
Makarand Bauskar
e6712c129c [hotfix] fixed Permissions Error while fetching allow_stale field value from Accounts Settings (#11182)
* [hotfix] fixed Permissions Error while fetching allow_stale field value from Accounts Settings

* [minor] renamed the allow_stale_rate method to stale_rate_allowed
2017-10-25 12:17:40 +05:30
Doridel Cahanap
49a7bde6e2 [minor] Label for Training Event in Training Program Dashboard (#11280) 2017-10-25 12:15:17 +05:30
Manas Solanki
464289b726 copy the older total amount field and corrsp. changes in report (#11322) 2017-10-25 12:13:42 +05:30
Nabin Hait
1c1237537b Subscription fixes (#11292)
* Subscription fixes

* Removed recurring fields, cleanup code
2017-10-25 12:10:44 +05:30
Nabin Hait
b7483f6dfd Update item.json 2017-10-25 11:58:02 +05:30
tundebabzy
cba7a11d75 Make Variant does not copy UOM properties (#10887) (#11261)
* add `uoms` to Item Variant Settings if not already added

* add new patch to patch list

* change uoms field to no_copy:0
2017-10-25 11:57:10 +05:30
Pawan Mehta
07ab4622e8 [fix] #9824 - Calculate costing amount even if billable is unchecked (#11310)
* [fix] #9824

* fix code
2017-10-25 11:55:49 +05:30
Narciso E. Núñez Arias
47caf51efe [docs] Translate the Projects section of the Manual to Spanish (#11319)
* [docs] Translate projects module. Add index page

* [docs] Translate activity cost page from projects module.

* [docs] Translate activity type page from projects module.

* [docs] Translate the Project Costing article in project module

* [docs] Translate the Project page in projects module

* [docs] Translate the Task page in projects module

* [docs] Translate the Time Log Batch page in projects module
2017-10-25 11:53:10 +05:30
rohitwaghchaure
2672c331af Validation for duplicate offline pos (#11281) 2017-10-25 11:47:18 +05:30
Nabin Hait
f4283a3ebf Moved company field to the top in BOM (#11283) 2017-10-25 11:46:47 +05:30
Nabin Hait
8a0943ead7 Unlink reference doc on Journal Cancellation only if advance (#11285) 2017-10-25 11:46:35 +05:30
Nabin Hait
82c9352d53 Update variant description based on attribute if not already there (#11302) 2017-10-25 11:46:20 +05:30
rohitwaghchaure
311823aca1 Validate stock exists against template item (#11305) 2017-10-25 11:45:51 +05:30
Charles-Henri Decultot
7862eb444f [Hotfix] Addition of an empty tax group in the french CoA (#11306) 2017-10-25 11:44:46 +05:30
Neil Trini Lasrado
1f99bea6ce Pass sender as contact email in Opportunity (#11308)
Always pass sender as the contact email while creating an opportunity for a website enquiry.
2017-10-25 11:44:12 +05:30
Manas Solanki
a5eee4629f Fix UI tests (#11309)
* decrease the timeout

* delete the duplicate test
2017-10-25 11:42:22 +05:30
Nabin Hait
6c06e700d6 [Fix] Unallocated amount considering deductions (#11314) 2017-10-25 11:42:05 +05:30
Revant Nandgaonkar
f8006b140f [Docs] Map field renamed to Geolocation 2017-10-25 11:18:29 +05:30
tunde
c8d2361b81 Merge branch 'develop' into payment-terms 2017-10-24 12:25:29 +01:00
Revant Nandgaonkar
010f619ed3 [Docs] added field for storing map
related PR https://github.com/frappe/frappe/pull/4327
2017-10-23 17:25:52 +05:30
vishalseshagiri
5c5a853894 Update customer_group.py (#11270)
Minor syntactical error !
2017-10-23 11:35:49 +05:30
Doridel Cahanap
b06f155ceb [minor] Set Quick Entry to False in Training Event (#11279) 2017-10-23 11:35:12 +05:30
Nabin Hait
f76bc27db5 Merge branch 'develop' into staging 2017-10-21 11:34:44 +05:30
Nabin Hait
b88b7eaf5b Merge branch 'hotfix' 2017-10-21 11:29:40 +05:30
Nabin Hait
7533101d4b Merge branch 'master' into develop 2017-10-21 11:29:40 +05:30
Nabin Hait
e7eda65968 bumped to version 9.1.7 2017-10-21 11:59:39 +06:00
rohitwaghchaure
5fdd26f1e7 [fix] Discount amount not reset for new order in offline pos (#11258) 2017-10-21 11:23:45 +05:30
Nabin Hait
c44290955e Minor fix in patches (#11268) 2017-10-21 11:20:18 +05:30
Nabin Hait
4825eccad5 UI test fixed for supplier quotation (#11260)
* UI test fixed for supplier quotation

* ui test fixes for purchase order

* Fixed number of assertion in student admission test

* Fixed multiple ui tests

* ui tests
2017-10-21 10:44:30 +05:30
Doridel Cahanap
5a4d5bfaf2 Add Training Program DocType, Script, Path and Doc (#11181)
* Add Training Program Doctype, Script, Config and documentation

* Add Training Program to Training Event

* [Test Case] Training Event in a Training Program
2017-10-20 11:31:15 +05:30
Nabin Hait
b4f5f14438 Timeout increased for setting __newname (#11252)
* Timeout increased for setting __newname

* UI test fixes

* fixed ui test for PO

* ui tests

* ui tests

* ui tests

* ui tests

* ui tests
2017-10-20 11:26:17 +05:30
tunde
09ce68ec19 Merge branch 'develop' into payment-terms 2017-10-19 17:47:31 +01:00
Nabin Hait
bb60a59b96 Fixed asset test cases due to tax rule (#11247)
* Fixed asset testcases due to tax rule

* Delete tax rule record after running test cases

* Fixed test cases

* Fixed test cases

* Fixed subscription tests due to tax rule
2017-10-19 12:14:37 +05:30
Neil Trini Lasrado
eb662b5a9a Added Test Cases 2017-10-18 18:16:47 +05:30
Neil Lasrado
7935d186f9 Auto set warehouses in Production Order if default warehouses are set in Manufacturing Settings and not mentioned in Production Order 2017-10-18 18:16:47 +05:30
Neil Lasrado
af091ac5dd [BUG] Map Production Order with the exact Sales Order line item 2017-10-18 18:16:46 +05:30
Neil Lasrado
5afc194742 [BUG] Fixes make Production Order from Sales Order 2017-10-18 18:16:46 +05:30
Saurabh
5fa2adcca9 Merge branch 'master' into develop 2017-10-18 16:23:44 +05:30
Saurabh
12e817bad6 Merge branch 'hotfix' 2017-10-18 16:23:43 +05:30
Saurabh
47e405516b bumped to version 9.1.6 2017-10-18 16:53:43 +06:00
Saurabh
4272483f2d Merge pull request #11246 from saurabh6790/item_variant_description_fix
[minor-fix] patch fix
2017-10-18 16:15:43 +05:30
Saurabh
3173be9b17 [minor-fix] patch fix 2017-10-18 16:14:20 +05:30
Saurabh
9cb817874d Merge pull request #11245 from saurabh6790/item_variant_description_fix
[fix] remove explicit variant save
2017-10-18 16:08:23 +05:30
Saurabh
8227422124 [fix] remove explicit variant save 2017-10-18 16:03:40 +05:30
Saurabh
a7d5f94d4a [fix] Do not append description to variant if description already exists (#11204) 2017-10-18 16:02:08 +05:30
Ranjith Kurungadam
7624e7bf85 [hot-fix] sql getting translated (#11243)
* fix remove _ in frappe.sql

* use %s replacement for sql
2017-10-18 15:48:12 +05:30
Jamsheer
dd7c1b87c5 Healthcare Doctypes - Docfield Clean up (#11065)
* Healthcare Doctype Clean up - updated index, in_filter, no_copy and ect.

* Healthcare Doctype - remove frappe import
2017-10-18 12:13:15 +05:30
Makarand Bauskar
3e4ca4219f [hotfix] fixed 'ValueError: Unknown string format' error if the from_time value is null (#11162) 2017-10-18 11:16:47 +05:30
Helkyd
7ec7a45f05 Salary Detail Abbr (#11165)
When processing via Process Salary Abbr is not filled unless if Hourly pay ... this is required for later check what Component is or was added for Employee
2017-10-18 11:16:24 +05:30
Vishal Dhayagude
3e02d80636 [fix] Travis Client Side Failure (#11198) 2017-10-18 11:10:45 +05:30
Nabin Hait
5ab6ff2470 [fix] Fetch raw material rate based on last purchase rate (#11205)
* [fix] Fetch raw material rate based on last purchase rate

* Don't fetch sub-assembly item rate from BOM if not mentioned by the user
2017-10-18 11:09:11 +05:30
Brown-Harry Boma
11e964d442 Set transaction type in pricing rule only if unavailable (#11229)
* Set transaction type in pricing rule only if unavailable

* Update pricing_rule.py
2017-10-18 11:07:09 +05:30
rohitwaghchaure
a516856c32 [Fix] Getting an error duplicate name while making an invoice in draft mode (#11230) 2017-10-18 11:05:10 +05:30
Javier Wong
84f7ba8699 [hotfix] Allow Sales User and Purchase User to Read Account Settings (#11233)
* [hotfix] Allow Sales User and Purchase User to Read Account Settings

This fixes https://discuss.erpnext.com/t/not-permitted-message-for-new-quotation-and-sales-order/29261/4.

* Added back Accounts Manager Permissions
2017-10-18 11:04:15 +05:30
rohitwaghchaure
a3fe5b8528 [Fix] Disable desk access view to supplier (#11234) 2017-10-18 10:53:34 +05:30
jigneshpshah
bad5e90e46 Priority of credit limit check functionality (#11232)
CREDIT LIMIT field is at customer, customer group and company level .
Explanation given on priority of the three levels.
2017-10-18 10:53:11 +05:30
Nabin Hait
a9feddbb79 Testcase fixes (#11238)
* Restaurant test records fixed

* Fixes for test cases
2017-10-18 10:52:48 +05:30
KanchanChauhan
44734049f5 [Minor] Populate Expense Claim Description from Expense Claim Type (#11156) 2017-10-17 17:23:26 +05:30
Rushabh Mehta
bc4e2cd9c1 [added] hospitality domain (#11020)
* [added] hospitality domain

* [tests] wip

* [tests] for restaurant

* [fix] tests for new naming

* [docs] added restaurant docs

* [docs] added restaurant docs
2017-10-17 12:30:34 +05:30
Prateeksha Singh
bfb108d722 Replace c3 (#11112)
* [charts] replace in asset.js

* replace in reports
2017-10-17 12:03:02 +05:30
Nabin Hait
45a640df08 Update payment_entry_reference.json 2017-10-16 12:58:32 +05:30
Nabin Hait
53659cf0bd Update payment_entry_reference.json 2017-10-16 12:57:51 +05:30
Makarand Bauskar
80f333950b [minor] fixed AttributeError: 'GrossProfitGenerator' object has no attribute 'grouped_data' (#11195) 2017-10-16 11:27:22 +05:30
mbauskar
cd4202c2f7 Merge branch 'master' into develop 2017-10-15 19:10:56 +05:30
mbauskar
d3214fed57 Merge branch 'hotfix' 2017-10-15 19:10:55 +05:30
mbauskar
bbbce58884 bumped to version 9.1.5 2017-10-15 19:40:55 +06:00
rohitwaghchaure
8bf7230fcc [Fix] New invoice showing old paid amount if POS Profile is not created (#11160) 2017-10-15 19:09:14 +05:30
rohitwaghchaure
496174bbdf [Fix] Naming series not copy from referebce document to new document in subscription (#11196) 2017-10-15 19:08:42 +05:30
Nabin Hait
4072d71769 Delete api.py 2017-10-11 23:53:57 +05:30
Faris Ansari
7997271368 [hub] fix company page routing 2017-10-11 15:46:21 +05:30
Saurabh
5ffed60916 Merge branch 'master' into develop 2017-10-11 14:39:11 +05:30
Saurabh
8854438830 Merge branch 'hotfix' 2017-10-11 14:39:10 +05:30
Saurabh
15411fcf70 bumped to version 9.1.4 2017-10-11 15:09:10 +06:00
rohitwaghchaure
76a9cefc9c Merge pull request #11151 from rohitwaghchaure/minor_fix_title
[minor] Title not showing in payment modal
2017-10-11 12:05:29 +05:30
Rohit Waghchaure
4f7873b9df [minor] Title not showing in payment modal 2017-10-11 12:03:49 +05:30
Saurabh
ad9afe68f3 Merge pull request #11119 from rohitwaghchaure/default_company_pos
[enhance] Provision to select company in the POS screen if company is not defined in the global defaults
2017-10-11 12:00:56 +05:30
Saurabh
41e2b98b63 Merge pull request #11137 from mbauskar/healthcare
[hotfix] passed localise item_group value for create_lab_test_itemsfield
2017-10-11 12:00:12 +05:30
rohitwaghchaure
4eb5286c4b Merge pull request #11147 from rohitwaghchaure/total_amount_and_barcode_issue_pos
[Fix] Barcode and total amount issue in online POS
2017-10-11 11:13:30 +05:30
Rohit Waghchaure
3f309e1c20 Multiple items showing for single barcode 2017-10-11 02:14:56 +05:30
Rohit Waghchaure
9bb81ee1cb [fix] Total amount showing wrong in the payment modal if user has changed the qty after payment 2017-10-11 01:54:36 +05:30
Makarand Bauskar
4cdb9dee09 [minor] changed the modified date for the subscription doctype (#11142) 2017-10-10 18:41:00 +05:30
mbauskar
ee9da67173 [hotfix] passed localize item_group value for create_lab_test_itemsfield 2017-10-10 12:20:45 +05:30
Saurabh
9893a2d608 Merge branch 'master' into develop 2017-10-10 11:22:39 +05:30
Saurabh
e78601b040 Merge branch 'hotfix' 2017-10-10 11:22:38 +05:30
Saurabh
47b2a5f7d1 bumped to version 9.1.3 2017-10-10 11:52:38 +06:00
Saurabh
5ba4c4c49c Merge pull request #11132 from saurabh6790/upload_attendance_tool
[fix] upload attendance with with no_socketio param
2017-10-10 11:15:27 +05:30
tunde
37c2b6116c Merge branch 'develop' into payment-terms 2017-10-09 15:42:47 +01:00
Faris Ansari
172f28fa06 Merge pull request #11133 from netchampfaris/fix-hub-sync
fix Hub Sync plan
2017-10-09 19:31:08 +05:30
Faris Ansari
d635a2646b fix Hub Sync plan 2017-10-09 19:30:11 +05:30
Saurabh
f347e23556 [fix] upload attendacne with with no_socketio param 2017-10-09 16:13:21 +05:30
mbauskar
966b3c156a [conflicts] resolved merge conflicts 2017-10-09 15:20:30 +05:30
mbauskar
fbbb8695f3 Merge branch 'hotfix' 2017-10-09 15:18:52 +05:30
mbauskar
f9577652a0 bumped to version 9.1.2 2017-10-09 15:48:51 +06:00
tunde
e27f5dee1f Merge branch 'develop' into payment-terms 2017-10-09 10:11:05 +01:00
Rohit Waghchaure
d270748eea [Fix] Provision to select company in the POS screen if company is not defined in the global defaults 2017-10-09 12:54:26 +05:30
Doridel Cahanap
5ba39f3f83 Add has_certificate and level fields in Training Event (#11093) 2017-10-09 12:45:28 +05:30
tundebabzy
2622d370c6 deal zero division possibility (#11098) 2017-10-09 12:44:24 +05:30
rohitwaghchaure
e181dd4c24 [patch] To add healthcare domain (#11105) 2017-10-09 12:43:36 +05:30
tundebabzy
7f9d75521e Confirmation desired before cancelling appointment (#10996) (#11106)
* shows confirm dialog when user clicks cancel

* indentation and frm as per review
2017-10-09 12:43:18 +05:30
Makarand Bauskar
eaf0abedd4 [hotfix] ignore if student email address field value is None (#11116) 2017-10-09 12:42:18 +05:30
Manas Solanki
f91ad75b5a test, patch, docs for student admission (#11075) 2017-10-09 12:41:24 +05:30
tunde
1db7faa862 Merge branch 'develop' into payment-terms 2017-10-06 09:37:10 +01:00
Doridel Cahanap
5cb6c38a34 Add Calendar in Training Event Doctype (#11090) 2017-10-06 11:50:05 +05:30
rohitwaghchaure
6f5853b97a Merge pull request #11092 from rohitwaghchaure/pos_total_issue
Show total instead of net total
2017-10-06 11:17:24 +05:30
Rohit Waghchaure
62ce218fc2 Show total instead of net total 2017-10-06 11:16:46 +05:30
rohitwaghchaure
1b0f3ec666 Merge pull request #11089 from rohitwaghchaure/offline_pos_v9
[Fix] Discount field not displaying in offline POS
2017-10-06 09:51:30 +05:30
Rohit Waghchaure
beeba8b37a [Fix] Discount field not displaying in offline POS 2017-10-06 09:50:43 +05:30
rohitwaghchaure
d7636b2b19 Merge pull request #11083 from rohitwaghchaure/pos_print_format_issue
[fix] Online print format in pos profile field not displaying
2017-10-06 09:44:27 +05:30
Rohit Waghchaure
b870d0081b [fix] Online print format in pos profile field not displaying 2017-10-06 09:31:40 +05:30
tunde
d82677f1e6 Merge branch 'develop' into payment-terms 2017-10-06 02:23:45 +01:00
Nabin Hait
7eaeec951d Merge branch 'schilgod-develop' into develop 2017-10-05 19:54:17 +05:30
Nabin Hait
5a834209d0 Cleanup of PO schedule date pull requests 2017-10-05 19:51:10 +05:30
Faris Ansari
e3a5899980 [hub] Add hub category filters, fix minor issues (#11079) 2017-10-05 19:43:08 +05:30
Stavros Anastasiadis
455c3ebb27 Add as optional field link Company (#11068) 2017-10-05 18:45:37 +05:30
Stavros Anastasiadis
58b587834e Provide a minor warning message if no stock levels are availiable (#11074)
* Provide a minor warning message if no stock levels are availiable

* Update item_dashboard.js
2017-10-05 18:44:50 +05:30
Stavros Anastasiadis
e31757b001 Show Stock Level section only to stock maintain items (#11073) 2017-10-05 18:41:51 +05:30
rohitwaghchaure
e0dfd1608e [Fix] Auto add item in the cart if sinfle items found in the serach (#11072) 2017-10-05 18:30:51 +05:30
Nabin Hait
bf3b54f658 Merge branch 'schilgod-material_request' into develop 2017-10-05 18:30:11 +05:30
Nabin Hait
395cf4689b Cleanup of schedule date functionality in Material Request 2017-10-05 18:27:37 +05:30
Prateeksha Singh
925e9776e8 [hub] rename is_hub_item to is_item_from_hub (#11069)
* [hub] rename is_hub_item to is_item_from_hub

* [rename] is_hub_item to is_item_from_hub
2017-10-05 17:17:41 +05:30
AravindPranera
9c0d30a087 Fetching Document ID also in Email Subject while clicking "Send Supplier Emails" button (#10874) 2017-10-05 17:08:32 +05:30
Utkarsh Goswami
4cb4d2f155 Tests for payment entry against purchase invoice (#10930) 2017-10-05 16:51:42 +05:30
Utkarsh Goswami
975d28307a Payroll feature (#10900) 2017-10-05 15:59:51 +05:30
rohitwaghchaure
607b5d4985 [Fix] Negative qty issue in POS (#11070)
* [Fix] Negative qty issue in POS

* Update point_of_sale.js
2017-10-05 15:57:58 +05:30
Stavros Anastasiadis
ea390effa5 Add multirows in Attendees selection (#11067) 2017-10-05 15:31:25 +05:30
Nabin Hait
31e6f75dbf Merge branch 'Helkyd-develop' into develop 2017-10-05 15:29:05 +05:30
Nabin Hait
34ad2e6a60 Use format_currency only if fieldtype is currency 2017-10-05 15:28:43 +05:30
Nabin Hait
f8ad0cbe70 Merge branch 'develop' of https://github.com/Helkyd/erpnext-1 into Helkyd-develop 2017-10-05 15:02:50 +05:30
Manas Solanki
0518001bdc Changes in Student Admission (#11019)
* configurable student admission

* validate dob and admission date from student admission

* add in hooks and fix codacy
2017-10-05 14:31:31 +05:30
Doridel Cahanap
25db832be1 [minor] Add "Attendance" in grid view for Training Event Employee (#11063) 2017-10-05 14:20:43 +05:30
Makarand Bauskar
f23788bb7d [hotfix] Show Make button only for Email communication (#10876) 2017-10-05 14:19:45 +05:30
mbauskar
74ce391303 Merge branch 'master' into develop 2017-10-05 13:36:50 +05:30
mbauskar
671c6610de Merge branch 'hotfix' 2017-10-05 13:36:49 +05:30
mbauskar
8c3d19e2ab bumped to version 9.1.1 2017-10-05 14:06:49 +06:00
rohitwaghchaure
4a5ac7cea6 Merge pull request #11066 from rohitwaghchaure/pos_loading_issue
[Fix] Rate not fetched in the POS, User trying to add an item in the cart before loading of frm
2017-10-05 13:34:22 +05:30
Rohit Waghchaure
f7a856b913 [Fix] Rate not fetched in the POS, User trying to add an item in the cart before loading of frm 2017-10-05 13:31:29 +05:30
Nabin Hait
26507d7867 Removed deprecated hub functions 2017-10-05 13:10:32 +05:30
Nabin Hait
d6d99e0d59 Removed duplicate field related to hub from Item 2017-10-05 12:39:42 +05:30
Nabin Hait
729aa2025a Show commission section for pos as well (#11059) 2017-10-05 12:21:36 +05:30
Nabin Hait
7d4fd35aa3 Add POS Settings link in Accounts module (#11060) 2017-10-05 12:20:33 +05:30
rohitwaghchaure
e87a076f1d Update link in the pos for offline and online mode from pos settings (#11061) 2017-10-05 12:20:20 +05:30
Faris Ansari
fd345f8e90 Hub (#10934)
* [WIP]Hub

* [listing] Show items, users and item_groups

* Show filters

* [start] cart, api for rfq and opp

* rfq working

* [wip] keys

* wip quotes

* [hub] register/unregister

* [hub] rename password to access_token, remove passed company field

* [hub] publishing cases, api call wrapper

* [hub] add and remove fields working

* [hub] fix flags, update on client save working

* [hub] new hub page, client item CUD at hub working

* listing, standard rate, local site hack

* item listing, item page, search, back to home

* [hub] implement hub company

* [hub] company filter

* [hub] basic rfq-ing, item page cleanup

* categories wip

* [hub] use get_doc_before_save()

* [hub] send opportunity message to hub, api to make locally

* [hub] enqueueing in hub api request wrapper

* cleanup

* [hub] refactor shopping cart's product.py to reuse

* sync dynamic item fields daily

* Scheduler heartbeat check

* [wip] hub categories

* [hub] wip enqueued callbacks

* [hub] outgoing messages, fixing callback loop

* [hub] bug: callback save after primary save

* [hub] pricing, stock, currency

* [hub] replace send_hub_request with make_and_enqueue

* add hub.less, refactor code

* Remove template html files, add styling for hub item cards

* fix paging

* add breadcrumb

* Add sidebar

* [hub] add company page, change country

* [hub] order_by filters

* [hub] make hub category a tree

* [hub] enqueue batched item enqueueing

* [hub] requested products page

* [minor]

* update hub url

* [fix] url

* [fix] more reform

* fix recursion

* [hub] data migration plans as jsons

* Hub register, create data connector, sync with run

* [add] user registration by session user

* Removed hub_message

* Remove sync code from hub_settings

* Remove hub methods from item.py

* Update Hub Sync plan

* Hub unregister

* Update Hub connector on reregister

* Dont delete Hub Connector on unregister

* Enable hub on success response

* Add new hub whitelisted methods

* [hub] list working

* Hub register from hub page

* [hub] Add hub logo in desk icon, link to page

* [hub] hide page head on empty state

* [hub] make rfq

* [hub] push opportunity doc, poll for opportunity docs

* add fields to item mapping

* update hub mappings

* Make RFQ

* [hub] item, home routing

* Make rfq and send opportunity refactor

* [hub][fix] remote lead data

* images passed as base64

* set default company on register

* Revert "images passed as base64"

This reverts commit 0b033a5fb7072b2d39a1b87a47dc41e7af707bb4.

* Add sync to hub page

* Prompt for publish items to hub

* add post process to hub document to lead

* Rename Hub document to Hub message, create opportunity in post process
2017-10-05 11:17:30 +05:30
Nabin Hait
ff689a658f Merge branch 'staging' 2017-10-04 18:21:35 +05:30
Nabin Hait
b290e3a4e7 bumped to version 9.1.0 2017-10-04 18:51:34 +06:00
Nabin Hait
77f0822abe Merge branch 'develop' into staging 2017-10-04 18:11:16 +05:30
Nabin Hait
f83bc51e81 Merge branch 'master' into staging 2017-10-04 18:05:21 +05:30
Nabin Hait
fc712aea32 Merge branch 'master' into develop 2017-10-04 18:05:20 +05:30
Nabin Hait
7105c4b76c Merge branch 'hotfix' 2017-10-04 18:05:19 +05:30
Nabin Hait
54c725dcd1 bumped to version 9.0.9 2017-10-04 18:35:19 +06:00
rohitwaghchaure
1e2c554e61 [Fix] Stock entry multi uom batch validation issue (#11049) 2017-10-04 17:52:49 +05:30
tundebabzy
65dfd09947 fix wrong variable name (#11050) 2017-10-04 17:51:44 +05:30
Javier Wong
61287e3c53 [fix] Change Sample Item Error Message to Zero Valuation Rate (#10935)
Change Sample Item Error Message to Zero Valuation Rate
2017-10-04 16:01:34 +05:30
Makarand Bauskar
1b67d71139 [minor] add the Lead in email account -> append_to field (#10983) 2017-10-04 15:55:56 +05:30
Doridel Cahanap
32456b0f14 [minor edits] BOM Stock Report (#11012)
* HTML for BOM Stock Report to show filters in PDF

* Added BOM Stock Report in Manufacturing Config under Report
2017-10-04 15:54:44 +05:30
Nabin Hait
3d0d4b2157 update subscription period only if relevant date field exists (#11046) 2017-10-04 15:51:55 +05:30
Nabin Hait
7e5a9f5c0e Update new bom rate while replacing BOM (#11045) 2017-10-04 15:51:34 +05:30
KanchanChauhan
d3e21fff66 [Minor] Employee name as standard filter (#11043) 2017-10-04 15:20:34 +05:30
Nabin Hait
5171956646 Merge branch 'master' into staging 2017-10-04 14:52:33 +05:30
Nabin Hait
0cc93538ed Merge branch 'hotfix' 2017-10-04 14:52:32 +05:30
Nabin Hait
b779644493 Merge branch 'master' into develop 2017-10-04 14:52:32 +05:30
Nabin Hait
c83e793ce8 bumped to version 9.0.8 2017-10-04 15:22:31 +06:00
Revant Nandgaonkar
4d68e03a97 [Fix] Job Opening Web Form breadcrumb (#11029) 2017-10-04 14:35:21 +05:30
Makarand Bauskar
eaec4695f7 [hotfix] filter doctype if the doctype has subscription field (#11038) 2017-10-04 14:34:45 +05:30
rohitwaghchaure
5049edb494 [Fix] Discount and serial no search issue (#11040) 2017-10-04 14:33:12 +05:30
Makarand Bauskar
d17bea0a31 [hotfix] check minimum actual start time and actual end time before updating PO Operations (#11041)
* [hotfix] check minimum actual start time and actual end time before updating PO Operations

* Update production_order.py
2017-10-04 14:30:12 +05:30
Saurabh
444bfff1ff [fix] resolved merge conflicts 2017-10-03 18:03:18 +05:30
Saurabh
ee4a2dd26f [fix] resolved merge conflicts 2017-10-03 18:02:09 +05:30
Saurabh
f6580268e6 Merge branch 'hotfix' 2017-10-03 18:00:32 +05:30
Saurabh
e3a468ed1b bumped to version 9.0.7 2017-10-03 18:30:31 +06:00
rohitwaghchaure
9e6f2a49e8 Merge pull request #11033 from rohitwaghchaure/subscription_next_data_fix
[Fix] Subscription next schedule date, cancel issue, added from and to date
2017-10-03 17:48:53 +05:30
Rohit Waghchaure
445e8a2e57 [Fix] Subscription end date, cancel issue, added from and to date 2017-10-03 17:45:11 +05:30
tunde
19e63b73ed Merge branch 'develop' into payment-terms 2017-10-03 12:02:38 +01:00
Nabin Hait
7b6eaee05b Fixes to handle async events (#11018)
* Fixes to handle async events

* transaction.js code cleanup

* Don't map taxes and charges while making PO from SO for drop-ship

* Removed print
2017-10-03 01:09:46 +05:30
rohitwaghchaure
c26e3f1569 Merge pull request #11024 from rohitwaghchaure/payment_issue_in_pos
[Fix] Old invoice payment amount showing in the payment modal while making payment
2017-10-02 22:29:49 +05:30
Rohit Waghchaure
c4e52e5f95 [Fix] Old invoice payment amount showing in the payment modal while making payment 2017-10-02 21:20:54 +05:30
Nabin Hait
7eba1a35d3 Controller init args fix (#11015)
* Controller init args fix

* cleanup useless code
2017-10-02 15:59:27 +05:30
Nabin Hait
1f10d693e9 Don't set currency as company currency if default currency is different (#11011) 2017-10-02 13:20:51 +05:30
Nabin Hait
53e8989699 Merge branch 'master' into staging 2017-10-02 12:28:27 +05:30
Nabin Hait
8919669ac2 Merge branch 'master' into develop 2017-10-02 12:28:27 +05:30
Nabin Hait
d977333a99 Merge branch 'hotfix' 2017-10-02 12:28:26 +05:30
Nabin Hait
3a2834c7ad bumped to version 9.0.6 2017-10-02 12:58:26 +06:00
rohitwaghchaure
88491715e0 [Fix] select batch not displaying in the modal, duplicate invoice making after sync (#11005) 2017-10-02 12:13:36 +05:30
Nabin Hait
0bdf1e5ef1 Merge branch 'master' into staging 2017-10-02 12:09:01 +05:30
Nabin Hait
f059e7be35 Merge branch 'master' into develop 2017-10-02 12:09:00 +05:30
Nabin Hait
00a48ad4e5 Merge branch 'hotfix' 2017-10-02 12:09:00 +05:30
Nabin Hait
def308a433 bumped to version 9.0.5 2017-10-02 12:38:59 +06:00
Makarand Bauskar
cb38e599e5 [minor] don't create lead if customer contact is already created against contact_email (#10976)
* [minor] don't create lead if customer contact is already created against contact_email

* [tests] added tests cases for opportunity to check if lead is required or not
2017-10-02 11:40:43 +05:30
Nabin Hait
9b98d7fa14 Gst doctype roles (#10984)
* Removed default permission from GST doctypes

* default permission from GST doctypes
2017-10-02 11:38:40 +05:30
Makarand Bauskar
b1bf502119 [hotfix] validate company name on 'The Brand' Slide instead of 'Your Organization' (#11007) 2017-10-02 11:38:03 +05:30
Nabin Hait
cb48404bd2 Revert "Fixes for uom in get_item_details (#10986)" (#11009)
This reverts commit 5b58e489a8.
2017-10-02 11:37:18 +05:30
Nabin Hait
5b58e489a8 Fixes for uom in get_item_details (#10986) 2017-10-02 11:36:10 +05:30
Sunny
38647ed832 move Purchase Order patch to v9 2017-10-02 11:37:48 +08:00
Sunny
42c74a6365 set schedule_date when creating po 2017-10-02 11:37:48 +08:00
Sunny
c6f25ba996 correct field name 2017-10-02 11:37:47 +08:00
Sunny
b387b3cca0 [fix] tests 2017-10-02 11:37:47 +08:00
Sunny
a456901e9f [fix] Codacy errors 2017-10-02 11:37:47 +08:00
Sunny
0f2b21f88b Add Purchase Order schedule_date field, similar to delivery_date in Sales Order 2017-10-02 11:37:47 +08:00
Sunny
73f4eef40f [fix] tests 2017-10-02 11:37:47 +08:00
Sunny
9ded8a7290 [fix] Codacy errors 2017-10-02 11:37:47 +08:00
Sunny
c2befc59d1 Add Purchase Order schedule_date field, similar to delivery_date in Sales Order 2017-10-02 11:37:47 +08:00
Sunny
34a8fb4100 [fix] Codacy errors 2017-10-02 11:37:47 +08:00
Sunny
47eac28f0a Add Purchase Order schedule_date field, similar to delivery_date in Sales Order 2017-10-02 11:37:47 +08:00
Sunny
869b878286 set schedule_Date when creating po 2017-10-02 11:36:24 +08:00
Sunny
f2e2e23b6b [fix] tests 2017-10-02 11:35:33 +08:00
Sunny
3a22fd1535 Add schedule_date when creating Purchase Order 2017-10-02 11:35:33 +08:00
Sunny
f07e53b7a8 [fix] tests 2017-10-02 11:35:33 +08:00
Sunny
bd121486a8 [fix] Codacy errors 2017-10-02 11:35:33 +08:00
Sunny
122981d465 Add Purchase Order schedule_date field, similar to delivery_date in Sales Order 2017-10-02 11:35:33 +08:00
Sunny
962cef470a Set PO Reqd By Date default in code, to next date 2017-10-02 11:35:33 +08:00
Sunny
0f73f90fa2 [fix] Codacy errors 2017-10-02 11:35:33 +08:00
Sunny
69e88ffa39 Add Purchase Order schedule_date field, similar to delivery_date in Sales Order 2017-10-02 11:35:33 +08:00
schilgod
f29969a5cc update test records 2017-10-02 11:35:32 +08:00
Sunny
e3ed8b7cb3 [fix] tests 2017-10-02 11:35:32 +08:00
Sunny
9626ed79fa Add patch to update schedule date of submitted Purchase Orders 2017-10-02 11:35:32 +08:00
Sunny
c429a6e688 [fix] Codacy errors 2017-10-02 11:35:32 +08:00
Sunny
2315a79b5f Add Purchase Order schedule_date field, similar to delivery_date in Sales Order 2017-10-02 11:35:32 +08:00
Sunny
9da25f568d Set PO Reqd By Date default in code, to next date 2017-10-02 11:35:32 +08:00
Sunny
9d497a984b [fix] Codacy errors 2017-10-02 11:35:32 +08:00
Sunny
bb03ec103b Add Purchase Order schedule_date field, similar to delivery_date in Sales Order 2017-10-02 11:35:32 +08:00
Helkyd
4c58588d25 Improve Salary Register
Check if fieldname is a number to format.

Start the Html Salary with hidden fields and check if they not empty and increase the width...
This will remove Blank fields from the report.
2017-10-01 20:20:57 +01:00
Rushabh Mehta
4b99fe15cc [version] 9.x.x-develop 2017-09-30 11:41:26 +05:30
Rushabh Mehta
b9fe14631d [fix] healthcare setup 2017-09-30 10:46:56 +05:30
Nabin Hait
01b96a0e31 Fixes for uom in get_item_details 2017-09-29 18:57:41 +05:30
Nabin Hait
79a1d2a3b0 Fixes for uom in get_item_details 2017-09-29 18:15:40 +05:30
tunde
c49e748c85 Merge branch 'develop' into payment-terms 2017-09-29 13:30:22 +01:00
Nabin Hait
f65e55064b Fixed ui tests for production order 2017-09-29 12:50:37 +01:00
Nabin Hait
6488645d42 Fixed ui tests for production order 2017-09-29 16:38:28 +05:30
Rushabh Mehta
b46900a4cb Merge branch 'master' into staging 2017-09-29 16:22:02 +05:30
Rushabh Mehta
912ae24ca2 Merge branch 'master' into develop 2017-09-29 16:22:02 +05:30
Rushabh Mehta
e292c83114 Merge branch 'hotfix' 2017-09-29 16:22:01 +05:30
Rushabh Mehta
e1a4b3e4bc bumped to version 9.0.4 2017-09-29 16:52:01 +06:00
Faris Ansari
8ac56b26e0 [Enhancement] Allow Multiple users in POS Profile 2017-09-29 16:15:15 +05:30
Rushabh Mehta
d3a48a83fd [fix] bom.py, dont use keyword 2017-09-29 15:50:17 +05:30
Rushabh Mehta
80d24f83f8 [fix] item variant description 2017-09-29 15:39:03 +05:30
Pawan Mehta
5d8fd477bd [fix] #10840 (#10844) 2017-09-29 15:23:54 +05:30
Javier Wong
bf37995745 [Enhancement] Sales and Purchase Default UOM (#10929)
Option for specifying an optional default Sales and Purchase UOM at the item master level.
2017-09-29 15:23:08 +05:30
tundebabzy
5510d0751d correctly set frm company currency (#10944) 2017-09-29 15:21:59 +05:30
Shreya Shah
b79c4a9ff6 Getting last purchase price of an item (#10897)
* Added a column last purchase rate

* Removed button last purchase rate

* Get last purchase rate on adding an item

* Added test case for last purchase rate

* Replaced cur_frm with frm

* Update purchase_order.js
2017-09-29 15:20:48 +05:30
Francisco Roldán
1b61dfd9ea translated (#10886) 2017-09-29 15:19:12 +05:30
Shridhar Patil
3f7d96ecba Unassign from todo. (#10896)
Unassign from todo when the status is changed to Closed or Cancelled
2017-09-29 15:18:43 +05:30
Faris Ansari
367b90e3ae Add Data Import Tool desktop icon (#10916)
fixes #8332
2017-09-29 15:17:48 +05:30
tunde
25275077ab Merge branch 'develop' into payment-terms 2017-09-29 10:47:01 +01:00
Nabin Hait
945f502748 Fixes for updating item variant from template (#10975)
* Fixes for updating item variant from template

* More fixes for test cases
2017-09-29 15:11:50 +05:30
Makarand Bauskar
9c339145b2 [Enhance] Custom notification messages for subscription documents (#10970)
* [minor] configurable subscription email message and subject for notification

* [minor] added description for subject field
2017-09-29 15:02:51 +05:30
tunde
3415ac6e9c Merge branch 'develop' into payment-terms 2017-09-29 10:10:24 +01:00
Rushabh Mehta
3c14c5a16c [fix] tax_rule.py args 2017-09-29 13:21:22 +05:30
Nabin Hait
bdb4c542e7 default permission from GST doctypes 2017-09-29 10:39:32 +05:30
Nabin Hait
6d61a45f42 Removed default permission from GST doctypes 2017-09-29 10:35:21 +05:30
tunde
21e371f65f use chromedriver 3.2 2017-09-28 14:57:41 +01:00
Nabin Hait
c314485d55 Fixes based on test case 2017-09-28 18:55:49 +05:30
Nabin Hait
3b04cfc812 minor fix 2017-09-28 18:55:49 +05:30
tunde
131f0104b0 fix production order ui test 2017-09-28 14:08:25 +01:00
mbauskar
79ba422273 Merge branch 'develop' into staging 2017-09-28 16:32:33 +05:30
tunde
18764a12c4 increase point-of-sale timeout to fix UI test 2017-09-28 11:47:27 +01:00
rohitwaghchaure
0dc3c1b114 Merge pull request #10953 from rohitwaghchaure/has_batch_item_in_demo
[minor] Added batch item in the demo data
2017-09-28 16:07:01 +05:30
schilgod
0f6fff6f0c item price track_changes default to 1 (#10958) 2017-09-28 15:28:59 +05:30
Rushabh Mehta
2b87d100fa [fix] https://github.com/frappe/erpnext/issues/10956 2017-09-28 15:21:36 +05:30
Rohit Waghchaure
c4ee77a3cc [minor] Added batch item in the demo data 2017-09-28 15:19:26 +05:30
tunde
d348c12bdb fix sales order ui test 2017-09-28 09:46:31 +01:00
Sunny
3ec6960478 move Material Request patch to v9 2017-09-28 15:26:20 +08:00
Sunny
33670bba47 fix reorder_item 2017-09-28 15:24:11 +08:00
Sunny
73f1c93cd2 fix ppt code 2017-09-28 15:24:11 +08:00
Sunny
bf68611567 clean code 2017-09-28 15:24:11 +08:00
Sunny
0d91d3f572 add schedule_date while creating Material Request 2017-09-28 15:23:52 +08:00
Sunny
892ec599d4 [fix] tests 2017-09-28 15:23:09 +08:00
Sunny
65cd9f2284 Add patch to update schedule date of submitted Purchase Orders 2017-09-28 15:23:09 +08:00
Sunny
799d69baba [fix] Codacy errors 2017-09-28 15:22:49 +08:00
Sunny
71866e06f3 Add Purchase Order schedule_date field, similar to delivery_date in Sales Order 2017-09-28 15:22:49 +08:00
Sunny
284ceb7abe Set PO Reqd By Date default in code, to next date 2017-09-28 15:22:49 +08:00
Sunny
65c7a6947a [fix] Codacy errors 2017-09-28 15:22:49 +08:00
Sunny
f7a8277d12 Add Purchase Order schedule_date field, similar to delivery_date in Sales Order 2017-09-28 15:22:49 +08:00
Sunny
12cb07ce3c [fix] test records 2017-09-28 15:22:49 +08:00
Sunny
23a4b09d43 Add Material Request schedule_date field, similar to delivery_date in Sales Order 2017-09-28 15:22:48 +08:00
Nabin Hait
c9f9e5235b Fixed merge conflict 2017-09-28 12:31:33 +05:30
Nabin Hait
edd4fd4692 Merge branch 'hotfix' 2017-09-28 12:30:48 +05:30
Nabin Hait
ca916a73de bumped to version 9.0.3 2017-09-28 13:00:48 +06:00
Makarand Bauskar
53e19075d1 [hotfix] fixes and refactored Quoted Item Comparison report (#10954) 2017-09-28 12:30:04 +05:30
Rushabh Mehta
a0ba5594f9 [fix] production_order.py via error report 2017-09-28 11:26:24 +05:30
rohitwaghchaure
16645803f9 [fix] Added billing address gstin number in the sales invoice and delivery note as well in the sales gst reports (#10872) 2017-09-28 11:05:03 +05:30
rohitwaghchaure
94799a8b93 [fix] ‘NoneType’ object is not iterable onload of POS (#10941) 2017-09-28 10:56:27 +05:30
Nabin Hait
fce14fdcf0 Fixed merge conflict 2017-09-27 17:21:21 +05:30
Nabin Hait
7baacb7f74 Merge branch 'hotfix' 2017-09-27 17:19:55 +05:30
Nabin Hait
76615c8001 bumped to version 9.0.2 2017-09-27 17:49:55 +06:00
Prateeksha Singh
283922daa2 [fix] Check for stock_qty, else use qty (#10937) 2017-09-27 17:12:28 +05:30
rohitwaghchaure
da8de2f0c7 Re-order patch sequence (#10936) 2017-09-27 17:11:40 +05:30
rohitwaghchaure
0060993eab Merge pull request #10931 from rohitwaghchaure/customer_group_issue_for_lead
[fix] 'NoneType' object is not iterable while saving quotation
2017-09-27 16:08:35 +05:30
Rohit Waghchaure
566a0a05c8 [fix] 'NoneType' object is not iterable while saving quotation 2017-09-27 15:57:48 +05:30
Rushabh Mehta
f702d72c35 [minor] [performance] push hsn code creation after setup (#10928) 2017-09-27 15:31:30 +05:30
Nabin Hait
76e1ca35ad Merge branch 'master' into develop 2017-09-27 13:05:21 +05:30
Nabin Hait
e0a845c356 Merge branch 'hotfix' 2017-09-27 13:05:20 +05:30
Nabin Hait
eb686f8b1a bumped to version 9.0.1 2017-09-27 13:35:20 +06:00
Brown-Harry Boma
d3fa19143d Properly redirect supplier after quotations submit (#10903) 2017-09-27 12:53:38 +05:30
Makarand Bauskar
70eaf2da95 [minor] removed the default precision for the margin_rate_or_amount field (#10923) 2017-09-27 12:49:16 +05:30
rohitwaghchaure
103b239a31 Merge pull request #10925 from rohitwaghchaure/pos_issues_v9
[fix] Discount amount not working for POS
2017-09-27 12:20:30 +05:30
Rohit Waghchaure
87e994e0a2 [fixed] Disocunt amount not working for POS 2017-09-27 12:16:58 +05:30
rohitwaghchaure
45d45f4247 [hotfix] Wrong calculation of total in taxes and totals (#10924) 2017-09-27 11:49:13 +05:30
Prateeksha Singh
946e182564 install company fixtures while creating company (#10904)
* install company fixtures while creating company

* [fix] remove from setup_complete
2017-09-27 11:44:39 +05:30
tunde
567119170e Merge branch 'develop' into payment-terms 2017-09-26 17:28:07 +01:00
Frappe PR Bot
9aff73d156 [Translation] Updated Translations (#10901) 2017-09-26 17:18:42 +05:30
Prateeksha Singh
df8fbd7d72 [fix] batch qty checked against stock_qty field (#10906) 2017-09-26 17:16:03 +05:30
Nabin Hait
51a07d19c8 Merge branch 'master' into develop 2017-09-26 15:59:15 +05:30
Nabin Hait
8ff0a64ac2 Merge branch 'staging' 2017-09-26 15:59:12 +05:30
Nabin Hait
c0b4f0e81b bumped to version 9.0.0 2017-09-26 16:29:12 +06:00
Nabin Hait
b0ba55e52f Set bill no while making payment entry from purchase invoice 2017-09-26 15:56:58 +05:30
tunde
79f9a4aef1 bug fix: sales invoice always dirty even after reloading 2017-09-26 10:39:30 +01:00
tunde
095cfc9cfc disable some Payment Schedule fields 2017-09-26 10:25:49 +01:00
tunde
9e4dcdfbc8 rename Payment Terms Schedule section break to Payment Terms 2017-09-26 09:44:23 +01:00
rohitwaghchaure
d4c2d77bba [fix] POS not working if user clicks on back button from form view (#10912) 2017-09-26 13:27:06 +05:30
Prateeksha Singh
ada8ba96b3 [setup] remove translations from action name (#10911) 2017-09-26 13:07:24 +05:30
Nabin Hait
773e686fb1 change log for version 9 2017-09-26 12:41:43 +05:30
tunde
192587fe56 UI test cases 2017-09-26 01:32:08 +01:00
tunde
c4b0d17c08 fix bug: can't make PE for invoice with multi due date 2017-09-26 01:02:43 +01:00
tunde
31ddbe36c0 fix bug: cast to flt 2017-09-25 23:24:32 +01:00
tunde
541d3f9567 fix ui tests 2017-09-25 18:15:47 +01:00
tunde
cd9bc6f795 fix failing test 2017-09-25 14:51:21 +01:00
tunde
94c3c13ba6 fix failing tests 2017-09-25 14:47:48 +01:00
Nabin Hait
afe9eabd3c Merge branch 'master' into develop 2017-09-25 16:36:47 +05:30
Nabin Hait
360c1efd18 Merge branch 'master' into staging 2017-09-25 16:36:47 +05:30
Nabin Hait
a0b85cd1ec Merge branch 'hotfix' 2017-09-25 16:36:45 +05:30
Nabin Hait
9ef023b10f bumped to version 8.11.6 2017-09-25 17:06:44 +06:00
Nabin Hait
0d0811ca14 reload print style 2017-09-25 16:33:45 +05:30
Nabin Hait
39c2f75e6d Merge branch 'master' into staging 2017-09-25 16:03:32 +05:30
Nabin Hait
cb5e1e550f Merge branch 'master' into develop 2017-09-25 16:03:31 +05:30
Nabin Hait
3ab938ea34 Merge branch 'hotfix' 2017-09-25 16:03:29 +05:30
Nabin Hait
7da3c46ef2 bumped to version 8.11.5 2017-09-25 16:33:29 +06:00
tunde
90e09d4e79 fix failing tests from shopping cart 2017-09-25 11:27:32 +01:00
tunde
8a53b64ac4 Merge branch 'develop' into payment-terms 2017-09-25 10:31:42 +01:00
tunde
9bed2de726 show all duplicate rows after checking for duplicate due date 2017-09-25 10:19:35 +01:00
tunde
e52bb825ec fix bug: form is always dirty 2017-09-25 09:02:23 +01:00
Nabin Hait
3b61552836 Revert "Advance against expense claim (#10632)" (#10877)
This reverts commit cdd6ded790.
2017-09-25 11:27:39 +05:30
Nabin Hait
4ebac3380d reload print style 2017-09-23 15:50:39 +05:30
tunde
77ecacc379 validation to check for possible duplicate payment terms 2017-09-22 23:12:55 +01:00
tunde
cf42d1db5c more tests 2017-09-22 17:20:33 +01:00
tunde
3aec78b472 make due date, invoice_portion mandatory 2017-09-22 16:22:15 +01:00
tunde
e6b3fe1215 add tests for payment term template 2017-09-22 16:04:07 +01:00
tunde
d6cf6fb124 documentation for payment terms 2017-09-22 15:49:02 +01:00
tunde
62af5c5693 more validation checks and test fixes 2017-09-22 15:16:38 +01:00
tunde
73a83a472d validation for Payment Terms Template 2017-09-22 11:05:40 +01:00
tunde
25cda29007 fix test Employee 2017-09-21 14:33:39 +01:00
tundebabzy
e4be3f8dc9 use generator when updating and notify user of long process (#10777) 2017-09-21 18:27:33 +05:30
tunde
d7d306bfdb fix final failing test 2017-09-21 13:43:38 +01:00
Nabin Hait
cdd6ded790 Advance against expense claim (#10632)
* Adds Whitelist Method for Advance Entry

* Adds changes required for managing Advance Payments in Expense Claim including new fields and documentation. Also resolved merge conflict by using the more recent modified date

* Adds changes for managing advance payments using Default Account and Party

* Removed console.log from the JS file

* Advance Payment Patch - Fixed Codacy errors

* Removed stray file

* Fixed conflicts due to changes in upstream

* Fixed Codacy errors

* Fixed Codacy errors

* Fixed Codacy errors

* Fixed Codacy errors

* Fixed Codacy errors

* Fixed pending Codacy error

* Updated JS code by removing cur_frm which is soon to be deprecated

* Advance against Expense Claim: cleanup and fixes

* Test case fixed
2017-09-21 18:03:45 +05:30
Nabin Hait
3d5d858933 set total in tax table if category not valuation and consider deductions (#10870) 2017-09-21 16:15:30 +05:30
Nabin Hait
fb142f5283 Merge branch 'AravindPranera-develop' into develop 2017-09-21 15:52:06 +05:30
Nabin Hait
6d78f7b862 Fixed indentation 2017-09-21 15:51:42 +05:30
tunde
82de375ba0 Merge branch 'develop' into payment-terms 2017-09-21 11:21:05 +01:00
Nabin Hait
5478a7fa67 Merge branch 'develop' of https://github.com/AravindPranera/erpnext-1 into AravindPranera-develop 2017-09-21 15:48:18 +05:30
tunde
951092eecd fix sales order and pricing rule failing tests 2017-09-21 11:14:53 +01:00
Nabin Hait
2851dfad99 Set fields in Item Variant Settings which should be copied from template to variant 2017-09-21 15:41:57 +05:30
Rohit Waghchaure
5b05335e89 added patch and set default fields after completion of setup wizard 2017-09-21 15:41:57 +05:30
Rohit Waghchaure
0e28fccb34 [Enahance] Update variants fields defined in the Item Varianst Settings, if template updated 2017-09-21 15:41:57 +05:30
tunde
99849f8eab fix failing tests 2017-09-21 10:23:40 +01:00
tundebabzy
ab5b03011d Enhance Currency Exchange Management (#10482)
* add new settings in Accouts Settings

* patch for new settings

* refactor `get_exchange_rate`

* adds validation

* tests validation

* disables conversion rate field if stale rates not allowed

* more test cases

more test case...

test `get_exchange_rate` behaviour with stale not allowed in sett..

fix currency exchange test case

do housekeeping after running accounts settings test

* clean up

* documentation

* make use of correct api url

* Fix tests failing due to wrong exchange rate from fixer.io

* remove mandatory constraint from `allow_stale`

* added info to documentation
2017-09-21 14:50:39 +05:30
rohitwaghchaure
12fd8a6047 [fix] User not able to complete the production order because of decimal issue (#10868) 2017-09-21 14:39:10 +05:30
Nabin Hait
24ec3c7dcb Fixed merge conflict 2017-09-21 12:53:41 +05:30
tunde
ae0eb718a3 Merge branch 'develop' into payment-terms 2017-09-21 08:12:23 +01:00
Vishal Dhayagude
c4c2c56af2 env variable added (#10847) 2017-09-21 12:07:56 +05:30
Prateeksha Singh
705d885b64 [progress] R/W permission for all roles (#10866) 2017-09-21 12:02:18 +05:30
Manas Solanki
1c1dd08a34 only validate party account and ref doc party account in selected case (#10863)
* only validate party account and ref doc party account in selected case

* fix for fee structure test

* fix the assessment result test
2017-09-21 12:01:20 +05:30
tunde
c02f332565 Merge branch 'develop' into payment-terms 2017-09-20 15:37:34 +01:00
tunde
35c84fe4f2 fix failing test case 2017-09-20 12:26:19 +01:00
Nabin Hait
b2dca79d89 Updated modified timestamp in sales/purchase transaction doctypes 2017-09-20 09:56:06 +05:30
tunde
4712ed6377 remove logging statement 2017-09-19 21:30:34 +01:00
tunde
3387d026b1 Merge branch 'develop' into payment-terms 2017-09-19 18:07:12 +01:00
tunde
da17954919 fix failing tests 2017-09-19 17:53:31 +01:00
Nabin Hait
6960a76adc Fixes related to schools fees 2017-09-19 17:23:03 +05:30
Manas Solanki
0664d6ed8b real time fee creation status via socketio 2017-09-19 17:23:03 +05:30
Manas Solanki
1bcc6c661a minor changes 2017-09-19 17:23:03 +05:30
Manas Solanki
9b44c16a32 add the fee schedule in config 2017-09-19 17:23:03 +05:30
Manas Solanki
1299d56e85 cleanup of the fee module 2017-09-19 17:23:03 +05:30
Manas Solanki
8c88af23ef added the test case for the fees 2017-09-19 17:23:03 +05:30
Manas Solanki
d1d2633658 removed the fee schedule 2017-09-19 17:23:03 +05:30
Manas Solanki
152ba1eccb fixes as per the review 2017-09-19 17:23:03 +05:30
Manas Solanki
49c52f7639 renamed one doctype to the fee schedule 2017-09-19 17:23:03 +05:30
Manas Solanki
4e0559bc79 make payment entry for the fees 2017-09-19 17:23:03 +05:30
Manas Solanki
2b39d5d6d5 make gl_entry on submission of fees 2017-09-19 17:23:02 +05:30
Manas Solanki
e4acf763a5 make payment request for the fee 2017-09-19 17:23:02 +05:30
Manas Solanki
f073814635 added fee request doctype 2017-09-19 17:23:02 +05:30
Nabin Hait
2e4de83df6 Rounding Adjustment via a separate field, instead of last tax row (#10659)
* Rounding Adjust via a separate field, instead of last tax row

* Fixed test cases
2017-09-19 14:53:16 +05:30
rohitwaghchaure
f551b43a94 Merge pull request #10841 from rohitwaghchaure/subscription_patch_fix_docststus
[fix] Subscription patch broken if reference document has been cancelled
2017-09-19 13:24:04 +05:30
Rohit Waghchaure
c15a3bd379 [fix] Subscription patch broken if reference document has been cancelled 2017-09-19 12:53:11 +05:30
Nabin Hait
caf9891075 Fixed merge conflict 2017-09-19 12:06:22 +05:30
Nabin Hait
bd4b80e3d8 Merge branch 'master' into develop 2017-09-19 12:05:41 +05:30
Nabin Hait
9930eb0a7a Merge branch 'hotfix' 2017-09-19 12:05:39 +05:30
Nabin Hait
703e837125 bumped to version 8.11.4 2017-09-19 12:35:39 +06:00
rohitwaghchaure
4f0f144142 Merge pull request #10831 from rohitwaghchaure/cherry_pick_subscription_staging_to_develop
Cherry pick staging to develop for subscription cleanup
2017-09-19 10:26:20 +05:30
Nabin Hait
cf36534eed Gross profit report considering returned items (#10734) 2017-09-18 19:13:45 +05:30
AravindPranera
cb6774e373 Files added with all functions 2017-09-18 17:37:37 +05:30
AravindPranera
1276893550 Files added with all functions 2017-09-18 17:30:20 +05:30
rohitwaghchaure
d02744b436 [fix] Subscription patch (#10827) 2017-09-18 17:23:00 +05:30
rohitwaghchaure
850eaa73b0 Move subscription module to accounts (#10772) 2017-09-18 17:23:00 +05:30
Nabin Hait
e859671eb3 Revert "Added ability to disable auto creation of Sales Invoice when customer pays a payment request (#10706)" (#10830)
This reverts commit d258372f9e.
2017-09-18 17:22:46 +05:30
Neil Trini Lasrado
d258372f9e Added ability to disable auto creation of Sales Invoice when customer pays a payment request (#10706) 2017-09-18 17:12:16 +05:30
tundebabzy
f6d738b3c5 Delivery note to billing issue (#10726) (#10766)
* allow invoices to be made from sales returns

* Update queries.py
2017-09-18 17:10:09 +05:30
Utkarsh Goswami
b98359f4a7 Payment entry (#10668) 2017-09-18 17:06:13 +05:30
Makarand Bauskar
5c1d15f015 [change-log] added change log for v9.0.0 (#10756)
* [change-log] added change log for v9.0.0

* Update v9_0_0.md
2017-09-18 17:03:21 +05:30
Manas Solanki
a22c94c246 refactored assessment result tool (#10633)
* save the assessment instead of submit

* Added comments in the artool

* remove the cur_frm and message for submitted result

* link field for the assessment result
2017-09-18 16:59:54 +05:30
Faris Ansari
aebcb17daf Show thumbnail image in daily work summary (#10605)
* Show thumbnail image in daily work summary

* Crop thumbnail image into square

* fix codacy
2017-09-18 16:58:24 +05:30
rohitwaghchaure
6cea73b834 [fix] Subscription patch (#10827) 2017-09-18 16:58:05 +05:30
Utkarsh Goswami
bd0beb6c02 [fix] unknown column in production order (#10828) 2017-09-18 16:48:45 +05:30
Utkarsh Goswami
e78d5a240a [fix] unknown column in production order (#10828) 2017-09-18 16:44:11 +05:30
Neil Trini Lasrado
de3429280b Made Template link in variant (Item Master) intro linkable (#10696)
* Made Template link in variant (Item Master) intro linkable

* Update item.js
2017-09-18 16:42:10 +05:30
Neil Trini Lasrado
8c9f2a1be6 Add communication entry to Sales Order only if payment entry email is sent to customer (#10716) 2017-09-18 16:41:49 +05:30
Prateeksha Singh
9b4f3cf9de Leaderboard cleanup (#10638)
* [leaderboard] wip

* [leaderboard] filter for selecting leaderboard criteria, single col

* [leaderboard] doctypes in sidebar

* hide graph if no results
2017-09-18 16:41:04 +05:30
tunde
9448f4b13c codacy corrections 2017-09-18 12:08:34 +01:00
tunde
4bf3ed47ff revert from trying to adjust payment schedule based on old recurring_document 2017-09-18 11:54:28 +01:00
Saurabh
0396674d0d Merge pull request #10826 from saurabh6790/salary_struct_fix_1
Salary struct fix
2017-09-18 16:18:35 +05:30
Saurabh
9c334c34a6 [fix]remove employee field from tab salary structure 2017-09-18 16:17:13 +05:30
Manas Solanki
e716da04ec add the newsletter in the standard portel (#10784) 2017-09-18 16:00:34 +05:30
Saurabh
590d401e5f [fix] if bom specified on purchase order item then don't pull default bom in purchase receipt (#10793)
* [fix] if bom specified on purchase order item then don't pull default bom in purchase receipt

* Update bom.js

* Update stock_entry.py
2017-09-18 15:49:19 +05:30
ci2014
9bc197cfd5 Update project.js (#10796)
* Update project.js

Move indicators to setup to be less buggy

* fixed codecy trailing whitespace issues
2017-09-18 15:44:36 +05:30
Saurabh
d7e1869a70 [fix] if item code not exists then exclude item in validate_selling_price (#10800) 2017-09-18 15:43:35 +05:30
Saurabh
3f15bf9828 [fix] query fix for match conditions (#10810) 2017-09-18 15:27:24 +05:30
Nabin Hait
9744aa21af Minor fix in tax rule 2017-09-18 15:25:33 +05:30
Adam Dawoodjee
91eda6dad4 Update creating-custom-link-field.md (#10822)
Grammer improvements
2017-09-18 15:11:57 +05:30
Zarrar
8f957ef6e6 fetching data from last route (#10816) 2017-09-18 15:11:20 +05:30
Utkarsh Goswami
11bd5fc3b1 Description moved next to item code (#10820) 2017-09-18 15:05:50 +05:30
Saurabh
2222f10720 [patch] remove employee name salary structure (#10817)
* [patch] remove employee name salary structure

* Update remove_employee_from_salary_structure_parent.py
2017-09-18 15:05:18 +05:30
Nabin Hait
bc9006ff30 Delete GST related doctypes and reports if account is from outside India (#10808) 2017-09-18 13:16:04 +05:30
rohitwaghchaure
70ef09aa8f Merge pull request #10809 from rohitwaghchaure/fixed_test_cases_issue
[fix] Test cases for tax rule
2017-09-16 22:55:16 +05:30
Rohit Waghchaure
2cb2064c6f Fixed test cases tax rule 2017-09-15 23:10:27 +05:30
Nabin Hait
21617da619 More fixes for UI tests 2017-09-15 21:22:16 +05:30
Nabin Hait
628ca2a2ec Minor fix for ui tests 2017-09-15 19:35:12 +05:30
Nabin Hait
46941e8b35 Time out increased for appraisal template 2017-09-15 18:56:49 +05:30
Prateeksha Singh
d1ce7bfff4 [fix] set item valuation rates (#10681) 2017-09-15 16:17:29 +05:30
rohitwaghchaure
dd092e30fb Move subscription module to accounts (#10772) 2017-09-15 16:16:36 +05:30
Makarand Bauskar
5ac01a2bf7 [minor] translate the action name in get_slide_settings (#10740) (#10790) 2017-09-15 12:10:29 +05:30
AravindPranera
27bbb561d2 removed whitespace 2017-09-15 11:04:14 +05:30
AravindPranera
2c1f44ecfa Trailing space removed in line 275 2017-09-15 10:57:23 +05:30
AravindPranera
c73383c34c Trailing whitespace in Line 207 and 276 2017-09-15 10:34:21 +05:30
Nabin Hait
43268bd350 Fixed salary structure tests 2017-09-14 19:39:10 +05:30
Nabin Hait
2f64f0f5fa Fixed salary structure tests 2017-09-14 19:08:15 +05:30
Nabin Hait
427172c941 Update test_salary_structure.js 2017-09-14 17:57:21 +05:30
Nabin Hait
41146657de Set default customer group and territory after install 2017-09-14 17:26:23 +05:30
Nabin Hait
092f6d3739 Fixes ui tests 2017-09-14 16:45:47 +05:30
mbauskar
f41cff27e6 resolved merge conflicts 2017-09-14 15:32:55 +05:30
mbauskar
ea832b8157 resolved merge conflicts 2017-09-14 15:32:10 +05:30
mbauskar
fd39e6f3c8 Merge branch 'hotfix' 2017-09-14 15:28:44 +05:30
mbauskar
8ea3bb0d90 bumped to version 8.11.3 2017-09-14 15:58:44 +06:00
Nabin Hait
45dce89cae Print Settings for printing taxes with zero amount (#10782)
* Print Settings for printing taxes with zero amount

* added __init__.py file to patch module v8_9
2017-09-14 15:17:38 +05:30
Rushabh Mehta
bf8e331135 [fix] unset default customer group (#10689)
* [fix] unset default customer group

* added __init__.py file for patch v8.9 directory
2017-09-14 15:03:45 +05:30
Nabin Hait
a6d78ef842 Added Supplier Bill Date in Itemised Purchase Register (#10783) 2017-09-14 15:01:04 +05:30
Nabin Hait
beb2f3c415 Merge branch 'creamdory-sort_bom_items' into develop 2017-09-14 13:23:37 +05:30
Nabin Hait
77b225e021 Fetch BOM items in Production Order in the same order as BOM 2017-09-14 13:22:45 +05:30
Nabin Hait
3f583b6dd2 Merge branch 'sort_bom_items' of https://github.com/creamdory/erpnext into creamdory-sort_bom_items 2017-09-14 12:59:31 +05:30
Vishal Dhayagude
d3e22ac09e [UI Test] Modified Sales Order UI Test (#10770)
* [UI Test] Modified Sales Order UI Test

* [fix] Codacy fixed
2017-09-14 12:51:22 +05:30
Nabin Hait
f6b132f78e Update test_quotation.js 2017-09-14 11:55:31 +05:30
Nabin Hait
c7c141a5a0 Update test_setup_wizard.py 2017-09-14 11:51:43 +05:30
rohitwaghchaure
f8458ed9e4 Merge pull request #10771 from nabinhait/pro_order_99
Update actual dates in Production Order from Timesheet
2017-09-14 10:53:48 +05:30
rohitwaghchaure
9a0db392de [Fix] Only typed keywords displying in the field on selection of customer (#10778) 2017-09-14 10:51:21 +05:30
Nabin Hait
92309afea1 Update test_setup_wizard.py 2017-09-13 22:37:14 +05:30
Prateeksha Singh
242218d2b7 Progress fixes (#10710)
* [progress] sales target slide

* [fix] rerun patch for sales target slide
2017-09-13 18:41:01 +05:30
tundebabzy
c050c6945c show error message if cannot get accounts details (#10768) 2017-09-13 15:27:30 +05:30
Vishal Dhayagude
52ac483368 [NEW] Travis Parallel Test (#10755)
* test

* test2

* test travis
2017-09-13 15:18:41 +05:30
Nabin Hait
c443c9f05d Update actual dates in Production Order from Timesheet 2017-09-13 15:14:40 +05:30
Nabin Hait
78baebfe0d Setup wizard test fix 2017-09-13 15:12:45 +05:30
Rushabh Mehta
f056974bc5 [domain] Healthcare (#10664)
* Medical module for erpnext

* Changes in core for Medical module

* patient registration updated

* fix - appointment invioce - fields missing

* pages- indicator instead of bg-color

* Lab Test field renamed service type

* Department added Lab Test

* procedure name in prescription

* fixes sample collection

* filter disabled patient

* fix patient admission

* updated patient age

* availability check msg updated

* fixes, removed procedure from invoice

* sample print renamed

* fixes, validation

* service desk physician in filter

* refactor scheduler

* Appointment -field property - set only once = 1

* Appointment - Mark closed and pending buttons removed

* Appointment - readonly = 1 if value set

* Appointment - availabilty

* Appointment - Cancel - info - cancel invoice

* Appointment - set pending appointments

* Dosage form - new DT

* Drug Prescription - Dosage form added

* Facility - Floor - removed from Fecility

* Floor - removed

* Lab Test Template - item creation validation

* Procedure - Create Procedure

* Procedure Appointment - new DT

* Service Unit - Floor reference removed

* Zone Fcilities - Unused DT removed

* Appointment Desk - fixed

* Service Desk - method pointing from procedure changed to procedure_appointment

* Consultation print - got featured

* Consultation - removed patient refernce to procedure prescription

* Procedure Prescription - removed patient refernce

* Lab Test - Changed field properties and value

* Lab Test - field property changed

* Lab Test - methods rewrite - lab test doc creation

* Lab Test - create lab test from invoice and consultaion - got changed

* Button History changed to Medical Record

* Service Desk - Updated

* Notification - Procedure Appointment

* fix-get procedure prescription

* fix field added to test prescription

* msgprint on invoice creation

* fix data on install

* Merge branch erpnext/develop

* fixes- minor

* Setup wizard - Create Sensitivity

* Appointment - Validate and Save if there is no schedule for Physician

* Consultation - Button create vital signs and medical record

* Review Type - New DocType

* Review Detail and Treatment Plan - Childs - Consultation

* Patient Medical Record - field Attach doc

* Consultation - New Fields

* Consultation - Manage new Fields - Medical record add action

* Patient Relation - Child DocType - Patient

* Patient - Patient Relation added

* Patient - collapsible = 1

* Laboratory Settings - fields - message for lab test

* Laboratory Settings - get message for lab test

* SMS text for lab test and invoice test report

* Procedure Stock Detail - Stock detail for Procedure and Template

* Template Stage Detail - Stage detail for Procedure Template

* Procedure Stage Detail - Stage detail for Procedure

* Service Unit - field - warehouse

* Scheduler - msg - content changed

* Laboratory Settings - defualt - msg content

* Invoice Test Report - msg print

* Print Format-Changed-Consultation-Invoice Test Report-Lab Test

* OP Settings - Expnse Account for Stock Entry in Procedure

* Procedure and Procedure Template - Manage Stock Stage and Sample Collection

* Procedure Appointment - Manage Stock and Stage

* Lab Test - fixed - resource not find

* Invoice Test Report - fixed - resource not find

* Procedure - doc reload after insert

* Patient Medical Record - fixed - refernce missed

* Create Vital Signs -on client side

* Rename module Medical to Healthcare

* Remove In Patient (IP) Feature.

* Rename - Procedure to Clinical Procedure

* Remove spaces in Naming Series

* Rename Duration to Drug Prescription Duration

* Duration to Drug Prescription Duration

* Merge All Settings to Healthcare Settings

* Healthcare settings - import fixed

* Procedure related documents are removed

* Appointment Desk and Sevrvice Desk are removed

* Consultation - minimal

* Consultation - minimal

* Consultation - minimal - patient detials in collapsible section

* Message Print to Alerts

* Patient - some fields removed

* Patient - create consultation - message print to alerts

* Consultation - show patient details updated

* Setup wizard - Duration to Drug Prescritpion Duration

* Healthcare Settings - patient registration - fee collection

* Lab Test - Create Sales Invoice bug fixed

* Healthcare menu rearranged

* Healthcare Settings - Optimised and Rearragnged

* Healthcare Settings - Expense account removed

* Receivable account removed from patient

* Patient - Optimised and Rearragnged

* Removed Referring Physician

* Healthcare Settings - bold headings removed

* Physician - Patient - Fields are Segregated

* Remove Service Unit

* Remove - Service Type

* Consultation invoice

* Lab Test - invoice

* Patient - Invoice

* Rename Appointment to Patient Appointment

* wip

* Patient Dashboard, Physician Form cleanup

* Dosage renamed to Prescription Dosage

* Renamed Drug Prescription Duration to Prescription Duration

* Patient Appointment booking modal

* Patient Age - calculate by dob

* Remove - scheduler

* Consultation - Appointment to Patient Appointment

* Patient Dashboard - rearranged

* Patient Appointment

* Removed rer_physician from lab test and consultation

* Patient Appontment Changes

* Appointment and Consultation - optimized

* Patient Appointment - fee validity code optimized

* Consultation and Patient Appointment - Invoice validate two side

* fix: #13 remove relation to admission

* Healthcare - Patient Portal

* fix import error

* domain Healthcare added on install

* Removed - Invoice Test Report

* Physician Schedule - menu

* Consultation - patient details - re write

* New Doctype-Medical Code

* Consultation - Daignosis codification

* Medical Code - Codification - Settings

* Medical Code Standard - Medical Code - Codification - Settings

* fix appointment calendar

* fix appointment analytics

* Menu Medical Code Standard

* New Doctype - Medical Code Standard

* Set Physician Role insted of IP Physician and OP Physician Role

* fixed some json files

* Medical code - permission to physician

* Unused Childs - Work Schedule and User List - Removed

* Label Procedure to Lab Test

* Lab Test and Patient - code optimised

* Add Item Groups - setup wizard

* Healthcare Settings - add Role - Medical Administrator

* Healthcare - Demo setup - Make Demo

* Fee Validity - Logic Test

* Test Fee Validity - Optimised

* Healthcare Doctypes - Restricted to Domain Healthcare

* Domainify - remove Healthcare Roles - Other Domains

* Healthcare doctypes - beta checked

* Codacy fixes

* Codacy - fixes

* Codacy - fixes

* Codacy - fixes

* Codacy - fixes

* Codacy - fixes

* Lab Test - print hide =1 for some fields

* Consultation - Codification field label to Medical Coding

* Codacy fixes - import frappe and etc.

* Codacy fixes - import frappe in test_vital_signs

* Codacy fixes

* Codacy fixes

* Codacy fixes and remove delete perm for patient

* send_sms - import form frappe

* Healthcare Settings

* Lab Prescription - Consultation - Test Code - read_only = 0

* Portal fixes

* Patient Appointment - filter physician - if has schedule

* Physician - IP Charge - Removed

* test - files

* Web Form - Patient Profile - removed

* Role Medical Administrator to Healthcare Administrator

* WIP healthcare documentation

* Coday - fixes

* Travis - fixes

* Lab Test Report - menu

* Reorder Healthcare settings - group lab config to bottom

* Sample Collection - New - allow Sample and patient Selection

* Rate - similar behaviour and Label as in Item Standard Selling Rate

* Healthcare documentation

* Lab Test Samples to Lab Test sample

* Commplaints to Complaint

* Commplaints to Complaint

* Antibiotics to Antibiotic

* Appointment Token Number - remove

* View - Medical record

* Codacy fixes

* update healthcare docs

* Cleanup Docs - Search, quick entry, trsck change, etc.

* [minor] ux changes
2017-09-13 12:52:30 +05:30
Nabin Hait
ff667695ad timeout in setup wizard test 2017-09-13 11:26:55 +05:30
Rushabh Mehta
f849915c13 [fix] label 2017-09-13 10:48:53 +05:30
Nabin Hait
231c324589 Merge branch 'master' into staging 2017-09-12 16:26:31 +05:30
tunde
1255aa0f11 Merge branch 'develop' into payment-terms 2017-09-12 11:54:52 +01:00
Nabin Hait
f8f29677fd Merge branch 'master' into develop 2017-09-12 16:16:57 +05:30
Nabin Hait
50312b54a0 Merge branch 'hotfix' 2017-09-12 16:16:55 +05:30
Nabin Hait
e47bd4f477 bumped to version 8.11.2 2017-09-12 16:46:55 +06:00
rohitwaghchaure
ab64e323cd Merge pull request #10747 from mbauskar/pos
rename Is Online field to Use POS in Offline Mode in pos settings
2017-09-12 16:14:28 +05:30
rohitwaghchaure
67dfd26639 [fix] Production planning tool, unable to download material required report (#10704) 2017-09-12 15:54:27 +05:30
rohitwaghchaure
54099e592e [fix] Serial No has already been received error while making purchase receipt entry for the returned serial no (#10736) 2017-09-12 15:51:52 +05:30
Manas Solanki
580f39a12c check the instructor table before querying (#10754) 2017-09-12 15:49:36 +05:30
Nabin Hait
c9e96c15af Rate and amount in a single row in tax breakup 2017-09-12 15:45:49 +05:30
Nabin Hait
de9eebe51c Fixed multiple ui tests 2017-09-12 15:40:33 +05:30
Sagar Vora
d54d6bc572 [fix] use stock_qty in reports instead of qty to match with stock_uom (#10727) 2017-09-12 11:31:10 +05:30
rohitwaghchaure
38830e54d8 [fix] No module namd student_batch_name.student_batch_name error in the patch (#10745) 2017-09-12 11:25:02 +05:30
Rohit Waghchaure
1a77922e85 rename Is Online field to Use POS in Offline Mode in pos settings 2017-09-12 11:01:48 +05:30
Makarand Bauskar
d0823adf42 [minor] translate the action name in get_slide_settings (#10740) 2017-09-12 10:52:24 +05:30
rohitwaghchaure
80b902cea6 Merge pull request #10732 from rohitwaghchaure/rename_pos_field_in_pos_settings
Rename Is Online field to Use POS in Offline Mode in pos settings
2017-09-11 22:36:38 +05:30
tunde
ecb118fb3b bugfix: call set_payment_schedule only in relevant doc 2017-09-11 15:45:10 +01:00
Nabin Hait
e5716e3b1e Default view of BOM is Listview 2017-09-11 19:21:47 +05:30
rohitwaghchaure
47605cae16 Merge pull request #10737 from nabinhait/budget_variance_for_project
[fix] Actual amount for budget variance report
2017-09-11 16:47:16 +05:30
Frappe PR Bot
8a803a2310 [Translation] Updated Translations (#10741) 2017-09-11 16:31:10 +05:30
rohitwaghchaure
e2149cb46f Merge pull request #10697 from rohitwaghchaure/customer_search_optimization
[Fix] Customer search optimization for the offline POS
2017-09-11 16:23:15 +05:30
tunde
df3a175974 fix bugs: add payment_schedule if payment_terms_schedule specified 2017-09-11 11:02:57 +01:00
Nabin Hait
509bca36b1 Reverse charge in gst print format 2017-09-11 15:19:07 +05:30
Nabin Hait
cfb9310d13 Removed commit after creating custom gst fields 2017-09-11 15:00:16 +05:30
Rohit Waghchaure
4e006b0bc5 rename Is Online field to Use POS in Offline Mode in pos settings 2017-09-11 14:51:50 +05:30
Nabin Hait
f5cbb9c7b9 [fix] Actual amount for budget variance report 2017-09-11 13:58:15 +05:30
mbauskar
336c9b23d6 Merge branch 'master' into staging 2017-09-10 12:32:21 +05:30
mbauskar
dfeadf876e Merge branch 'master' into develop 2017-09-10 12:32:21 +05:30
mbauskar
b9d158076e Merge branch 'hotfix' 2017-09-10 12:32:20 +05:30
mbauskar
438088f69d bumped to version 8.11.1 2017-09-10 13:02:20 +06:00
Makarand Bauskar
80b2ba2b9a [hotfix] fixed Not Permitted issue for System user while accessing documents on portal (#10725)
* [hotfix] dont allow guest user to list the invoices or orders

* [hotfix] fixed Not Permitted issue for System user while accessing documents on portal

* [codecy] removed trailing whitespace

* [fixes] added filters for supplier in RFQ and other minor fixes
2017-09-10 12:04:28 +05:30
tunde
96b8f223fd fix failing tests 2017-09-08 15:35:59 +01:00
Faris Ansari
197901108e Merge pull request #10713 from mbauskar/hotfix
[fix] Tax area alignment (#10690)
2017-09-08 15:59:19 +05:30
Faris Ansari
425f1df799 [fix] Tax area alignment (#10690) 2017-09-08 15:56:34 +05:30
rohitwaghchaure
225ac0dac3 [Enhance] Subscription module (#10089)
* [Enhance] Subscription module

* Added view documents from the subscription form

* Test cases

* documentation

* UI Test cases, fixes

* Removed child table in the subscription

* Provision to make subscription from the document, added subscription in the dashboard for the sales and buying flow

* added patch to make subscription from the recurring data

* Rename field subscriptio to subscription_id, added new test cases, remove recurring_document from controller

* renamed subscription_id to subscription
2017-09-08 10:31:21 +01:00
tunde
24cb494a3b Revert "Revert "make payment_schedule field no-copy""
This reverts commit fbd895d781.
2017-09-08 10:07:39 +01:00
tunde
fbd895d781 Revert "make payment_schedule field no-copy"
This reverts commit 4f4148b0da.
2017-09-08 10:06:46 +01:00
tunde
199daf7ac5 Merge branch 'develop' into payment-terms 2017-09-08 09:59:13 +01:00
tunde
4f4148b0da make payment_schedule field no-copy 2017-09-07 18:49:10 +01:00
mbauskar
9bc2b66e14 Merge branch 'develop' into staging 2017-09-07 21:08:26 +05:30
tunde
2d3a575f29 more test cases for purchase/sales invoice 2017-09-07 14:50:20 +01:00
Nabin Hait
d4e57a38a4 Fixed multiple ui test cases 2017-09-07 19:16:38 +05:30
tunde
9085a5e52d more test cases for quotation, purchase/sales order 2017-09-07 14:31:33 +01:00
tunde
b0f6b068ef remove test based on deleted recurring_document.py 2017-09-07 13:50:46 +01:00
Rohit Waghchaure
06b22e9ac1 [Fix] Customer search optimization for the offline POS 2017-09-07 17:44:42 +05:30
tunde
ad7d3a1733 Merge branch 'develop' into payment-terms 2017-09-07 13:13:59 +01:00
rohitwaghchaure
07b713121b Merge pull request #10600 from netchampfaris/pos-refactor
POS Online
2017-09-07 17:39:45 +05:30
rohitwaghchaure
1b65575860 Merge branch 'develop' into pos-refactor 2017-09-07 17:15:58 +05:30
tunde
67f3d854bc test for quotation 2017-09-07 12:22:48 +01:00
rohitwaghchaure
166b78f022 [Enhance] Subscription module (#10089)
* [Enhance] Subscription module

* Added view documents from the subscription form

* Test cases

* documentation

* UI Test cases, fixes

* Removed child table in the subscription

* Provision to make subscription from the document, added subscription in the dashboard for the sales and buying flow

* added patch to make subscription from the recurring data

* Rename field subscriptio to subscription_id, added new test cases, remove recurring_document from controller

* renamed subscription_id to subscription
2017-09-07 16:14:22 +05:30
Vishal Dhayagude
c79d14190f [fix] travis failed (#10702) 2017-09-07 16:05:41 +05:30
tunde
353099d7ad Merge branch 'develop' into payment-terms 2017-09-07 11:31:26 +01:00
tunde
788de8001c more tests 2017-09-07 11:30:06 +01:00
tunde
32aa7c1e68 Automatically set payment schedule if not specified
- fix failing test cases
- fix failing tests for recurring documents
- others
2017-09-07 06:52:15 +01:00
tunde
dba6f841e6 refactor: DRY for due date disabled 2017-09-07 06:51:07 +01:00
Rushabh Mehta
2e8e5354e9 [fix] trainig_feedback.py 2017-09-07 10:43:36 +05:30
Rushabh Mehta
290e066633 [rename] /test_training_event_attendance.js 2017-09-07 09:07:15 +05:30
Rushabh Mehta
134d59949a [minor] update warehouse_group in item.reorder_levels 2017-09-07 09:04:24 +05:30
Prateeksha Singh
2697e332f3 [fix] wizard UI test order (#10663)
* [fix] wizard ui test order

* [setup] remove old test

* [fix] commit to remove lock from defaults table during setup
2017-09-07 09:03:16 +05:30
tunde
e7da1c5500 refactor: DRY for disable due date logic 2017-09-06 12:36:45 +01:00
Rohit Waghchaure
c72d08e8b9 Added indicator to show stock is available or not 2017-09-06 14:56:08 +05:30
tunde
9e32387aa7 fix customer test records 2017-09-06 09:44:45 +01:00
tunde
794001df50 more test cases in Supplier 2017-09-06 09:16:11 +01:00
tunde
98fd5401ff test customer 2017-09-06 08:47:14 +01:00
rohitwaghchaure
ec46e51ed4 Merge pull request #10426 from nabinhait/payment_entry_deductions
Unallocated and difference amount calculation in Payment Entry
2017-09-06 13:04:25 +05:30
Rohit Waghchaure
7419c4b577 Fixed test cases 2017-09-06 12:44:51 +05:30
rohitwaghchaure
914fd197fc Update test_payment_against_invoice.js 2017-09-06 12:42:58 +05:30
Faris Ansari
8868ae22be [fix] Tax area alignment (#10690) 2017-09-06 12:17:12 +05:30
Nabin Hait
ded8d11728 Js tests added for write off difference amount 2017-09-06 12:11:48 +05:30
Nabin Hait
6c3618be37 Unallocated and difference amount calculation in Payment Entry 2017-09-06 12:10:52 +05:30
Rushabh Mehta
6ef741554c [fix] [patch] rename_company_sales_target_field.py 2017-09-06 10:53:26 +05:30
tunde
98cca8ee18 remove unused imports 2017-09-06 06:11:58 +01:00
tunde
8173239f63 Merge branch 'develop' into payment-terms 2017-09-06 04:18:40 +01:00
tunde
e5973e45f1 fix test 2017-09-05 18:11:58 +01:00
tunde
e0cec4ef05 Merge branch 'payment-terms' of https://github.com/tundebabzy/erpnext into payment-terms 2017-09-05 17:37:35 +01:00
tunde
a496c43581 fix test 2017-09-05 17:36:21 +01:00
mbauskar
668d04548a Merge branch 'master' into develop 2017-09-05 20:45:00 +05:30
mbauskar
68a4146999 Merge branch 'staging' 2017-09-05 20:44:59 +05:30
mbauskar
d4316f0264 bumped to version 8.11.0 2017-09-05 21:14:58 +06:00
Faris Ansari
4bcaeb312c fix codacy 2017-09-05 17:30:22 +05:30
Faris Ansari
e4434d3200 Merge branch 'develop' into pos-refactor 2017-09-05 17:18:04 +05:30
Faris Ansari
62b1dc777e Namespace PointOfSale class 2017-09-05 17:10:24 +05:30
Nabin Hait
799619b6b0 Fixed multiple uom in selling 2017-09-05 15:52:12 +05:30
tundebabzy
dc64f70f07 Merge branch 'develop' into payment-terms 2017-09-05 11:14:47 +01:00
Makarand Bauskar
3ad045302b [minor] set abbreviation on company name trigger (#10671)
* [minor] set abbreviation on company name trigger

* [minor] codecy fixes
2017-09-05 15:23:55 +05:30
Nabin Hait
499fbe90dc Test case fixed for multi-currency and multi-uom BOM (#10679) 2017-09-05 15:16:32 +05:30
Francisco Roldán
c929e88b97 Company Dashboard Title Translatable (#10673) 2017-09-05 15:09:35 +05:30
creamdory
05885ca184 Sorting in Production Order BOM Items 2017-09-05 17:02:54 +08:00
Rohit Waghchaure
2967d7ed01 Merge branch 'bom_currency' into develop 2017-09-05 11:26:22 +05:30
Rohit Waghchaure
c872095d76 update rate based on uom conversion factor 2017-09-05 11:25:05 +05:30
Frappe PR Bot
8054d962cf [Translation] Updated Translations (#10669) 2017-09-05 09:19:06 +05:30
tunde
7f9a462506 Merge branch 'develop' into payment-terms 2017-09-05 01:35:51 +01:00
tunde
743ba690dd more test cases for Supplier 2017-09-05 01:17:14 +01:00
tunde
ed86efb1fd modify get_due_date to check Supplier Type if needed 2017-09-05 01:15:31 +01:00
tunde
b8ddae13ba fix patches 2017-09-05 00:23:24 +01:00
tunde
2fdb857fed fix due date disable bug 2017-09-05 00:21:54 +01:00
tunde
60aecd87b1 fix bugs in patches 2017-09-04 19:40:31 +01:00
tunde
4e4a40e46b add new field payment_terms to Supplier Type 2017-09-04 19:38:41 +01:00
tunde
635423d70f rewrite Supplier test cases 2017-09-04 19:37:54 +01:00
tunde
57171cdc48 patch for credit days in Supplier Type 2017-09-04 19:33:35 +01:00
tunde
95b3d7c619 patch for payment term field in Supplier Type 2017-09-04 19:32:14 +01:00
tunde
4163c9529d fix get_due_date function to return date as string 2017-09-04 19:30:01 +01:00
Nabin Hait
22cff25bf5 BOM rates as per selected currency and UOM 2017-09-04 18:31:45 +05:30
tunde
c6d60e1de3 update patch list 2017-09-04 13:41:17 +01:00
tunde
bc9b5d699e fix patch 2017-09-04 13:40:54 +01:00
tunde
76bba08e45 patch to create and set default payment term in customer/supplier 2017-09-04 13:37:32 +01:00
tunde
feffca2b05 patch to add payment_terms_field 2017-09-04 13:34:31 +01:00
mbauskar
7faac85fff Merge branch 'master' into staging 2017-09-04 14:50:32 +05:30
mbauskar
d32f08f6ec Merge branch 'master' into develop 2017-09-04 14:50:31 +05:30
Prateeksha Singh
95d8fd38f5 User Progress (#10336)
* [user-progress] first cut

* [user-progress] Add users slide, remove taxes, make sample data

* wip tests

* [setup-wiz] UI test

* [user-progress] notif test, docs trim

* wip

* [user-progress] Setup Progress single to update action states, fixtures

* setup progress actions patch

* rename sales_target field patch

* [progress] wip reform slide data

* [progress] remove slide data

* [setup] add roles for GST doctypes, remove commit from fixtures
2017-09-04 11:14:04 +05:30
rohitwaghchaure
fd39d6bd3c [Enahance] Provision to select customer, item code while making an invoice from timesheet (#10616) 2017-09-04 10:20:40 +05:30
Arundhatii
2e6db4d928 Help pages for Attendance (#10634)
* Help pages for Schools setup

* Documentation of Schools module

* Help pages for Student

* Help pages for Student

* Help pages for Schools Student and Admission Module

* Documentation for Schools Attendance
2017-09-04 10:17:18 +05:30
Saurabh
21833413b0 [fix] ERPNext signup link fix on demo page (#10649) 2017-09-04 10:15:24 +05:30
Francisco Roldán
11355cd3c9 Set at lost translated in quotation (#10652) 2017-09-04 10:14:58 +05:30
Nabin Hait
2b05e61d58 Merge branch 'rmehta-bcornwellmott-confirm_training' into develop 2017-09-04 10:13:47 +05:30
Nabin Hait
baacf51a00 Fixed merge conflict 2017-09-04 10:13:29 +05:30
Zarrar
85eeafdccc added filter for grading scale selection (#10639) 2017-09-01 21:45:10 +05:30
Rohit Waghchaure
6ab630371d Fixed serial no trigger not working from dialog box 2017-09-01 17:02:42 +05:30
tunde
975eff7310 remove redundant test case 2017-09-01 12:10:44 +01:00
Umair Sayed
f1881065a8 Merging Help Articles (Q & A) into Manual (Part 2) (#10629)
* adding articles in the manual

* adding articles in the manual 2

* migrating help articles to manuals

* migrating help articles to manuals
2017-09-01 16:26:41 +05:30
tunde
cbd72f6113 adjust failing tests 2017-09-01 11:48:00 +01:00
tunde
7b7dcddf86 modify get_due_date call from sales/purchase invoice 2017-09-01 11:36:08 +01:00
tunde
b3a6338c79 patch replace credit_days with payment terms schedule 2017-09-01 11:35:22 +01:00
tunde
f0e9dd2597 patch to add due_date to GL Entry table 2017-09-01 11:34:26 +01:00
Rushabh Mehta
fc1c00716c [test] test_account.js - more timeout? 2017-09-01 12:41:12 +05:30
Rushabh Mehta
baabb07e00 [test] test_account.js 2017-09-01 12:12:39 +05:30
Rushabh Mehta
7d868e41a6 [test] test_account.js 2017-09-01 11:46:11 +05:30
tunde
1c2edaebc4 patch customer records
- creates payment term and payment term template based on credit_days setting
- sets payment term template for records that had credit_days
2017-08-31 22:52:06 +01:00
tunde
8935f6546c removes get_credit_days function as it is no longer useful 2017-08-31 16:31:15 +01:00
tunde
3b4bd3791d adjust get_due_date to calculate based on payment term template 2017-08-31 16:28:47 +01:00
tunde
e44ce5d88e adjustment: removes credit_days_based on and credit_days fields 2017-08-31 16:11:42 +01:00
tunde
657ecd5227 adjustment: removes credit_based_on field 2017-08-31 16:06:56 +01:00
Nabin Hait
a9c9b69c22 Change actual charges based on exchange rate (#10619)
* Change actual charges based on exchange rate

* Update transaction.js
2017-08-31 19:40:09 +05:30
Frappe PR Bot
d112ee5244 [Translation] Updated Translations (#10628) 2017-08-31 19:38:41 +05:30
tunde
229b583715 disable due date field if form has payment schedule data 2017-08-31 14:30:53 +01:00
Rohit Waghchaure
3e43927767 Test cases 2017-08-31 18:21:27 +05:30
tunde
50ec45d3b6 Merge branch 'develop' into payment-terms 2017-08-31 13:46:02 +01:00
tunde
400d046653 set payment terms template in get_party_details 2017-08-31 13:44:57 +01:00
Saurabh
60739847ab [minor][fix] change price field type from float to currency (#10626) 2017-08-31 17:08:30 +05:30
tunde
762c810fa2 add payment terms to supplier master 2017-08-31 11:52:49 +01:00
tunde
2775175b17 add payment terms to customer master 2017-08-31 11:52:14 +01:00
mbauskar
9012a9b414 Merge branch 'master' into staging 2017-08-31 15:31:48 +05:30
mbauskar
2965f92be3 Merge branch 'master' into develop 2017-08-31 15:31:47 +05:30
mbauskar
d974bcd2fa Merge branch 'develop' into staging 2017-08-31 15:30:12 +05:30
Nabin Hait
d7ff9dca1d Fixed rounding issue in Process Payroll, fixes #9300 (#10586) 2017-08-31 15:17:01 +05:30
Nabin Hait
e7e29b7f10 GST print format for POS (#10590)
* Serial no added in GST tax invoice

* GST print format for POS
2017-08-31 15:06:12 +05:30
Umair Sayed
84be137b4e Migrating Help Articles (Q&A format) into User Manual (#10608)
* adding articles in the manual

* adding articles in the manual 2

* migrating help articles to manuals
2017-08-31 14:53:47 +05:30
Vishal Dhayagude
1252c30edf [UI Test] UI test for Repack and Sales Invoice with Serialize item Added (#10583)
* [UI Test] UI test for Repack and Sales Invoice with Serialize item Added

* [Fix] Fixed path for sales invoice"
2017-08-31 14:47:56 +05:30
Vishal Dhayagude
1458d7fea6 [UI Test] Stock Entry for material issue with serialize item (#10592) 2017-08-31 14:47:01 +05:30
tunde
3dfbd957b7 add payment terms to supplier master 2017-08-31 09:42:01 +01:00
tunde
226164d81c add payment terms in customer master 2017-08-31 09:41:25 +01:00
tunde
e5460ab1df rename patch 2017-08-30 22:37:14 +01:00
tunde
6de18ce589 codacy fixes 2017-08-30 21:20:41 +01:00
tunde
93c015a42b add due_date in GL Entry from Journal Entry 2017-08-30 21:05:38 +01:00
tunde
501ef8733b fix due_date autopopulate commit 2017-08-30 21:02:20 +01:00
Rohit Waghchaure
7e752c4ebf Added patch, fixed codacy issue 2017-08-31 00:31:35 +05:30
tunde
4e490ad718 Merge branch 'develop' into payment-terms 2017-08-30 14:11:40 +01:00
tunde
08d8ca0184 enhance reference_due_date behaviour:
- creates new api - get_invoice_due_dates
- when reference_name is changed, populate reference_due_date
2017-08-30 13:55:32 +01:00
tunde
2883662ccb change due_date to reference_due_date in Journal Entry Account 2017-08-30 08:45:28 +01:00
Faris Ansari
6163a397df Disable eslint in lib 2017-08-30 12:54:16 +05:30
Faris Ansari
1116f96aee Grand Total Value width 2017-08-30 12:53:08 +05:30
Faris Ansari
491108a198 Merge branch 'develop' into pos-refactor 2017-08-30 12:37:05 +05:30
mbauskar
a896e52489 resolved merge conflicts 2017-08-29 20:41:59 +05:30
tunde
a19ea6e2f3 Merge branch 'develop' of https://github.com/frappe/erpnext into payment-terms 2017-08-29 15:26:50 +01:00
Rohit Waghchaure
70aaff46be minor fix in item group search 2017-08-29 19:19:58 +05:30
tunde
7555a4a13e fix patch and also patch payment entries 2017-08-29 13:40:16 +01:00
Faris Ansari
c70bbacd34 Add online, offline option, fix search 2017-08-29 15:27:17 +05:30
tunde
3b327ed55f 'modify patch to also adjust journal entries' 2017-08-29 10:23:19 +01:00
Faris Ansari
655f86d5e2 UI fixes 2017-08-29 14:27:01 +05:30
Faris Ansari
b9939a6449 Merge pull request #10448 from joelios/selfpostback
improvement for self-postbacks
2017-08-29 14:05:13 +05:30
Faris Ansari
6f50b3a5b2 handle both cases 2017-08-29 14:02:49 +05:30
Rohit Waghchaure
ba3f0e6b70 Added serial no, batch no, item group functionality 2017-08-28 19:45:58 +05:30
Aditya Hase
6ccb6562f1 Python 3 compatibility syntax error fixes (#10519)
* Use Python 3 style print function

* Use 'Exception as e' instead of 'Exception, e'

* Unpack tuple arguments explicitly in instead of relying on auto unpacking

* Use consistent indentation

* Use 0 if stock_frozen_upto_days is None
2017-08-28 18:17:36 +05:30
Vishal Dhayagude
7ed4bfe7ee [UI Test] UI Test for Material Receipt with Serialize Item Added (#10565)
* [UI Test] UI Test for Material Receipt with Serialize Item Added

* [fix]Codacy fixed
2017-08-28 16:53:25 +05:30
Vishal Dhayagude
872bebbbf8 [UI Test] Stock Entry for Subcontract (#10574) 2017-08-28 15:33:21 +05:30
Vishal Dhayagude
f8e6c44996 [UI Test] Stock Entry for Material Transfer to Manufacture (#10572) 2017-08-28 15:32:33 +05:30
mbauskar
aaec42ebc2 resolved merged conflicts 2017-08-28 11:57:56 +05:30
Vishal Dhayagude
914b8463b7 [UI Test] UI Test for Payment Request Added: (#10553) 2017-08-28 11:14:28 +05:30
Utkarsh Goswami
7ba2a83182 Tests for Loan (#10557) 2017-08-28 11:13:16 +05:30
Vishal Dhayagude
554cf9be44 [UI Test] UI Test Added for Bank Reconciliation (#10563) 2017-08-28 11:11:36 +05:30
Vishal Dhayagude
da2164373c [UI Test] UI Test added for Batch (#10564) 2017-08-28 11:10:26 +05:30
Vishal Dhayagude
c3a2204653 [UI Test] UI Test for Sales Order Cancel, amend and save (#10570) 2017-08-28 11:09:35 +05:30
tunde
63c8cb2fd1 add due_date to Journal Entry Account doctype 2017-08-27 17:56:47 +01:00
Faris Ansari
3ae9e91bcd Add memoization in search 2017-08-27 14:04:23 +05:30
Faris Ansari
d733b7d7d0 Styling and code fixes 2017-08-27 13:56:33 +05:30
Rohit Waghchaure
5e2d2059fe Added email, edit on form view from POS, pay using numpad functionality 2017-08-27 08:54:40 +05:30
tunde
6b2d9e4990 patch to add due date to GL Entries for Sales/Purchase invoice 2017-08-25 15:25:18 +01:00
Zarrar
7dc113e977 instructor-naming (#10550) 2017-08-25 17:48:36 +05:30
Utkarsh Goswami
579c8e68f9 Tests for Expense Claims [HR] (#10514) 2017-08-25 16:12:49 +05:30
Ashwini Save
e33a1e0515 Hide "Help Article" button for timeline Communication type "Comment". (#10541) 2017-08-25 12:44:33 +05:30
Nabin Hait
bf4a974124 IMproved print format for AR/AP report (#10528) 2017-08-25 12:10:49 +05:30
Utkarsh Goswami
9a04da27b0 Test for training (#10545) 2017-08-25 12:01:04 +05:30
AravindPranera
764bb30d2d Fetching Opportunity items into Request for Quotation 2017-08-24 18:34:45 +05:30
AravindPranera
6544a85f1e Opportunity Items fetching into Request for quotation 2017-08-24 18:32:40 +05:30
Manas Solanki
8de7c0245c Fixes in the naming series (#10480)
* rewrite the js

* fix the space issue in the naming series
2017-08-24 17:51:23 +05:30
Vishal Dhayagude
17b2720f5b [UI Test] UI Test for Payment Entry (#10521) 2017-08-24 17:50:28 +05:30
Faris Ansari
5d9196960e new form improvements 2017-08-24 17:09:34 +05:30
Zarrar
1010a2a2a4 Resolving some issues in school [ issue no:- #10464 ] (#10529)
* guardian_name issue fix

* guardian table issue resolved

* resolved fetching issue + unnecessary code removed
2017-08-24 16:22:06 +05:30
Utkarsh Goswami
3da5574d79 Test for appraisal (#10525) 2017-08-24 15:48:57 +05:30
Rohit Waghchaure
e5f6b4d640 Added print, make new invoice from POS functionality 2017-08-24 15:27:55 +05:30
tunde
f7e87e66ee do correct gl entry for debit and credit notes 2017-08-23 22:36:25 +01:00
Rushabh Mehta
72fa958f2c [layout] lead and opportunity (#10487) 2017-08-23 18:47:57 +05:30
Vishal Dhayagude
641d88fd6b [UI Test] UI Test added for Journal Entry (#10512)
* [UI Test] UI Test added for Journal Entry

* [mod] Edited date in journal Entry

* [fix] Codacy fixed
2017-08-23 18:32:12 +05:30
Faris Ansari
6d2f6c2e4d Search improved, code refactor 2017-08-23 16:25:16 +05:30
Rushabh Mehta
4a546e6c18 [minor] delivery note standard filter 2017-08-23 16:16:43 +05:30
Faris Ansari
26df5b8c00 Connect Numpad events with POSCart 2017-08-23 13:12:12 +05:30
Rohit Waghchaure
b73321c577 Item search refactor 2017-08-23 12:15:10 +05:30
tunde
d13fe18d30 Merge branch 'develop' into payment-terms 2017-08-22 14:18:11 +01:00
tunde
10fc880b06 Merge branch 'develop' into payment-terms 2017-08-21 18:27:46 +01:00
Faris Ansari
78c81d9c6c Refactor payment code 2017-08-21 15:05:33 +05:30
tunde
fb144303f5 codacy and typo fixes 2017-08-20 17:23:55 +01:00
tunde
c7f46218d7 tests and test fixes
fixes test case:
make sales invoice using customer that does not have credit_days_based_on 'Last Day Of Next Month'
so that it doesn't conflict with payment term due date

fix test case:
create purchase invoice with new supplier with credit_days_based_on
"Fixed Days" as the default "Last Day of Month" does not apply when
using payment terms
2017-08-20 17:23:27 +01:00
tunde
be1b871c53 modify validation if doc has payment term schedule 2017-08-20 17:22:59 +01:00
tunde
4c5efa3dec renames set_payment_schedule and removes it from validation 2017-08-20 17:22:06 +01:00
tunde
43870aa8db moves set_payment_schedule and validate_payment_schedule to accounts_controller 2017-08-20 16:56:43 +01:00
tunde
20c041cea4 add Payment Term to Purchase Invoice 2017-08-20 16:52:05 +01:00
tunde
b76ab49ede add Payment Term to Purchase Order 2017-08-20 16:52:05 +01:00
tunde
9df5e004cf add Payment Terms to Sales Order 2017-08-20 16:52:05 +01:00
tunde
bc174d980c add Payment Term to Quotation 2017-08-20 16:52:05 +01:00
Nabin Hait
9275969b51 Payment Terms: doctypes, schedule, payments and more
fix payment terms template setup:
- add_fetch to correct credit_days and credit_months not credit_days_months

fixed bug in `make_customer_gl_entry` and `make_supplier_entry:
all sales invoice were failing because they were all attempting to
make gl entry from payment schedule. Same with purchase invoices
2017-08-20 16:51:29 +01:00
Faris Ansari
eba50c6860 Merge branch 'pos-refactor' of https://github.com/netchampfaris/erpnext into pos-refactor 2017-08-18 17:00:02 +05:30
Rohit Waghchaure
f03a73466c Added modal for multi mode payment, provision to add write off and change amount 2017-08-18 12:15:19 +05:30
Joel Mesmer
97c1bcf14f improvement for self-postbacks 2017-08-17 22:20:18 +02:00
Faris Ansari
0f3d431476 Update cart ui from cur_frm, Add number pad 2017-08-17 12:56:14 +05:30
Rohit Waghchaure
b1daab4284 Added functional part 2017-08-17 12:56:14 +05:30
Faris Ansari
7bcb1cfc42 more styling 2017-08-17 12:56:14 +05:30
Faris Ansari
a0f8687945 Styling for search fields 2017-08-17 12:56:14 +05:30
Faris Ansari
03e7ec29e7 Add clusterize, move customer field to POSCart, get POS profile 2017-08-17 12:56:14 +05:30
Faris Ansari
6e7db034f2 [wip] New POS UI 2017-08-17 12:56:14 +05:30
Faris Ansari
21fc26c2a2 Update cart ui from cur_frm, Add number pad 2017-08-14 18:25:59 +05:30
Rushabh Mehta
4f366e9c38 [fix] conflicts 2017-08-14 16:15:20 +05:30
Rushabh Mehta
683b015951 [fix] email alert 2017-08-14 15:03:33 +05:30
Rushabh Mehta
1132502e14 [fix] test 2017-08-14 12:09:30 +05:30
Rushabh Mehta
ea573e2421 [training] update names 2017-08-14 11:53:34 +05:30
Rushabh Mehta
1fe1a47658 [docs] update docs 2017-08-14 11:53:34 +05:30
Rushabh Mehta
6cb14cfc04 [docs] update docs 2017-08-14 11:53:34 +05:30
Rushabh Mehta
89505522d3 [docs] update docs 2017-08-14 11:53:34 +05:30
Rushabh Mehta
550b0fab84 [fixes] email notifications by email alert on training event and result 2017-08-14 11:53:34 +05:30
Ben Cornwell-Mott
35a4e587ee Fixes for camel_case and translations 2017-08-14 11:53:34 +05:30
Ben Cornwell-Mott
e92b4737e3 codacy fixes 2017-08-14 11:53:34 +05:30
Ben Cornwell-Mott
94c6b7409b Updated documentation 2017-08-14 11:53:34 +05:30
Ben Cornwell-Mott
e9dbafcc10 Improve email format for training event, add ui test 2017-08-14 11:53:34 +05:30
Rohit Waghchaure
854d335ab1 Added functional part 2017-08-14 11:34:42 +05:30
Faris Ansari
5a13087939 more styling 2017-08-11 15:49:23 +05:30
Faris Ansari
f7c7ff4aae Styling for search fields 2017-08-10 18:28:05 +05:30
Faris Ansari
65c4bd6db6 Add clusterize, move customer field to POSCart, get POS profile 2017-08-10 17:17:49 +05:30
Faris Ansari
519cc09979 [wip] New POS UI 2017-08-10 17:17:49 +05:30
2404 changed files with 264834 additions and 111898 deletions

View File

@@ -52,6 +52,7 @@
"frappe": true,
"erpnext": true,
"schools": true,
"education": true,
"$": true,
"jQuery": true,
@@ -132,6 +133,7 @@
"get_url_arg": true,
"get_server_fields": true,
"set_multiple": true,
"QUnit": true
"QUnit": true,
"Chart": true
}
}

BIN
.swp Normal file

Binary file not shown.

View File

@@ -29,7 +29,7 @@ install:
- cp -r $TRAVIS_BUILD_DIR/test_sites/test_site ~/frappe-bench/sites/
before_script:
- wget http://chromedriver.storage.googleapis.com/2.27/chromedriver_linux64.zip
- wget http://chromedriver.storage.googleapis.com/2.33/chromedriver_linux64.zip
- unzip chromedriver_linux64.zip
- sudo apt-get install libnss3
- sudo apt-get --only-upgrade install google-chrome-stable
@@ -51,11 +51,34 @@ before_script:
- bench start &
- sleep 10
script:
- set -e
- bench run-tests
- sleep 5
- bench reinstall --yes
- bench execute erpnext.setup.setup_wizard.utils.complete
- bench execute erpnext.setup.utils.enable_all_roles_and_domains
- bench run-ui-tests --app erpnext
jobs:
include:
- stage: test
script:
- set -e
- bench run-tests
env: Server Side Test
- # stage
script:
- bench --verbose run-setup-wizard-ui-test
- bench execute erpnext.setup.utils.enable_all_roles_and_domains
- bench run-ui-tests --app erpnext
env: Client Side Test
- # stage
script:
- bench --verbose run-setup-wizard-ui-test
- bench execute erpnext.setup.utils.enable_all_roles_and_domains
- bench run-ui-tests --app erpnext --test-list erpnext/tests/ui/tests2.txt
env: Client Side Test - 2
- # stage
script:
- bench --verbose run-setup-wizard-ui-test
- bench execute erpnext.setup.utils.enable_all_roles_and_domains
- bench run-ui-tests --app erpnext --test-list erpnext/tests/ui/agriculture.txt
env: Agriculture Client Side Test
- # stage
script:
- wget http://build.erpnext.com/20171108_190013_955977f8_database.sql.gz
- bench --force restore ~/frappe-bench/20171108_190013_955977f8_database.sql.gz --mariadb-root-password travis
- bench migrate
env: Patch Testing

View File

@@ -3,8 +3,9 @@ from __future__ import unicode_literals
import inspect
import frappe
from erpnext.hooks import regional_overrides
from frappe.utils import getdate
__version__ = '8.10.2'
__version__ = '10.0.4'
def get_default_company(user=None):
'''Get default company for user'''
@@ -108,3 +109,16 @@ def allow_regional(fn):
return caller
def get_last_membership():
'''Returns last membership if exists'''
last_membership = frappe.get_all('Membership', 'name,to_date,membership_type',
dict(member=frappe.session.user, paid=1), order_by='to_date desc', limit=1)
return last_membership and last_membership[0]
def is_member():
'''Returns true if the user is still a member'''
last_membership = get_last_membership()
if last_membership and getdate(last_membership.to_date) > getdate():
return True
return False

View File

@@ -47,6 +47,12 @@ frappe.ui.form.on('Account', {
// show / hide convert buttons
frm.trigger('add_toolbar_buttons');
}
if(!frm.doc.__islocal) {
frm.add_custom_button(__('Update Account Number'), function () {
frm.trigger("update_account_number");
});
}
},
account_type: function (frm) {
if (frm.doc.is_group == 0) {
@@ -90,6 +96,46 @@ frappe.ui.form.on('Account', {
});
});
}
},
update_account_number: function(frm) {
var d = new frappe.ui.Dialog({
title: __('Update Account Number'),
fields: [
{
"label": "Account Number",
"fieldname": "account_number",
"fieldtype": "Data",
"reqd": 1
}
],
primary_action: function() {
var data = d.get_values();
if(data.account_number === frm.doc.account_number) {
d.hide();
return;
}
frappe.call({
method: "erpnext.accounts.doctype.account.account.update_account_number",
args: {
account_number: data.account_number,
name: frm.doc.name
},
callback: function(r) {
if(!r.exc) {
if(r.message) {
frappe.set_route("Form", "Account", r.message);
} else {
frm.set_value("account_number", data.account_number);
}
d.hide();
}
}
});
},
primary_action_label: __('Update')
});
d.show();
}
});

View File

@@ -102,6 +102,36 @@
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "account_number",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Account Number",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
@@ -545,7 +575,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2017-08-11 15:28:35.855809",
"modified": "2017-08-22 17:39:10.711343",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Account",
@@ -655,7 +685,7 @@
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
"search_fields": "",
"search_fields": "account_number",
"show_name_in_global_search": 1,
"sort_order": "ASC",
"track_changes": 1,

View File

@@ -3,14 +3,14 @@
from __future__ import unicode_literals
import frappe
from frappe.utils import cint, fmt_money
from frappe.utils import cint, cstr
from frappe import throw, _
from frappe.model.document import Document
from frappe.utils.nestedset import NestedSet
class RootNotEditable(frappe.ValidationError): pass
class BalanceMismatchError(frappe.ValidationError): pass
class Account(Document):
class Account(NestedSet):
nsm_parent_field = 'parent_account'
def onload(self):
@@ -20,18 +20,14 @@ class Account(Document):
self.set_onload("can_freeze_account", True)
def autoname(self):
# first validate if company exists
company = frappe.db.get_value("Company", self.company, ["abbr", "name"], as_dict=True)
if not company:
frappe.throw(_('Company {0} does not exist').format(self.company))
self.name = self.account_name.strip() + ' - ' + company.abbr
self.name = get_account_autoname(self.account_number, self.account_name, self.company)
def validate(self):
if frappe.local.flags.allow_unverified_charts:
return
self.validate_parent()
self.validate_root_details()
validate_account_number(self.name, self.account_number, self.company)
self.validate_group_or_ledger()
self.set_root_and_report_type()
self.validate_mandatory()
@@ -56,12 +52,15 @@ class Account(Document):
def set_root_and_report_type(self):
if self.parent_account:
par = frappe.db.get_value("Account", self.parent_account, ["report_type", "root_type"], as_dict=1)
par = frappe.db.get_value("Account", self.parent_account,
["report_type", "root_type", "account_type"], as_dict=1)
if par.report_type:
self.report_type = par.report_type
if par.root_type:
self.root_type = par.root_type
if par.account_type and not self.account_type:
self.account_type = par.account_type
if self.is_group:
db_value = frappe.db.get_value("Account", self.name, ["report_type", "root_type"], as_dict=1)
@@ -161,31 +160,18 @@ class Account(Document):
if not self.report_type:
throw(_("Report Type is mandatory"))
def update_nsm_model(self):
"""update lft, rgt indices for nested set model"""
import frappe
import frappe.utils.nestedset
frappe.utils.nestedset.update_nsm(self)
def on_update(self):
self.update_nsm_model()
def validate_trash(self):
"""checks gl entries and if child exists"""
def on_trash(self):
# checks gl entries and if child exists
if self.check_gle_exists():
throw(_("Account with existing transaction can not be deleted"))
if self.check_if_child_exists():
throw(_("Child account exists for this account. You can not delete this account."))
def on_trash(self):
self.validate_trash()
self.update_nsm_model()
super(Account, self).on_trash()
def before_rename(self, old, new, merge=False):
# Add company abbr if not provided
from erpnext.setup.doctype.company.company import get_name_with_abbr
new_account = get_name_with_abbr(new, self.company)
new_account = get_name_with_number(new_account, self.account_number)
# Validate properties before merging
if merge:
@@ -205,12 +191,28 @@ class Account(Document):
return new_account
def after_rename(self, old, new, merge=False):
super(Account, self).after_rename(old, new, merge)
if not merge:
frappe.db.set_value("Account", new, "account_name",
" - ".join(new.split(" - ")[:-1]))
else:
from frappe.utils.nestedset import rebuild_tree
rebuild_tree("Account", "parent_account")
new_acc = frappe.db.get_value("Account", new, ["account_name", "account_number"], as_dict=1)
# exclude company abbr
new_parts = new.split(" - ")[:-1]
# update account number and remove from parts
if new_parts[0][0].isdigit():
# if account number is separate by space, split using space
if len(new_parts) == 1:
new_parts = new.split(" ")
if new_acc.account_number != new_parts[0]:
self.account_number = new_parts[0]
self.db_set("account_number", new_parts[0])
new_parts = new_parts[1:]
# update account name
account_name = " - ".join(new_parts)
if new_acc.account_name != account_name:
self.account_name = account_name
self.db_set("account_name", account_name)
def get_parent_account(doctype, txt, searchfield, start, page_len, filters):
return frappe.db.sql("""select name from tabAccount
@@ -231,3 +233,46 @@ def get_account_currency(account):
return account_currency
return frappe.local_cache("account_currency", account, generator)
def get_account_autoname(account_number, account_name, company):
# first validate if company exists
company = frappe.db.get_value("Company", company, ["abbr", "name"], as_dict=True)
if not company:
frappe.throw(_('Company {0} does not exist').format(company))
parts = [account_name.strip(), company.abbr]
if cstr(account_number).strip():
parts.insert(0, cstr(account_number).strip())
return ' - '.join(parts)
def validate_account_number(name, account_number, company):
if account_number:
account_with_same_number = frappe.db.get_value("Account",
{"account_number": account_number, "company": company, "name": ["!=", name]})
if account_with_same_number:
frappe.throw(_("Account Number {0} already used in account {1}")
.format(account_number, account_with_same_number))
@frappe.whitelist()
def update_account_number(name, account_number):
account = frappe.db.get_value("Account", name, ["account_name", "company"], as_dict=True)
validate_account_number(name, account_number, account.company)
frappe.db.set_value("Account", name, "account_number", account_number)
account_name = account.account_name
if account_name[0].isdigit():
separator = " - " if " - " in account_name else " "
account_name = account_name.split(separator, 1)[1]
frappe.db.set_value("Account", name, "account_name", account_name)
new_name = get_account_autoname(account_number, account_name, account.company)
if name != new_name:
frappe.rename_doc("Account", name, new_name)
return new_name
def get_name_with_number(new_account, account_number):
if account_number and not new_account[0].isdigit():
new_account = account_number + " - " + new_account
return new_account

View File

@@ -24,6 +24,8 @@ frappe.treeview_settings["Account"] = {
fields: [
{fieldtype:'Data', fieldname:'account_name', label:__('New Account Name'), reqd:true,
description: __("Name of new Account. Note: Please don't create accounts for Customers and Suppliers")},
{fieldtype:'Data', fieldname:'account_number', label:__('Account Number'),
description: __("Number of new Account, it will be included in the account name as a prefix")},
{fieldtype:'Check', fieldname:'is_group', label:__('Is Group'),
description: __('Further accounts can be made under Groups, but entries can be made against non-Groups')},
{fieldtype:'Select', fieldname:'root_type', label:__('Root Type'),
@@ -41,6 +43,41 @@ frappe.treeview_settings["Account"] = {
description: __("Optional. Sets company's default currency, if not specified.")}
],
ignore_fields:["parent_account"],
onload: function(treeview) {
function get_company() {
return treeview.page.fields_dict.company.get_value();
}
// tools
treeview.page.add_inner_button(__("Chart of Cost Centers"), function() {
frappe.set_route('Tree', 'Cost Center', {company: get_company()});
}, __('View'));
treeview.page.add_inner_button(__("Opening Invoice Creation Tool"), function() {
frappe.set_route('Form', 'Opening Invoice Creation Tool', {company: get_company()});
}, __('View'));
treeview.page.add_inner_button(__("Period Closing Voucher"), function() {
frappe.set_route('List', 'Period Closing Voucher', {company: get_company()});
}, __('View'));
// make
treeview.page.add_inner_button(__("Journal Entry"), function() {
frappe.new_doc('Journal Entry', {company: get_company()});
}, __('Make'));
treeview.page.add_inner_button(__("New Company"), function() {
frappe.new_doc('Company');
}, __('Make'));
// financial statements
for (let report of ['Trial Balance', 'General Ledger', 'Balance Sheet',
'Profit and Loss', 'Cash Flow Statement', 'Accounts Payable', 'Accounts Receivable']) {
treeview.page.add_inner_button(__(report), function() {
frappe.set_route('query-report', report, {company: get_company()});
}, __('Financial Statements'));
}
},
onrender: function(node) {
var dr_or_cr = node.data.balance < 0 ? "Cr" : "Dr";
if (node.data && node.data.balance!==undefined) {

View File

@@ -16,12 +16,12 @@ def create_charts(company, chart_template=None, existing_company=None):
if root_account:
root_type = child.get("root_type")
if account_name not in ["account_type", "root_type", "is_group", "tax_rate"]:
if account_name not in ["account_number", "account_type",
"root_type", "is_group", "tax_rate"]:
account_name_in_db = unidecode(account_name.strip().lower())
if account_name_in_db in accounts:
count = accounts.count(account_name_in_db)
account_name = account_name + " " + cstr(count)
account_number = cstr(child.get("account_number")).strip()
account_name, account_name_in_db = add_suffix_if_duplicate(account_name,
account_number, accounts)
is_group = identify_is_group(child)
report_type = "Balance Sheet" if root_type in ["Asset", "Liability", "Equity"] \
@@ -35,6 +35,7 @@ def create_charts(company, chart_template=None, existing_company=None):
"is_group": is_group,
"root_type": root_type,
"report_type": report_type,
"account_number": account_number,
"account_type": child.get("account_type"),
"account_currency": frappe.db.get_value("Company", company, "default_currency"),
"tax_rate": child.get("tax_rate")
@@ -53,10 +54,23 @@ def create_charts(company, chart_template=None, existing_company=None):
_import_accounts(chart, None, None, root_account=True)
def add_suffix_if_duplicate(account_name, account_number, accounts):
if account_number:
account_name_in_db = unidecode(" - ".join([account_number,
account_name.strip().lower()]))
else:
account_name_in_db = unidecode(account_name.strip().lower())
if account_name_in_db in accounts:
count = accounts.count(account_name_in_db)
account_name = account_name + " " + cstr(count)
return account_name, account_name_in_db
def identify_is_group(child):
if child.get("is_group"):
is_group = child.get("is_group")
elif len(set(child.keys()) - set(["account_type", "root_type", "is_group", "tax_rate"])):
elif len(set(child.keys()) - set(["account_type", "root_type", "is_group", "tax_rate", "account_number"])):
is_group = 1
else:
is_group = 0
@@ -71,6 +85,10 @@ def get_chart(chart_template, existing_company=None):
elif chart_template == "Standard":
from erpnext.accounts.doctype.account.chart_of_accounts.verified import standard_chart_of_accounts
return standard_chart_of_accounts.get()
elif chart_template == "Standard with Numbers":
from erpnext.accounts.doctype.account.chart_of_accounts.verified \
import standard_chart_of_accounts_with_account_number
return standard_chart_of_accounts_with_account_number.get()
else:
folders = ("verified",)
if frappe.local.flags.allow_unverified_charts:
@@ -86,7 +104,7 @@ def get_chart(chart_template, existing_company=None):
return json.loads(chart).get("tree")
@frappe.whitelist()
def get_charts_for_country(country):
def get_charts_for_country(country, with_standard=False):
charts = []
def _get_chart_name(content):
@@ -111,26 +129,26 @@ def get_charts_for_country(country):
with open(os.path.join(path, fname), "r") as f:
_get_chart_name(f.read())
if len(charts) != 1:
charts.append("Standard")
if len(charts) != 1 or with_standard:
charts += ["Standard", "Standard with Numbers"]
return charts
def get_account_tree_from_existing_company(existing_company):
all_accounts = frappe.get_all('Account',
filters={'company': existing_company},
fields = ["name", "account_name", "parent_account", "account_type",
"is_group", "root_type", "tax_rate"],
all_accounts = frappe.get_all('Account',
filters={'company': existing_company},
fields = ["name", "account_name", "parent_account", "account_type",
"is_group", "root_type", "tax_rate", "account_number"],
order_by="lft, rgt")
account_tree = {}
# fill in tree starting with root accounts (those with no parent)
if all_accounts:
build_account_tree(account_tree, None, all_accounts)
return account_tree
def build_account_tree(tree, parent, all_accounts):
# find children
parent_account = parent.name if parent else ""
@@ -139,17 +157,16 @@ def build_account_tree(tree, parent, all_accounts):
# if no children, but a group account
if not children and parent.is_group:
tree["is_group"] = 1
tree["account_number"] = parent.account_number
# build a subtree for each child
for child in children:
if child.account_type == "Stock" and not child.is_group:
tree["is_group"] = 1
continue
# start new subtree
tree[child.account_name] = {}
# assign account_type and root_type
if child.account_type:
tree[child.account_name]["account_number"] = child.account_number
if child.account_type:
tree[child.account_name]["account_type"] = child.account_type
if child.tax_rate:

View File

@@ -4,7 +4,7 @@
"""
Import chart of accounts from OpenERP sources
"""
from __future__ import unicode_literals
from __future__ import print_function, unicode_literals
import os, json
import ast
@@ -229,7 +229,7 @@ def make_charts():
filename = src["id"][5:] + "_" + chart_id
print "building " + filename
print("building " + filename)
chart = {}
chart["name"] = src["name"]
chart["country_code"] = src["id"][5:]

View File

@@ -1,209 +0,0 @@
{
"country_code": "ar",
"name": "Argentina - Plan de Cuentas",
"tree": {
"Cuentas Patrimoniales": {
"ACTIVO": {
"Bienes Inmateriales": {
"Bienes Inmateriales / (-) Amortizaci\u00f3n Acumulada": {},
"Bienes Inmateriales / Concesiones y Franquicias": {},
"Bienes Inmateriales / Marcas de F\u00e1brica": {},
"Bienes Inmateriales / Patentes de Invenci\u00f3n": {}
},
"Bienes de Cambio": {
"(-) Previsi\u00f3n para Desvalorizaci\u00f3n de Bienes de Cambio": {},
"Bienes de Cambio - Mercader\u00edas": {
"Bienes de Cambio - Mercader\u00edas / Categoria de productos 01": {}
},
"Bienes de Cambio - Mercader\u00edas en Tr\u00e1nsito": {},
"Materiales Varios ": {},
"Materias primas": {},
"Productos Elaborados": {},
"Productos en Curso de Elaboraci\u00f3n": {}
},
"Bienes de Uso": {
"Bienes de Uso / (-) Depreciaci\u00f3n Acumulada": {},
"Bienes de Uso / Equipos": {},
"Bienes de Uso / Inmuebles": {},
"Bienes de Uso / Maquinaria": {},
"Bienes de Uso / Rodados": {}
},
"Caja y Bancos": {
"Caja y Bancos - Caja": {
"Caja y bancos - Caja / efectivo ARS": {}
},
"Caja y Bancos - Cuentas Corrientes": {
"Caja y Bancos.../ BCO. CTA CTE ARS": {}
},
"Caja y Bancos - Fondos fijos": {
"Caja y ...- Fondos fijos / caja chica 01 ARS": {}
},
"Caja y Bancos - Moneda Extranjera": {
"Caja y bancos - Caja / efectivo USD": {}
},
"Caja y bancos - Recaudaciones a Depositar ": {},
"Caja y bancos - Valores a Depositar ": {}
},
"Inversiones": {
"Inversiones / (-) Previsi\u00f3n para Devalorizaci\u00f3n de Acciones": {},
"Inversiones / Acciones Permanentes": {},
"Inversiones / Acciones Transitorias": {},
"Inversiones / T\u00edtulos P\u00fablicos": {}
}
},
"Cr\u00e9ditos por Ventas": {
"Cr\u00e9ditos por Ventas / (-) Previsi\u00f3n para Ds. Incobrables": {},
"Cr\u00e9ditos por Ventas / Deudores Morosos": {},
"Cr\u00e9ditos por Ventas / Deudores Varios": {},
"Cr\u00e9ditos por Ventas / Deudores en Gesti\u00f3n Judicial": {},
"Cr\u00e9ditos por Ventas / Deudores por Ventas": {}
},
"Otros Cr\u00e9ditos": {
"Otros Cr\u00e9ditos / (-) Intereses (+) a Devengar": {},
"Otros Cr\u00e9ditos / (-) Previsi\u00f3n para Descuentos": {},
"Otros Cr\u00e9ditos / Accionistas": {},
"Otros Cr\u00e9ditos / Alquileres Pagados por Adelantado": {},
"Otros Cr\u00e9ditos / Anticipo al Personal": {},
"Otros Cr\u00e9ditos / Anticipo de Impuestos": {},
"Otros Cr\u00e9ditos / Anticipos a Proveedores": {},
"Otros Cr\u00e9ditos / Intereses Pagados por Adelantado": {},
"Otros Cr\u00e9ditos / Pr\u00e9stamos otorgados": {}
},
"PASIVO": {
"Deudas Bancarias y Financieras": {
"Deudas Bancarias y Financieras / Adelantos en Cuenta Corriente": {},
"Deudas Bancarias y Financieras / Debentures Emitidos": {},
"Deudas Bancarias y Financieras / Intereses a Pagar": {},
"Deudas Bancarias y Financieras / Obligaciones a Pagar": {},
"Deudas Bancarias y Financieras / Prestamos": {}
},
"Deudas Comerciales": {
"Deudas Comerciales / (-) Intereses a Devengar por Compras al Cr\u00e9dito": {},
"Deudas Comerciales / Anticipos de Clientes": {},
"Deudas Comerciales / Proveedores": {}
},
"Deudas Fiscales": {
"Deudas Fiscales / IVA a Pagar": {},
"Deudas Fiscales / Impuesto a la Ganancia M\u00ednima Presunta a Pagar": {},
"Deudas Fiscales / Impuesto a las Ganancias a Pagar": {},
"Deudas Fiscales / Impuesto a los D\u00e9bitos y Cr\u00e9ditos Bancarios a Pagar": {},
"Deudas Fiscales / Impuesto sobre los Bienes Personales a Pagar": {},
"Deudas Fiscales / Monotributo a Pagar": {}
},
"Deudas Sociales": {
"Deudas Sociales / Cargas Sociales a Pagar": {},
"Deudas Sociales / Provisi\u00f3n para Sueldo Anual Complementario": {},
"Deudas Sociales / Retenciones a Depositar": {},
"Deudas Sociales / Sueldos a Pagar": {}
},
"Otras Deudas": {
"Otras Deudas / Acreedores Varios": {},
"Otras Deudas / Cobros por Adelantado": {},
"Otras Deudas / Dividendos a Pagar": {},
"Otras Deudas / Honorarios Directores y S\u00edndicos a Pagar": {}
},
"Previsiones": {
"Previsiones / Previsi\u00f3n Indemnizaci\u00f3n por Despidos": {},
"Previsiones / Previsi\u00f3n para Garant\u00edas por Service": {},
"Previsiones / Previsi\u00f3n para juicios Pendientes": {}
}
},
"PATRIMONIO NETO": {
"Ajustes al Patrimonio": {
"Ajustes al Patrimonio / Revaluo T\u00e9cnico de Bienes de Uso": {}
},
"Aportes No Capitalizados": {
"Aportes No Capitalizados / Aportes Irrevocables Futura Suscripci\u00f3n de Acciones": {},
"Aportes No Capitalizados / Primas de Emsi\u00f3n": {}
},
"Capital Social": {
"Capital social / (-) Descuento de Emisi\u00f3n de Acciones": {},
"Capital social / Acciones en Circulaci\u00f3n": {},
"Capital social / Capital Suscripto": {},
"Capital social / Dividendos a Distribuir en Acciones": {}
},
"Ganancias Reservadas": {
"Reserva Estatutaria": {},
"Reserva Facultativa": {},
"Reserva Legal": {},
"Reserva para Renovaci\u00f3n de Bienes de Uso": {}
},
"Resultados No Asignados": {
"Ganancias y P\u00e9rdidas del Ejercicio": {},
"Resultado del Ejercicio": {},
"Resultados Acumulados": {},
"Resultados Acumulados del Ejercicio Anterior": {}
}
},
"root_type": ""
},
"Cuentas de Movimiento": {
"Compras": {
"Compras - Categoria de productos 01": {}
},
"Costos de Producci\u00f3n": {},
"Gastos de Administraci\u00f3n": {},
"Gastos de Comercializaci\u00f3n": {},
"root_type": ""
},
"Cuentas de Orden": {
"CUENTAS DE ORDEN ACREEDORAS": {
"Acreedor por Documentos Descontados": {},
"Acreedor por Garant\u00edas Otorgadas": {},
"Comitente por Mercaderias Recibidas en Consignaci\u00f3n": {}
},
"CUENTAS DE ORDEN DEUDORAS": {
"Dep\u00f3sito de Valores Recibos en Garant\u00eda": {},
"Documentos Descontados": {},
"Documentos Endosados": {},
"Garantias Otorgadas": {},
"Mercaderias Recibidas en Consignaci\u00f3n": {}
},
"root_type": ""
},
"Cuentas de Resultado": {
"RESULTADOS NEGATIVOS": {
"Resultados Negativos Extraordinarios": {
"Donaciones Cedidas, Otorgadas": {},
"Gastos en Siniestros": {},
"P\u00e9rdida Venta Bienes de Uso": {}
},
"Resultados Negativos Ordinarios": {
"Costo de Mercader\u00edas Vendidas": {
"Costo de Mercader\u00edas Vendidas - Categoria de productos 01": {}
},
"Gastos Bancarios": {},
"Gastos de Publicidad y Propaganda": {},
"Gastos en Amortizaci\u00f3n": {},
"Gastos en Cargas Sociales": {},
"Gastos en Depreciaci\u00f3n de Bienes de Uso": {},
"Gastos en Impuestos": {},
"Gastos en Servicios P\u00fablicos": {},
"Gastos en Sueldos y Jormales": {}
}
},
"RESULTADOS POSITIVOS": {
"Resultados Positivos Extraordinarios": {
"Donaciones obtenidas, ganandas, percibidas": {},
"Ganancia Venta Inversiones Permanentes": {},
"Ganancia Venta de Bienes de Uso": {},
"Recupero de Deudores Incobrables": {},
"Recupero de Rezagos": {}
},
"Resultados Positivos Ordinarios": {
"Alquileres gananados, obtenidos, percibidos": {},
"Comisiones gananados, obtenidos, percibidos": {},
"Descuentos gananados, obtenidos, percibidos": {},
"Ganancia Venta de Acciones": {},
"Honorarios gananados, obtenidos, percibidos": {},
"Intereses gananados, obtenidos, percibidos": {},
"Renta de T\u00edtulos P\u00fablicos": {},
"Resultados Positivos Ordinarios": {
"Ventas - Categoria de productos 01": {}
}
}
},
"root_type": ""
}
}
}

View File

@@ -1,172 +0,0 @@
{
"country_code": "ca",
"name": "Canada - Chart of Accounts for english-speaking provinces",
"tree": {
"ASSETS": {
"CURRENT ASSETS": {
"ACCOUNTS RECEIVABLES": {
"ALLOWANCE FOR DOUBTFUL ACCOUNTS": {},
"Customers Account": {
"account_type": "Receivable"
}
},
"CASH": {},
"CERTIFICATES OF DEPOSITS": {},
"INVESTMENTS HELD FOR TRADING": {},
"PREPAID EXPENSES": {},
"STOCKS": {
"Stock Delivered But Not Billed": {},
"Stock In Hand": {}
},
"TAXES RECEIVABLES": {
"GST receivable": {
"account_type": "Receivable"
},
"HST receivable": {
"HST receivable - 13%": {
"account_type": "Receivable"
},
"HST receivable - 14%": {
"account_type": "Receivable"
},
"HST receivable - 15%": {
"account_type": "Receivable"
}
},
"PST/QST receivable": {
"account_type": "Receivable"
}
},
"TREASURY OR TREASURY EQUIVALENTS": {}
},
"NON-CURRENT ASSETS": {
"INTANGIBLE ASSETS": {
"PATENTS, TRADEMARKS AND COPYRIGHTS": {}
},
"INVESTMENTS AVAILABLE FOR SALE": {},
"TANGIBLE ASSETS": {
"ACCUMULATED DEPRECIATIONS": {}
}
},
"root_type": "Asset"
},
"EQUITY": {
"CONTRIBUTED SURPLUS": {},
"DIVIDENDS": {},
"PREMIUMS": {},
"RETAINED EARNINGS": {},
"SHARE CAPITAL": {},
"TRANSLATION ADJUSTMENTS": {},
"root_type": "Equity"
},
"EXPENSES": {
"NON-OPERATING EXPENSES": {
"INTERESTS EXPENSES": {},
"OTHER NON-OPERATING EXPENSES": {}
},
"OPERATING EXPENSES": {
"COST OF GOODS SOLD": {
"Inside Purchases": {},
"International Purchases": {},
"Purchases in harmonized provinces": {},
"Purchases in non-harmonized provinces": {}
},
"GENERAL EXPENSES": {},
"LABOUR EXPENSES": {
"Annuities": {},
"Employment Insurance": {},
"Federal Income Tax": {},
"Health Services Fund": {},
"Holidays": {},
"Labour Health and Safety": {},
"Labour Standards": {},
"Parental Insurance": {},
"Provincial Income Tax": {},
"Salaries, wages and commissions": {}
},
"OTHER OPERATING EXPENSES": {},
"RESEARCH AND DEVELOPMENT EXPENSES": {},
"SALES EXPENSES": {}
},
"root_type": "Expense"
},
"INCOMES": {
"NON-OPERATING INCOMES": {
"INTERESTS": {},
"OTHER NON-OPERATING INCOMES": {}
},
"OPERATING INCOMES": {
"Harmonized Provinces Sales": {},
"Inside Sales": {},
"International Sales": {},
"Non-Harmonized Provinces Sales": {},
"OTHER OPERATING INCOMES": {}
},
"root_type": "Income"
},
"LIABILITIES": {
"CURRENT LIABILITIES": {
"ACCOUNTS PAYABLES": {
"Suppliers Account": {
"account_type": "Payable"
}
},
"CURRENT FINANCIAL DEBTS": {},
"LABOUR TAXES TO PAY": {
"CANADIAN REVENU AGENCY": {
"EMPLOYMENT INSURANCE TO PAY": {
"EI - Employees Contribution": {},
"EI - Employer Contribution": {}
},
"Federal Income Tax": {}
},
"PROVINCIAL REVENU AGENCY": {
"ANNUITIES TO PAY": {
"Annuities - Employees Contribution": {},
"Annuities - Employer Contribution": {}
},
"Health Services Fund to pay": {},
"Labour Health and Safety to pay": {},
"Labour Standards to pay": {},
"PARENTAL INSURANCE PLAN TO PAY": {
"PAP - Employee Contribution": {},
"PAP - Employer Contribution": {}
},
"Provincial Income Tax": {}
}
},
"LIABILITIES ASSETS HELD FOR TRANSFER": {
"Stock Received But Not Billed": {}
},
"OTHER ACCOUNTS PAYABLES": {},
"STOCK LIABILITIES": {},
"TAXES PAYABLES": {
"GST to pay": {
"account_type": "Payable"
},
"HST to pay": {
"HST to pay - 13%": {
"account_type": "Payable"
},
"HST to pay - 14%": {
"account_type": "Payable"
},
"HST to pay - 15%": {
"account_type": "Payable"
}
},
"PST/QST to pay": {
"account_type": "Payable"
}
}
},
"NON-CURRENT LIABILITIES": {
"DEFERRED TAXES": {},
"NON-CURRENT FINANCIAL DEBTS": {},
"OTHER NON-CURRENT LIABILITIES": {},
"PROVISIONS FOR PENSIONS AND OTHER POST-EMPLOYMENT ADVANTAGES": {}
},
"root_type": "Liability"
}
}
}

View File

@@ -1,355 +0,0 @@
{
"country_code": "hu",
"name": "Hungary - Magyar f\u0151k\u00f6nyvi kivonat",
"tree": {
"Eredm\u00e9ny sz\u00e1ml\u00e1k": {
"AZ \u00c9RT\u00c9KES\u00cdT\u00c9S \u00c1RBEV\u00c9TELE, BEV\u00c9TELEK": {
"BELF\u00d6LDI \u00c9RK\u00c9KES\u00cdT\u00c9S \u00c1RBEV\u00c9TELE": {
"Belf\u00f6ldi \u00e9rt\u00e9kes\u00edt\u00e9s \u00e1rbev\u00e9tele": {}
},
"BELF\u00d6LDI \u00c9RT\u00c9KES\u00cdT\u00c9S \u00c1RBEV\u00c9TELE": {
"Belf\u00f6ldi \u00e9rt\u00e9kes\u00edt\u00e9s \u00e1rbev\u00e9tele": {}
},
"EGY\u00c9B BEV\u00c9TELEK": {
"Az \u00fczleti \u00e9vhez kapcs. egy\u00e9b bev\u00e9telek": {},
"Biztos\u00edt\u00f3 \u00e1ltal visszaig. k\u00e1rt\u00e9r\u00edt\u00e9s \u00f6.": {},
"C\u00e9ltartal\u00e9k felhaszn\u00e1l\u00e1sa": {},
"K\u00fcl\u00f6nf\u00e9le egy\u00e9b bev\u00e9telek": {},
"Ut\u00f3lag kapott p\u00fc. rendezett engedm\u00e9ny": {},
"Visszafiz. k\u00f6t. n\u00e9lk\u00fcl kapott t\u00e1mogat\u00e1s": {},
"\u00c9rt,\u00e1truh\u00e1zott k\u00f6vetel\u00e9sek elism.m\u00e9rt\u00e9ke": {},
"\u00c9rt.immat. javak, t\u00e1rgyi eszk.bev\u00e9tele": {},
"\u00c9rt\u00e9kveszt\u00e9sek vissza\u00edr\u00e1sa, tervenf.\u00e9cs.": {}
},
"EXPORT \u00c9RT\u00c9KES\u00cdT\u00c9S \u00c1RBEV\u00c9TELE": {
"Export \u00e9rt\u00e9kes\u00edt\u00e9s \u00e1rbev. EU tagorsz\u00e1gba": {},
"Export \u00e9rt\u00e9kes\u00edt\u00e9s \u00e1rbev.nem EU tagorsz.": {}
},
"P\u00c9NZ\u00dcGYI M\u00dcVELETEK BEV\u00c9TELEI": {
"Befekt. p\u00fci.eszk. kamatai, \u00e1rf.nyeres.": {},
"Egy\u00e9b kapott kamatok,kamatjell.bev\u00e9telek": {},
"Egy\u00e9b p\u00e9nz\u00fcgyi m\u00fbveletek bev\u00e9telei": {},
"Egy\u00e9b \u00e1rfolyamnyeres\u00e9gek, opci\u00f3s bev.": {},
"Forg\u00f3eszk. \u00e9rt\u00e9kpap\u00edr \u00e1rfolyamnyeres\u00e9ge": {},
"Kapott (j\u00e1r\u00f3) osztal\u00e9k, r\u00e9szesed\u00e9s": {},
"R\u00e9szesed\u00e9sek \u00e9rt. \u00e1rfolyamnyeres\u00e9ge": {},
"V\u00e1s. k\u00f6vetel\u00e9sekkel kapcs. bev\u00e9telek": {},
"\u00c1tv\u00e1lt\u00e1si, \u00e1t\u00e9rt\u00e9kel\u00e9skori \u00e1rf.nyeres\u00e9g": {}
},
"RENDKIV\u00dcLI BEV\u00c9TELEK": {
"Rendk\u00edv\u00fcli bev\u00e9telek": {}
}
},
"AZ \u00c9RT\u00c9KES\u00cdT\u00c9S \u00d6NK\u00d6LTS. \u00c9S R\u00c1FORD\u00cdT\u00c1SOK": {
"ANYAGJELLEG\u00db R\u00c1FORD\u00cdT\u00c1SOK": {
"Anyagk\u00f6lts\u00e9g": {},
"Egy\u00e9b szolg\u00e1ltat\u00e1sok \u00e9rt\u00e9ke": {},
"Eladott (k\u00f6zvet\u00edtett) szolg. \u00e9rt\u00e9ke": {},
"Eladott \u00e1ruk beszerz\u00e9si \u00e9rt\u00e9ke": {},
"Ig\u00e9nybevett szolg\u00e1ltat\u00e1sok \u00e9rt\u00e9ke": {}
},
"EGY\u00c9B R\u00c1FORD\u00cdT\u00c1SOK": {
"Ad\u00f3k, illet\u00e9kek, hozz\u00e1j\u00e1rul\u00e1sok": {},
"Az \u00fczleti \u00e9vhez kapcs. r\u00e1ford\u00edt\u00e1sok": {},
"C\u00e9ltartal\u00e9k k\u00e9pz\u00e9se": {},
"Elsz\u00e1molt \u00e9rt\u00e9kveszt\u00e9s, tervenf. \u00e9rt\u00e9kcs": {},
"K\u00fcl\u00f6nf\u00e9le egy\u00e9b r\u00e1ford\u00edt\u00e1sok": {},
"Ut\u00f3lag adott p\u00fc. rendezett engedm\u00e9ny": {},
"\u00c9rt.\u00e1truh\u00e1zott k\u00f6vetel\u00e9sek k\u00f6nyvsz. \u00e9rt.": {},
"\u00c9rt\u00e9kes\u00edtett eszk.imm.javak nytsz \u00e9rt\u00e9ke": {}
},
"NYERES\u00c9GET TERHEL\u00d6 AD\u00d3K": {
"Egyszer\u00fcs\u00edtett v\u00e1llalkoz\u00f3i ad\u00f3": {},
"T\u00e1rsas v\u00e1llalkoz\u00e1s k\u00fcl\u00f6nad\u00f3ja": {},
"T\u00e1rsas\u00e1gi ad\u00f3": {}
},
"P\u00c9NZ\u00dcGYI M\u00dcVELETEK R\u00c1FORD\u00cdT\u00c1SAI": {
"Befektetett p\u00fci. eszk. \u00e1rf.vesztes\u00e9ge": {},
"Egy\u00e9b p\u00e9nz\u00fcgyi r\u00e1ford\u00edt\u00e1sok": {},
"Egy\u00e9b \u00e1rfolyamvesztes\u00e9gek, opci\u00f3s d\u00edjak": {},
"Fizetend\u00f5 kamatok, kamatjell. r\u00e1ford.": {},
"Forg\u00f3eszk. \u00e9rt\u00e9kpap\u00edr \u00e1rf.vesztes\u00e9ge": {},
"R\u00e9szesed\u00e9sek,\u00e9.pap\u00edrok,bankb. \u00e9rt\u00e9kveszt": {},
"V\u00e1s\u00e1rolt k\u00f6v. kapcs. r\u00e1ford\u00edt\u00e1sok": {},
"\u00c1tv\u00e1lt\u00e1si, \u00e9rt\u00e9kel\u00e9si \u00e1rfolyamvesztes\u00e9g": {}
},
"RENDKIV\u00dcLI R\u00c1FORD\u00cdT\u00c1SOK": {
"Egy\u00e9b vagyoncs\u00f6kk. rendk\u00edv\u00fcli r\u00e1ford\u00edt\u00e1s": {},
"Saj\u00e1t \u00fczletr\u00e9sz nyilv\u00e1ntart\u00e1si \u00e9rt\u00e9ke": {},
"Tartoz\u00e1s\u00e1tv. szerz. szerinti \u00f6sszege": {},
"T\u00e1rsas\u00e1gban bevitt eszk. nytsz. \u00e9rt\u00e9ke": {}
},
"SZEM\u00c9LYI JELLEG\u00fb R\u00c1FORD\u00cdT\u00c1SOK": {
"B\u00e9rj\u00e1rul\u00e9kok": {},
"B\u00e9rk\u00f6lts\u00e9g": {},
"Szem\u00e9lyi jelleg\u00fc egy\u00e9b kifizet\u00e9sek": {}
},
"\u00c9RT\u00c9KCS\u00d6KKEN\u00c9SI LE\u00cdR\u00c1S": {}
},
"K\u00d6LTS\u00c9GNEMEK": {
"AKT\u00cdV\u00c1LT SAJ\u00c1T TELJES\u00cdTM\u00c9NYEK \u00c9RT\u00c9KE": {
"Saj\u00e1t el\u00f5\u00e1ll\u00edt\u00e1si eszk\u00f6z\u00f6k aktiv\u00e1lt \u00e9rt.": {},
"Saj\u00e1t term. k\u00e9szletek \u00e1llom\u00e1nyv\u00e1ltoz\u00e1sa": {}
},
"ANYAGK\u00d6LTS\u00c9G": {
"Anyagk\u00f6lts\u00e9g megt\u00e9r\u00fcl\u00e9s": {},
"Egy \u00e9ven bel\u00fcl elhaszn. anyagi eszk\u00f6z\u00f6k": {},
"Egy\u00e9b anyagk\u00f6lts\u00e9g": {},
"V\u00e1s\u00e1rolt anyagok k\u00f6lts\u00e9gei": {}
},
"B\u00c9RJ\u00c1RUL\u00c9KOK": {
"Egyszer\u00fbs\u00edtett fogl. k\u00f6zteher": {},
"Egyszer\u00fbs\u00edtett k\u00f6ztehervisel\u00e9si hj\u00e1r": {},
"Eg\u00e9szs\u00e9g\u00fcgyi hozz\u00e1j\u00e1rul\u00e1s": {},
"K\u00f6zteherjegy": {},
"Munkaad\u00f3i j\u00e1rul\u00e9k": {},
"Rehabilit\u00e1ci\u00f3s hozz\u00e1j\u00e1rul\u00e1s": {},
"Szakk\u00e9pz\u00e9si hozz\u00e1j\u00e1rul\u00e1s": {},
"T\u00e1rsadalombiztos\u00edt\u00e1si j\u00e1rul\u00e9k": {}
},
"B\u00c9RK\u00d6LTS\u00c9G": {
"Egyszer\u00fbs\u00edtett fogl. b\u00e9rk\u00f6lts\u00e9ge": {},
"Megb\u00edz\u00e1si d\u00edjak b\u00e9rk\u00f6lts\u00e9g terh\u00e9re": {},
"Munkav\u00e1llal\u00f3k munkab\u00e9r k\u00f6lts\u00e9ge": {},
"Tagok szem\u00e9lyes k\u00f6zr. ellen\u00e9rt\u00e9ke": {}
},
"EGY\u00c9B SZOLG\u00c1LTAT\u00c1SOK K\u00d6LTS\u00c9GEI": {
"Biztos\u00edt\u00e1si d\u00edjak": {},
"Hat\u00f3s\u00e1gi igazgat\u00e1si d\u00edjak (illet\u00e9kek)": {},
"P\u00e9nz\u00fcgyi szolg-i d\u00edjak, bankk\u00f6lts\u00e9gek": {}
},
"IG\u00c9NYBE VETT SZOLG\u00c1LTAT\u00c1SOK K\u00d6LTS\u00c9GEI": {
"B\u00e9rleti d\u00edjak": {},
"Egy\u00e9b ig\u00e9nybevett szolg\u00e1ltat\u00e1sok ktg-ei": {},
"Hirdet\u00e9s, rekl\u00e1m-propaganda k\u00f6lts\u00e9g": {},
"Jav\u00edt\u00e1si, karbantart\u00e1si k\u00f6lts\u00e9gek": {},
"Oktat\u00e1si, tov\u00e1bbk\u00e9pz\u00e9si k\u00f6lts\u00e9gek": {},
"Postai, t\u00e1vk\u00f6zl\u00e9si k\u00f6lts\u00e9gek": {},
"Szakk\u00f6nyv, foly\u00f3irat, napilap beszerz\u00e9s": {},
"Sz\u00e1ll\u00edt\u00e1si, rakod\u00e1si k\u00f6lts\u00e9g": {},
"Utaz\u00e1si- \u00e9s kik\u00fcldet\u00e9si k\u00f6lts\u00e9gek": {}
},
"K\u00d6LTS\u00c9GNEM \u00c1TVEZET\u00c9SI SZ\u00c1MLA": {
"Anyagk\u00f6lts\u00e9g \u00e1tvezet\u00e9si szla": {},
"B\u00e9rj\u00e1rul\u00e9kok \u00e1tvezet\u00e9si szla": {},
"B\u00e9rk\u00f6lts\u00e9g \u00e1tvezet\u00e9si szla": {},
"Egy\u00e9b szolg\u00e1ltat\u00e1sok \u00e1tvezet\u00e9si szla": {},
"Ig\u00e9nybevett szolg. \u00e1tvezet\u00e9si szla": {},
"Szem\u00e9lyi jell. kif. \u00e1tvezet\u00e9si szla": {},
"\u00c9rt\u00e9kcs\u00f6kken\u00e9si le\u00edr\u00e1s \u00e1tvez. szla": {}
},
"SZEM\u00c9LYI JELLEG\u00fb EGY\u00c9B KIFIZET\u00c9SEK": {
"Egy\u00e9b szem\u00e9lyi jelleg\u00fb kifizet\u00e9sek": {},
"Foglalkoztat\u00f3t terhel\u00f5 t\u00e1pp\u00e9nz hj\u00e1rul\u00e1s": {},
"J\u00f3l\u00e9ti \u00e9s kultur\u00e1lis k\u00f6lts\u00e9gek": {},
"Kifizet\u00f5t terhel\u00f5 szem\u00e9lyi j\u00f6vedelemad\u00f3": {},
"Mag\u00e1nnyugd\u00edjp\u00e9nzt\u00e1ri tagd\u00edjak, hozz\u00e1j\u00e1r.": {},
"Szem\u00e9lyi jelleg\u00fb kifizet\u00e9sek": {},
"Term\u00e9szetbeni juttat\u00e1sok": {}
},
"\u00c9RT\u00c9KCS\u00d6KKEN\u00c9SI LE\u00cdR\u00c1S": {
"Terv szerinti egy\u00f6sszeg\u00fb (kis\u00e9rt\u00e9k\u00fbek)": {},
"Terv szerinti \u00e9rt\u00e9kcs\u00f6kken\u00e9s line\u00e1ris": {}
}
},
"root_type": ""
},
"M\u00e9rleg sz\u00e1ml\u00e1k": {
"BEFEKTETETT ESZK\u00d6Z\u00d6K": {
"BEFEKTETETT P\u00fc.I ESZK\u00d6Z\u00d6K R\u00c9SZESED\u00c9SEK": {
"Egy\u00e9b tart\u00f3s r\u00e9szesed\u00e9s": {},
"R\u00e9szesed\u00e9sek \u00e9rt\u00e9khelyesb\u00edt\u00e9se": {},
"R\u00e9szesed\u00e9sek \u00e9rt\u00e9kveszt\u00e9se, vissza\u00edr\u00e1sa": {},
"Tart\u00f3s r\u00e9szesed\u00e9s kapcs. v\u00e1llalkoz\u00e1sban": {}
},
"BERUH\u00c1Z\u00c1SOK, FEL\u00faJ\u00cdT\u00c1SOK": {
"Befejezetlen beruh\u00e1z\u00e1sok": {},
"Beruh\u00e1z\u00e1sok terven fel\u00fcli \u00e9rt\u00e9kcs\u00f6kk.": {},
"Fel\u00faj\u00edt\u00e1sok": {}
},
"EGY\u00c9B BERENDEZ\u00c9SEK, FELSZ., J\u00c1RM\u00dcVEK": {
"Egy\u00e9b g\u00e9pek,felsz,j\u00e1rm. \u00e9rt\u00e9khelyesb\u00edt\u00e9s": {},
"Egy\u00e9b j\u00e1rm\u00fbvek": {},
"Irodai, igazgat\u00e1si berendez\u00e9sek": {},
"\u00dczemi berendez\u00e9sek, g\u00e9pek,felszerel\u00e9sek": {},
"\u00dczemk\u00f6r\u00f6n kiv\u00fcli berendez\u00e9sek, felsz.": {}
},
"HITELVISZONYT MEGTESTES\u00cdT\u00d6 \u00c9RT\u00c9KPAP\u00cdROK": {
"Egy\u00e9b v\u00e1llalkoz\u00e1sok \u00e9rt\u00e9kpap\u00edrjai": {},
"Kapcsolt v\u00e1llalkoz\u00e1sok \u00e9rt\u00e9kpap\u00edrjai": {},
"Tart\u00f3s diszkont \u00e9rt\u00e9kpap\u00edrok": {},
"\u00c1llamk\u00f6tv\u00e9nyek": {},
"\u00c9rt\u00e9kpap\u00edrok \u00e9rt\u00e9kveszt\u00e9se, vissza\u00edr\u00e1sa": {}
},
"IMMATERI\u00c1LIS JAVAK": {
"Alap\u00edt\u00e1s-\u00e1tszervez\u00e9s akt\u00edv\u00e1lt \u00e9rt\u00e9ke": {},
"Immateri\u00e1lis javak \u00e9rt\u00e9khelyesb\u00edt\u00e9se": {},
"K\u00eds\u00e9rleti fejleszt\u00e9s akt\u00edv\u00e1lt \u00e9rt\u00e9ke": {},
"Szellemi term\u00e9kek": {},
"Vagyoni \u00e9rt\u00e9k\u00fb jogok": {},
"\u00dczleti vagy c\u00e9g\u00e9rt\u00e9k": {}
},
"INGATLANOK, KAPCS. VAGYONI \u00c9RT. JOGOK": {
"Egy\u00e9b \u00e9p\u00edtm\u00e9nyek": {},
"F\u00f6ldter\u00fclet": {},
"Ingatlanhoz kapcs. vagyoni \u00e9rt. jogok": {},
"Ingatlanok \u00e9rt\u00e9khelyesb\u00edt\u00e9se": {},
"Telek, telkes\u00edt\u00e9s": {},
"\u00c9p\u00fcletek,\u00e9p\u00fcletr\u00e9szek,tulajdoni h\u00e1nyadok": {},
"\u00dczemk\u00f6r\u00f6n kiv\u00fcli ingatlanok, \u00e9p\u00fcletek": {}
},
"M\u00dcSZAKI BERENDEZ\u00c9SEK, G\u00c9PEK, J\u00c1RM\u00dcVEK": {
"M\u00fcszaki g\u00e9pek,felsz,j\u00e1rm. \u00e9rt\u00e9khelyesb.": {},
"Termel\u00e9sben r\u00e9sztvev\u00f5 j\u00e1rm\u00fbvek": {},
"Termel\u00f5 g\u00e9pek, berendez\u00e9sek, gy\u00e1rt\u00f3eszk.": {}
},
"TART\u00d3SAN ADOTT K\u00d6LCS\u00d6N\u00d6K": {
"Egy\u00e9b tart\u00f3s bankbet\u00e9tek": {},
"Egy\u00e9b tart\u00f3san adott k\u00f6lcs\u00f6n\u00f6k": {},
"P\u00e9nz\u00fcgyi l\u00edzing miatti tart\u00f3s k\u00f6vetel\u00e9s": {},
"Tart\u00f3s bankbet\u00e9tek egy\u00e9b r\u00e9sz. v\u00e1ll.-ban": {},
"Tart\u00f3s bankbet\u00e9tek kapcs. v\u00e1ll.-ban": {},
"Tart\u00f3san adott k\u00f6lcs\u00f6n egy\u00e9b r\u00e9sz.v\u00e1ll.": {},
"Tart\u00f3san adott k\u00f6lcs\u00f6n\u00f6k kapcs. v\u00e1ll.": {},
"Tart\u00f3san adott k\u00f6lcs\u00f6n\u00f6k \u00e9rt\u00e9kveszt\u00e9se": {}
},
"TENY\u00c9SZ\u00c1LLATOK": {
"Teny\u00e9sz\u00e1llatok": {}
}
},
"FORR\u00c1SOK (PASSZ\u00cdV\u00c1K)": {
"C\u00c9LTARTAL\u00c9KOK": {
"C\u00e9ltartal\u00e9k v\u00e1rhat\u00f3 k\u00f6telezetts\u00e9gre": {}
},
"EGY\u00c9B R\u00d6VID LEJ\u00c1RAT\u00fa K\u00d6TELEZETTS\u00c9GEK": {
"El\u00f5zetesen felsz\u00e1m\u00edtott \u00e1lt.forgalmi ad\u00f3": {},
"Fizetend\u00f5 \u00e1ltal\u00e1nos forgalmi ad\u00f3": {},
"K\u00f6lts\u00e9gvet\u00e9si befizet\u00e9si k\u00f6t.teljes\u00edt\u00e9se": {},
"K\u00f6lts\u00e9gvet\u00e9si befizet\u00e9si k\u00f6telezetts\u00e9gek": {},
"Szem\u00e9lyi j\u00f6vedelemad\u00f3 elsz\u00e1mol\u00e1sa": {},
"T\u00e1rsas\u00e1gi ad\u00f3 \u00e9s osztal\u00e9kad\u00f3 elsz\u00e1mol\u00e1s": {},
"V\u00e1m- \u00e9s P\u00e9nz\u00fcgy\u00f5rs\u00e9g elsz\u00e1mol\u00e1si sz\u00e1mla": {},
"\u00c1fa p\u00e9nz\u00fcgyi elsz\u00e1mol\u00e1si sz\u00e1mla": {},
"\u00d6nkorm\u00e1nyzati ad\u00f3k elsz\u00e1mol\u00e1si sz\u00e1mla": {}
},
"HOSSZ\u00da LEJ\u00c1RAT\u00da K\u00d6TELEZETTS\u00c9GEK": {
"Beruh\u00e1z\u00e1si \u00e9s fejleszt\u00e9si hitelek": {},
"Egy\u00e9b hossz\u00fa lej. k\u00f6telezetts\u00e9gek": {},
"Egy\u00e9b hossz\u00fa lej\u00e1rat\u00fa hitelek": {},
"Hossz\u00fa lej\u00e1ratra kapott k\u00f6lcs\u00f6n\u00f6k": {},
"P\u00e9nz\u00fcgyi l\u00edzinggel kapcsolatos k\u00f6telez.": {},
"Tartoz\u00e1sok k\u00f6tv\u00e9nykibocs\u00e1t\u00e1sb\u00f3l": {},
"Tart\u00f3s k\u00f6t. egy\u00e9b r\u00e9sz. v\u00e1ll. szemben": {},
"Tart\u00f3s k\u00f6t. kapcs. v\u00e1llalkoz\u00e1ssal sz.": {},
"\u00c1tv\u00e1ltoztathat\u00f3 k\u00f6tv\u00e9nyek": {}
},
"H\u00c1TRASOROLT K\u00d6TELEZETTS\u00c9GEK": {
"H\u00e1trasorolt k\u00f6telezetts\u00e9g": {}
},
"PASSZ\u00cdV ID\u00d6BELI ELHAT\u00c1ROL\u00c1S": {
"Bev\u00e9telek passz\u00edv id\u00f5beli elhat\u00e1rol\u00e1sa": {},
"Halasztott bev\u00e9telek": {},
"K\u00f6lts\u00e9gek,r\u00e1ford. passz\u00edv id\u00f5beli elhat.": {}
},
"R\u00d6VID LEJ\u00c1RAT\u00fa K\u00d6TELEZETTS\u00c9GEK": {
"R\u00f6vid lej\u00e1rat\u00fa hitelek": {},
"R\u00f6vid lej\u00e1rat\u00fa k\u00f6lcs\u00f6n\u00f6k": {},
"Sz\u00e1ll\u00edt\u00f3k": {
"Belf\u00f6ldi sz\u00e1ll\u00edt\u00f3k": {
"account_type": "Payable"
},
"K\u00fclf\u00f6ldi sz\u00e1ll\u00edt\u00f3k": {
"account_type": "Payable"
}
},
"Vev\u00f5kt\u00f5l kapott el\u00f5legek": {}
},
"SAJ\u00c1T T\u00d6KE": {
"Eredm\u00e9nytartal\u00e9k": {},
"Jegyzett t\u00f5ke": {},
"Lek\u00f6t\u00f6tt tartal\u00e9k": {},
"M\u00e9rleg szerinti eredm\u00e9ny": {},
"T\u00f5ketartal\u00e9k": {},
"\u00c9rt\u00e9kel\u00e9si tartal\u00e9k": {}
},
"\u00c9VI M\u00c9RLEG SZ\u00c1ML\u00c1K": {
"Nyit\u00f3m\u00e9rleg sz\u00e1mla": {}
}
},
"K\u00c9SZLETEK": {
"ANYAGOK": {
"Seg\u00e9danyagok": {}
},
"BEFEJEZETLEN TERMEL\u00c9S \u00c9S F\u00c9LK\u00c9SZTERM\u00c9KEK": {
"Befejezetlen termel\u00e9s": {}
},
"BET\u00c9TD\u00cdJAS G\u00d6NGY\u00d6LEGEK": {
"Bet\u00e9td\u00edjas g\u00f6ngy\u00f6legek": {}
},
"K\u00c9SZTERM\u00c9KEK": {
"K\u00e9szterm\u00e9kek": {}
},
"K\u00d6ZVET\u00cdTETT SZOLG\u00c1LTAT\u00c1SOK": {
"K\u00f6zvet\u00edtett szolg\u00e1ltat\u00e1sok": {}
},
"\u00c1RUK": {
"\u00c1ruk beszerz\u00e9si \u00e1ron": {}
}
},
"K\u00d6VETEL\u00c9SEK,P\u00c9NZ\u00dcGYI ESZK,AKT\u00cdV ID\u00d6B.ELH": {
"ADOTT EL\u00d6LEGEK": {
"Adott el\u00f5legek": {}
},
"AKT\u00cdV ID\u00d6BELI ELHAT\u00c1ROL\u00c1S": {
"Akt\u00edv id\u00f5beli elhat\u00e1rol\u00e1sa": {}
},
"EGY\u00c9B K\u00d6VETEL\u00c9SEK": {
"K\u00fcl\u00f6nf\u00e9le egy\u00e9b k\u00f6vetel\u00e9sek": {},
"Munkav\u00e1llal\u00f3kkal szembeni k\u00f6vetel\u00e9s": {}
},
"K\u00d6VETEL\u00c9SEK \u00c1RUSZ\u00c1LL.- SZOLG\u00c1LTAT\u00c1SB\u00d3L": {
"Belf\u00f6ldi k\u00f6vetel\u00e9sek": {
"account_type": "Receivable"
},
"K\u00fclf\u00f6ldi k\u00f6vetel\u00e9sek": {
"account_type": "Receivable"
}
},
"P\u00c9NZESZK\u00d6Z\u00d6K": {
"Deviza bet\u00e9tsz\u00e1mla": {
"account_type": "Bank"
},
"Elk\u00fcl\u00f6n\u00edtett bet\u00e9tsz\u00e1ml\u00e1k": {
"account_type": "Bank"
},
"Elsz\u00e1mol\u00e1si bet\u00e9tsz\u00e1mla": {
"Banksz\u00e1mla": {
"account_type": "Bank"
}
},
"P\u00e9nzhelyettes\u00edt\u00f5 eszk. (utalv\u00e1ny, jegy)": {
"account_type": "Bank"
},
"P\u00e9nzt\u00e1rak": {
"P\u00e9nzt\u00e1r": {
"account_type": "Cash"
}
},
"Valuta p\u00e9nzt\u00e1r": {
"account_type": "Cash"
},
"\u00c1tvezet\u00e9si sz\u00e1mla": {
"account_type": "Bank"
}
},
"\u00c9RT\u00c9KPAP\u00cdROK": {
"Egy\u00e9b r\u00e9szesed\u00e9s": {},
"Forgat\u00e1si c\u00e9l\u00fa hitelv. m. \u00e9rt\u00e9kpap\u00edrok": {},
"R\u00e9szesed\u00e9s kapcsolt v\u00e1llalkoz\u00e1sban": {},
"Saj\u00e1t r\u00e9szv\u00e9nyek, saj\u00e1t \u00fczletr\u00e9szek": {}
}
},
"root_type": ""
}
}
}

View File

@@ -1,716 +0,0 @@
{
"country_code": "nl",
"name": "Nederlands - Grootboekschema",
"tree": {
"FABRIKAGEREKENINGEN": {
"root_type": ""
},
"FINANCIELE REKENINGEN, KORTLOPENDE VORDERINGEN EN SCHULDEN": {
"KORTLOPENDE SCHULDEN": {
"Accountantskosten": {},
"Af te dragen Btw-verlegd": {
"account_type": "Tax"
},
"Afdracht loonheffing": {},
"Btw af te dragen hoog": {
"account_type": "Tax"
},
"Btw af te dragen laag": {
"account_type": "Tax"
},
"Btw af te dragen overig": {
"account_type": "Tax"
},
"Btw oude jaren": {
"account_type": "Tax"
},
"Btw te vorderen hoog": {
"account_type": "Tax"
},
"Btw te vorderen laag": {
"account_type": "Tax"
},
"Btw te vorderen overig": {
"account_type": "Tax"
},
"Btw-afdracht": {
"account_type": "Tax"
},
"Crediteuren": {
"account_type": "Payable"
},
"Dividend": {},
"Dividendbelasting": {},
"Energiekosten": {},
"Investeringsaftrek": {},
"Loonheffing": {},
"Overige te betalen posten": {},
"Pensioenpremies": {},
"Premie WIR": {},
"Rekening-courant inkoopvereniging": {},
"Rente": {},
"Sociale lasten": {},
"Tanti\u00e8mes": {},
"Te vorderen Btw-verlegd": {
"account_type": "Tax"
},
"Telefoon/telefax": {},
"Termijnen onderh. werk": {},
"Vakantiedagen": {},
"Vakantiegeld": {},
"Vakantiezegels": {},
"Vennootschapsbelasting": {},
"Vooruit ontvangen bedr.": {}
},
"LIQUIDE MIDDELEN": {
"ABN-AMRO bank": {
"account_type": "Cash"
},
"BIZNER bank": {
"account_type": "Cash"
},
"Bankbetaalkaarten": {},
"Effecten": {},
"Girobetaalkaarten": {},
"Kas": {
"account_type": "Cash"
},
"Kas valuta": {
"account_type": "Cash"
},
"Kleine kas": {
"account_type": "Cash"
},
"Kruisposten": {},
"Postbank": {
"account_type": "Cash"
},
"RABO bank": {
"account_type": "Cash"
}
},
"VORDERINGEN": {
"Debiteuren": {
"account_type": "Receivable"
},
"Dubieuze debiteuren": {},
"Overige vorderingen": {},
"Rekening-courant directie": {},
"Te ontvangen ziekengeld": {},
"Voorschotten personeel": {},
"Vooruitbetaalde kosten": {},
"Voorziening dubieuze debiteuren": {}
},
"root_type": ""
},
"INDIRECTE KOSTEN": {
"root_type": ""
},
"KOSTENREKENINGEN": {
"AFSCHRIJVINGEN": {
"Aanhangwagens": {},
"Aankoopkosten": {},
"Aanloopkosten": {},
"Auteursrechten": {},
"Bedrijfsgebouwen": {},
"Bedrijfsinventaris": {},
"Drankvergunningen": {},
"Fabrieksinventaris": {},
"Gebouwen": {},
"Gereedschappen": {},
"Goodwill": {},
"Grondverbetering": {},
"Heftrucks": {},
"Kantine-inventaris": {},
"Kantoorinventaris": {},
"Kantoormachines": {},
"Licenties": {},
"Machines": {},
"Magazijninventaris": {},
"Octrooien": {},
"Ontwikkelingskosten": {},
"Pachtersinvestering": {},
"Parkeerplaats": {},
"Personenauto's": {},
"Rijwielen en bromfietsen": {},
"Tonnagevergunningen": {},
"Verbouwingen": {},
"Vergunningen": {},
"Voorraadverschillen": {},
"Vrachtauto's": {},
"Winkels": {},
"Woon-winkelhuis": {}
},
"ALGEMENE KOSTEN": {
"Accountantskosten": {},
"Advieskosten": {},
"Assuranties": {},
"Bankkosten": {},
"Juridische kosten": {},
"Overige algemene kosten": {},
"Toev. Ass. eigen risico": {}
},
"BEDRIJFSKOSTEN": {
"Assuranties": {},
"Energie (krachtstroom)": {},
"Gereedschappen": {},
"Hulpmaterialen": {},
"Huur inventaris": {},
"Huur machines": {},
"Leasing invent.operational": {},
"Leasing mach. operational": {},
"Onderhoud inventaris": {},
"Onderhoud machines": {},
"Ophalen/vervoer afval": {},
"Overige bedrijfskosten": {}
},
"FINANCIERINGSKOSTEN": {
"Overige rentebaten": {},
"Overige rentelasten": {},
"Rente bankkrediet": {},
"Rente huurkoopcontracten": {},
"Rente hypotheek": {},
"Rente leasecontracten": {},
"Rente lening o/g": {},
"Rente lening u/g": {}
},
"HUISVESTINGSKOSTEN": {
"Assurantie onroerend goed": {},
"Belastingen onr. Goed": {},
"Energiekosten": {},
"Groot onderhoud onr. Goed": {},
"Huur": {},
"Huurwaarde woongedeelte": {},
"Onderhoud onroerend goed": {},
"Ontvangen huren": {},
"Overige huisvestingskosten": {},
"Pacht": {},
"Schoonmaakkosten": {},
"Toevoeging egalisatieres. Groot onderhoud": {}
},
"KANTOORKOSTEN": {
"Administratiekosten": {},
"Contributies/abonnementen": {},
"Huur kantoorapparatuur": {},
"Internetaansluiting": {},
"Kantoorbenodigdh./drukw.": {},
"Onderhoud kantoorinvent.": {},
"Overige kantoorkosten": {},
"Porti": {},
"Telefoon/telefax": {}
},
"OVERIGE BATEN EN LASTEN": {
"Betaalde schadevergoed.": {},
"Boekverlies vaste activa": {},
"Boekwinst van vaste activa": {},
"K.O. regeling OB": {},
"Kasverschillen": {},
"Kosten loonbelasting": {},
"Kosten omzetbelasting": {},
"Nadelige koersverschillen": {},
"Naheffing bedrijfsver.": {},
"Ontvangen schadevergoed.": {},
"Overige baten": {},
"Overige lasten": {},
"Voordelige koersverschil.": {}
},
"PERSONEELSKOSTEN": {
"Autokostenvergoeding": {},
"Bedrijfskleding": {},
"Belastingvrije uitkeringen": {},
"Bijzondere beloningen": {},
"Congressen, seminars en symposia": {},
"Gereedschapsgeld": {},
"Geschenken personeel": {},
"Gratificaties": {},
"Inhouding pensioenpremies": {},
"Inhouding sociale lasten": {},
"Kantinekosten": {},
"Lonen en salarissen": {},
"Loonwerk": {},
"Managementvergoedingen": {},
"Opleidingskosten": {},
"Oprenting stamrechtverpl.": {},
"Overhevelingstoeslag": {},
"Overige kostenverg.": {},
"Overige personeelskosten": {},
"Overige uitkeringen": {},
"Pensioenpremies": {},
"Provisie": {},
"Reiskosten": {},
"Rijwielvergoeding": {},
"Sociale lasten": {},
"Tanti\u00e8mes": {},
"Thuiswerkers": {},
"Toev. Backservice pens.verpl.": {},
"Toevoeging pensioenverpl.": {},
"Uitkering ziekengeld": {},
"Uitzendkrachten": {},
"Vakantiebonnen": {},
"Vakantiegeld": {},
"Vergoeding studiekosten": {},
"Wervingskosten personeel": {}
},
"VERKOOPKOSTEN": {
"Advertenties": {},
"Afschrijving dubieuze deb.": {},
"Beurskosten": {},
"Etalagekosten": {},
"Exportkosten": {},
"Kascorrecties": {},
"Overige verkoopkosten": {},
"Provisie": {},
"Reclame": {},
"Reis en verblijfkosten": {},
"Relatiegeschenken": {},
"Representatiekosten": {},
"Uitgaande vrachten": {},
"Veilingkosten": {},
"Verpakkingsmateriaal": {},
"Websitekosten": {}
},
"VERVOERSKOSTEN": {
"Assuranties auto's": {},
"Brandstoffen": {},
"Leasing auto's": {},
"Onderhoud personenauto's": {},
"Onderhoud vrachtauto's": {},
"Overige vervoerskosten": {},
"Priv\u00e9-gebruik auto's": {},
"Wegenbelasting": {}
},
"root_type": ""
},
"OVERIGE RESULTATEN": {
"Memoriaal": {
"account_type": "Cash"
},
"Opbrengsten deelnemingen": {},
"Reorganisatiekosten": {},
"Verlies verkoop deelnem.": {},
"Voorz. Verlies deelnem.": {},
"Vpb bijzonder resultaat": {},
"Vpb normaal resultaat": {},
"Winst": {},
"Winst bij verkoop deelnem.": {},
"root_type": ""
},
"TUSSENREKENINGEN": {
"Betaalwijze cadeaubonnen": {
"account_type": "Cash"
},
"Betaalwijze chipknip": {
"account_type": "Cash"
},
"Betaalwijze contant": {
"account_type": "Cash"
},
"Betaalwijze pin": {
"account_type": "Cash"
},
"Inkopen Nederland hoog": {
"account_type": "Cash"
},
"Inkopen Nederland laag": {
"account_type": "Cash"
},
"Inkopen Nederland onbelast": {
"account_type": "Cash"
},
"Inkopen Nederland overig": {
"account_type": "Cash"
},
"Inkopen Nederland verlegd": {
"account_type": "Cash"
},
"Inkopen binnen EU hoog": {
"account_type": "Cash"
},
"Inkopen binnen EU laag": {
"account_type": "Cash"
},
"Inkopen binnen EU overig": {
"account_type": "Cash"
},
"Inkopen buiten EU hoog": {
"account_type": "Cash"
},
"Inkopen buiten EU laag": {
"account_type": "Cash"
},
"Inkopen buiten EU overig": {
"account_type": "Cash"
},
"Kassa 1": {
"account_type": "Cash"
},
"Kassa 2": {
"account_type": "Cash"
},
"Netto lonen": {
"account_type": "Cash"
},
"Tegenrekening Inkopen": {
"account_type": "Cash"
},
"Tussenrek. autom. betalingen": {
"account_type": "Cash"
},
"Tussenrek. autom. loonbetalingen": {
"account_type": "Cash"
},
"Tussenrek. cadeaubonbetalingen": {
"account_type": "Cash"
},
"Tussenrekening balans": {
"account_type": "Cash"
},
"Tussenrekening chipknip": {
"account_type": "Cash"
},
"Tussenrekening correcties": {
"account_type": "Cash"
},
"Tussenrekening pin": {
"account_type": "Cash"
},
"Vraagposten": {
"account_type": "Cash"
},
"root_type": ""
},
"VASTE ACTIVA, EIGEN VERMOGEN, LANGLOPEND VREEMD VERMOGEN EN VOORZIENINGEN": {
"EIGEN VERMOGEN": {
"Aandelenkapitaal": {
"account_type": "Equity"
},
"Assuranties": {
"account_type": "Equity"
},
"Buitengewone lasten": {
"account_type": "Equity"
},
"Giften": {
"account_type": "Equity"
},
"Huishoudgeld": {
"account_type": "Equity"
},
"Inkomstenbelasting": {
"account_type": "Equity"
},
"Kapitaal": {
"account_type": "Equity"
},
"Overige persoonlijke verplichtingen": {
"account_type": "Equity"
},
"Overige priv\u00e9-uitgaven": {
"account_type": "Equity"
},
"Overige reserves": {
"account_type": "Equity"
},
"Premie lijfrenteverzekeringen": {
"account_type": "Equity"
},
"Premie volksverzekeringen": {
"account_type": "Equity"
},
"Priv\u00e9-gebruik": {
"account_type": "Equity"
},
"Priv\u00e9-opnamen/stortingen": {
"account_type": "Equity"
},
"Vermogensbelasting": {
"account_type": "Equity"
},
"WAO en ziekengeldverzekeringen": {
"account_type": "Equity"
},
"Wettelijke reserves": {
"account_type": "Equity"
}
},
"FINANCIELE VASTE ACTIVA EN LANGLOPENDE VORDERINGEN": {
"FINANCIELE VASTE ACTIVA": {
"Aandeel inkoopcombinatie": {},
"Meerderheidsdeelnemingen": {},
"Minderheidsdeelnemingen": {}
},
"LANGLOPENDE VORDERINGEN": {
"Financieringskosten": {},
"Financieringskosten huurkoop": {},
"Hypotheken u/g 1": {},
"Hypotheken u/g 2": {},
"Hypotheken u/g 3": {},
"Leningen u/g 1": {},
"Leningen u/g 2": {},
"Leningen u/g 3": {},
"Leningen u/g 4": {},
"Leningen u/g 5": {},
"Vorderingen op deelnemingen": {},
"Waarborgsommen": {}
}
},
"IMMATERIELE ACTIVA": {
"Aanschafwaarde Aanloopkosten": {},
"Aanschafwaarde Auteursrechten": {},
"Aanschafwaarde Drankvergunningen": {},
"Aanschafwaarde Goodwill": {},
"Aanschafwaarde Octrooien": {},
"Aanschafwaarde Ontwikkelingskosten": {},
"Aanschafwaarde Tonnagevergunningen": {},
"Aanschafwaarde Vergunningen": {},
"Afschrijving Aanloopkosten": {},
"Afschrijving Auteursrechten": {},
"Afschrijving Drankvergunningen": {},
"Afschrijving Goodwill": {},
"Afschrijving Licenties": {},
"Afschrijving Octrooien": {},
"Afschrijving Ontwikkelingskosten": {},
"Afschrijving Tonnagevergunningen": {},
"Afschrijving Vergunningen": {}
},
"LANGLOPENDE SCHULDEN EN AFLOSSINGEN": {
"AFLOSSINGEN": {
"Huurkoopverplichtingen": {},
"Hypotheek o/g 1": {},
"Hypotheek o/g 2": {},
"Hypotheek o/g 3": {},
"Hypotheek o/g 4": {},
"Hypotheek o/g 5": {},
"Lease-verplichtingen": {}
},
"LANGLOPENDE SCHULDEN": {
"Huurkoopverplichtingen": {},
"Hypotheken o/g 1": {},
"Hypotheken o/g 2": {},
"Hypotheken o/g 3": {},
"Hypotheken o/g 4": {},
"Hypotheken o/g 5": {},
"Lease-verplichtingen": {},
"Leningen o/g 1": {},
"Leningen o/g 2": {},
"Leningen o/g 3": {},
"Leningen o/g 4": {},
"Leningen o/g 5": {},
"Rekening-courant directie": {}
}
},
"MACHINES EN INVENTARIS": {
"INVENTARIS": {
"Aanschafwaarde Bedrijfsinventaris": {},
"Aanschafwaarde Fabrieksinventaris": {},
"Aanschafwaarde Gereedschappen": {},
"Aanschafwaarde Kantine-inventaris": {},
"Aanschafwaarde Kantoorinventaris": {},
"Aanschafwaarde Kantoormachines": {},
"Aanschafwaarde Magazijninventaris": {},
"Afschrijving Bedrijfsinventaris": {},
"Afschrijving Fabrieksinventaris": {},
"Afschrijving Gereedschappen": {},
"Afschrijving Kantine-inventaris": {},
"Afschrijving Kantoorinventaris": {},
"Afschrijving Kantoormachines": {},
"Afschrijving Magazijninventaris": {}
},
"MACHINES": {
"Aanschafwaarde Machines 1": {},
"Aanschafwaarde Machines 2": {},
"Aanschafwaarde Machines 3": {},
"Aanschafwaarde Machines 4": {},
"Aanschafwaarde Machines 5": {},
"Afschrijving Machines 1": {},
"Afschrijving Machines 2": {},
"Afschrijving Machines 3": {},
"Afschrijving Machines 4": {},
"Afschrijving Machines 5": {}
}
},
"ONROERENDE GOEDEREN": {
"Aanschafwaarde Aanloopkosten": {},
"Aanschafwaarde Bedrijfsgebouwen": {},
"Aanschafwaarde Gebouwen": {},
"Aanschafwaarde Grondverbetering": {},
"Aanschafwaarde Landerijen": {},
"Aanschafwaarde Ondergrond gebouwen": {},
"Aanschafwaarde Pachtersinvesteringen": {},
"Aanschafwaarde Parkeerplaats": {},
"Aanschafwaarde Verbouwingen": {},
"Aanschafwaarde Winkels": {},
"Aanschafwaarde Woon-winkelhuis": {},
"Afschrijving Aanloopkosten": {},
"Afschrijving Bedrijfsgebouwen": {},
"Afschrijving Gebouwen": {},
"Afschrijving Grondverbetering": {},
"Afschrijving Pachtersinvesteringen": {},
"Afschrijving Parkeerplaats": {},
"Afschrijving Verbouwingen": {},
"Afschrijving Winkels": {},
"Afschrijving Woon-winkelhuis": {}
},
"VERVOERMIDDELEN": {
"Aanschafwaarde Aanhangwagens": {},
"Aanschafwaarde Heftrucks": {},
"Aanschafwaarde Personenauto's": {},
"Aanschafwaarde Rijwielen en bromfietsen": {},
"Aanschafwaarde Vrachtauto's": {},
"Afschrijving Aanhangwagens": {},
"Afschrijving Heftrucks": {},
"Afschrijving Personenauto's": {},
"Afschrijving Rijwielen en bromfietsen": {},
"Afschrijving Vrachtauto's": {}
},
"VOORZIENINGEN": {
"Assurantie eigen risico": {
"account_type": "Equity"
},
"Backservice pensioenverpl.": {
"account_type": "Equity"
},
"Egalisatierekening WIR": {
"account_type": "Equity"
},
"Egalisatieres. grootonderh.": {
"account_type": "Equity"
},
"Garantieverplichtingen": {
"account_type": "Equity"
},
"Latente belastingverpl.": {
"account_type": "Equity"
},
"Pens.voorz. eigen beheer": {
"account_type": "Equity"
},
"Pensioenverplichtingen": {
"account_type": "Equity"
},
"Stamrechtverplichtingen": {
"account_type": "Equity"
},
"Vervangingsreserve": {
"account_type": "Equity"
},
"Voorziening deelnemingen": {
"account_type": "Equity"
}
},
"root_type": ""
},
"VERKOOPRESULTATEN": {
"Diensten fabric. 0% niet-EU": {},
"Diensten fabricage 0% EU": {},
"Diensten fabricage hoog": {},
"Diensten fabricage laag": {},
"Diensten fabricage overig": {},
"Diensten handel 0% EU": {},
"Diensten handel 0% niet-EU": {},
"Diensten handel hoog tarief": {},
"Diensten handel laag tarief": {},
"Verkopen Fabric. 0% niet-EU": {},
"Verkopen Handel 0% niet-EU": {},
"Verkopen fabric. 0 % EU": {},
"Verkopen fabricage hoog": {},
"Verkopen fabricage laag": {},
"Verkopen fabricage overig": {},
"Verkopen handel 0% EU": {},
"Verkopen handel hoog": {},
"Verkopen handel laag": {},
"Verkopen handel overig": {},
"Verleende Kredietbep. fabricage": {},
"Verleende Kredietbep. handel": {},
"root_type": ""
},
"VOORRAAD GEREED PRODUCT EN ONDERHANDEN WERK": {
"Betalingskort. crediteuren": {},
"Garantiekosten": {},
"Hulpmaterialen": {},
"Inkomende vrachten": {},
"Inkoop import buiten EU hoog": {},
"Inkoop import buiten EU laag": {},
"Inkoop import buiten EU overig": {},
"Inkoopbonussen": {},
"Inkoopkosten": {},
"Inkoopprovisie": {},
"Inkopen BTW verlegd": {},
"Inkopen EU hoog tarief": {},
"Inkopen EU laag tarief": {},
"Inkopen EU overig": {},
"Inkopen hoog": {},
"Inkopen laag": {},
"Inkopen nul": {},
"Inkopen overig": {},
"Invoerkosten": {},
"Kosten inkoopvereniging": {},
"Kostprijs omzet grondstoffen": {},
"Kostprijs omzet handelsgoederen": {},
"Onttrekking uitgev.garantie": {},
"Priv\u00e9-gebruik goederen": {},
"Tegenrekening inkoop": {},
"Toev. Voorz. incour. grondst.": {},
"Toevoeging garantieverpl.": {},
"Toevoeging voorz. incour. handelsgoed.": {},
"Uitbesteed werk": {},
"Voorz. Incourourant grondst.": {},
"Voorz.incour. handelsgoed.": {},
"root_type": ""
},
"VOORRAAD GRONDSTOFFEN, HULPMATERIALEN EN HANDELSGOEDEREN": {
"Emballage": {
"account_type": "Cash"
},
"Gereed product 1": {
"account_type": "Cash"
},
"Gereed product 2": {
"account_type": "Cash"
},
"Goederen 1": {
"account_type": "Cash"
},
"Goederen 2": {
"account_type": "Cash"
},
"Goederen in consignatie": {
"account_type": "Cash"
},
"Goederen onderweg": {
"account_type": "Cash"
},
"Grondstoffen 1": {
"account_type": "Cash"
},
"Grondstoffen 2": {
"account_type": "Cash"
},
"Halffabrikaten 1": {
"account_type": "Cash"
},
"Halffabrikaten 2": {
"account_type": "Cash"
},
"Hulpstoffen 1": {
"account_type": "Cash"
},
"Hulpstoffen 2": {
"account_type": "Cash"
},
"Kantoorbenodigdheden": {
"account_type": "Cash"
},
"Onderhanden werk": {
"account_type": "Cash"
},
"Verpakkingsmateriaal": {
"account_type": "Cash"
},
"Zegels": {
"account_type": "Cash"
},
"root_type": ""
}
}
}

View File

@@ -1,6 +1,6 @@
{
"country_code": "fr",
"name": "France - Plan Comptable G\u00e9n\u00e9ral",
"name": "France - Plan Comptable General",
"tree": {
"1-Comptes de Capitaux": {
"10-Capital et R\u00e9serves": {
@@ -851,7 +851,7 @@
"4457-Taxes sur le chiffre d'affaires collect\u00e9es par l'entreprise": {
"44571-TVA collect\u00e9e": {
"account_type": "Tax",
"tax_rate": 20.0
"is_group": 1
},
"44578-Taxes assimil\u00e9es \u00e0 la TVA": {}
},

View File

@@ -2,7 +2,394 @@
"country_code": "gt",
"name": "Guatemala - Cuentas",
"tree": {
"02 - Pasivos": {
"Activos": {
"Activo Corriente": {
"Activos Biol\u00f3gicos": {
"Activos Biol\u00f3gicos a Valor Razonable": {
"Animales": {
"account_number": "1.5.2.1",
"account_type": "Stock",
"is_group": 1
},
"Plantas": {
"account_number": "1.5.2.2",
"account_type": "Stock",
"is_group": 1
},
"account_number": "1.5.2",
"account_type": "Stock"
},
"Activos Biol\u00f3gicos al Costo": {
"account_number": "1.5.1",
"account_type": "Stock",
"is_group": 1
},
"account_number": "1.5",
"account_type": "Stock"
},
"Activos Corrientes Adicionales": {
"Activos Diferidos o Restringidos": {
"Cr\u00e9dito Fiscal (IVA Por Cobrar)": {
"account_number": "1.1.2.1",
"account_type": "Chargeable",
"is_group": 1
},
"account_number": "1.1.2",
"account_type": "Chargeable"
},
"Inversiones Corrientes no Clasificados como Equivalentes de Caja y Bancos": {
"account_number": "1.1.1"
},
"account_number": "1.1",
"account_type": "Chargeable"
},
"Activos Devengables y Otros Activos": {
"Activos Adicionales y Otros": {
"account_number": "1.6.6",
"account_type": "Chargeable",
"is_group": 1
},
"Cobrables Relacionados con Impuestos": {
"account_number": "1.6.2",
"account_type": "Chargeable",
"is_group": 1
},
"Contratos de Construccion": {
"account_number": "1.6.4",
"account_type": "Chargeable",
"is_group": 1
},
"Costos de Montaje": {
"account_number": "1.6.5",
"account_type": "Chargeable",
"is_group": 1
},
"Pagos Anticipados y Otros Activos Circulantes": {
"Seguro Pagado Anticipadamente": {
"account_number": "1.6.1.0",
"account_type": "Chargeable"
},
"account_number": "1.6.1",
"account_type": "Chargeable"
},
"Proveedores de Servicio": {
"account_number": "1.6.3",
"account_type": "Chargeable",
"is_group": 1
},
"account_number": "1.6",
"account_type": "Chargeable"
},
"Activos Financieros": {
"Activos Financieros Clasificados por Designaci\u00f3n": {
"account_number": "1.4.6",
"account_type": "Chargeable",
"is_group": 1
},
"Activos Financieros Derivados": {
"account_number": "1.4.3",
"account_type": "Chargeable",
"is_group": 1
},
"Inversion o Participaci\u00f3n Accionaria en Empresas Afiliadas": {
"account_number": "1.4.1",
"account_type": "Chargeable",
"is_group": 1
},
"Inversiones Burs\u00e1tiles e Instrumentos Financieros": {
"account_number": "1.4.2",
"account_type": "Chargeable",
"is_group": 1
},
"Otros Activos Financieros": {
"account_number": "1.4.4",
"account_type": "Chargeable",
"is_group": 1
},
"Provisi\u00f3n por Riesgo de Cr\u00e9dito (agregado) (Contra-activo)": {
"account_number": "1.4.5",
"account_type": "Round Off",
"is_group": 1
},
"account_number": "1.4",
"account_type": "Chargeable"
},
"Activos Intangibles": {
"account_number": "1.3",
"account_type": "Chargeable",
"is_group": 1
},
"Caja y Equivalentes": {
"Caja": {
"account_number": "1.9.1",
"account_type": "Cash",
"is_group": 1
},
"Equivalentes de Efectivo (Bancos)": {
"Bancos Internacionales": {
"HSBC": {
"account_number": "1.9.2.2.1",
"account_type": "Bank"
},
"account_number": "1.9.2.2",
"account_type": "Bank"
},
"Bancos Nacionales": {
"Banco Agromercantil de Guatemala": {
"account_number": "1.9.2.1.2",
"account_type": "Bank"
},
"Banco G&T Continental": {
"account_number": "1.9.2.1.5",
"account_type": "Bank"
},
"Banco Industrial": {
"account_number": "1.9.2.1.1",
"account_type": "Bank",
"is_group": 1
},
"Banco Internacional": {
"account_number": "1.9.2.1.6",
"account_type": "Bank"
},
"Banco Prom\u00e9rica": {
"account_number": "1.9.2.1.3",
"account_type": "Bank"
},
"Banco de Am\u00e9rica Central": {
"account_number": "1.9.2.1.4",
"account_type": "Bank"
},
"Banco de Desarrollo Rural": {
"account_number": "1.9.2.1.7",
"account_type": "Bank"
},
"Banco de los Trabajadores": {
"account_number": "1.9.2.1.8",
"account_type": "Bank"
},
"Vivibanco": {
"account_number": "1.9.2.1.9",
"account_type": "Bank"
},
"account_number": "1.9.2.1",
"account_type": "Bank"
},
"Cadena de Bloques (Blockchain)": {
"Billetera Bitcoin 1234567890abcdefg": {
"account_number": "1.9.2.3.1",
"account_type": "Cash"
},
"account_number": "1.9.2.3",
"account_type": "Cash"
},
"account_number": "1.9.2",
"account_type": "Bank"
},
"Inversiones a Corto Plazo": {
"account_number": "1.9.3",
"account_type": "Bank",
"is_group": 1
},
"Otros Equivalentes de Caja y Bancos": {
"account_number": "1.9.4",
"account_type": "Cash",
"is_group": 1
},
"account_number": "1.9",
"account_type": "Bank"
},
"Cobrables": {
"Activos bajo Contrato": {
"account_number": "1.8.2",
"account_type": "Receivable",
"is_group": 1
},
"Ajustes": {
"account_number": "1.8.4",
"account_type": "Chargeable",
"is_group": 1
},
"Otras Cuentas por Cobrar": {
"Cuentas Por Cobrar Compa\u00f1\u00edas Afiliadas": {
"Compa\u00f1\u00eda subsidiaria (EJEMPLO)": {
"account_number": "1.8.3.2.1",
"account_type": "Receivable"
},
"account_number": "1.8.3.2",
"account_type": "Receivable"
},
"Cuentas por Cobrar a Empleados": {
"Prestamo EJEMPLO": {
"account_number": "1.8.3.3.1",
"account_type": "Receivable"
},
"account_number": "1.8.3.3",
"account_type": "Receivable"
},
"Cuentas por Cobrar a Otras Entidades no Afiliadas": {
"Compa\u00f1\u00eda No Afiliada (EJEMPLO)": {
"account_number": "1.8.3.1.1",
"account_type": "Receivable"
},
"account_number": "1.8.3.1",
"account_type": "Receivable"
},
"account_number": "1.8.3",
"account_type": "Receivable"
},
"Ventas al Cr\u00e9dito": {
"account_number": "1.8.1",
"account_type": "Receivable",
"is_group": 1
},
"account_number": "1.8",
"account_type": "Receivable"
},
"Impuestos por Cobrar": {
"Retenciones de IVA recibidas": {}
},
"Inventario": {
"Art\u00edculos de Inventario Adicionales": {
"account_number": "1.7.8",
"account_type": "Stock",
"is_group": 1
},
"Combustibles": {
"account_number": "1.7.5",
"account_type": "Stock",
"is_group": 1
},
"Inventarios Pignorados Como Garant\u00eda de Pasivo": {
"account_number": "1.7.10",
"account_type": "Stock",
"is_group": 1
},
"Inventarios a Valor Razonable Menos Costos de Venta": {
"account_number": "1.7.11",
"account_type": "Stock",
"is_group": 1
},
"Materia Prima": {
"account_number": "1.7.1",
"account_type": "Stock",
"is_group": 1
},
"Mercader\u00eda (Mercanc\u00edas)": {
"account_number": "1.7.2",
"account_type": "Stock",
"is_group": 1
},
"Otros Inventarios": {
"Merma o Ajuste de Inventario": {
"account_number": "1.7.9.1",
"account_type": "Stock Adjustment",
"is_group": 1
},
"account_number": "1.7.9",
"account_type": "Stock"
},
"Producto Terminado": {
"account_number": "1.7.7",
"account_type": "Stock",
"is_group": 1
},
"Repuestos": {
"Respuestos en Transito": {
"account_number": "1.7.4.0",
"account_type": "Stock",
"is_group": 1
},
"account_number": "1.7.4",
"account_type": "Stock"
},
"Suministros de Producci\u00f3n y Consumibles": {
"account_number": "1.7.3",
"account_type": "Stock",
"is_group": 1
},
"Trabajo en Progeso": {
"account_number": "1.7.6",
"account_type": "Stock",
"is_group": 1
},
"account_number": "1.7",
"account_type": "Stock"
},
"Inversion en Propiedades": {
"Inversion Inmobiliaria Bajo Construccion": {
"account_number": "1.2.1",
"account_type": "Chargeable"
},
"Inversion Inmobiliaria Construida": {
"account_number": "1.2.2",
"account_type": "Chargeable",
"is_group": 1
},
"account_number": "1.2",
"account_type": "Chargeable"
},
"account_number": "1.0"
},
"No Corriente": {
"Activos Fijos": {
"account_type": "Fixed Asset"
},
"Cargos Diferidos": {}
},
"account_number": "1",
"root_type": "Asset"
},
"Costos": {
"Costo de Ventas": {
"account_type": "Cost of Goods Sold"
},
"Costos Incluidos en la Valuaci\u00f3n": {
"account_type": "Expenses Included In Valuation"
},
"Merma o Ajuste de Inventario": {
"account_type": "Stock Adjustment"
},
"account_number": "5",
"root_type": "Expense"
},
"Gastos": {
"Alquileres": {},
"Depreciaciones": {
"account_type": "Depreciation"
},
"Gastos Diversos": {},
"Gastos de Personal": {},
"Honorarios Profesionales": {},
"Mantenimiento": {},
"Seguros": {},
"Servicios B\u00e1sicos": {},
"account_number": "6",
"root_type": "Expense"
},
"Ingresos": {
"Productos": {},
"Servicios": {},
"account_number": "4",
"root_type": "Income"
},
"Otros Gastos y Productos Financieros": {
"Otros Gastos": {
"Otros Gastos y Productos Financieros 2": {
"Intereses 1": {},
"Otros Gastos Financieros 1": {}
}
},
"Otros Ingresos": {
"Otros Gastos y Productos Financieros 1": {
"Intereses": {},
"Otros Gastos Financieros": {}
}
},
"account_number": "7",
"root_type": "Expense"
},
"Pasivos": {
"Pasivo Corriente": {
"Acreedores 1": {
"account_type": "Payable"
@@ -22,329 +409,14 @@
"Acreedores": {},
"Provisi\u00f3n para Indemnizaciones": {}
},
"account_number": "2",
"root_type": "Liability"
},
"03 - Patrimonio": {
"Patrimonio": {
"Capital": {},
"Resultados del Ejercicio": {},
"Utilidades Retenidas": {},
"root_type": "Asset"
},
"04 - Ingresos": {
"Productos": {},
"Servicios": {},
"root_type": "Income"
},
"05 - Costos": {
"Costo de Ventas": {
"account_type": "Cost of Goods Sold"
},
"Costos Incluidos en la Valuaci\u00f3n": {
"account_type": "Expenses Included In Valuation"
},
"Merma o Ajuste de Inventario": {
"account_type": "Stock Adjustment"
},
"root_type": "Expense"
},
"06 - Gastos": {
"Alquileres": {},
"Depreciaciones": {
"account_type": "Depreciation"
},
"Gastos Diversos": {},
"Gastos de Personal": {},
"Honorarios Profesionales": {},
"Mantenimiento": {},
"Seguros": {},
"Servicios B\u00e1sicos": {},
"root_type": "Expense"
},
"07 - Otros Gastos y Productos Financieros": {
"Otros Gastos": {
"Otros Gastos y Productos Financieros 2": {
"Intereses 1": {},
"Otros Gastos Financieros 1": {}
}
},
"Otros Ingresos": {
"Otros Gastos y Productos Financieros 1": {
"Intereses": {},
"Otros Gastos Financieros": {}
}
},
"root_type": "Expense"
},
"1 - Activos": {
"1. Activo Corriente": {
"1.10 Activos Corrientes Adicionales": {
"1.10.1 Inversiones Corrientes no Clasificados como Equivalentes de Caja y Bancos": {},
"1.10.2 Activos Diferidos o Restringidos": {
"1.10.2.1 Cr\u00e9dito Fiscal (IVA Por Cobrar)": {
"account_type": "Chargeable",
"is_group": 1
},
"account_type": "Chargeable"
},
"account_type": "Chargeable"
},
"1.2 Inversion en Propiedades": {
"1.2.1 Inversion Inmobiliaria Bajo Construccion": {
"account_type": "Chargeable"
},
"1.2.2 Inversion Inmobiliaria Construida": {
"account_type": "Chargeable",
"is_group": 1
},
"account_type": "Chargeable"
},
"1.3 Activos Intangibles": {
"account_type": "Chargeable",
"is_group": 1
},
"1.4 Activos Financieros": {
"1.4.1 Inversion o Participaci\u00f3n Accionaria en Empresas Afiliadas": {
"account_type": "Chargeable",
"is_group": 1
},
"1.4.2 Inversiones Burs\u00e1tiles e Instrumentos Financieros": {
"account_type": "Chargeable",
"is_group": 1
},
"1.4.3 Activos Financieros Derivados": {
"account_type": "Chargeable",
"is_group": 1
},
"1.4.4 Otros Activos Financieros": {
"account_type": "Chargeable",
"is_group": 1
},
"1.4.5 Provisi\u00f3n por Riesgo de Cr\u00e9dito (agregado) (Contra-activo)": {
"account_type": "Round Off",
"is_group": 1
},
"1.4.6 Activos Financieros Clasificados por Designaci\u00f3n": {
"account_type": "Chargeable",
"is_group": 1
},
"account_type": "Chargeable"
},
"1.5 Activos Biol\u00f3gicos": {
"1.5.1 Activos Biol\u00f3gicos al Costo": {
"account_type": "Stock",
"is_group": 1
},
"1.5.2 Activos Biol\u00f3gicos a Valor Razonable": {
"1.5.2.1 Animales": {
"account_type": "Stock",
"is_group": 1
},
"1.5.2.2 Plantas": {
"1.5.2.2.1 Division productiva 1er nivel EJEMPLO": {
"1.5.2.2.1.1 Division Productiva 2do nivel EJEMPLO": {
"1.5.2.2.1.1.1 Division Productiva 3er Nivel EJEMPLO": {
"1.5.2.2.1.1.1.1 Divisi\u00f3n Productiva 4\u00ba Nivel EJEMPLO": {},
"account_type": "Stock"
},
"account_type": "Stock"
},
"account_type": "Stock"
},
"account_type": "Stock"
},
"account_type": "Stock"
},
"account_type": "Stock"
},
"1.6 Activos Devengables y Otros Activos": {
"1.6.1 Pagos Anticipados y Otros Activos Circulantes": {
"1.6.1.0 Seguro Pagado Anticipadamente": {
"account_type": "Chargeable"
},
"account_type": "Chargeable"
},
"1.6.2 Cobrables Relacionados con Impuestos": {
"account_type": "Chargeable",
"is_group": 1
},
"1.6.3 Proveedores de Servicio": {
"account_type": "Chargeable",
"is_group": 1
},
"1.6.4 Contratos de Construccion": {
"account_type": "Chargeable",
"is_group": 1
},
"1.6.5 Costos de Montaje": {
"account_type": "Chargeable",
"is_group": 1
},
"1.6.6 Activos Adicionales y Otros": {
"account_type": "Chargeable",
"is_group": 1
},
"account_type": "Chargeable"
},
"1.7 Inventario": {
"1.7.1 Materia Prima": {
"account_type": "Stock",
"is_group": 1
},
"1.7.10 Inventarios Pignorados Como Garant\u00eda de Pasivo": {
"account_type": "Stock",
"is_group": 1
},
"1.7.11 Inventarios a Valor Razonable Menos Costos de Venta": {
"account_type": "Stock",
"is_group": 1
},
"1.7.2 Mercader\u00eda (Mercanc\u00edas)": {
"account_type": "Stock",
"is_group": 1
},
"1.7.3 Suministros de Producci\u00f3n y Consumibles": {
"account_type": "Stock",
"is_group": 1
},
"1.7.4 Repuestos": {
"1.7.4.0 Respuestos en Transito": {
"account_type": "Stock",
"is_group": 1
},
"account_type": "Stock"
},
"1.7.5 Combustibles": {
"account_type": "Stock",
"is_group": 1
},
"1.7.6 Trabajo en Progeso": {
"account_type": "Stock",
"is_group": 1
},
"1.7.7 Producto Terminado": {
"account_type": "Stock",
"is_group": 1
},
"1.7.8 Art\u00edculos de Inventario Adicionales": {
"account_type": "Stock",
"is_group": 1
},
"1.7.9 Otros Inventarios": {
"1.7.9.1 Merma o Ajuste de Inventario": {
"account_type": "Stock Adjustment",
"is_group": 1
},
"account_type": "Stock"
},
"account_type": "Stock"
},
"1.8 Cobrables": {
"1.8.1 Ventas al Cr\u00e9dito": {
"account_type": "Receivable",
"is_group": 1
},
"1.8.2 Activos bajo Contrato": {
"account_type": "Receivable",
"is_group": 1
},
"1.8.3 Otras Cuentas por Cobrar": {
"1.8.3.1 Cuentas por Cobrar a Otras Entidades no Afiliadas": {
"1.8.3.1.1 Compa\u00f1\u00eda No Afiliada (EJEMPLO)": {
"account_type": "Receivable"
},
"account_type": "Receivable"
},
"1.8.3.2 Cuentas Por Cobrar Compa\u00f1\u00edas Afiliadas": {
"1.8.3.2.1 Compa\u00f1\u00eda subsidiaria (EJEMPLO)": {
"account_type": "Receivable"
},
"account_type": "Receivable"
},
"1.8.3.3 Cuentas por Cobrar a Empleados": {
"1.8.3.3.1 Prestamo EJEMPLO": {
"account_type": "Receivable"
},
"account_type": "Receivable"
},
"account_type": "Receivable"
},
"1.8.4 Ajustes": {
"account_type": "Chargeable",
"is_group": 1
},
"account_type": "Receivable"
},
"1.9 Caja y Equivalentes": {
"1.9.1 Caja": {
"account_type": "Cash",
"is_group": 1
},
"1.9.2 Equivalentes de Efectivo (Bancos)": {
"1.9.2.1 Bancos Nacionales": {
"1.9.2.1.1 Banco Industrial": {
"account_type": "Bank",
"is_group": 1
},
"1.9.2.1.2 Banco Agromercantil de Guatemala": {
"account_type": "Bank"
},
"1.9.2.1.3 Banco Prom\u00e9rica": {
"account_type": "Bank"
},
"1.9.2.1.4 Banco de Am\u00e9rica Central": {
"account_type": "Bank"
},
"1.9.2.1.5 Banco G&T Continental": {
"account_type": "Bank"
},
"1.9.2.1.6 Banco Internacional": {
"account_type": "Bank"
},
"1.9.2.1.7 Banco de Desarrollo Rural": {
"account_type": "Bank"
},
"1.9.2.1.8 Banco de los Trabajadores": {
"account_type": "Bank"
},
"1.9.2.1.9 Vivibanco": {
"account_type": "Bank"
},
"account_type": "Bank"
},
"1.9.2.2 Bancos Internacionales": {
"1.9.2.2.1 HSBC": {
"account_type": "Bank"
},
"account_type": "Bank"
},
"1.9.2.3 Cadena de Bloques (Blockchain)": {
"1.9.2.3.1 Billetera Bitcoin 1234567890abcdefg": {
"account_type": "Cash"
},
"account_type": "Cash"
},
"account_type": "Bank"
},
"1.9.3 Inversiones a Corto Plazo": {
"account_type": "Bank",
"is_group": 1
},
"1.9.4 Otros Equivalentes de Caja y Bancos": {
"account_type": "Cash",
"is_group": 1
},
"account_type": "Bank"
},
"Impuestos por Cobrar": {
"Retenciones de IVA recibidas": {}
}
},
"No Corriente": {
"Activos Fijos": {
"account_type": "Fixed Asset"
},
"Cargos Diferidos": {}
},
"account_number": "3",
"root_type": "Asset"
}
}

View File

@@ -527,7 +527,7 @@
"root_type": "Liability"
},
"5. SZ\u00c1MLAOSZT\u00c1LY K\u00d6LTS\u00c9GNEMEK": {
"51 - 53 ANYAGJELLEG\u00db R\u00c1FORD\u00cdT\u00c1SOK ": {
"51 - 53. ANYAGJELLEG\u00db R\u00c1FORD\u00cdT\u00c1SOK ": {
"51. ANYAGK\u00d6LTS\u00c9G": {
"511. V\u00e1s\u00e1rolt anyagok k\u00f6lts\u00e9gei ": {
"5111. Alapanyag k\u00f6lts\u00e9gek": {},
@@ -618,23 +618,8 @@
"581. Saj\u00e1t termel\u00e9s\u0171 k\u00e9szletek \u00e1llom\u00e1nyv\u00e1ltoz\u00e1sa ": {},
"582. Saj\u00e1t el\u0151\u00e1ll\u00edt\u00e1s\u00fa eszk\u00f6z\u00f6k aktiv\u00e1lt \u00e9rt\u00e9ke": {},
"589. Aktiv\u00e1lt saj\u00e1t teljes\u00edtm\u00e9nyek \u00e1tvezet\u00e9si sz\u00e1mla": {}
},
"59. K\u00d6LTS\u00c9GNEM ELLENSZ\u00c1MLA (els\u0151dleges k\u00f6lts\u00e9ghely-k\u00f6lts\u00e9gvisel\u0151 elsz\u00e1mol\u00f3s eset\u00e9n) ": {
"is_group": 1
},
"59. K\u00d6LTS\u00c9GNEM \u00c1TVEZET\u00c9SI SZ\u00c1MLA (els\u0151dleges k\u00f6lts\u00e9gnem-elsz\u00e1mol\u00e1s eset\u00e9n)": {
"is_group": 1
},
"59. K\u00d6LTS\u00c9GNEM \u00c1TVEZET\u00c9SI SZ\u00c1MLA (els\u0151dleges k\u00f6lts\u00e9gnem-elsz\u00e1mol\u00e1s eset\u00e9n, kiz\u00e1r\u00f3lag \u00f6sszk\u00f6lts\u00e9g elj\u00e1r\u00e1ssal)": {
"59/51. Anyagk\u00f6lts\u00e9g \u00e1tvezet\u00e9si sz\u00e1mla": {},
"59/52. Ig\u00e9nybe vett szolg\u00e1ltat\u00e1sok k\u00f6lts\u00e9gei \u00e1tvezet\u00e9si sz\u00e1mla ": {},
"59/53. Egy\u00e9b szolg\u00e1ltat\u00e1sok k\u00f6lts\u00e9gei \u00e1tvezet\u00e9si sz\u00e1mla ": {},
"59/54. B\u00e9rk\u00f6lts\u00e9g \u00e1tvezet\u00e9si sz\u00e1mla": {},
"59/55. Szem\u00e9lyi jelleg\u0171 egy\u00e9b kifizet\u00e9sek \u00e1tvezet\u00e9si sz\u00e1mla ": {},
"59/56. B\u00e9rj\u00e1rul\u00e9kok \u00e1tvezet\u00e9si sz\u00e1mla": {},
"59/57. \u00c9rt\u00e9kcs\u00f6kken\u00e9si le\u00edr\u00e1s \u00e1tvezet\u00e9si sz\u00e1mla ": {}
},
"59. K\u00d6LTS\u00c9GNEM \u00c1TVEZET\u00c9SI SZ\u00c1MLA (kiz\u00e1r\u00f3lag k\u00f6lts\u00e9gnem-elsz\u00e1mol\u00e1s \u00e9s forgalmi k\u00f6lts\u00e9g elj\u00e1r\u00e1ssal)": {
},
"59. K\u00d6LTS\u00c9GNEM \u00c1TVEZET\u00c9SI SZ\u00c1MLA": {
"is_group": 1
},
"root_type": "Expense"

View File

@@ -2,160 +2,161 @@
"country_code": "in",
"name": "India - Chart of Accounts",
"tree": {
"Application of Funds (Assets)": {
"Current Assets": {
"Accounts Receivable": {
"Debtors": {
"account_type": "Receivable"
}
},
"Bank Accounts": {
"account_type": "Bank",
"is_group": 1
},
"Cash In Hand": {
"Cash": {
"account_type": "Cash"
},
"account_type": "Cash"
},
"Loans and Advances (Assets)": {
"is_group": 1
},
"Securities and Deposits": {
"Earnest Money": {}
},
"Stock Assets": {
"Stock in Hand": {
"account_type": "Stock"
}
},
"Tax Assets": {
"is_group": 1
}
},
"Fixed Assets": {
"Capital Equipments": {
"account_type": "Fixed Asset"
},
"Electronic Equipments": {
"account_type": "Fixed Asset"
},
"Furnitures and Fixtures": {
"account_type": "Fixed Asset"
},
"Office Equipments": {
"account_type": "Fixed Asset"
},
"Plants and Machineries": {
"account_type": "Fixed Asset"
},
"Buildings": {
"account_type": "Fixed Asset"
},
"Accumulated Depreciations": {
"account_type": "Accumulated Depreciation"
}
},
"Investments": {
"is_group": 1
},
"Temporary Accounts": {
"Temporary Opening": {
"account_type": "Temporary"
}
},
"root_type": "Asset"
},
"Expenses": {
"Direct Expenses": {
"Stock Expenses": {
"Cost of Goods Sold": {
"account_type": "Cost of Goods Sold"
},
"Expenses Included In Valuation": {
"account_type": "Expenses Included In Valuation"
},
"Stock Adjustment": {
"account_type": "Stock Adjustment"
}
}
},
"Indirect Expenses": {
"Administrative Expenses": {},
"Commission on Sales": {},
"Depreciation": {
"account_type": "Depreciation"
},
"Entertainment Expenses": {},
"Freight and Forwarding Charges": {
"account_type": "Chargeable"
},
"Legal Expenses": {},
"Marketing Expenses": {},
"Miscellaneous Expenses": {},
"Office Maintenance Expenses": {},
"Office Rent": {},
"Postal Expenses": {},
"Print and Stationary": {},
"Rounded Off": {
"account_type": "Round Off"
},
"Salary": {},
"Sales Expenses": {},
"Telephone Expenses": {},
"Travel Expenses": {},
"Utility Expenses": {},
"Write Off": {},
"Exchange Gain/Loss": {},
"Gain/Loss on Asset Disposal": {}
},
"root_type": "Expense"
},
"Income": {
"Direct Income": {
"Sales": {
"account_type": "Income Account"
},
"Service": {
"account_type": "Income Account"
},
"account_type": "Income Account"
},
"Indirect Income": {
"account_type": "Income Account",
"is_group": 1
},
"root_type": "Income"
},
"Source of Funds (Liabilities)": {
"Capital Account": {
"Reserves and Surplus": {},
"Shareholders Funds": {}
},
"Current Liabilities": {
"Accounts Payable": {
"Creditors": {
"account_type": "Payable"
},
"Payroll Payable": {}
},
"Stock Liabilities": {
"Stock Received But Not Billed": {
"account_type": "Stock Received But Not Billed"
}
},
"Duties and Taxes": {
"account_type": "Tax",
"is_group": 1
},
"Loans (Liabilities)": {
"Secured Loans": {},
"Unsecured Loans": {},
"Bank Overdraft Account": {}
}
},
"root_type": "Liability"
}
}
"Application of Funds (Assets)": {
"Current Assets": {
"Accounts Receivable": {
"Debtors": {
"account_type": "Receivable"
}
},
"Bank Accounts": {
"account_type": "Bank",
"is_group": 1
},
"Cash In Hand": {
"Cash": {
"account_type": "Cash"
},
"account_type": "Cash"
},
"Loans and Advances (Assets)": {
"is_group": 1
},
"Securities and Deposits": {
"Earnest Money": {}
},
"Stock Assets": {
"Stock In Hand": {
"account_type": "Stock"
},
"account_type": "Stock"
},
"Tax Assets": {
"is_group": 1
}
},
"Fixed Assets": {
"Capital Equipments": {
"account_type": "Fixed Asset"
},
"Electronic Equipments": {
"account_type": "Fixed Asset"
},
"Furnitures and Fixtures": {
"account_type": "Fixed Asset"
},
"Office Equipments": {
"account_type": "Fixed Asset"
},
"Plants and Machineries": {
"account_type": "Fixed Asset"
},
"Buildings": {
"account_type": "Fixed Asset"
},
"Accumulated Depreciations": {
"account_type": "Accumulated Depreciation"
}
},
"Investments": {
"is_group": 1
},
"Temporary Accounts": {
"Temporary Opening": {
"account_type": "Temporary"
}
},
"root_type": "Asset"
},
"Expenses": {
"Direct Expenses": {
"Stock Expenses": {
"Cost of Goods Sold": {
"account_type": "Cost of Goods Sold"
},
"Expenses Included In Valuation": {
"account_type": "Expenses Included In Valuation"
},
"Stock Adjustment": {
"account_type": "Stock Adjustment"
}
}
},
"Indirect Expenses": {
"Administrative Expenses": {},
"Commission on Sales": {},
"Depreciation": {
"account_type": "Depreciation"
},
"Entertainment Expenses": {},
"Freight and Forwarding Charges": {
"account_type": "Chargeable"
},
"Legal Expenses": {},
"Marketing Expenses": {},
"Miscellaneous Expenses": {},
"Office Maintenance Expenses": {},
"Office Rent": {},
"Postal Expenses": {},
"Print and Stationary": {},
"Rounded Off": {
"account_type": "Round Off"
},
"Salary": {},
"Sales Expenses": {},
"Telephone Expenses": {},
"Travel Expenses": {},
"Utility Expenses": {},
"Write Off": {},
"Exchange Gain/Loss": {},
"Gain/Loss on Asset Disposal": {}
},
"root_type": "Expense"
},
"Income": {
"Direct Income": {
"Sales": {
"account_type": "Income Account"
},
"Service": {
"account_type": "Income Account"
},
"account_type": "Income Account"
},
"Indirect Income": {
"account_type": "Income Account",
"is_group": 1
},
"root_type": "Income"
},
"Source of Funds (Liabilities)": {
"Capital Account": {
"Reserves and Surplus": {},
"Shareholders Funds": {}
},
"Current Liabilities": {
"Accounts Payable": {
"Creditors": {
"account_type": "Payable"
},
"Payroll Payable": {}
},
"Stock Liabilities": {
"Stock Received But Not Billed": {
"account_type": "Stock Received But Not Billed"
}
},
"Duties and Taxes": {
"account_type": "Tax",
"is_group": 1
},
"Loans (Liabilities)": {
"Secured Loans": {},
"Unsecured Loans": {},
"Bank Overdraft Account": {}
}
},
"root_type": "Liability"
}
}
}

View File

@@ -0,0 +1,275 @@
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
from frappe import _
def get():
return {
_("Application of Funds (Assets)"): {
_("Current Assets"): {
_("Accounts Receivable"): {
_("Debtors"): {
"account_type": "Receivable",
"account_number": "1310"
},
"account_number": "1300"
},
_("Bank Accounts"): {
"account_type": "Bank",
"is_group": 1,
"account_number": "1200"
},
_("Cash In Hand"): {
_("Cash"): {
"account_type": "Cash",
"account_number": "1110"
},
"account_type": "Cash",
"account_number": "1100"
},
_("Loans and Advances (Assets)"): {
"is_group": 1,
"account_number": "1600"
},
_("Securities and Deposits"): {
_("Earnest Money"): {
"account_number": "1651"
},
"account_number": "1650"
},
_("Stock Assets"): {
_("Stock In Hand"): {
"account_type": "Stock",
"account_number": "1410"
},
"account_type": "Stock",
"account_number": "1400"
},
_("Tax Assets"): {
"is_group": 1,
"account_number": "1500"
},
"account_number": "1100-1600"
},
_("Fixed Assets"): {
_("Capital Equipments"): {
"account_type": "Fixed Asset",
"account_number": "1710"
},
_("Electronic Equipments"): {
"account_type": "Fixed Asset",
"account_number": "1720"
},
_("Furnitures and Fixtures"): {
"account_type": "Fixed Asset",
"account_number": "1730"
},
_("Office Equipments"): {
"account_type": "Fixed Asset",
"account_number": "1740"
},
_("Plants and Machineries"): {
"account_type": "Fixed Asset",
"account_number": "1750"
},
_("Buildings"): {
"account_type": "Fixed Asset",
"account_number": "1760"
},
_("Softwares"): {
"account_type": "Fixed Asset",
"account_number": "1770"
},
_("Accumulated Depreciation"): {
"account_type": "Accumulated Depreciation",
"account_number": "1780"
},
"account_number": "1700"
},
_("Investments"): {
"is_group": 1,
"account_number": "1800"
},
_("Temporary Accounts"): {
_("Temporary Opening"): {
"account_type": "Temporary",
"account_number": "1910"
},
"account_number": "1900"
},
"root_type": "Asset",
"account_number": "1000"
},
_("Expenses"): {
_("Direct Expenses"): {
_("Stock Expenses"): {
_("Cost of Goods Sold"): {
"account_type": "Cost of Goods Sold",
"account_number": "5111"
},
_("Expenses Included In Valuation"): {
"account_type": "Expenses Included In Valuation",
"account_number": "5118"
},
_("Stock Adjustment"): {
"account_type": "Stock Adjustment",
"account_number": "5119"
},
"account_number": "5110"
},
"account_number": "5100"
},
_("Indirect Expenses"): {
_("Administrative Expenses"): {
"account_number": "5201"
},
_("Commission on Sales"): {
"account_number": "5202"
},
_("Depreciation"): {
"account_type": "Depreciation",
"account_number": "5203"
},
_("Entertainment Expenses"): {
"account_number": "5204"
},
_("Freight and Forwarding Charges"): {
"account_type": "Chargeable",
"account_number": "5205"
},
_("Legal Expenses"): {
"account_number": "5206"
},
_("Marketing Expenses"): {
"account_type": "Chargeable",
"account_number": "5207"
},
_("Office Maintenance Expenses"): {
"account_number": "5208"
},
_("Office Rent"): {
"account_number": "5209"
},
_("Postal Expenses"): {
"account_number": "5210"
},
_("Print and Stationery"): {
"account_number": "5211"
},
_("Round Off"): {
"account_type": "Round Off",
"account_number": "5212"
},
_("Salary"): {
"account_number": "5213"
},
_("Sales Expenses"): {
"account_number": "5214"
},
_("Telephone Expenses"): {
"account_number": "5215"
},
_("Travel Expenses"): {
"account_number": "5216"
},
_("Utility Expenses"): {
"account_number": "5217"
},
_("Write Off"): {
"account_number": "5218"
},
_("Exchange Gain/Loss"): {
"account_number": "5219"
},
_("Gain/Loss on Asset Disposal"): {
"account_number": "5220"
},
_("Miscellaneous Expenses"): {
"account_type": "Chargeable",
"account_number": "5221"
},
"account_number": "5200"
},
"root_type": "Expense",
"account_number": "5000"
},
_("Income"): {
_("Direct Income"): {
_("Sales"): {
"account_number": "4110"
},
_("Service"): {
"account_number": "4120"
},
"account_number": "4100"
},
_("Indirect Income"): {
"is_group": 1,
"account_number": "4200"
},
"root_type": "Income",
"account_number": "4000"
},
_("Source of Funds (Liabilities)"): {
_("Current Liabilities"): {
_("Accounts Payable"): {
_("Creditors"): {
"account_type": "Payable",
"account_number": "2110"
},
_("Payroll Payable"): {
"account_number": "2120"
},
"account_number": "2100"
},
_("Stock Liabilities"): {
_("Stock Received But Not Billed"): {
"account_type": "Stock Received But Not Billed",
"account_number": "2210"
},
"account_number": "2200"
},
_("Duties and Taxes"): {
"account_type": "Tax",
"is_group": 1,
"account_number": "2300"
},
_("Loans (Liabilities)"): {
_("Secured Loans"): {
"account_number": "2410"
},
_("Unsecured Loans"): {
"account_number": "2420"
},
_("Bank Overdraft Account"): {
"account_number": "2430"
},
"account_number": "2400"
},
"account_number": "2100-2400"
},
"root_type": "Liability",
"account_number": "2000"
},
_("Equity"): {
_("Capital Stock"): {
"account_type": "Equity",
"account_number": "3100"
},
_("Dividends Paid"): {
"account_type": "Equity",
"account_number": "3200"
},
_("Opening Balance Equity"): {
"account_type": "Equity",
"account_number": "3300"
},
_("Retained Earnings"): {
"account_type": "Equity",
"account_number": "3400"
},
"root_type": "Equity",
"account_number": "3000"
}
}

View File

@@ -2,9 +2,40 @@
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import unittest
import frappe
from erpnext.stock import get_warehouse_account, get_company_default_inventory_account
class TestAccount(unittest.TestCase):
def test_rename_account(self):
if not frappe.db.exists("Account", "1210 - Debtors - _TC"):
acc = frappe.new_doc("Account")
acc.account_name = "Debtors"
acc.parent_account = "Accounts Receivable - _TC"
acc.account_number = "1210"
acc.company = "_Test Company"
acc.insert()
account_number, account_name = frappe.db.get_value("Account", "1210 - Debtors - _TC",
["account_number", "account_name"])
self.assertEqual(account_number, "1210")
self.assertEqual(account_name, "Debtors")
frappe.rename_doc("Account", "1210 - Debtors - _TC", "1211 - Debtors 1 - _TC")
new_acc = frappe.db.get_value("Account", "1211 - Debtors 1 - _TC",
["account_name", "account_number"], as_dict=1)
self.assertEqual(new_acc.account_name, "Debtors 1")
self.assertEqual(new_acc.account_number, "1211")
frappe.rename_doc("Account", "1211 - Debtors 1 - _TC", "Debtors 2")
new_acc = frappe.db.get_value("Account", "1211 - Debtors 2 - _TC",
["account_name", "account_number"], as_dict=1)
self.assertEqual(new_acc.account_name, "Debtors 2")
self.assertEqual(new_acc.account_number, "1211")
frappe.delete_doc("Account", "1211 - Debtors 2 - _TC")
def _make_test_records(verbose):
from frappe.test_runner import make_test_objects
@@ -21,6 +52,7 @@ def _make_test_records(verbose):
["_Test Account Customs Duty", "_Test Account Stock Expenses", 0, "Tax", None],
["_Test Account Insurance Charges", "_Test Account Stock Expenses", 0, "Chargeable", None],
["_Test Account Stock Adjustment", "_Test Account Stock Expenses", 0, "Stock Adjustment", None],
["_Test Employee Advance", "Current Liabilities", 0, None, None],
["_Test Account Tax Assets", "Current Assets", 1, None, None],
["_Test Account VAT", "_Test Account Tax Assets", 0, "Tax", None],

View File

@@ -5,7 +5,9 @@ QUnit.test("test account", function(assert) {
let done = assert.async();
frappe.run_serially([
() => frappe.set_route('Tree', 'Account'),
() => frappe.timeout(3),
() => frappe.click_button('Expand All'),
() => frappe.timeout(1),
() => frappe.click_link('Debtors'),
() => frappe.click_button('Edit'),
() => frappe.timeout(1),

View File

@@ -0,0 +1,69 @@
QUnit.module('accounts');
QUnit.test("test account with number", function(assert) {
assert.expect(7);
let done = assert.async();
frappe.run_serially([
() => frappe.set_route('Tree', 'Account'),
() => frappe.click_link('Income'),
() => frappe.click_button('Add Child'),
() => frappe.timeout(.5),
() => {
cur_dialog.fields_dict.account_name.$input.val("Test Income");
cur_dialog.fields_dict.account_number.$input.val("4010");
},
() => frappe.click_button('Create New'),
() => frappe.timeout(1),
() => {
assert.ok($('a:contains("4010 - Test Income"):visible').length!=0, "Account created with number");
},
() => frappe.click_link('4010 - Test Income'),
() => frappe.click_button('Edit'),
() => frappe.timeout(.5),
() => frappe.click_button('Update Account Number'),
() => frappe.timeout(.5),
() => {
cur_dialog.fields_dict.account_number.$input.val("4020");
},
() => frappe.timeout(1),
() => cur_dialog.primary_action(),
() => frappe.timeout(1),
() => cur_frm.refresh_fields(),
() => frappe.timeout(.5),
() => {
var abbr = frappe.get_abbr(frappe.defaults.get_default("Company"));
var new_account = "4020 - Test Income - " + abbr;
assert.ok(cur_frm.doc.name==new_account, "Account renamed");
assert.ok(cur_frm.doc.account_name=="Test Income", "account name remained same");
assert.ok(cur_frm.doc.account_number=="4020", "Account number updated to 4020");
},
() => frappe.timeout(1),
() => frappe.click_button('Menu'),
() => frappe.click_link('Rename'),
() => frappe.timeout(.5),
() => {
cur_dialog.fields_dict.new_name.$input.val("4030 - Test Income");
},
() => frappe.timeout(.5),
() => frappe.click_button("Rename"),
() => frappe.timeout(2),
() => {
assert.ok(cur_frm.doc.account_name=="Test Income", "account name remained same");
assert.ok(cur_frm.doc.account_number=="4030", "Account number updated to 4030");
},
() => frappe.timeout(.5),
() => frappe.click_button('Chart of Accounts'),
() => frappe.timeout(.5),
() => frappe.click_button('Menu'),
() => frappe.click_link('Refresh'),
() => frappe.click_button('Expand All'),
() => frappe.click_link('4030 - Test Income'),
() => frappe.click_button('Delete'),
() => frappe.click_button('Yes'),
() => frappe.timeout(.5),
() => {
assert.ok($('a:contains("4030 - Test Account"):visible').length==0, "Account deleted");
},
() => done()
]);
});

View File

@@ -286,6 +286,129 @@
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "show_payment_schedule_in_print",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Show Payment Schedule in Print",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "currency_exchange_section",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Currency Exchange Settings",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"default": "1",
"fieldname": "allow_stale",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Allow Stale Exchange Rates",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"default": "1",
"depends_on": "eval:doc.allow_stale==0",
"fieldname": "stale_days",
"fieldtype": "Int",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Stale Days",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"has_web_view": 0,
@@ -299,7 +422,7 @@
"issingle": 1,
"istable": 0,
"max_attachments": 0,
"modified": "2017-06-16 17:39:50.614522",
"modified": "2017-12-25 13:28:05.067615",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Accounts Settings",
@@ -324,6 +447,46 @@
"share": 1,
"submit": 0,
"write": 1
},
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 0,
"delete": 0,
"email": 0,
"export": 0,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 0,
"read": 1,
"report": 0,
"role": "Sales User",
"set_user_permissions": 0,
"share": 0,
"submit": 0,
"write": 0
},
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 0,
"delete": 0,
"email": 0,
"export": 0,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 0,
"read": 1,
"report": 0,
"role": "Purchase User",
"set_user_permissions": 0,
"share": 0,
"submit": 0,
"write": 0
}
],
"quick_entry": 1,

View File

@@ -5,10 +5,27 @@
from __future__ import unicode_literals
import frappe
from frappe import _
from frappe.utils import cint, comma_and
from frappe.utils import cint
from frappe.model.document import Document
from frappe.custom.doctype.property_setter.property_setter import make_property_setter
class AccountsSettings(Document):
def on_update(self):
pass
pass
def validate(self):
self.validate_stale_days()
self.enable_payment_schedule_in_print()
def validate_stale_days(self):
if not self.allow_stale and cint(self.stale_days) <= 0:
frappe.msgprint(
"Stale Days should start from 1.", title='Error', indicator='red',
raise_exception=1)
def enable_payment_schedule_in_print(self):
show_in_print = cint(self.show_payment_schedule_in_print)
for doctype in ("Sales Order", "Sales Invoice", "Purchase Order", "Purchase Invoice"):
make_property_setter(doctype, "due_date", "print_hide", show_in_print, "Check")
make_property_setter(doctype, "payment_schedule", "print_hide", 0 if show_in_print else 1, "Check")

View File

@@ -0,0 +1,35 @@
QUnit.module('accounts');
QUnit.test("test: Accounts Settings doesn't allow negatives", function (assert) {
let done = assert.async();
assert.expect(2);
frappe.run_serially([
() => frappe.set_route('Form', 'Accounts Settings', 'Accounts Settings'),
() => frappe.timeout(2),
() => unchecked_if_checked(cur_frm, 'Allow Stale Exchange Rates', frappe.click_check),
() => cur_frm.set_value('stale_days', 0),
() => frappe.click_button('Save'),
() => frappe.timeout(2),
() => {
assert.ok(cur_dialog);
},
() => frappe.click_button('Close'),
() => cur_frm.set_value('stale_days', -1),
() => frappe.click_button('Save'),
() => frappe.timeout(2),
() => {
assert.ok(cur_dialog);
},
() => frappe.click_button('Close'),
() => done()
]);
});
const unchecked_if_checked = function(frm, field_name, fn){
if (frm.doc.allow_stale) {
return fn(field_name);
}
};

View File

@@ -0,0 +1,22 @@
import unittest
import frappe
class TestAccountsSettings(unittest.TestCase):
def tearDown(self):
# Just in case `save` method succeeds, we need to take things back to default so that other tests
# don't break
cur_settings = frappe.get_doc('Accounts Settings', 'Accounts Settings')
cur_settings.allow_stale = 1
cur_settings.save()
def test_stale_days(self):
cur_settings = frappe.get_doc('Accounts Settings', 'Accounts Settings')
cur_settings.allow_stale = 0
cur_settings.stale_days = 0
self.assertRaises(frappe.ValidationError, cur_settings.save)
cur_settings.stale_days = -1
self.assertRaises(frappe.ValidationError, cur_settings.save)

View File

@@ -0,0 +1,22 @@
QUnit.module('Account');
QUnit.test("test Bank Reconciliation", function(assert) {
assert.expect(0);
let done = assert.async();
frappe.run_serially([
() => frappe.set_route('Form', 'Bank Reconciliation'),
() => cur_frm.set_value('bank_account','Cash - FT'),
() => frappe.click_button('Get Payment Entries'),
() => {
for(var i=0;i<=cur_frm.doc.payment_entries.length-1;i++){
cur_frm.doc.payment_entries[i].clearance_date = frappe.datetime.add_days(frappe.datetime.now_date(), 2);
}
},
() => {cur_frm.refresh_fields('payment_entries');},
() => frappe.click_button('Update Clearance Date'),
() => frappe.timeout(0.5),
() => frappe.click_button('Close'),
() => done()
]);
});

View File

@@ -11,36 +11,6 @@
"doctype": "DocType",
"editable_grid": 0,
"fields": [
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "column_break0",
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"print_width": "50%",
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0,
"width": "50%"
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
@@ -438,7 +408,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 3,
"modified": "2017-06-13 14:28:56.667292",
"modified": "2017-11-10 18:44:44.081464",
"modified_by": "Administrator",
"module": "Accounts",
"name": "C-Form",

View File

@@ -59,9 +59,8 @@ class CostCenter(NestedSet):
return new_cost_center
def after_rename(self, olddn, newdn, merge=False):
super(CostCenter, self).after_rename(olddn, newdn, merge)
if not merge:
frappe.db.set_value("Cost Center", newdn, "cost_center_name",
" - ".join(newdn.split(" - ")[:-1]))
else:
super(CostCenter, self).after_rename(olddn, newdn, merge)

View File

@@ -23,5 +23,30 @@ frappe.treeview_settings["Cost Center"] = {
{fieldtype:'Check', fieldname:'is_group', label:__('Is Group'),
description:__('Further cost centers can be made under Groups but entries can be made against non-Groups')}
],
ignore_fields:["parent_cost_center"]
ignore_fields:["parent_cost_center"],
onload: function(treeview) {
function get_company() {
return treeview.page.fields_dict.company.get_value();
}
// tools
treeview.page.add_inner_button(__("Chart of Accounts"), function() {
frappe.set_route('Tree', 'Account', {company: get_company()});
}, __('View'));
// make
treeview.page.add_inner_button(__("Budget List"), function() {
frappe.set_route('List', 'Budget', {company: get_company()});
}, __('Budget'));
treeview.page.add_inner_button(__("Monthly Distribution"), function() {
frappe.set_route('List', 'Monthly Distribution', {company: get_company()});
}, __('Budget'));
treeview.page.add_inner_button(__("Budget Variance Report"), function() {
frappe.set_route('query-report', 'Budget Variance Report', {company: get_company()});
}, __('Budget'));
},
}

View File

@@ -718,7 +718,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2017-08-03 12:40:09.611951",
"modified": "2017-12-20 12:40:09.611951",
"modified_by": "Administrator",
"module": "Accounts",
"name": "GL Entry",
@@ -794,4 +794,4 @@
"sort_order": "DESC",
"track_changes": 0,
"track_seen": 0
}
}

View File

@@ -36,7 +36,7 @@ class GLEntry(Document):
validate_balance_type(self.account, adv_adj)
# Update outstanding amt on against voucher
if self.against_voucher_type in ['Journal Entry', 'Sales Invoice', 'Purchase Invoice'] \
if self.against_voucher_type in ['Journal Entry', 'Sales Invoice', 'Purchase Invoice', 'Fees'] \
and self.against_voucher and update_outstanding == 'Yes' and not from_repost:
update_outstanding_amt(self.account, self.party_type, self.party, self.against_voucher_type,
self.against_voucher)
@@ -196,7 +196,7 @@ def update_outstanding_amt(account, party_type, party, against_voucher_type, aga
frappe.throw(_("Outstanding for {0} cannot be less than zero ({1})").format(against_voucher, fmt_money(bal)))
# Update outstanding amt on against voucher
if against_voucher_type in ["Sales Invoice", "Purchase Invoice"]:
if against_voucher_type in ["Sales Invoice", "Purchase Invoice", "Fees"]:
ref_doc = frappe.get_doc(against_voucher_type, against_voucher)
ref_doc.db_set('outstanding_amount', bal)
ref_doc.set_status(update=True)

View File

@@ -124,6 +124,15 @@ erpnext.accounts.JournalEntry = frappe.ui.form.Controller.extend({
};
}
if(jvd.reference_type==="Employee Advance") {
return {
filters: {
'status': ['=', 'Unpaid'],
'docstatus': 1
}
};
}
// journal entry
if(jvd.reference_type==="Journal Entry") {
frappe.model.validate_missing(jvd, "account");
@@ -187,20 +196,19 @@ erpnext.accounts.JournalEntry = frappe.ui.form.Controller.extend({
reference_name: function(doc, cdt, cdn) {
var d = frappe.get_doc(cdt, cdn);
if(d.reference_name) {
if (d.reference_type==="Purchase Invoice" && !flt(d.debit)) {
this.get_outstanding('Purchase Invoice', d.reference_name, doc.company, d);
}
if (d.reference_type==="Sales Invoice" && !flt(d.credit)) {
} else if (d.reference_type==="Sales Invoice" && !flt(d.credit)) {
this.get_outstanding('Sales Invoice', d.reference_name, doc.company, d);
}
if (d.reference_type==="Journal Entry" && !flt(d.credit) && !flt(d.debit)) {
} else if (d.reference_type==="Journal Entry" && !flt(d.credit) && !flt(d.debit)) {
this.get_outstanding('Journal Entry', d.reference_name, doc.company, d);
}
}
},
get_outstanding: function(doctype, docname, company, child) {
get_outstanding: function(doctype, docname, company, child, due_date) {
var me = this;
var args = {
"doctype": doctype,

View File

@@ -1337,6 +1337,67 @@
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "subscription_section",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Subscription Section",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 1,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "subscription",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Subscription",
"length": 0,
"no_copy": 1,
"options": "Subscription",
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
@@ -1382,7 +1443,7 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
"modified": "2017-06-13 14:29:09.794076",
"modified": "2017-08-31 11:21:09.442695",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Journal Entry",

View File

@@ -3,7 +3,7 @@
from __future__ import unicode_literals
import frappe, erpnext, json
from frappe.utils import cstr, flt, fmt_money, formatdate
from frappe.utils import cstr, flt, fmt_money, formatdate, getdate
from frappe import msgprint, _, scrub
from erpnext.controllers.accounts_controller import AccountsController
from erpnext.accounts.utils import get_balance_on, get_account_currency
@@ -12,8 +12,8 @@ from erpnext.hr.doctype.expense_claim.expense_claim import update_reimbursed_amo
from erpnext.hr.doctype.employee_loan.employee_loan import update_disbursement_status
class JournalEntry(AccountsController):
def __init__(self, arg1, arg2=None):
super(JournalEntry, self).__init__(arg1, arg2)
def __init__(self, *args, **kwargs):
super(JournalEntry, self).__init__(*args, **kwargs)
def get_feed(self):
return self.voucher_type
@@ -55,7 +55,7 @@ class JournalEntry(AccountsController):
advance_paid = frappe._dict()
for d in self.get("accounts"):
if d.is_advance:
if d.reference_type in ("Sales Order", "Purchase Order"):
if d.reference_type in ("Sales Order", "Purchase Order", "Employee Advance"):
advance_paid.setdefault(d.reference_type, []).append(d.reference_name)
for voucher_type, order_list in advance_paid.items():
@@ -76,7 +76,7 @@ class JournalEntry(AccountsController):
def unlink_advance_entry_reference(self):
for d in self.get("accounts"):
if d.is_advance and d.reference_type in ("Sales Invoice", "Purchase Invoice"):
if d.is_advance == "Yes" and d.reference_type in ("Sales Invoice", "Purchase Invoice"):
doc = frappe.get_doc(d.reference_type, d.reference_name)
doc.delink_advance_entries(self.name)
d.reference_type = ''
@@ -101,8 +101,6 @@ class JournalEntry(AccountsController):
if account_type in ["Receivable", "Payable"]:
if not (d.party_type and d.party):
frappe.throw(_("Row {0}: Party Type and Party is required for Receivable / Payable account {1}").format(d.idx, d.account))
elif d.party_type and d.party:
frappe.throw(_("Row {0}: Party Type and Party is only applicable against Receivable / Payable account").format(d.idx))
def check_credit_limit(self):
customers = list(set([d.party for d in self.get("accounts")
@@ -566,17 +564,26 @@ def get_default_bank_cash_account(company, account_type=None, mode_of_payment=No
account = get_bank_cash_account(mode_of_payment, company).get("account")
if not account:
'''
Set the default account first. If the user hasn't set any default account then, he doesn't
want us to set any random account. In this case set the account only if there is single
account (of that type), otherwise return empty dict.
'''
if account_type=="Bank":
account = frappe.db.get_value("Company", company, "default_bank_account")
if not account:
account = frappe.db.get_value("Account",
{"company": company, "account_type": "Bank", "is_group": 0})
account_list = frappe.get_all("Account", filters = {"company": company,
"account_type": "Bank", "is_group": 0})
if len(account_list) == 1:
account = account_list[0].name
elif account_type=="Cash":
account = frappe.db.get_value("Company", company, "default_cash_account")
if not account:
account = frappe.db.get_value("Account",
{"company": company, "account_type": "Cash", "is_group": 0})
account_list = frappe.get_all("Account", filters = {"company": company,
"account_type": "Cash", "is_group": 0})
if len(account_list) == 1:
account = account_list[0].name
if account:
account_details = frappe.db.get_value("Account", account,
@@ -639,9 +646,8 @@ def get_payment_entry_against_invoice(dt, dn, amount=None, debit_in_account_cur
party_type = "Supplier"
party_account = ref_doc.credit_to
if (dt=="Sales Invoice" and ref_doc.outstanding_amount > 0) \
or (dt=="Purchase Invoice" and ref_doc.outstanding_amount < 0):
if (dt == "Sales Invoice" and ref_doc.outstanding_amount > 0) \
or (dt == "Purchase Invoice" and ref_doc.outstanding_amount < 0):
amount_field_party = "credit_in_account_currency"
amount_field_bank = "debit_in_account_currency"
else:
@@ -662,6 +668,7 @@ def get_payment_entry_against_invoice(dt, dn, amount=None, debit_in_account_cur
"journal_entry": journal_entry
})
def get_payment_entry(ref_doc, args):
cost_center = frappe.db.get_value("Company", ref_doc.company, "cost_center")
exchange_rate = 1
@@ -686,7 +693,7 @@ def get_payment_entry(ref_doc, args):
"cost_center": cost_center,
"account_type": frappe.db.get_value("Account", args.get("party_account"), "account_type"),
"account_currency": args.get("party_account_currency") or \
get_account_currency(args.get("party_account")),
get_account_currency(args.get("party_account")),
"balance": get_balance_on(args.get("party_account")),
"party_balance": get_balance_on(party=args.get("party"), party_type=args.get("party_type")),
"exchange_rate": exchange_rate,
@@ -698,7 +705,7 @@ def get_payment_entry(ref_doc, args):
bank_row = je.append("accounts")
#make it bank_details
# Make it bank_details
bank_account = get_default_bank_cash_account(ref_doc.company, "Bank", account=args.get("bank_account"))
if bank_account:
bank_row.update(bank_account)
@@ -717,7 +724,7 @@ def get_payment_entry(ref_doc, args):
else:
bank_row.set(args.get("amount_field_bank"), amount * exchange_rate)
# set multi currency check
# Multi currency check again
if party_row.account_currency != ref_doc.company_currency \
or (bank_row.account_currency and bank_row.account_currency != ref_doc.company_currency):
je.multi_currency = 1
@@ -727,6 +734,7 @@ def get_payment_entry(ref_doc, args):
return je if args.get("journal_entry") else je.as_dict()
@frappe.whitelist()
def get_opening_accounts(company):
"""get all balance sheet accounts for opening entry"""
@@ -749,6 +757,7 @@ def get_against_jv(doctype, txt, searchfield, start, page_len, filters):
and jv.docstatus = 1 and jv.`{0}` like %s order by jv.name desc limit %s, %s""".format(frappe.db.escape(searchfield)),
(filters.get("account"), cstr(filters.get("party")), "%{0}%".format(txt), start, page_len))
@frappe.whitelist()
def get_outstanding(args):
if not frappe.has_permission("Account"):
@@ -810,6 +819,7 @@ def get_party_account_and_balance(company, party_type, party):
"account_currency": frappe.db.get_value("Account", account, "account_currency")
}
@frappe.whitelist()
def get_account_balance_and_party_type(account, date, company, debit=None, credit=None, exchange_rate=None):
"""Returns dict of account balance and party type to be set in Journal Entry on selection of account."""
@@ -847,7 +857,7 @@ def get_account_balance_and_party_type(account, date, company, debit=None, credi
return grid_values
# Added posting_date as one of the parameters of get_exchange_rate
@frappe.whitelist()
def get_exchange_rate(posting_date, account=None, account_currency=None, company=None,
reference_type=None, reference_name=None, debit=None, credit=None, exchange_rate=None):
@@ -880,6 +890,7 @@ def get_exchange_rate(posting_date, account=None, account_currency=None, company
# don't return None or 0 as it is multipled with a value and that value could be lost
return exchange_rate or 1
@frappe.whitelist()
def get_average_exchange_rate(account):
exchange_rate = 0
@@ -888,4 +899,4 @@ def get_average_exchange_rate(account):
bank_balance_in_company_currency = get_balance_on(account, in_account_currency=False)
exchange_rate = bank_balance_in_company_currency / bank_balance_in_account_currency
return exchange_rate
return exchange_rate

View File

@@ -0,0 +1,39 @@
QUnit.module('Journal Entry');
QUnit.test("test journal entry", function(assert) {
assert.expect(2);
let done = assert.async();
frappe.run_serially([
() => {
return frappe.tests.make('Journal Entry', [
{posting_date:frappe.datetime.add_days(frappe.datetime.nowdate(), 0)},
{accounts: [
[
{'account':'Debtors - '+frappe.get_abbr(frappe.defaults.get_default('Company'))},
{'party_type':'Customer'},
{'party':'Test Customer 1'},
{'credit_in_account_currency':1000},
{'is_advance':'Yes'},
],
[
{'account':'HDFC - '+frappe.get_abbr(frappe.defaults.get_default('Company'))},
{'debit_in_account_currency':1000},
]
]},
{cheque_no:1234},
{cheque_date: frappe.datetime.add_days(frappe.datetime.nowdate(), -1)},
{user_remark: 'Test'},
]);
},
() => cur_frm.save(),
() => {
// get_item_details
assert.ok(cur_frm.doc.total_debit==1000, "total debit correct");
assert.ok(cur_frm.doc.total_credit==1000, "total credit correct");
},
() => frappe.tests.click_button('Submit'),
() => frappe.tests.click_button('Yes'),
() => frappe.timeout(0.3),
() => done()
]);
});

View File

@@ -1,5 +1,6 @@
{
"allow_copy": 0,
"allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"autoname": "hash",
@@ -13,6 +14,7 @@
"engine": "InnoDB",
"fields": [
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 1,
"collapsible": 0,
@@ -46,6 +48,7 @@
"width": "250px"
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -75,6 +78,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -106,6 +110,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -141,6 +146,7 @@
"width": "180px"
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -168,6 +174,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -197,6 +204,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -226,6 +234,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -256,6 +265,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -287,6 +297,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -317,6 +328,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -345,6 +357,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -374,6 +387,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -402,6 +416,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 1,
"collapsible": 0,
@@ -432,6 +447,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 1,
"collapsible": 0,
@@ -464,6 +480,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -491,6 +508,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 1,
"collapsible": 0,
@@ -521,6 +539,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 1,
"collapsible": 0,
@@ -553,6 +572,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -581,6 +601,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -597,7 +618,7 @@
"label": "Reference Type",
"length": 0,
"no_copy": 0,
"options": "\nSales Invoice\nPurchase Invoice\nJournal Entry\nSales Order\nPurchase Order\nExpense Claim\nAsset\nEmployee Loan",
"options": "\nSales Invoice\nPurchase Invoice\nJournal Entry\nSales Order\nPurchase Order\nExpense Claim\nAsset\nEmployee Loan\nPayroll Entry\nEmployee Advance",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -611,6 +632,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -639,8 +661,9 @@
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -671,6 +694,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -698,6 +722,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -729,6 +754,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -759,17 +785,17 @@
"unique": 0
}
],
"has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 1,
"image_view": 0,
"in_create": 0,
"in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"max_attachments": 0,
"modified": "2017-03-02 05:02:10.102039",
"modified": "2017-12-07 19:54:19.851534",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Journal Entry Account",

View File

@@ -0,0 +1,96 @@
// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
frappe.ui.form.on('Opening Invoice Creation Tool', {
setup: function(frm) {
frm.set_query('party_type', 'invoices', function(doc, cdt, cdn) {
return {
filters: {
'name': ['in', 'Customer,Supplier']
}
};
});
},
refresh: function(frm) {
frm.disable_save();
frm.trigger("make_dashboard");
frm.page.set_primary_action(__("Make Invoices"), () => {
let btn_primary = frm.page.btn_primary.get(0);
return frm.call({
doc: frm.doc,
freeze: true,
btn: $(btn_primary),
method: "make_invoices",
freeze_message: __("Creating {0} Invoice", [frm.doc.invoice_type]),
callback: (r) => {
if(!r.exc){
frappe.msgprint(__("Opening {0} Invoice created", [frm.doc.invoice_type]));
frm.clear_table("invoices");
frm.refresh_fields();
frm.reload_doc();
}
}
});
});
},
company: function(frm) {
frappe.call({
method: 'erpnext.accounts.doctype.opening_invoice_creation_tool.opening_invoice_creation_tool.get_temporary_opening_account',
args: {
company: frm.doc.company
},
callback: (r) => {
if (r.message) {
frm.doc.__onload.temporary_opening_account = r.message;
frm.trigger('update_invoice_table');
}
}
})
},
invoice_type: function(frm) {
$.each(frm.doc.invoices, (idx, row) => {
row.party_type = frm.doc.invoice_type == "Sales"? "Customer": "Supplier";
row.party = "";
});
frm.refresh_fields();
},
make_dashboard: function(frm) {
let max_count = frm.doc.__onload.max_count;
let opening_invoices_summary = frm.doc.__onload.opening_invoices_summary;
if(!$.isEmptyObject(opening_invoices_summary)) {
let section = frm.dashboard.add_section(
frappe.render_template('opening_invoice_creation_tool_dashboard', {
data: opening_invoices_summary,
max_count: max_count
})
);
section.on('click', '.invoice-link', function() {
let doctype = $(this).attr('data-type');
let company = $(this).attr('data-company');
frappe.set_route('List', doctype,
{'is_opening': 'Yes', 'company': company, 'docstatus': 1});
});
frm.dashboard.show();
}
},
update_invoice_table: function(frm) {
$.each(frm.doc.invoices, (idx, row) => {
if (!row.temporary_opening_account) {
row.temporary_opening_account = frm.doc.__onload.temporary_opening_account;
}
row.party_type = frm.doc.invoice_type == "Sales"? "Customer": "Supplier";
});
}
});
frappe.ui.form.on('Opening Invoice Creation Tool Item', {
invoices_add: (frm) => {
frm.trigger('update_invoice_table');
}
});

View File

@@ -0,0 +1,184 @@
{
"allow_copy": 1,
"allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"beta": 1,
"creation": "2017-08-29 02:22:54.947711",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"editable_grid": 1,
"engine": "InnoDB",
"fields": [
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "company",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Company",
"length": 0,
"no_copy": 0,
"options": "Company",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "invoice_type",
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Invoice Type",
"length": 0,
"no_copy": 0,
"options": "Sales\nPurchase",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "section_break_4",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Invoices",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 1,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "invoices",
"fieldtype": "Table",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"options": "Opening Invoice Creation Tool Item",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 1,
"idx": 0,
"image_view": 0,
"in_create": 0,
"is_submittable": 0,
"issingle": 1,
"istable": 0,
"max_attachments": 0,
"modified": "2017-09-05 01:30:33.235664",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Opening Invoice Creation Tool",
"name_case": "",
"owner": "Administrator",
"permissions": [
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 0,
"email": 1,
"export": 0,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 0,
"role": "System Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
}
],
"quick_entry": 1,
"read_only": 0,
"read_only_onload": 0,
"show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 1,
"track_seen": 0
}

View File

@@ -0,0 +1,165 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
# For license information, please see license.txt
from __future__ import unicode_literals
import frappe
from frappe import _, scrub
from frappe.utils import flt, nowdate
from frappe.model.document import Document
class OpeningInvoiceCreationTool(Document):
def onload(self):
"""Load the Opening Invoice summary"""
summary, max_count = self.get_opening_invoice_summary()
self.set_onload('opening_invoices_summary', summary)
self.set_onload('max_count', max_count)
self.set_onload('temporary_opening_account', get_temporary_opening_account(self.company))
def get_opening_invoice_summary(self):
def prepare_invoice_summary(doctype, invoices):
# add company wise sales / purchase invoice summary
paid_amount = []
outstanding_amount = []
for invoice in invoices:
company = invoice.pop("company")
_summary = invoices_summary.get(company, {})
_summary.update({
"currency": company_wise_currency.get(company),
doctype: invoice
})
invoices_summary.update({company: _summary})
paid_amount.append(invoice.paid_amount)
outstanding_amount.append(invoice.outstanding_amount)
if paid_amount or outstanding_amount:
max_count.update({
doctype: {
"max_paid": max(paid_amount) if paid_amount else 0.0,
"max_due": max(outstanding_amount) if outstanding_amount else 0.0
}
})
invoices_summary = {}
max_count = {}
fields = [
"company", "count(name) as total_invoices", "sum(outstanding_amount) as outstanding_amount"
]
companies = frappe.get_all("Company", fields=["name as company", "default_currency as currency"])
if not companies:
return None, None
company_wise_currency = {row.company: row.currency for row in companies}
for doctype in ["Sales Invoice", "Purchase Invoice"]:
invoices = frappe.get_all(doctype, filters=dict(is_opening="Yes", docstatus=1),
fields=fields, group_by="company")
prepare_invoice_summary(doctype, invoices)
return invoices_summary, max_count
def make_invoices(self):
names = []
mandatory_error_msg = _("Row {idx}: {field} is required to create the Opening {invoice_type} Invoices")
if not self.company:
frappe.throw(_("Please select the Company"))
for row in self.invoices:
if not row.qty:
row.qty = 1.0
# always mandatory fields for the invoices
if not row.temporary_opening_account:
row.temporary_opening_account = get_temporary_opening_account(self.company)
row.party_type = "Customer" if self.invoice_type == "Sales" else "Supplier"
if not row.item_name:
row.item_name = _("Opening Invoice Item")
if not row.posting_date:
row.posting_date = nowdate()
if not row.due_date:
row.due_date = nowdate()
for d in ("Party", "Outstanding Amount", "Temporary Opening Account"):
if not row.get(scrub(d)):
frappe.throw(mandatory_error_msg.format(
idx=row.idx,
field=_(d),
invoice_type=self.invoice_type
))
args = self.get_invoice_dict(row=row)
if not args:
continue
doc = frappe.get_doc(args).insert()
doc.submit()
names.append(doc.name)
if len(self.invoices) > 5:
frappe.publish_realtime(
"progress", dict(
progress=[row.idx, len(self.invoices)],
title=_('Creating {0}').format(doc.doctype)
),
user=frappe.session.user
)
return names
def get_invoice_dict(self, row=None):
def get_item_dict():
default_uom = frappe.db.get_single_value("Stock Settings", "stock_uom") or _("Nos")
cost_center = frappe.db.get_value("Company", self.company, "cost_center")
if not cost_center:
frappe.throw(
_("Please set the Default Cost Center in {0} company").format(frappe.bold(self.company))
)
rate = flt(row.outstanding_amount) / flt(row.qty)
return frappe._dict({
"uom": default_uom,
"rate": rate or 0.0,
"qty": row.qty,
"conversion_factor": 1.0,
"item_name": row.item_name or "Opening Invoice Item",
"description": row.item_name or "Opening Invoice Item",
income_expense_account_field: row.temporary_opening_account,
"cost_center": cost_center
})
if not row:
return None
party_type = "Customer"
income_expense_account_field = "income_account"
if self.invoice_type == "Purchase":
party_type = "Supplier"
income_expense_account_field = "expense_account"
item = get_item_dict()
return frappe._dict({
"items": [item],
"is_opening": "Yes",
"set_posting_time": 1,
"company": self.company,
"due_date": row.due_date,
"posting_date": row.posting_date,
frappe.scrub(party_type): row.party,
"doctype": "Sales Invoice" if self.invoice_type == "Sales" else "Purchase Invoice",
"currency": frappe.db.get_value("Company", self.company, "default_currency")
})
@frappe.whitelist()
def get_temporary_opening_account(company=None):
if not company:
return
accounts = frappe.get_all("Account", filters={
'company': company,
'account_type': 'Temporary'
})
if not accounts:
frappe.throw(_("Please add a Temporary Opening account in Chart of Accounts"))
return accounts[0].name

View File

@@ -0,0 +1,32 @@
<h5 style="margin-top: 0px;">{{ __("Opening Invoices Summary") }}</h5>
{% $.each(data, (company, summary) => { %}
<h6 style="margin: 15px 0px -10px 0px;"><a class="company-link"> {{ company }}</a></h6>
<table class="table table-bordered small">
<thead>
<tr>
<td style="width: 33%">{{ __("Invoice Type") }}</td>
<td style="width: 33%" class="text-right">{{ __("Opening Invoices") }}</td>
<td style="width: 33%" class="text-right">{{ __("Total Outstanding") }}</td>
</tr>
</thead>
<tbody>
{% $.each(["Sales Invoice", "Purchase Invoice"], (idx, doctype) => { %}
{% if summary[doctype] %}
<tr>
<td>
<a class="invoice-link" data-type="{{ doctype }}" data-company="{{ company }}">
{{ __(doctype) }}</a>
</td>
<td class="text-right">
{{ summary[doctype].total_invoices }}
</td>
<td class="text-right">
{{ format_currency(summary[doctype].outstanding_amount, summary.currency, 2) }}
</td>
</div>
{% endif %}
{% }); %}
</tbody>
</table>
{% }); %}

View File

@@ -0,0 +1,23 @@
/* eslint-disable */
// rename this file from _test_[name] to test_[name] to activate
// and remove above this line
QUnit.test("test: Opening Invoice Creation Tool", function (assert) {
let done = assert.async();
// number of asserts
assert.expect(1);
frappe.run_serially([
// insert a new Opening Invoice Creation Tool
() => frappe.tests.make('Opening Invoice Creation Tool', [
// values to be set
{key: 'value'}
]),
() => {
assert.equal(cur_frm.doc.key, 'value');
},
() => done()
]);
});

View File

@@ -0,0 +1,79 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
# See license.txt
from __future__ import unicode_literals
import frappe
import unittest
test_dependencies = ["Customer", "Supplier"]
from erpnext.accounts.doctype.opening_invoice_creation_tool.opening_invoice_creation_tool import get_temporary_opening_account
class TestOpeningInvoiceCreationTool(unittest.TestCase):
def make_invoices(self, invoice_type="Sales"):
doc = frappe.get_single("Opening Invoice Creation Tool")
args = get_opening_invoice_creation_dict(invoice_type=invoice_type)
doc.update(args)
return doc.make_invoices()
def test_opening_sales_invoice_creation(self):
invoices = self.make_invoices()
self.assertEqual(len(invoices), 2)
expected_value = {
"keys": ["customer", "outstanding_amount", "status"],
0: ["_Test Customer", 300, "Overdue"],
1: ["_Test Customer 1", 250, "Overdue"],
}
self.check_expected_values(invoices, expected_value)
def check_expected_values(self, invoices, expected_value, invoice_type="Sales"):
doctype = "Sales Invoice" if invoice_type == "Sales" else "Purchase Invoice"
for invoice_idx, invoice in enumerate(invoices or []):
si = frappe.get_doc(doctype, invoice)
for field_idx, field in enumerate(expected_value["keys"]):
self.assertEqual(si.get(field, ""), expected_value[invoice_idx][field_idx])
def test_opening_purchase_invoice_creation(self):
invoices = self.make_invoices(invoice_type="Purchase")
self.assertEqual(len(invoices), 2)
expected_value = {
"keys": ["supplier", "outstanding_amount", "status"],
0: ["_Test Supplier", 300, "Overdue"],
1: ["_Test Supplier 1", 250, "Overdue"],
}
self.check_expected_values(invoices, expected_value, invoice_type="Purchase", )
def get_opening_invoice_creation_dict(**args):
party = "Customer" if args.get("invoice_type", "Sales") == "Sales" else "Supplier"
company = args.get("company", "_Test Company")
invoice_dict = frappe._dict({
"company": company,
"invoice_type": args.get("invoice_type", "Sales"),
"invoices": [
{
"qty": 1.0,
"outstanding_amount": 300,
"party": "_Test {0}".format(party),
"item_name": "Opening Item",
"due_date": "2016-09-10",
"posting_date": "2016-09-05",
"temporary_opening_account": get_temporary_opening_account(company)
},
{
"qty": 2.0,
"outstanding_amount": 250,
"party": "_Test {0} 1".format(party),
"item_name": "Opening Item",
"due_date": "2016-09-10",
"posting_date": "2016-09-05",
"temporary_opening_account": get_temporary_opening_account(company)
}
]
})
invoice_dict.update(args)
return invoice_dict

View File

@@ -0,0 +1,378 @@
{
"allow_copy": 0,
"allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"beta": 0,
"creation": "2017-08-29 04:26:36.159247",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"editable_grid": 1,
"engine": "InnoDB",
"fields": [
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "party_type",
"fieldtype": "Link",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Party Type",
"length": 0,
"no_copy": 0,
"options": "DocType",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "party",
"fieldtype": "Dynamic Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Party",
"length": 0,
"no_copy": 0,
"options": "party_type",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "temporary_opening_account",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Temporary Opening Account",
"length": 0,
"no_copy": 0,
"options": "Account",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "column_break_3",
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"default": "Today",
"fieldname": "posting_date",
"fieldtype": "Date",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Posting Date",
"length": 0,
"no_copy": 0,
"options": "",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"default": "Today",
"fieldname": "due_date",
"fieldtype": "Date",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Due Date",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "section_break_5",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"default": "Opening Invoice Item",
"fieldname": "item_name",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Item Name",
"length": 0,
"no_copy": 0,
"options": "",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"default": "0",
"fieldname": "outstanding_amount",
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Outstanding Amount",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "column_break_4",
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"default": "1",
"fieldname": "qty",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Quantity",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"image_view": 0,
"in_create": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"max_attachments": 0,
"modified": "2017-12-19 05:07:01.549918",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Opening Invoice Creation Tool Item",
"name_case": "",
"owner": "Administrator",
"permissions": [],
"quick_entry": 1,
"read_only": 0,
"read_only_onload": 0,
"show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 1,
"track_seen": 0
}

View File

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

View File

@@ -12,7 +12,8 @@ frappe.ui.form.on('Payment Entry', {
setup: function(frm) {
frm.set_query("paid_from", function() {
var party_account_type = frm.doc.party_type=="Customer" ? "Receivable" : "Payable";
var party_account_type = in_list(["Customer", "Student"], frm.doc.party_type) ?
"Receivable" : "Payable";
var account_types = in_list(["Pay", "Internal Transfer"], frm.doc.payment_type) ?
["Bank", "Cash"] : party_account_type;
@@ -28,13 +29,14 @@ frappe.ui.form.on('Payment Entry', {
frm.set_query("party_type", function() {
return{
"filters": {
"name": ["in",["Customer","Supplier", "Employee"]],
"name": ["in",["Customer","Supplier", "Employee", "Student"]],
}
}
});
frm.set_query("paid_to", function() {
var party_account_type = frm.doc.party_type=="Customer" ? "Receivable" : "Payable";
var party_account_type = in_list(["Customer", "Student"], frm.doc.party_type) ?
"Receivable" : "Payable";
var account_types = in_list(["Receive", "Internal Transfer"], frm.doc.payment_type) ?
["Bank", "Cash"] : party_account_type;
@@ -72,6 +74,8 @@ frappe.ui.form.on('Payment Entry', {
var doctypes = ["Purchase Order", "Purchase Invoice", "Journal Entry"];
} else if (frm.doc.party_type=="Employee") {
var doctypes = ["Expense Claim", "Journal Entry"];
} else if (frm.doc.party_type=="Student") {
var doctypes = ["Fees"];
} else {
var doctypes = ["Journal Entry"];
}
@@ -85,7 +89,7 @@ frappe.ui.form.on('Payment Entry', {
child = locals[cdt][cdn];
filters = {"docstatus": 1, "company": doc.company};
party_type_doctypes = ['Sales Invoice', 'Sales Order', 'Purchase Invoice',
'Purchase Order', 'Expense Claim'];
'Purchase Order', 'Expense Claim', 'Fees'];
if (in_list(party_type_doctypes, child.reference_doctype)) {
filters[doc.party_type.toLowerCase()] = doc.party;
@@ -207,19 +211,13 @@ frappe.ui.form.on('Payment Entry', {
frm.set_value(field, null);
});
} else {
if(!frm.doc.party)
{
if (frm.doc.payment_type=="Receive"){
frm.set_value("party_type", "Customer");
}
}
else
{
frm.events.party(frm);
if(frm.doc.party) {
frm.events.party(frm);
}
if(frm.doc.mode_of_payment)
if(frm.doc.mode_of_payment) {
frm.events.mode_of_payment(frm);
}
}
},
@@ -255,20 +253,25 @@ frappe.ui.form.on('Payment Entry', {
},
callback: function(r, rt) {
if(r.message) {
if(frm.doc.payment_type == "Receive") {
frm.set_value("paid_from", r.message.party_account);
frm.set_value("paid_from_account_currency", r.message.party_account_currency);
frm.set_value("paid_from_account_balance", r.message.account_balance);
} else if (frm.doc.payment_type == "Pay"){
frm.set_value("paid_to", r.message.party_account);
frm.set_value("paid_to_account_currency", r.message.party_account_currency);
frm.set_value("paid_to_account_balance", r.message.account_balance);
}
frm.set_value("party_balance", r.message.party_balance);
frm.events.get_outstanding_documents(frm);
frm.events.hide_unhide_fields(frm);
frm.events.set_dynamic_labels(frm);
frm.set_party_account_based_on_party = false;
frappe.run_serially([
() => {
if(frm.doc.payment_type == "Receive") {
frm.set_value("paid_from", r.message.party_account);
frm.set_value("paid_from_account_currency", r.message.party_account_currency);
frm.set_value("paid_from_account_balance", r.message.account_balance);
} else if (frm.doc.payment_type == "Pay"){
frm.set_value("paid_to", r.message.party_account);
frm.set_value("paid_to_account_currency", r.message.party_account_currency);
frm.set_value("paid_to_account_balance", r.message.account_balance);
}
},
() => frm.set_value("party_balance", r.message.party_balance),
() => frm.set_value("party_name", r.message.party_name),
() => frm.events.get_outstanding_documents(frm),
() => frm.events.hide_unhide_fields(frm),
() => frm.events.set_dynamic_labels(frm),
() => { frm.set_party_account_based_on_party = false; }
]);
}
}
});
@@ -404,6 +407,9 @@ frappe.ui.form.on('Payment Entry', {
frm.events.set_difference_amount(frm);
}
// Make read only if Accounts Settings doesn't allow stale rates
frm.set_df_property("source_exchange_rate", "read_only", erpnext.stale_rate_allowed() ? 0 : 1);
},
target_exchange_rate: function(frm) {
@@ -422,6 +428,9 @@ frappe.ui.form.on('Payment Entry', {
frm.events.set_difference_amount(frm);
}
frm.set_paid_amount_based_on_received_amount = false;
// Make read only if Accounts Settings doesn't allow stale rates
frm.set_df_property("target_exchange_rate", "read_only", erpnext.stale_rate_allowed() ? 0 : 1);
},
paid_amount: function(frm) {
@@ -502,7 +511,9 @@ frappe.ui.form.on('Payment Entry', {
c.due_date = d.due_date
c.total_amount = d.invoice_amount;
c.outstanding_amount = d.outstanding_amount;
if(!in_list(["Sales Order", "Purchase Order", "Expense Claim"], d.voucher_type)) {
c.bill_no = d.bill_no;
if(!in_list(["Sales Order", "Purchase Order", "Expense Claim", "Fees"], d.voucher_type)) {
if(flt(d.outstanding_amount) > 0)
total_positive_outstanding += flt(d.outstanding_amount);
else
@@ -517,7 +528,7 @@ frappe.ui.form.on('Payment Entry', {
} else {
c.exchange_rate = 1;
}
if (in_list(['Sales Invoice', 'Purchase Invoice', "Expense Claim"], d.reference_doctype)){
if (in_list(['Sales Invoice', 'Purchase Invoice', "Expense Claim", "Fees"], d.reference_doctype)){
c.due_date = d.due_date;
}
});
@@ -525,7 +536,8 @@ frappe.ui.form.on('Payment Entry', {
if(
(frm.doc.payment_type=="Receive" && frm.doc.party_type=="Customer") ||
(frm.doc.payment_type=="Pay" && frm.doc.party_type=="Supplier") ||
(frm.doc.payment_type=="Pay" && frm.doc.party_type=="Employee")
(frm.doc.payment_type=="Pay" && frm.doc.party_type=="Employee") ||
(frm.doc.payment_type=="Receive" && frm.doc.party_type=="Student")
) {
if(total_positive_outstanding > total_negative_outstanding)
frm.set_value("paid_amount",
@@ -569,13 +581,16 @@ frappe.ui.form.on('Payment Entry', {
})
var allocated_negative_outstanding = 0;
if ((frm.doc.payment_type=="Receive" && frm.doc.party_type=="Customer") ||
if (
(frm.doc.payment_type=="Receive" && frm.doc.party_type=="Customer") ||
(frm.doc.payment_type=="Pay" && frm.doc.party_type=="Supplier") ||
(frm.doc.payment_type=="Pay" && frm.doc.party_type=="Employee")) {
if(total_positive_outstanding_including_order > paid_amount) {
var remaining_outstanding = total_positive_outstanding_including_order - paid_amount;
allocated_negative_outstanding = total_negative_outstanding < remaining_outstanding ?
total_negative_outstanding : remaining_outstanding;
(frm.doc.payment_type=="Pay" && frm.doc.party_type=="Employee") ||
(frm.doc.payment_type=="Receive" && frm.doc.party_type=="Student")
) {
if(total_positive_outstanding_including_order > paid_amount) {
var remaining_outstanding = total_positive_outstanding_including_order - paid_amount;
allocated_negative_outstanding = total_negative_outstanding < remaining_outstanding ?
total_negative_outstanding : remaining_outstanding;
}
var allocated_positive_outstanding = paid_amount + allocated_negative_outstanding;
@@ -641,12 +656,12 @@ frappe.ui.form.on('Payment Entry', {
set_difference_amount: function(frm) {
var unallocated_amount = 0;
var total_deductions = frappe.utils.sum($.map(frm.doc.deductions || [],
function(d) { return flt(d.amount) }));
if(frm.doc.party) {
var party_amount = frm.doc.payment_type=="Receive" ?
frm.doc.paid_amount : frm.doc.received_amount;
var total_deductions = frappe.utils.sum($.map(frm.doc.deductions || [],
function(d) { return flt(d.amount) }));
if(frm.doc.total_allocated_amount < party_amount) {
if(frm.doc.payment_type == "Receive") {
@@ -672,11 +687,7 @@ frappe.ui.form.on('Payment Entry', {
difference_amount = flt(frm.doc.base_paid_amount) - flt(frm.doc.base_received_amount);
}
$.each(frm.doc.deductions || [], function(i, d) {
if(d.amount) difference_amount -= flt(d.amount);
})
frm.set_value("difference_amount", difference_amount);
frm.set_value("difference_amount", difference_amount - total_deductions);
frm.events.hide_unhide_fields(frm);
},

View File

@@ -1659,6 +1659,67 @@
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "subscription_section",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Subscription Section",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 1,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "subscription",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Subscription",
"length": 0,
"no_copy": 1,
"options": "Subscription",
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
@@ -1730,7 +1791,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2017-06-13 14:29:04.244537",
"modified": "2017-08-31 11:20:37.578469",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Payment Entry",

View File

@@ -3,19 +3,21 @@
# For license information, please see license.txt
from __future__ import unicode_literals
import frappe, json
import frappe, erpnext, json
from frappe import _, scrub, ValidationError
from frappe.utils import flt, comma_or, nowdate
from erpnext.accounts.utils import get_outstanding_invoices, get_account_currency, get_balance_on
from erpnext.accounts.party import get_party_account
from erpnext.accounts.doctype.journal_entry.journal_entry \
import get_average_exchange_rate, get_default_bank_cash_account
from erpnext.accounts.doctype.journal_entry.journal_entry import get_default_bank_cash_account
from erpnext.setup.utils import get_exchange_rate
from erpnext.accounts.general_ledger import make_gl_entries
from erpnext.hr.doctype.expense_claim.expense_claim import update_reimbursed_amount
from erpnext.controllers.accounts_controller import AccountsController
class InvalidPaymentEntry(ValidationError): pass
class InvalidPaymentEntry(ValidationError):
pass
class PaymentEntry(AccountsController):
def setup_party_account_field(self):
@@ -70,17 +72,16 @@ class PaymentEntry(AccountsController):
reference_names = []
for d in self.get("references"):
if (d.reference_doctype, d.reference_name) in reference_names:
frappe.throw(_("Row #{0}: Duplicate entry in References {1} {2}").format(d.idx, d.reference_doctype, d.reference_name))
frappe.throw(_("Row #{0}: Duplicate entry in References {1} {2}")
.format(d.idx, d.reference_doctype, d.reference_name))
reference_names.append((d.reference_doctype, d.reference_name))
def validate_allocated_amount(self):
for d in self.get("references"):
if (flt(d.allocated_amount))> 0:
if flt(d.allocated_amount) > flt(d.outstanding_amount):
frappe.throw(_("Row #{0}: Allocated Amount cannot be greater than outstanding amount.").format(d.idx))
def delink_advance_entry_references(self):
for reference in self.references:
if reference.reference_doctype in ("Sales Invoice", "Purchase Invoice"):
@@ -100,8 +101,8 @@ class PaymentEntry(AccountsController):
if not self.party:
frappe.throw(_("Party is mandatory"))
self.party_name = frappe.db.get_value(self.party_type, self.party,
self.party_type.lower() + "_name")
_party_name = "title" if self.party_type == "Student" else self.party_type.lower() + "_name"
self.party_name = frappe.db.get_value(self.party_type, self.party, _party_name)
if self.party:
if not self.party_balance:
@@ -128,7 +129,6 @@ class PaymentEntry(AccountsController):
self.set_missing_ref_details()
def set_missing_ref_details(self):
for d in self.get("references"):
if d.allocated_amount:
@@ -148,8 +148,8 @@ class PaymentEntry(AccountsController):
if not frappe.db.exists(self.party_type, self.party):
frappe.throw(_("Invalid {0}: {1}").format(self.party_type, self.party))
if self.party_account:
party_account_type = "Receivable" if self.party_type=="Customer" else "Payable"
if self.party_account and self.party_type != "Employee":
party_account_type = "Receivable" if self.party_type in ("Customer", "Student") else "Payable"
self.validate_account_type(self.party_account, [party_account_type])
def validate_bank_accounts(self):
@@ -182,12 +182,14 @@ class PaymentEntry(AccountsController):
frappe.throw(_("{0} is mandatory").format(self.meta.get_label(field)))
def validate_reference_documents(self):
if self.party_type == "Customer":
if self.party_type == "Student":
valid_reference_doctypes = ("Fees")
elif self.party_type == "Customer":
valid_reference_doctypes = ("Sales Order", "Sales Invoice", "Journal Entry")
elif self.party_type == "Supplier":
valid_reference_doctypes = ("Purchase Order", "Purchase Invoice", "Journal Entry")
elif self.party_type == "Employee":
valid_reference_doctypes = ("Expense Claim", "Journal Entry")
valid_reference_doctypes = ("Expense Claim", "Journal Entry", "Employee Advance")
for d in self.get("references"):
if not d.allocated_amount:
@@ -204,22 +206,24 @@ class PaymentEntry(AccountsController):
if d.reference_doctype != "Journal Entry":
if self.party != ref_doc.get(scrub(self.party_type)):
frappe.throw(_("{0} {1} does not associated with {2} {3}")
frappe.throw(_("{0} {1} is not associated with {2} {3}")
.format(d.reference_doctype, d.reference_name, self.party_type, self.party))
else:
self.validate_journal_entry()
if d.reference_doctype in ("Sales Invoice", "Purchase Invoice", "Expense Claim"):
if self.party_type=="Customer":
if d.reference_doctype in ("Sales Invoice", "Purchase Invoice", "Expense Claim", "Fees"):
if self.party_type == "Customer":
ref_party_account = ref_doc.debit_to
elif self.party_type == "Student":
ref_party_account = ref_doc.receivable_account
elif self.party_type=="Supplier":
ref_party_account = ref_doc.credit_to
elif self.party_type=="Employee":
ref_party_account = ref_doc.payable_account
if ref_party_account != self.party_account:
frappe.throw(_("{0} {1} is associated with {2}, but Party Account is {3}")
.format(d.reference_doctype, d.reference_name, ref_party_account, self.party_account))
frappe.throw(_("{0} {1} is associated with {2}, but Party Account is {3}")
.format(d.reference_doctype, d.reference_name, ref_party_account, self.party_account))
if ref_doc.docstatus != 1:
frappe.throw(_("{0} {1} must be submitted")
@@ -291,7 +295,7 @@ class PaymentEntry(AccountsController):
def set_difference_amount(self):
base_unallocated_amount = flt(self.unallocated_amount) * (flt(self.source_exchange_rate)
if self.payment_type=="Receive" else flt(self.target_exchange_rate))
if self.payment_type == "Receive" else flt(self.target_exchange_rate))
base_party_amount = flt(self.base_total_allocated_amount) + flt(base_unallocated_amount)
@@ -302,15 +306,15 @@ class PaymentEntry(AccountsController):
else:
self.difference_amount = self.base_paid_amount - flt(self.base_received_amount)
for d in self.get("deductions"):
if d.amount:
self.difference_amount -= flt(d.amount)
total_deductions = sum([flt(d.amount) for d in self.get("deductions")])
self.difference_amount = flt(self.difference_amount, self.precision("difference_amount"))
self.difference_amount = flt(self.difference_amount - total_deductions,
self.precision("difference_amount"))
# Paid amount is auto allocated in the reference document by default.
# Clear the reference document which doesn't have allocated amount on validate so that form can be loaded fast
def clear_unallocated_reference_document_rows(self):
self.set("references", self.get("references", {"allocated_amount": ["not in", [0, None, ""]]}))
frappe.db.sql("""delete from `tabPayment Entry Reference`
where parent = %s and allocated_amount = 0""", self.name)
@@ -393,7 +397,7 @@ class PaymentEntry(AccountsController):
if self.payment_type=="Receive":
against_account = self.paid_to
else:
against_account = self.paid_from
against_account = self.paid_from
party_gl_dict = self.get_gl_dict({
@@ -404,7 +408,7 @@ class PaymentEntry(AccountsController):
"account_currency": self.party_account_currency
})
dr_or_cr = "credit" if self.party_type == "Customer" else "debit"
dr_or_cr = "credit" if self.party_type in ["Customer", "Student"] else "debit"
for d in self.get("references"):
gle = party_gl_dict.copy()
@@ -479,8 +483,9 @@ class PaymentEntry(AccountsController):
def update_advance_paid(self):
if self.payment_type in ("Receive", "Pay") and self.party:
for d in self.get("references"):
if d.allocated_amount and d.reference_doctype in ("Sales Order", "Purchase Order"):
frappe.get_doc(d.reference_doctype, d.reference_name).set_total_advance_paid()
if d.allocated_amount \
and d.reference_doctype in ("Sales Order", "Purchase Order", "Employee Advance"):
frappe.get_doc(d.reference_doctype, d.reference_name).set_total_advance_paid()
def update_expense_claim(self):
if self.payment_type in ("Pay") and self.party:
@@ -489,22 +494,32 @@ class PaymentEntry(AccountsController):
doc = frappe.get_doc("Expense Claim", d.reference_name)
update_reimbursed_amount(doc)
def on_recurring(self, reference_doc, subscription_doc):
self.reference_no = reference_doc.name
self.reference_date = nowdate()
@frappe.whitelist()
def get_outstanding_reference_documents(args):
args = json.loads(args)
if isinstance(args, basestring):
args = json.loads(args)
party_account_currency = get_account_currency(args.get("party_account"))
company_currency = frappe.db.get_value("Company", args.get("company"), "default_currency")
# Get negative outstanding sales /purchase invoices
total_field = "base_grand_total" if party_account_currency == company_currency else "grand_total"
negative_outstanding_invoices = []
if args.get("party_type") not in ["Student", "Employee"] and not args.get("voucher_no"):
negative_outstanding_invoices = get_negative_outstanding_invoices(args.get("party_type"),
args.get("party"), args.get("party_account"), party_account_currency, company_currency)
negative_outstanding_invoices = get_negative_outstanding_invoices(args.get("party_type"),
args.get("party"), args.get("party_account"), total_field)
# Get positive outstanding sales /purchase invoices/ Fees
condition = ""
if args.get("voucher_type") and args.get("voucher_no"):
condition = " and voucher_type='{0}' and voucher_no='{1}'"\
.format(frappe.db.escape(args["voucher_type"]), frappe.db.escape(args["voucher_no"]))
# Get positive outstanding sales /purchase invoices
outstanding_invoices = get_outstanding_invoices(args.get("party_type"), args.get("party"),
args.get("party_account"))
args.get("party_account"), condition=condition)
for d in outstanding_invoices:
d["exchange_rate"] = 1
@@ -515,13 +530,18 @@ def get_outstanding_reference_documents(args):
d["exchange_rate"] = get_exchange_rate(
party_account_currency, company_currency, d.posting_date
)
if d.voucher_type in ("Purchase Invoice"):
d["bill_no"] = frappe.db.get_value(d.voucher_type, d.voucher_no, "bill_no")
# Get all SO / PO which are not fully billed or aginst which full advance not paid
orders_to_be_billed = get_orders_to_be_billed(args.get("posting_date"),args.get("party_type"), args.get("party"),
party_account_currency, company_currency)
orders_to_be_billed = []
if (args.get("party_type") != "Student"):
orders_to_be_billed = get_orders_to_be_billed(args.get("posting_date"),args.get("party_type"),
args.get("party"), party_account_currency, company_currency)
return negative_outstanding_invoices + outstanding_invoices + orders_to_be_billed
def get_orders_to_be_billed(posting_date, party_type, party, party_account_currency, company_currency):
if party_type == "Customer":
voucher_type = 'Sales Order'
@@ -550,44 +570,50 @@ def get_orders_to_be_billed(posting_date, party_type, party, party_account_curre
and abs(100 - per_billed) > 0.01
order by
transaction_date, name
""".format(**{
"ref_field": ref_field,
"voucher_type": voucher_type,
"party_type": scrub(party_type)
}), party, as_dict = True)
""".format(**{
"ref_field": ref_field,
"voucher_type": voucher_type,
"party_type": scrub(party_type)
}), party, as_dict=True)
order_list = []
for d in orders:
d["voucher_type"] = voucher_type
# This assumes that the exchange rate required is the one in the SO
d["exchange_rate"] = get_exchange_rate(party_account_currency,
company_currency, posting_date)
d["exchange_rate"] = get_exchange_rate(party_account_currency, company_currency, posting_date)
order_list.append(d)
return order_list
def get_negative_outstanding_invoices(party_type, party, party_account, total_field):
if party_type != "Employee":
voucher_type = "Sales Invoice" if party_type == "Customer" else "Purchase Invoice"
return frappe.db.sql("""
select
"{voucher_type}" as voucher_type, name as voucher_no,
{total_field} as invoice_amount, outstanding_amount, posting_date,
due_date, conversion_rate as exchange_rate
from
`tab{voucher_type}`
where
{party_type} = %s and {party_account} = %s and docstatus = 1 and outstanding_amount < 0
order by
posting_date, name
""".format(**{
"total_field": total_field,
"voucher_type": voucher_type,
"party_type": scrub(party_type),
"party_account": "debit_to" if party_type=="Customer" else "credit_to"
}), (party, party_account), as_dict = True)
def get_negative_outstanding_invoices(party_type, party, party_account, party_account_currency, company_currency):
voucher_type = "Sales Invoice" if party_type == "Customer" else "Purchase Invoice"
if party_account_currency == company_currency:
grand_total_field = "base_grand_total"
rounded_total_field = "base_rounded_total"
else:
return []
grand_total_field = "grand_total"
rounded_total_field = "rounded_total"
return frappe.db.sql("""
select
"{voucher_type}" as voucher_type, name as voucher_no,
if({rounded_total_field}, {rounded_total_field}, {grand_total_field}) as invoice_amount,
outstanding_amount, posting_date,
due_date, conversion_rate as exchange_rate
from
`tab{voucher_type}`
where
{party_type} = %s and {party_account} = %s and docstatus = 1 and outstanding_amount < 0
order by
posting_date, name
""".format(**{
"rounded_total_field": rounded_total_field,
"grand_total_field": grand_total_field,
"voucher_type": voucher_type,
"party_type": scrub(party_type),
"party_account": "debit_to" if party_type == "Customer" else "credit_to"
}), (party, party_account), as_dict=True)
@frappe.whitelist()
def get_party_details(company, party_type, party, date):
@@ -598,15 +624,19 @@ def get_party_details(company, party_type, party, date):
account_currency = get_account_currency(party_account)
account_balance = get_balance_on(party_account, date)
_party_name = "title" if party_type == "Student" else party_type.lower() + "_name"
party_name = frappe.db.get_value(party_type, party, _party_name)
party_balance = get_balance_on(party_type=party_type, party=party)
return {
"party_account": party_account,
"party_name": party_name,
"party_account_currency": account_currency,
"party_balance": party_balance,
"account_balance": account_balance
}
@frappe.whitelist()
def get_account_details(account, date):
frappe.has_permission('Payment Entry', throw=True)
@@ -616,6 +646,7 @@ def get_account_details(account, date):
"account_type": frappe.db.get_value("Account", account, "account_type")
})
@frappe.whitelist()
def get_company_defaults(company):
fields = ["write_off_account", "exchange_gain_loss_account", "cost_center"]
@@ -628,15 +659,23 @@ def get_company_defaults(company):
return ret
@frappe.whitelist()
def get_reference_details(reference_doctype, reference_name, party_account_currency):
total_amount = outstanding_amount = exchange_rate = None
ref_doc = frappe.get_doc(reference_doctype, reference_name)
company_currency = ref_doc.get("company_currency") or erpnext.get_company_currency(ref_doc.company)
if reference_doctype != "Journal Entry":
if party_account_currency == ref_doc.company_currency:
if reference_doctype == "Fees":
total_amount = ref_doc.get("grand_total")
exchange_rate = 1
outstanding_amount = ref_doc.get("outstanding_amount")
elif reference_doctype != "Journal Entry":
if party_account_currency == company_currency:
if ref_doc.doctype == "Expense Claim":
total_amount = ref_doc.total_sanctioned_amount
elif ref_doc.doctype == "Employee Advance":
total_amount = ref_doc.advance_amount
else:
total_amount = ref_doc.base_grand_total
exchange_rate = 1
@@ -646,15 +685,18 @@ def get_reference_details(reference_doctype, reference_name, party_account_curre
# Get the exchange rate from the original ref doc
# or get it based on the posting date of the ref doc
exchange_rate = ref_doc.get("conversion_rate") or \
get_exchange_rate(party_account_currency, ref_doc.company_currency, ref_doc.posting_date)
get_exchange_rate(party_account_currency, company_currency, ref_doc.posting_date)
outstanding_amount = ref_doc.get("outstanding_amount") \
if reference_doctype in ("Sales Invoice", "Purchase Invoice", "Expense Claim") \
else flt(total_amount) - flt(ref_doc.advance_paid)
if reference_doctype in ("Sales Invoice", "Purchase Invoice", "Expense Claim"):
outstanding_amount = ref_doc.get("outstanding_amount")
elif reference_doctype == "Employee Advance":
outstanding_amount = ref_doc.advance_amount - flt(ref_doc.paid_amount)
else:
outstanding_amount = flt(total_amount) - flt(ref_doc.advance_paid)
else:
# Get the exchange rate based on the posting date of the ref doc
exchange_rate = get_exchange_rate(party_account_currency,
ref_doc.company_currency, ref_doc.posting_date)
company_currency, ref_doc.posting_date)
return frappe._dict({
"due_date": ref_doc.get("due_date"),
@@ -663,6 +705,7 @@ def get_reference_details(reference_doctype, reference_name, party_account_curre
"exchange_rate": exchange_rate
})
@frappe.whitelist()
def get_payment_entry(dt, dn, party_amount=None, bank_account=None, bank_amount=None):
doc = frappe.get_doc(dt, dn)
@@ -674,21 +717,27 @@ def get_payment_entry(dt, dn, party_amount=None, bank_account=None, bank_amount=
party_type = "Customer"
elif dt in ("Purchase Invoice", "Purchase Order"):
party_type = "Supplier"
elif dt in ("Expense Claim"):
elif dt in ("Expense Claim", "Employee Advance"):
party_type = "Employee"
elif dt in ("Fees"):
party_type = "Student"
# party account
if dt == "Sales Invoice":
party_account = doc.debit_to
elif dt == "Purchase Invoice":
party_account = doc.credit_to
elif dt == "Fees":
party_account = doc.receivable_account
elif dt == "Employee Advance":
party_account = doc.advance_account
else:
party_account = get_party_account(party_type, doc.get(party_type.lower()), doc.company)
party_account_currency = doc.get("party_account_currency") or get_account_currency(party_account)
# payment type
if (dt == "Sales Order" or (dt=="Sales Invoice" and doc.outstanding_amount > 0)) \
if (dt == "Sales Order" or (dt in ("Sales Invoice", "Fees") and doc.outstanding_amount > 0)) \
or (dt=="Purchase Invoice" and doc.outstanding_amount < 0):
payment_type = "Receive"
else:
@@ -699,14 +748,26 @@ def get_payment_entry(dt, dn, party_amount=None, bank_account=None, bank_amount=
if party_amount:
grand_total = outstanding_amount = party_amount
elif dt in ("Sales Invoice", "Purchase Invoice"):
grand_total = doc.base_grand_total if party_account_currency == doc.company_currency else doc.grand_total
if party_account_currency == doc.company_currency:
grand_total = doc.base_rounded_total or doc.base_grand_total
else:
grand_total = doc.rounded_total or doc.grand_total
outstanding_amount = doc.outstanding_amount
elif dt in ("Expense Claim"):
grand_total = doc.total_sanctioned_amount
outstanding_amount = doc.total_sanctioned_amount - doc.total_amount_reimbursed
outstanding_amount = doc.total_sanctioned_amount \
- doc.total_amount_reimbursed - flt(doc.total_advance_amount)
elif dt == "Employee Advance":
grand_total = doc.advance_amount
outstanding_amount = flt(doc.advance_amount) - flt(doc.paid_amount)
elif dt == "Fees":
grand_total = doc.grand_total
outstanding_amount = doc.outstanding_amount
else:
total_field = "base_grand_total" if party_account_currency == doc.company_currency else "grand_total"
grand_total = flt(doc.get(total_field))
if party_account_currency == doc.company_currency:
grand_total = flt(doc.get("base_rounded_total") or doc.base_grand_total)
else:
grand_total = flt(doc.get("rounded_total") or doc.grand_total)
outstanding_amount = grand_total - flt(doc.advance_paid)
# bank or cash
@@ -743,12 +804,13 @@ def get_payment_entry(dt, dn, party_amount=None, bank_account=None, bank_amount=
pe.letter_head = doc.get("letter_head")
pe.append("references", {
"reference_doctype": dt,
"reference_name": dn,
'reference_doctype': dt,
'reference_name': dn,
"bill_no": doc.get("bill_no"),
"due_date": doc.get("due_date"),
"total_amount": grand_total,
"outstanding_amount": outstanding_amount,
"allocated_amount": outstanding_amount
'total_amount': grand_total,
'outstanding_amount': outstanding_amount,
'allocated_amount': outstanding_amount
})
pe.setup_party_account_field()
@@ -756,4 +818,25 @@ def get_payment_entry(dt, dn, party_amount=None, bank_account=None, bank_amount=
if party_account and bank:
pe.set_exchange_rate()
pe.set_amounts()
return pe
return pe
def get_paid_amount(dt, dn, party_type, party, account, due_date):
if party_type=="Customer":
dr_or_cr = "credit_in_account_currency - debit_in_account_currency"
else:
dr_or_cr = "debit_in_account_currency - credit_in_account_currency"
paid_amount = frappe.db.sql("""
select ifnull(sum({dr_or_cr}), 0) as paid_amount
from `tabGL Entry`
where against_voucher_type = %s
and against_voucher = %s
and party_type = %s
and party = %s
and account = %s
and due_date = %s
and {dr_or_cr} > 0
""".format(dr_or_cr=dr_or_cr), (dt, dn, party_type, party, account, due_date))
return paid_amount[0][0] if paid_amount else 0

View File

@@ -14,6 +14,7 @@ from erpnext.hr.doctype.expense_claim.test_expense_claim import make_expense_cla
test_dependencies = ["Item"]
class TestPaymentEntry(unittest.TestCase):
def test_payment_entry_against_order(self):
so = make_sales_order()
@@ -40,7 +41,7 @@ class TestPaymentEntry(unittest.TestCase):
self.assertEqual(so_advance_paid, 0)
def test_payment_entry_against_si_usd_to_usd(self):
si = create_sales_invoice(customer="_Test Customer USD", debit_to="_Test Receivable USD - _TC",
si = create_sales_invoice(customer="_Test Customer USD", debit_to="_Test Receivable USD - _TC",
currency="USD", conversion_rate=50)
pe = get_payment_entry("Sales Invoice", si.name, bank_account="_Test Bank USD - _TC")
pe.reference_no = "1"
@@ -66,7 +67,7 @@ class TestPaymentEntry(unittest.TestCase):
self.assertEqual(outstanding_amount, 100)
def test_payment_entry_against_pi(self):
pi = make_purchase_invoice(supplier="_Test Supplier USD", debit_to="_Test Payable USD - _TC",
pi = make_purchase_invoice(supplier="_Test Supplier USD", debit_to="_Test Payable USD - _TC",
currency="USD", conversion_rate=50)
pe = get_payment_entry("Purchase Invoice", pi.name, bank_account="_Test Bank USD - _TC")
pe.reference_no = "1"
@@ -88,11 +89,12 @@ class TestPaymentEntry(unittest.TestCase):
def test_payment_entry_against_ec(self):
payable = frappe.db.get_value('Company', "_Test Company", 'default_payable_account')
ec = make_expense_claim(payable, 300, 300, "_Test Company","Travel Expenses - _TC")
ec = make_expense_claim(payable, 300, 300, "_Test Company", "Travel Expenses - _TC")
pe = get_payment_entry("Expense Claim", ec.name, bank_account="_Test Bank USD - _TC", bank_amount=300)
pe.reference_no = "1"
pe.reference_date = "2016-01-01"
pe.source_exchange_rate = 1
pe.paid_to = payable
pe.insert()
pe.submit()
@@ -108,7 +110,7 @@ class TestPaymentEntry(unittest.TestCase):
self.assertEqual(outstanding_amount, 0)
def test_payment_entry_against_si_usd_to_inr(self):
si = create_sales_invoice(customer="_Test Customer USD", debit_to="_Test Receivable USD - _TC",
si = create_sales_invoice(customer="_Test Customer USD", debit_to="_Test Receivable USD - _TC",
currency="USD", conversion_rate=50)
pe = get_payment_entry("Sales Invoice", si.name, party_amount=20,
bank_account="_Test Bank - _TC", bank_amount=900)
@@ -212,7 +214,7 @@ class TestPaymentEntry(unittest.TestCase):
self.assertRaises(InvalidPaymentEntry, pe1.validate)
si1 = create_sales_invoice()
si1 = create_sales_invoice()
# create full payment entry against si1
pe2 = get_payment_entry("Sales Invoice", si1.name, bank_account="_Test Cash - _TC")
@@ -267,3 +269,65 @@ class TestPaymentEntry(unittest.TestCase):
return frappe.db.sql("""select account, debit, credit, against_voucher
from `tabGL Entry` where voucher_type='Payment Entry' and voucher_no=%s
order by account asc""", voucher_no, as_dict=1)
def test_payment_entry_write_off_difference(self):
si = create_sales_invoice()
pe = get_payment_entry("Sales Invoice", si.name, bank_account="_Test Cash - _TC")
pe.reference_no = "1"
pe.reference_date = "2016-01-01"
pe.received_amount = pe.paid_amount = 110
pe.insert()
self.assertEqual(pe.unallocated_amount, 10)
pe.received_amount = pe.paid_amount = 95
pe.append("deductions", {
"account": "_Test Write Off - _TC",
"cost_center": "_Test Cost Center - _TC",
"amount": 5
})
pe.save()
self.assertEqual(pe.unallocated_amount, 0)
self.assertEqual(pe.difference_amount, 0)
pe.submit()
expected_gle = dict((d[0], d) for d in [
["Debtors - _TC", 0, 100, si.name],
["_Test Cash - _TC", 95, 0, None],
["_Test Write Off - _TC", 5, 0, None]
])
self.validate_gl_entries(pe.name, expected_gle)
def test_payment_entry_exchange_gain_loss(self):
si = create_sales_invoice(customer="_Test Customer USD", debit_to="_Test Receivable USD - _TC",
currency="USD", conversion_rate=50)
pe = get_payment_entry("Sales Invoice", si.name, bank_account="_Test Bank USD - _TC")
pe.reference_no = "1"
pe.reference_date = "2016-01-01"
pe.target_exchange_rate = 55
pe.append("deductions", {
"account": "_Test Exchange Gain/Loss - _TC",
"cost_center": "_Test Cost Center - _TC",
"amount": -500
})
pe.save()
self.assertEqual(pe.unallocated_amount, 0)
self.assertEqual(pe.difference_amount, 0)
pe.submit()
expected_gle = dict((d[0], d) for d in [
["_Test Receivable USD - _TC", 0, 5000, si.name],
["_Test Bank USD - _TC", 5500, 0, None],
["_Test Exchange Gain/Loss - _TC", 0, 500, None],
])
self.validate_gl_entries(pe.name, expected_gle)
outstanding_amount = flt(frappe.db.get_value("Sales Invoice", si.name, "outstanding_amount"))
self.assertEqual(outstanding_amount, 0)

View File

@@ -0,0 +1,55 @@
QUnit.module('Payment Entry');
QUnit.test("test payment entry", function(assert) {
assert.expect(6);
let done = assert.async();
frappe.run_serially([
() => {
return frappe.tests.make('Sales Invoice', [
{customer: 'Test Customer 1'},
{items: [
[
{'item_code': 'Test Product 1'},
{'qty': 1},
{'rate': 101},
]
]}
]);
},
() => cur_frm.save(),
() => frappe.tests.click_button('Submit'),
() => frappe.tests.click_button('Yes'),
() => frappe.timeout(1),
() => frappe.tests.click_button('Close'),
() => frappe.timeout(1),
() => frappe.click_button('Make'),
() => frappe.timeout(1),
() => frappe.click_link('Payment'),
() => frappe.timeout(2),
() => {
assert.equal(frappe.get_route()[1], 'Payment Entry',
'made payment entry');
assert.equal(cur_frm.doc.party, 'Test Customer 1',
'customer set in payment entry');
assert.equal(cur_frm.doc.paid_amount, 101,
'paid amount set in payment entry');
assert.equal(cur_frm.doc.references[0].allocated_amount, 101,
'amount allocated against sales invoice');
},
() => frappe.timeout(1),
() => cur_frm.set_value('paid_amount', 100),
() => frappe.timeout(1),
() => {
frappe.model.set_value("Payment Entry Reference", cur_frm.doc.references[0].name,
"allocated_amount", 101);
},
() => frappe.timeout(1),
() => frappe.click_button('Write Off Difference Amount'),
() => frappe.timeout(1),
() => {
assert.equal(cur_frm.doc.difference_amount, 0, 'difference amount is zero');
assert.equal(cur_frm.doc.deductions[0].amount, 1, 'Write off amount = 1');
},
() => done()
]);
});

View File

@@ -0,0 +1,60 @@
QUnit.module('Payment Entry');
QUnit.test("test payment entry", function(assert) {
assert.expect(7 );
let done = assert.async();
frappe.run_serially([
() => {
return frappe.tests.make('Purchase Invoice', [
{supplier: 'Test Supplier'},
{bill_no: 'in1234'},
{items: [
[
{'qty': 2},
{'item_code': 'Test Product 1'},
{'rate':1000},
]
]},
{update_stock:1},
{supplier_address: 'Test1-Billing'},
{contact_person: 'Contact 3-Test Supplier'},
{tc_name: 'Test Term 1'},
{terms: 'This is just a Test'}
]);
},
() => cur_frm.save(),
() => frappe.tests.click_button('Submit'),
() => frappe.tests.click_button('Yes'),
() => frappe.timeout(1),
() => frappe.click_button('Make'),
() => frappe.timeout(2),
() => frappe.click_link('Payment'),
() => frappe.timeout(3),
() => cur_frm.set_value('mode_of_payment','Cash'),
() => frappe.timeout(3),
() => {
assert.equal(frappe.get_route()[1], 'Payment Entry',
'made payment entry');
assert.equal(cur_frm.doc.party, 'Test Supplier',
'supplier set in payment entry');
assert.equal(cur_frm.doc.paid_amount, 2000,
'paid amount set in payment entry');
assert.equal(cur_frm.doc.references[0].allocated_amount, 2000,
'amount allocated against purchase invoice');
assert.equal(cur_frm.doc.references[0].bill_no, 'in1234',
'invoice number allocated against purchase invoice');
assert.equal(cur_frm.get_field('total_allocated_amount').value, 2000,
'correct amount allocated in Write Off');
assert.equal(cur_frm.get_field('unallocated_amount').value, 0,
'correct amount unallocated in Write Off');
},
() => cur_frm.save(),
() => frappe.tests.click_button('Submit'),
() => frappe.tests.click_button('Yes'),
() => frappe.timeout(3),
() => done()
]);
});

View File

@@ -0,0 +1,28 @@
QUnit.module('Accounts');
QUnit.test("test payment entry", function(assert) {
assert.expect(1);
let done = assert.async();
frappe.run_serially([
() => {
return frappe.tests.make('Payment Entry', [
{payment_type:'Receive'},
{mode_of_payment:'Cash'},
{party_type:'Customer'},
{party:'Test Customer 3'},
{paid_amount:675},
{reference_no:123},
{reference_date: frappe.datetime.add_days(frappe.datetime.nowdate(), 0)},
]);
},
() => cur_frm.save(),
() => {
// get_item_details
assert.ok(cur_frm.doc.total_allocated_amount==675, "Allocated AmountCorrect");
},
() => frappe.tests.click_button('Submit'),
() => frappe.tests.click_button('Yes'),
() => frappe.timeout(0.3),
() => done()
]);
});

View File

@@ -0,0 +1,67 @@
QUnit.module('Payment Entry');
QUnit.test("test payment entry", function(assert) {
assert.expect(8);
let done = assert.async();
frappe.run_serially([
() => {
return frappe.tests.make('Sales Invoice', [
{customer: 'Test Customer 1'},
{company: 'For Testing'},
{currency: 'INR'},
{selling_price_list: '_Test Price List'},
{items: [
[
{'qty': 1},
{'item_code': 'Test Product 1'},
]
]}
]);
},
() => frappe.timeout(1),
() => cur_frm.save(),
() => frappe.tests.click_button('Submit'),
() => frappe.tests.click_button('Yes'),
() => frappe.timeout(1.5),
() => frappe.click_button('Close'),
() => frappe.timeout(0.5),
() => frappe.click_button('Make'),
() => frappe.timeout(1),
() => frappe.click_link('Payment'),
() => frappe.timeout(2),
() => cur_frm.set_value("paid_to", "_Test Cash - FT"),
() => frappe.timeout(0.5),
() => {
assert.equal(frappe.get_route()[1], 'Payment Entry', 'made payment entry');
assert.equal(cur_frm.doc.party, 'Test Customer 1', 'customer set in payment entry');
assert.equal(cur_frm.doc.paid_from, 'Debtors - FT', 'customer account set in payment entry');
assert.equal(cur_frm.doc.paid_amount, 100, 'paid amount set in payment entry');
assert.equal(cur_frm.doc.references[0].allocated_amount, 100,
'amount allocated against sales invoice');
},
() => cur_frm.set_value('paid_amount', 95),
() => frappe.timeout(1),
() => {
frappe.model.set_value("Payment Entry Reference",
cur_frm.doc.references[0].name, "allocated_amount", 100);
},
() => frappe.timeout(.5),
() => {
assert.equal(cur_frm.doc.difference_amount, 5, 'difference amount is 5');
},
() => {
frappe.db.set_value("Company", "For Testing", "write_off_account", "_Test Write Off - FT");
frappe.timeout(1);
frappe.db.set_value("Company", "For Testing",
"exchange_gain_loss_account", "_Test Exchange Gain/Loss - FT");
},
() => frappe.timeout(1),
() => frappe.click_button('Write Off Difference Amount'),
() => frappe.timeout(2),
() => {
assert.equal(cur_frm.doc.difference_amount, 0, 'difference amount is zero');
assert.equal(cur_frm.doc.deductions[0].amount, 5, 'Write off amount = 5');
},
() => done()
]);
});

View File

@@ -1,5 +1,6 @@
{
"allow_copy": 0,
"allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"beta": 0,
@@ -12,6 +13,7 @@
"engine": "InnoDB",
"fields": [
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -42,6 +44,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -72,6 +75,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -101,6 +105,38 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"depends_on": "",
"fieldname": "bill_no",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Supplier Invoice No",
"length": 0,
"no_copy": 1,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -129,6 +165,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -158,6 +195,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -187,6 +225,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -216,10 +255,12 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"depends_on": "eval:(doc.reference_doctype=='Purchase Invoice')",
"fieldname": "exchange_rate",
"fieldtype": "Float",
"hidden": 0,
@@ -245,17 +286,17 @@
"unique": 0
}
],
"has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"image_view": 0,
"in_create": 0,
"in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"max_attachments": 0,
"modified": "2017-02-17 16:47:17.156256",
"modified": "2017-10-16 17:37:01.192312",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Payment Entry Reference",
@@ -270,4 +311,4 @@
"sort_order": "DESC",
"track_changes": 1,
"track_seen": 0
}
}

View File

@@ -26,7 +26,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Series",
"length": 0,
@@ -432,7 +432,7 @@
"options": "<pre><h5>Message Example</h5>\n\n&lt;p&gt;Dear {{ doc.contact_person }},&lt;/p&gt;\n\n&lt;p&gt;Requesting payment for {{ doc.doctype }}, {{ doc.name }} for {{ doc.grand_total }}.&lt;/p&gt;\n\n&lt;a href=\"{{ payment_url }}\"&gt; click here to pay &lt;/a&gt;\n\n</pre>\n",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
@@ -728,7 +728,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2017-06-13 14:29:20.388372",
"modified": "2017-12-02 15:50:41.775006",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Payment Request",

View File

@@ -35,7 +35,6 @@ class PaymentRequest(Document):
def on_submit(self):
send_mail = True
self.make_communication_entry()
ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)
if (hasattr(ref_doc, "order_type") and getattr(ref_doc, "order_type") == "Shopping Cart") \
@@ -45,6 +44,7 @@ class PaymentRequest(Document):
if send_mail:
self.set_payment_request_url()
self.send_email()
self.make_communication_entry()
def on_cancel(self):
self.check_if_payment_entry_exists()
@@ -69,8 +69,11 @@ class PaymentRequest(Document):
self.db_set('status', 'Initiated')
def get_payment_url(self):
data = frappe.db.get_value(self.reference_doctype, self.reference_name,
["company", "customer_name"], as_dict=1)
if self.reference_doctype != "Fees":
data = frappe.db.get_value(self.reference_doctype, self.reference_name, ["company", "customer_name"], as_dict=1)
else:
data = frappe.db.get_value(self.reference_doctype, self.reference_name, ["student_name"], as_dict=1)
data.update({"company": frappe.defaults.get_defaults().company})
controller = get_payment_gateway_controller(self.payment_gateway)
controller.validate_transaction_currency(self.currency)
@@ -277,6 +280,9 @@ def get_amount(ref_doc, dt):
else:
grand_total = flt(ref_doc.outstanding_amount) / ref_doc.conversion_rate
if dt == "Fees":
grand_total = ref_doc.outstanding_amount
if grand_total > 0 :
return grand_total
@@ -288,7 +294,7 @@ def get_gateway_details(args):
if args.get("payment_gateway"):
return get_payment_gateway_account(args.get("payment_gateway"))
if args.cart:
if args.order_type == "Shopping Cart":
payment_gateway_account = frappe.get_doc("Shopping Cart Settings").payment_gateway_account
return get_payment_gateway_account(payment_gateway_account)

View File

@@ -0,0 +1,197 @@
{
"allow_copy": 0,
"allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"autoname": "",
"beta": 0,
"creation": "2017-08-10 15:38:00.080575",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"editable_grid": 1,
"engine": "InnoDB",
"fields": [
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 2,
"fieldname": "payment_term",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Payment Term",
"length": 0,
"no_copy": 0,
"options": "Payment Term",
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 2,
"fieldname": "description",
"fieldtype": "Small Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Description",
"length": 0,
"no_copy": 0,
"options": "payment_term.description",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 2,
"fieldname": "due_date",
"fieldtype": "Date",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Due Date",
"length": 0,
"no_copy": 0,
"options": "",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 2,
"fieldname": "invoice_portion",
"fieldtype": "Percent",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Invoice Portion",
"length": 0,
"no_copy": 0,
"options": "payment_term.invoice_portion",
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 2,
"fieldname": "payment_amount",
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Payment Amount",
"length": 0,
"no_copy": 0,
"options": "currency",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"image_view": 0,
"in_create": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"max_attachments": 0,
"modified": "2017-12-19 16:20:33.546984",
"modified_by": "nabinhait@gmail.com",
"module": "Accounts",
"name": "Payment Schedule",
"name_case": "",
"owner": "Administrator",
"permissions": [],
"quick_entry": 1,
"read_only": 0,
"read_only_onload": 0,
"show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 1,
"track_seen": 0
}

View File

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

View File

@@ -0,0 +1,2 @@
// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt

View File

@@ -0,0 +1,344 @@
{
"allow_copy": 0,
"allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"autoname": "field:payment_term_name",
"beta": 0,
"creation": "2017-08-10 15:24:54.876365",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"editable_grid": 1,
"engine": "InnoDB",
"fields": [
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 1,
"collapsible": 0,
"columns": 0,
"fieldname": "payment_term_name",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Payment Term Name",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 1,
"collapsible": 0,
"columns": 0,
"fieldname": "invoice_portion",
"fieldtype": "Float",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Invoice Portion",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "column_break_3",
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 1,
"collapsible": 0,
"columns": 0,
"fieldname": "due_date_based_on",
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Due Date Based On",
"length": 0,
"no_copy": 0,
"options": "Day(s) after invoice date\nDay(s) after the end of the invoice month\nMonth(s) after the end of the invoice month",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 1,
"collapsible": 0,
"columns": 0,
"depends_on": "eval:in_list(['Day(s) after invoice date', 'Day(s) after the end of the invoice month'], doc.due_date_based_on)",
"fieldname": "credit_days",
"fieldtype": "Int",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Credit Days",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"depends_on": "eval:doc.due_date_based_on=='Month(s) after the end of the invoice month'",
"fieldname": "credit_months",
"fieldtype": "Int",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Credit Months",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "section_break_6",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 1,
"collapsible": 0,
"columns": 0,
"fieldname": "description",
"fieldtype": "Small Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Description",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"image_view": 0,
"in_create": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2017-08-10 16:26:03.581501",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Payment Term",
"name_case": "",
"owner": "Administrator",
"permissions": [
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "System Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
},
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Accounts Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
},
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Accounts User",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
}
],
"quick_entry": 1,
"read_only": 0,
"read_only_onload": 0,
"show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 1,
"track_seen": 0
}

View File

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

View File

@@ -0,0 +1,23 @@
/* eslint-disable */
// rename this file from _test_[name] to test_[name] to activate
// and remove above this line
QUnit.test("test: Payment Term", function (assert) {
let done = assert.async();
// number of asserts
assert.expect(1);
frappe.run_serially([
// insert a new Payment Term
() => frappe.tests.make('Payment Term', [
// values to be set
{key: 'value'}
]),
() => {
assert.equal(cur_frm.doc.key, 'value');
},
() => done()
]);
});

View File

@@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
# See license.txt
from __future__ import unicode_literals
import unittest
class TestPaymentTerm(unittest.TestCase):
pass

View File

@@ -0,0 +1,34 @@
[
{
"doctype":"Payment Term",
"due_date_based_on":"Day(s) after invoice date",
"payment_term_name":"_Test N30",
"description":"_Test Net 30 Days",
"invoice_portion":50,
"credit_days":30
},
{
"doctype":"Payment Term",
"due_date_based_on":"Day(s) after invoice date",
"payment_term_name":"_Test COD",
"description":"_Test Cash on Delivery",
"invoice_portion":50,
"credit_days":0
},
{
"doctype":"Payment Term",
"due_date_based_on":"Month(s) after the end of the invoice month",
"payment_term_name":"_Test EONM",
"description":"_Test End of Next Month",
"invoice_portion":100,
"credit_months":1
},
{
"doctype":"Payment Term",
"due_date_based_on":"Day(s) after invoice date",
"payment_term_name":"_Test N30 1",
"description":"_Test Net 30 Days",
"invoice_portion":100,
"credit_days":30
}
]

View File

@@ -0,0 +1,12 @@
// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
frappe.ui.form.on('Payment Terms Template', {
setup: function(frm) {
frm.add_fetch("payment_term", "description", "description");
frm.add_fetch("payment_term", "invoice_portion", "invoice_portion");
frm.add_fetch("payment_term", "due_date_based_on", "due_date_based_on");
frm.add_fetch("payment_term", "credit_days", "credit_days");
frm.add_fetch("payment_term", "credit_months", "credit_months");
}
});

View File

@@ -0,0 +1,164 @@
{
"allow_copy": 0,
"allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"autoname": "field:template_name",
"beta": 0,
"creation": "2017-08-10 15:34:28.058054",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"editable_grid": 1,
"engine": "InnoDB",
"fields": [
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "template_name",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Template Name",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "terms",
"fieldtype": "Table",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Payment Terms",
"length": 0,
"no_copy": 0,
"options": "Payment Terms Template Detail",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"image_view": 0,
"in_create": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2017-08-10 15:46:33.877884",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Payment Terms Template",
"name_case": "",
"owner": "Administrator",
"permissions": [
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "System Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
},
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Accounts User",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
},
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Accounts Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
}
],
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
"show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 1,
"track_seen": 0
}

View File

@@ -0,0 +1,42 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
# For license information, please see license.txt
from __future__ import unicode_literals
import frappe
from frappe.model.document import Document
from frappe.utils import flt, cint
from frappe import _
class PaymentTermsTemplate(Document):
def validate(self):
self.validate_invoice_portion()
self.validate_credit_days()
self.check_duplicate_terms()
def validate_invoice_portion(self):
total_portion = 0
for term in self.terms:
total_portion += flt(term.get('invoice_portion', 0))
if flt(total_portion, 2) != 100.00:
frappe.msgprint(_('Combined invoice portion must equal 100%'), raise_exception=1, indicator='red')
def validate_credit_days(self):
for term in self.terms:
if cint(term.credit_days) < 0:
frappe.msgprint(_('Credit Days cannot be a negative number'), raise_exception=1, indicator='red')
def check_duplicate_terms(self):
terms = []
for term in self.terms:
term_info = (term.credit_days, term.due_date_based_on)
if term_info in terms:
frappe.msgprint(
_('The Payment Term at row {0} is possibly a duplicate.').format(term.idx),
raise_exception=1, indicator='red'
)
else:
terms.append(term_info)

View File

@@ -0,0 +1,23 @@
/* eslint-disable */
// rename this file from _test_[name] to test_[name] to activate
// and remove above this line
QUnit.test("test: Payment Terms Template", function (assert) {
let done = assert.async();
// number of asserts
assert.expect(1);
frappe.run_serially([
// insert a new Payment Terms Template
() => frappe.tests.make('Payment Terms Template', [
// values to be set
{key: 'value'}
]),
() => {
assert.equal(cur_frm.doc.key, 'value');
},
() => done()
]);
});

View File

@@ -0,0 +1,72 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
# See license.txt
from __future__ import unicode_literals
import unittest
import frappe
class TestPaymentTermsTemplate(unittest.TestCase):
def tearDown(self):
frappe.delete_doc('Payment Terms Template', '_Test Payment Terms Template For Test', force=1)
def test_create_template(self):
template = frappe.get_doc({
'doctype': 'Payment Terms Template',
'template_name': '_Test Payment Terms Template For Test',
'terms': [{
'doctype': 'Payment Terms Template Detail',
'invoice_portion': 50.00,
'credit_days_based_on': 'Day(s) after invoice date',
'credit_days': 30
}]
})
self.assertRaises(frappe.ValidationError, template.insert)
template.append('terms', {
'doctype': 'Payment Terms Template Detail',
'invoice_portion': 50.00,
'credit_days_based_on': 'Day(s) after invoice date',
'credit_days': 0
})
template.insert()
def test_credit_days(self):
template = frappe.get_doc({
'doctype': 'Payment Terms Template',
'template_name': '_Test Payment Terms Template For Test',
'terms': [{
'doctype': 'Payment Terms Template Detail',
'invoice_portion': 100.00,
'credit_days_based_on': 'Day(s) after invoice date',
'credit_days': -30
}]
})
self.assertRaises(frappe.ValidationError, template.insert)
def test_duplicate_terms(self):
template = frappe.get_doc({
'doctype': 'Payment Terms Template',
'template_name': '_Test Payment Terms Template For Test',
'terms': [
{
'doctype': 'Payment Terms Template Detail',
'invoice_portion': 50.00,
'credit_days_based_on': 'Day(s) after invoice date',
'credit_days': 30
},
{
'doctype': 'Payment Terms Template Detail',
'invoice_portion': 50.00,
'credit_days_based_on': 'Day(s) after invoice date',
'credit_days': 30
}
]
})
self.assertRaises(frappe.ValidationError, template.insert)

View File

@@ -0,0 +1,60 @@
[
{
"doctype":"Payment Terms Template",
"terms":[
{
"doctype":"Payment Terms Template Detail",
"due_date_based_on":"Day(s) after invoice date",
"idx":1,
"description":"Cash on Delivery",
"invoice_portion":50,
"credit_days":0,
"credit_months":0,
"payment_term":"_Test COD"
},
{
"doctype":"Payment Terms Template Detail",
"due_date_based_on":"Day(s) after invoice date",
"idx":2,
"description":"Net 30 Days ",
"invoice_portion":50,
"credit_days":30,
"credit_months":0,
"payment_term":"_Test N30"
}
],
"template_name":"_Test Payment Term Template"
},
{
"doctype":"Payment Terms Template",
"terms":[
{
"doctype":"Payment Terms Template Detail",
"due_date_based_on":"Month(s) after the end of the invoice month",
"idx":1,
"description":"_Test End of Next Months",
"invoice_portion":100,
"credit_days":0,
"credit_months":1,
"payment_term":"_Test EONM"
}
],
"template_name":"_Test Payment Term Template 1"
},
{
"doctype":"Payment Terms Template",
"terms":[
{
"doctype":"Payment Terms Template Detail",
"due_date_based_on":"Day(s) after invoice date",
"idx":1,
"description":"_Test Net Within 30 days",
"invoice_portion":100,
"credit_days":30,
"credit_months":0,
"payment_term":"_Test N30 1"
}
],
"template_name":"_Test Payment Term Template 3"
}
]

View File

@@ -0,0 +1,232 @@
{
"allow_copy": 0,
"allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"autoname": "PTTD.#####",
"beta": 0,
"creation": "2017-08-10 15:34:09.409562",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"editable_grid": 1,
"engine": "InnoDB",
"fields": [
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 2,
"fieldname": "payment_term",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Payment Term",
"length": 0,
"no_copy": 0,
"options": "Payment Term",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 2,
"fieldname": "description",
"fieldtype": "Small Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Description",
"length": 0,
"no_copy": 0,
"options": "",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 2,
"default": "0",
"fieldname": "invoice_portion",
"fieldtype": "Percent",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Invoice Portion",
"length": 0,
"no_copy": 0,
"options": "",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 2,
"fieldname": "due_date_based_on",
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Due Date Based On",
"length": 0,
"no_copy": 0,
"options": "Day(s) after invoice date\nDay(s) after the end of the invoice month\nMonth(s) after the end of the invoice month",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 2,
"default": "0",
"depends_on": "eval:in_list(['Day(s) after invoice date', 'Day(s) after the end of the invoice month'], doc.due_date_based_on)",
"fieldname": "credit_days",
"fieldtype": "Int",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Credit Days",
"length": 0,
"no_copy": 0,
"options": "",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"default": "0",
"depends_on": "eval:doc.due_date_based_on=='Month(s) after the end of the invoice month'",
"fieldname": "credit_months",
"fieldtype": "Int",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Credit Months",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"image_view": 0,
"in_create": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"max_attachments": 0,
"modified": "2017-09-26 05:21:51.738319",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Payment Terms Template Detail",
"name_case": "",
"owner": "Administrator",
"permissions": [],
"quick_entry": 1,
"read_only": 0,
"read_only_onload": 0,
"show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 1,
"track_seen": 0
}

View File

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

View File

@@ -1,5 +1,6 @@
{
"allow_copy": 0,
"allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"autoname": "PCE/.###",
@@ -12,34 +13,7 @@
"engine": "InnoDB",
"fields": [
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "column_break0",
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"oldfieldtype": "Column Break",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0,
"width": "50%"
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -50,6 +24,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Transaction Date",
@@ -69,6 +44,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -79,6 +55,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Posting Date",
@@ -98,6 +75,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -108,6 +86,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Closing Fiscal Year",
@@ -128,6 +107,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -138,6 +118,7 @@
"ignore_user_permissions": 1,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Amended From",
@@ -158,6 +139,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -168,6 +150,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Company",
@@ -188,6 +171,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -198,6 +182,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
@@ -215,6 +200,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -226,6 +212,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Closing Account Head",
@@ -246,6 +233,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -256,6 +244,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Remarks",
@@ -275,18 +264,18 @@
"unique": 0
}
],
"has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"icon": "fa fa-file-text",
"idx": 1,
"image_view": 0,
"in_create": 0,
"in_dialog": 0,
"is_submittable": 1,
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2016-11-07 05:32:15.691681",
"modified": "2017-11-10 18:41:10.881530",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Period Closing Voucher",
@@ -302,7 +291,6 @@
"export": 0,
"if_owner": 0,
"import": 0,
"is_custom": 0,
"permlevel": 0,
"print": 1,
"read": 1,
@@ -323,7 +311,6 @@
"export": 0,
"if_owner": 0,
"import": 0,
"is_custom": 0,
"permlevel": 0,
"print": 1,
"read": 1,
@@ -339,8 +326,10 @@
"read_only": 0,
"read_only_onload": 0,
"search_fields": "posting_date, fiscal_year",
"show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
"title_field": "closing_account_head",
"track_changes": 0,
"track_seen": 0
}

View File

@@ -8,10 +8,6 @@ frappe.ui.form.on("POS Profile", "onload", function(frm) {
return { filters: { selling: 1 } };
});
frm.set_query("print_format", function() {
return { filters: { doc_type: "Sales Invoice", print_format_type: "Js"} };
});
erpnext.queries.setup_queries(frm, "Warehouse", function() {
return erpnext.queries.warehouse(frm.doc);
});
@@ -27,6 +23,27 @@ frappe.ui.form.on("POS Profile", "onload", function(frm) {
});
frappe.ui.form.on('POS Profile', {
setup: function(frm) {
frm.set_query("print_format_for_online", function() {
return {
filters: [
['Print Format', 'doc_type', '=', 'Sales Invoice'],
['Print Format', 'print_format_type', '=', 'Server'],
]
};
});
frm.set_query("print_format", function() {
return { filters: { doc_type: "Sales Invoice", print_format_type: "Js"} };
});
frappe.db.get_value('POS Settings', {name: 'POS Settings'}, 'use_pos_in_offline_mode', (r) => {
is_offline = r && cint(r.use_pos_in_offline_mode)
frm.toggle_display('offline_pos_section', is_offline);
frm.toggle_display('print_format_for_online', !is_offline);
});
},
refresh: function(frm) {
if(frm.doc.company) {
frm.trigger("toggle_display_account_head");
@@ -89,11 +106,6 @@ cur_frm.fields_dict['select_print_heading'].get_query = function(doc, cdt, cdn)
};
};
cur_frm.fields_dict.user.get_query = function(doc,cdt,cdn) {
return{ query:"frappe.core.doctype.user.user.user_query"};
};
cur_frm.fields_dict.write_off_account.get_query = function(doc) {
return{
filters:{

View File

@@ -2,8 +2,8 @@
"allow_copy": 0,
"allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"autoname": "hash",
"allow_rename": 1,
"autoname": "field:pos_profile_name",
"beta": 0,
"creation": "2013-05-24 12:15:51",
"custom": 0,
@@ -17,22 +17,21 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "user",
"fieldtype": "Link",
"default": "0",
"fieldname": "disabled",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Applicable for User",
"label": "Disabled",
"length": 0,
"no_copy": 0,
"oldfieldname": "user",
"oldfieldtype": "Link",
"options": "User",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
@@ -40,7 +39,66 @@
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 1,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "section_break_2",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "pos_profile_name",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "POS Profile Name",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
@@ -112,9 +170,8 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
"depends_on": "update_stock",
"fieldname": "warehouse",
"fieldtype": "Link",
"fieldname": "ignore_pricing_rule",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -122,13 +179,11 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Warehouse",
"label": "Ignore Pricing Rule",
"length": 0,
"no_copy": 0,
"oldfieldname": "warehouse",
"oldfieldtype": "Link",
"options": "Warehouse",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
@@ -145,8 +200,8 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "campaign",
"fieldtype": "Link",
"fieldname": "allow_delete",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -154,10 +209,69 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Campaign",
"label": "Allow Delete",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "allow_user_to_edit_rate",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Allow user to edit Rate",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "allow_print_before_pay",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Allow Print Before Pay",
"length": 0,
"no_copy": 0,
"options": "Campaign",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -300,7 +414,8 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "currency",
"depends_on": "update_stock",
"fieldname": "warehouse",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -309,19 +424,19 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Currency",
"label": "Warehouse",
"length": 0,
"no_copy": 0,
"oldfieldname": "currency",
"oldfieldtype": "Select",
"options": "Currency",
"oldfieldname": "warehouse",
"oldfieldtype": "Link",
"options": "Warehouse",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
@@ -332,8 +447,8 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "ignore_pricing_rule",
"fieldtype": "Check",
"fieldname": "campaign",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -341,7 +456,38 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Ignore Pricing Rule",
"label": "Campaign",
"length": 0,
"no_copy": 0,
"options": "Campaign",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "section_break_15",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Applicable for Users",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -362,8 +508,8 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "allow_delete",
"fieldtype": "Check",
"fieldname": "applicable_for_users",
"fieldtype": "Table",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -371,39 +517,10 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Allow Delete",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "allow_user_to_edit_rate",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Allow user to edit Rate",
"label": "Applicable for Users",
"length": 0,
"no_copy": 0,
"options": "POS Profile User",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -482,6 +599,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
"depends_on": "",
"fieldname": "section_break_14",
"fieldtype": "Section Break",
"hidden": 0,
@@ -602,6 +720,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
"depends_on": "",
"fieldname": "section_break_16",
"fieldtype": "Section Break",
"hidden": 0,
@@ -631,8 +750,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
"default": "Point of Sale",
"fieldname": "print_format",
"fieldname": "print_format_for_online",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -641,7 +759,7 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Print Format",
"label": "Print Format for Online",
"length": 0,
"no_copy": 0,
"options": "Print Format",
@@ -822,7 +940,7 @@
"columns": 0,
"fieldname": "apply_discount",
"fieldtype": "Check",
"hidden": 0,
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
@@ -836,7 +954,7 @@
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"read_only": 1,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
@@ -851,7 +969,7 @@
"collapsible": 0,
"columns": 0,
"default": "Grand Total",
"depends_on": "apply_discount",
"depends_on": "",
"fieldname": "apply_discount_on",
"fieldtype": "Select",
"hidden": 0,
@@ -883,7 +1001,8 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "customer_details",
"depends_on": "",
"fieldname": "offline_pos_section",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -892,7 +1011,7 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "New Customer Details",
"label": "Offline POS Section",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -969,6 +1088,38 @@
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"default": "Point of Sale",
"fieldname": "print_format",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Print Format",
"length": 0,
"no_copy": 0,
"options": "Print Format",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
@@ -1006,6 +1157,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
"depends_on": "",
"fieldname": "section_break_19",
"fieldtype": "Section Break",
"hidden": 0,
@@ -1015,6 +1167,7 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Accounting",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -1029,6 +1182,38 @@
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "currency",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Currency",
"length": 0,
"no_copy": 0,
"oldfieldname": "currency",
"oldfieldtype": "Select",
"options": "Currency",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
@@ -1123,38 +1308,6 @@
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "taxes_and_charges",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Taxes and Charges",
"length": 0,
"no_copy": 0,
"oldfieldname": "charge",
"oldfieldtype": "Link",
"options": "Sales Taxes and Charges Template",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
@@ -1278,6 +1431,38 @@
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "taxes_and_charges",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Taxes and Charges",
"length": 0,
"no_copy": 0,
"oldfieldname": "charge",
"oldfieldtype": "Link",
"options": "Sales Taxes and Charges Template",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"has_web_view": 0,
@@ -1291,7 +1476,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2017-07-28 03:40:03.253088",
"modified": "2017-12-11 17:30:45.198147",
"modified_by": "Administrator",
"module": "Accounts",
"name": "POS Profile",
@@ -1341,10 +1526,11 @@
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
"search_fields": "pos_profile_name",
"show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
"title_field": "user",
"title_field": "pos_profile_name",
"track_changes": 0,
"track_seen": 0
}

View File

@@ -4,30 +4,35 @@
from __future__ import unicode_literals
import frappe
from frappe import msgprint, _
from frappe.utils import cint
from frappe.utils import cint, now
from erpnext.accounts.doctype.sales_invoice.pos import get_child_nodes
from erpnext.accounts.doctype.sales_invoice.sales_invoice import set_account_for_mode_of_payment
from frappe.model.document import Document
class POSProfile(Document):
def validate(self):
self.check_for_duplicate()
self.validate_default_profile()
self.validate_all_link_fields()
self.validate_duplicate_groups()
self.check_default_payment()
self.validate_customer_territory_group()
def check_for_duplicate(self):
res = frappe.db.sql("""select name, user from `tabPOS Profile`
where ifnull(user, '') = %s and name != %s and company = %s""",
(self.user, self.name, self.company))
if res:
if res[0][1]:
msgprint(_("POS Profile {0} already created for user: {1} and company {2}").format(res[0][0],
res[0][1], self.company), raise_exception=1)
else:
msgprint(_("Global POS Profile {0} already created for company {1}").format(res[0][0],
self.company), raise_exception=1)
def validate_default_profile(self):
for row in self.applicable_for_users:
res = frappe.db.sql("""select pf.name
from
`tabPOS Profile User` pfu, `tabPOS Profile` pf
where
pf.name = pfu.parent and pfu.user = %s and pf.name != %s and pf.company = %s
and pfu.default=1""", (row.user, self.name, self.company))
if row.default and res:
msgprint(_("Already set default in pos profile {0} for user {1}, kindly disabled default")
.format(res[0][0], row.user), raise_exception=1)
elif not row.default and not res:
msgprint(_("User {0} doesn't have any default POS Profile. Check Default at Row {1} for this User.")
.format(row.user, row.idx), raise_exception=1)
def validate_all_link_fields(self):
accounts = {"Account": [self.income_account,
@@ -78,12 +83,12 @@ class POSProfile(Document):
frappe.defaults.clear_default("is_pos")
if not include_current_pos:
condition = " where name != '%s'" % self.name.replace("'", "\'")
condition = " where pfu.name != '%s' and pfu.default = 1 " % self.name.replace("'", "\'")
else:
condition = ""
condition = " where pfu.default = 1 "
pos_view_users = frappe.db.sql_list("""select user
from `tabPOS Profile` {0}""".format(condition))
pos_view_users = frappe.db.sql_list("""select pfu.user
from `tabPOS Profile User` as pfu {0}""".format(condition))
for user in pos_view_users:
if user:
@@ -91,6 +96,73 @@ class POSProfile(Document):
else:
frappe.defaults.set_global_default("is_pos", 1)
def get_item_groups(pos_profile):
item_groups = []
pos_profile = frappe.get_doc('POS Profile', pos_profile)
if pos_profile.get('item_groups'):
# Get items based on the item groups defined in the POS profile
for data in pos_profile.get('item_groups'):
item_groups.extend(["'%s'"%d.name for d in get_child_nodes('Item Group', data.item_group)])
return list(set(item_groups))
@frappe.whitelist()
def get_series():
return frappe.get_meta("Sales Invoice").get_field("naming_series").options or ""
def pos_profile_query(doctype, txt, searchfield, start, page_len, filters):
user = frappe.session['user']
company = filters.get('company') or frappe.defaults.get_user_default('company')
args = {
'user': user,
'start': start,
'company': company,
'page_len': page_len,
'txt': '%%%s%%' % txt
}
pos_profile = frappe.db.sql("""select pf.name, pf.pos_profile_name
from
`tabPOS Profile` pf, `tabPOS Profile User` pfu
where
pfu.parent = pf.name and pfu.user = %(user)s and pf.company = %(company)s
and (pf.name like %(txt)s or pf.pos_profile_name like %(txt)s)
and pf.disabled = 0 limit %(start)s, %(page_len)s""", args)
if not pos_profile:
del args['user']
pos_profile = frappe.db.sql("""select pf.name, pf.pos_profile_name
from
`tabPOS Profile` pf left join `tabPOS Profile User` pfu
on
pf.name = pfu.parent
where
ifnull(pfu.user, '') = '' and pf.company = %(company)s and
(pf.name like %(txt)s or pf.pos_profile_name like %(txt)s)
and pf.disabled = 0""", args)
return pos_profile
@frappe.whitelist()
def set_default_profile(pos_profile, company):
modified = now()
user = frappe.session.user
company = frappe.db.escape(company)
if pos_profile and company:
frappe.db.sql(""" update `tabPOS Profile User` pfu, `tabPOS Profile` pf
set
pfu.default = 0, pf.modified = %s, pf.modified_by = %s
where
pfu.user = %s and pf.name = pfu.parent and pf.company = %s
and pfu.default = 1""", (modified, user, user, company), auto_commit=1)
frappe.db.sql(""" update `tabPOS Profile User` pfu, `tabPOS Profile` pf
set
pfu.default = 1, pf.modified = %s, pf.modified_by = %s
where
pfu.user = %s and pf.name = pfu.parent and pf.company = %s and pf.name = %s
""", (modified, user, user, company, pos_profile), auto_commit=1)

View File

@@ -41,6 +41,7 @@ def make_pos_profile():
"expense_account": "_Test Account Cost for Goods Sold - _TC",
"income_account": "Sales - _TC",
"name": "_Test POS Profile",
"pos_profile_name": "_Test POS Profile",
"naming_series": "_T-POS Profile-",
"selling_price_list": "_Test Price List",
"territory": "_Test Territory",

View File

@@ -0,0 +1,6 @@
// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
frappe.ui.form.on('POS Profile User', {
});

View File

@@ -0,0 +1,123 @@
{
"allow_copy": 0,
"allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"beta": 0,
"creation": "2017-10-27 16:46:06.060930",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"editable_grid": 1,
"engine": "InnoDB",
"fields": [
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "default",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Default",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "user",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "User",
"length": 0,
"no_copy": 0,
"options": "User",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"image_view": 0,
"in_create": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2017-11-23 17:13:16.005475",
"modified_by": "Administrator",
"module": "Accounts",
"name": "POS Profile User",
"name_case": "",
"owner": "Administrator",
"permissions": [
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "System Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
}
],
"quick_entry": 1,
"read_only": 0,
"read_only_onload": 0,
"show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 1,
"track_seen": 0
}

View File

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

View File

@@ -0,0 +1,23 @@
/* eslint-disable */
// rename this file from _test_[name] to test_[name] to activate
// and remove above this line
QUnit.test("test: POS Profile User", function (assert) {
let done = assert.async();
// number of asserts
assert.expect(1);
frappe.run_serially([
// insert a new POS Profile User
() => frappe.tests.make('POS Profile User', [
// values to be set
{key: 'value'}
]),
() => {
assert.equal(cur_frm.doc.key, 'value');
},
() => done()
]);
});

View File

@@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
# See license.txt
from __future__ import unicode_literals
import unittest
class TestPOSProfileUser(unittest.TestCase):
pass

View File

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

View File

@@ -0,0 +1,133 @@
{
"allow_copy": 0,
"allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"beta": 0,
"creation": "2017-08-28 16:46:41.732676",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"editable_grid": 1,
"engine": "InnoDB",
"fields": [
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"default": "0",
"fieldname": "use_pos_in_offline_mode",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Use POS in Offline Mode",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"image_view": 0,
"in_create": 0,
"is_submittable": 0,
"issingle": 1,
"istable": 0,
"max_attachments": 0,
"modified": "2017-09-11 13:57:28.787023",
"modified_by": "Administrator",
"module": "Accounts",
"name": "POS Settings",
"name_case": "",
"owner": "Administrator",
"permissions": [
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 0,
"delete": 0,
"email": 1,
"export": 0,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 0,
"role": "System Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
},
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 0,
"delete": 0,
"email": 1,
"export": 0,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 0,
"role": "Accounts User",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
},
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 0,
"delete": 0,
"email": 1,
"export": 0,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 0,
"role": "Sales User",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
}
],
"quick_entry": 1,
"read_only": 0,
"read_only_onload": 0,
"show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 1,
"track_seen": 0
}

View File

@@ -0,0 +1,16 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
# For license information, please see license.txt
from __future__ import unicode_literals
import frappe
from frappe.model.document import Document
class POSSettings(Document):
def validate(self):
self.set_link_for_pos()
def set_link_for_pos(self):
link = 'pos' if self.use_pos_in_offline_mode else 'point-of-sale'
frappe.db.sql(""" update `tabDesktop Icon` set link = '{0}'
where module_name like '%pos%'""".format(link))

View File

@@ -0,0 +1,23 @@
/* eslint-disable */
// rename this file from _test_[name] to test_[name] to activate
// and remove above this line
QUnit.test("test: POS Settings", function (assert) {
let done = assert.async();
// number of asserts
assert.expect(1);
frappe.run_serially([
// insert a new POS Settings
() => frappe.tests.make('POS Settings', [
// values to be set
{key: 'value'}
]),
() => {
assert.equal(cur_frm.doc.key, 'value');
},
() => done()
]);
});

View File

@@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
# See license.txt
from __future__ import unicode_literals
import unittest
class TestPOSSettings(unittest.TestCase):
pass

View File

@@ -1,5 +1,6 @@
{
"allow_copy": 0,
"allow_guest_to_view": 0,
"allow_import": 1,
"allow_rename": 1,
"autoname": "field:title",
@@ -12,6 +13,7 @@
"editable_grid": 0,
"fields": [
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -40,6 +42,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -69,6 +72,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -99,6 +103,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -129,6 +134,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -159,6 +165,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -189,6 +196,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -217,6 +225,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -247,6 +256,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -275,6 +285,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -303,6 +314,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -331,6 +343,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -359,6 +372,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -387,6 +401,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -417,6 +432,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -447,6 +463,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -477,6 +494,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -507,6 +525,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -537,6 +556,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -567,6 +587,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -597,6 +618,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -627,6 +649,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -655,6 +678,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -683,6 +707,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -711,6 +736,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -739,6 +765,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -767,6 +794,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -796,6 +824,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -824,6 +853,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -851,6 +881,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -880,6 +911,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -910,6 +942,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -941,6 +974,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -969,6 +1003,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -988,7 +1023,7 @@
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "2",
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
@@ -1000,6 +1035,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -1028,6 +1064,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -1058,6 +1095,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -1085,13 +1123,14 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"depends_on": "eval:doc.price_or_discount==\"Price\"",
"fieldname": "price",
"fieldtype": "Float",
"fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -1114,6 +1153,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -1143,6 +1183,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -1173,6 +1214,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -1202,6 +1244,7 @@
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -1230,18 +1273,18 @@
"unique": 0
}
],
"has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"icon": "fa fa-gift",
"idx": 1,
"image_view": 0,
"in_create": 0,
"in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2017-02-17 16:21:28.446208",
"modified": "2017-09-27 08:31:38.432574",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Pricing Rule",

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