Rushabh Mehta | 156ce60 | 2015-09-11 18:49:59 +0530 | [diff] [blame] | 1 | # Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors |
| 2 | # License: GNU General Public License v3. See license.txt |
| 3 | |
Chillar Anand | 915b343 | 2021-09-02 16:44:59 +0530 | [diff] [blame] | 4 | import frappe |
Rushabh Mehta | 156ce60 | 2015-09-11 18:49:59 +0530 | [diff] [blame] | 5 | from frappe import _ |
Chillar Anand | 915b343 | 2021-09-02 16:44:59 +0530 | [diff] [blame] | 6 | |
marination | eef9cf1 | 2021-02-16 18:45:36 +0530 | [diff] [blame] | 7 | from erpnext.e_commerce.doctype.e_commerce_settings.e_commerce_settings import show_attachments |
Rushabh Mehta | 156ce60 | 2015-09-11 18:49:59 +0530 | [diff] [blame] | 8 | |
marination | 9fb61ef | 2022-02-01 00:39:14 +0530 | [diff] [blame] | 9 | |
Rushabh Mehta | 156ce60 | 2015-09-11 18:49:59 +0530 | [diff] [blame] | 10 | def get_context(context): |
| 11 | context.no_cache = 1 |
Kanchan Chauhan | 11638ba | 2016-04-20 16:20:49 +0530 | [diff] [blame] | 12 | context.show_sidebar = True |
Rushabh Mehta | 156ce60 | 2015-09-11 18:49:59 +0530 | [diff] [blame] | 13 | context.doc = frappe.get_doc(frappe.form_dict.doctype, frappe.form_dict.name) |
Rushabh Mehta | 3d76686 | 2015-09-16 18:52:52 +0530 | [diff] [blame] | 14 | if hasattr(context.doc, "set_indicator"): |
| 15 | context.doc.set_indicator() |
| 16 | |
Charles-Henri Decultot | 2de1cd3 | 2017-05-19 12:34:10 +0200 | [diff] [blame] | 17 | if show_attachments(): |
Rushabh Mehta | dbb5154 | 2017-08-10 21:06:09 +0530 | [diff] [blame] | 18 | context.attachments = get_attachments(frappe.form_dict.doctype, frappe.form_dict.name) |
Charles-Henri Decultot | 2de1cd3 | 2017-05-19 12:34:10 +0200 | [diff] [blame] | 19 | |
Rushabh Mehta | 156ce60 | 2015-09-11 18:49:59 +0530 | [diff] [blame] | 20 | context.parents = frappe.form_dict.parents |
Britlog | 4c7709e | 2017-07-28 15:24:22 +0200 | [diff] [blame] | 21 | context.title = frappe.form_dict.name |
Ankush Menat | 494bd9e | 2022-03-28 18:52:46 +0530 | [diff] [blame] | 22 | context.payment_ref = frappe.db.get_value( |
| 23 | "Payment Request", {"reference_name": frappe.form_dict.name}, "name" |
| 24 | ) |
Rohit Waghchaure | 21499e8 | 2016-09-21 16:49:58 +0530 | [diff] [blame] | 25 | |
marination | eef9cf1 | 2021-02-16 18:45:36 +0530 | [diff] [blame] | 26 | context.enabled_checkout = frappe.get_doc("E Commerce Settings").enable_checkout |
Rohit Waghchaure | 21499e8 | 2016-09-21 16:49:58 +0530 | [diff] [blame] | 27 | |
Ankush Menat | 494bd9e | 2022-03-28 18:52:46 +0530 | [diff] [blame] | 28 | default_print_format = frappe.db.get_value( |
| 29 | "Property Setter", |
| 30 | dict(property="default_print_format", doc_type=frappe.form_dict.doctype), |
| 31 | "value", |
| 32 | ) |
Charles-Henri Decultot | e90a1ca | 2017-12-01 11:49:45 +0100 | [diff] [blame] | 33 | if default_print_format: |
| 34 | context.print_format = default_print_format |
| 35 | else: |
| 36 | context.print_format = "Standard" |
| 37 | |
Rushabh Mehta | 257bbbe | 2016-10-12 10:31:08 +0530 | [diff] [blame] | 38 | if not frappe.has_website_permission(context.doc): |
Rushabh Mehta | 156ce60 | 2015-09-11 18:49:59 +0530 | [diff] [blame] | 39 | frappe.throw(_("Not Permitted"), frappe.PermissionError) |
Ankush Menat | 4551d7d | 2021-08-19 13:41:10 +0530 | [diff] [blame] | 40 | |
Manas Solanki | da486ee | 2018-07-06 12:36:57 +0530 | [diff] [blame] | 41 | # check for the loyalty program of the customer |
Ankush Menat | 494bd9e | 2022-03-28 18:52:46 +0530 | [diff] [blame] | 42 | customer_loyalty_program = frappe.db.get_value( |
| 43 | "Customer", context.doc.customer, "loyalty_program" |
| 44 | ) |
Manas Solanki | da486ee | 2018-07-06 12:36:57 +0530 | [diff] [blame] | 45 | if customer_loyalty_program: |
Chillar Anand | 915b343 | 2021-09-02 16:44:59 +0530 | [diff] [blame] | 46 | from erpnext.accounts.doctype.loyalty_program.loyalty_program import ( |
| 47 | get_loyalty_program_details_with_points, |
| 48 | ) |
Ankush Menat | 494bd9e | 2022-03-28 18:52:46 +0530 | [diff] [blame] | 49 | |
| 50 | loyalty_program_details = get_loyalty_program_details_with_points( |
| 51 | context.doc.customer, customer_loyalty_program |
| 52 | ) |
Manas Solanki | da486ee | 2018-07-06 12:36:57 +0530 | [diff] [blame] | 53 | context.available_loyalty_points = int(loyalty_program_details.get("loyalty_points")) |
Charles-Henri Decultot | 2de1cd3 | 2017-05-19 12:34:10 +0200 | [diff] [blame] | 54 | |
Sagar Sharma | 80080a3 | 2022-09-28 15:40:07 +0530 | [diff] [blame] | 55 | # show Make Purchase Invoice button based on permission |
| 56 | context.show_make_pi_button = frappe.has_permission("Purchase Invoice", "create") |
| 57 | |
Ankush Menat | 494bd9e | 2022-03-28 18:52:46 +0530 | [diff] [blame] | 58 | |
Charles-Henri Decultot | 2de1cd3 | 2017-05-19 12:34:10 +0200 | [diff] [blame] | 59 | def get_attachments(dt, dn): |
Ankush Menat | 494bd9e | 2022-03-28 18:52:46 +0530 | [diff] [blame] | 60 | return frappe.get_all( |
| 61 | "File", |
| 62 | fields=["name", "file_name", "file_url", "is_private"], |
| 63 | filters={"attached_to_name": dn, "attached_to_doctype": dt, "is_private": 0}, |
| 64 | ) |