sudo apt-get update && sudo apt-get upgrade
sudo apt-get install software-properties-common \
nginx wget zip unzip git curl file certbot python3-pip \
python3-dev python3-venv redis-server mariadb-server \
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install software-properties-common \
nginx wget zip unzip git curl file certbot python3-pip \
python3-dev python3-venv redis-server mariadb-server \
| from requests import get # pip install requests | |
| """ | |
| Examples: | |
| Docs: | |
| - Create email (add_pop): https://documentation.cpanel.net/display/DD/UAPI+Functions+-+Email%3A%3Aadd_pop | |
| - Delete email (delete_pop): https://documentation.cpanel.net/display/DD/UAPI+Functions+-+Email%3A%3Adelete_pop | |
| - Change pass (passwd_pop): https://documentation.cpanel.net/display/DD/UAPI+Functions+-+Email%3A%3Apasswd_pop |
https://github.com/t1m0n/air-datepicker Docs : http://t1m0n.name/air-datepicker/docs/
include in html template
| sql_item_code_cond_filter = "" | |
| if filters.get("item_code"): | |
| escaped_input = frappe.db.escape(filters.get("item_code")) | |
| sql_item_code_cond_filter = f"AND `tabStock Ledger Entry`.item_code = {escaped_input}" | |
| sql_sponge_shape="" | |
| if filters.get("sponge_shape"): | |
| escaped_input = frappe.db.escape(filters.get("sponge_shape")) | |
| sql_item_code_cond_filter = f"AND `tabStock Ledger Entry`.sponge_shape = {escaped_input}" | |
| sql_item_code_cond_filter = "" | |
| if filters.get("item_code"): | |
| escaped_input = frappe.db.escape(filters.get("item_code")) | |
| sql_item_code_cond_filter = f"AND `tabStock Ledger Entry`.item_code = {escaped_input}" | |
| sql_sponge_shape="" | |
| if filters.get("sponge_shape"): | |
| escaped_input = frappe.db.escape(filters.get("sponge_shape")) | |
| sql_item_code_cond_filter = f"AND `tabStock Ledger Entry`.sponge_shape = {escaped_input}" | |
| parent_warehouse="" | |
| if filters.get("parent_warehouse"): | |
| escaped_input = frappe.db.escape(filters.get("parent_warehouse")) | |
| parent_warehouse = f" AND `tabWarehouse`.parent_warehouse = {escaped_input}" | |
| item_group="" | |
| if filters.get("item_group"): | |
| escaped_input = frappe.db.escape(filters.get("item_group")) | |
| item_group = f" AND `tabItem`.item_group = {escaped_input}" | |
| party="" | |
| if filters.get("party"): | |
| escaped_input = frappe.db.escape(filters.get("party")) | |
| party = f" AND `tabGL Entry`.party = {escaped_input}" | |
| default_sales_partner="" | |
| if filters.get("default_sales_partner"): | |
| escaped_input = frappe.db.escape(filters.get("default_sales_partner")) | |
| default_sales_partner = f" AND `tabCustomer`.default_sales_partner = {escaped_input}" | |
| res = frappe.db.sql(f"""SELECT |
| parent_warehouse="" | |
| if filters.get("parent_warehouse"): | |
| escaped_input = frappe.db.escape(filters.get("parent_warehouse")) | |
| parent_warehouse = f" WHERE `tabWarehouse`.parent_warehouse = {escaped_input}" | |
| item_code="" | |
| if filters.get("item_code"): | |
| escaped_input = frappe.db.escape(filters.get("item_code")) | |
| item_code = f" AND `tabBin`.item_code = {escaped_input}" | |
| select | |
| `tabSales Invoice`.branch, | |
| sum(case when `tabItem`.item_group = 'موكيت' then `tabSales Invoice Item`.qty else 0 end) AS موكيت, | |
| sum(case when `tabItem`.item_group = 'ممرات' then `tabSales Invoice Item`.qty else 0 end) as 'ممرات', | |
| sum(case when `tabItem`.item_group = 'كولا' then `tabSales Invoice Item`.qty else 0 end) as كولا, | |
| sum(case when `tabItem`.item_group = 'سجاد' then `tabSales Invoice Item`.qty else 0 end) as 'سجاد', | |
| sum(case when `tabItem`.item_group = 'دواسات' then `tabSales Invoice Item`.qty else 0 end) as دواسات | |
| from `tabSales Invoice Item` | |
| INNER JOIN `tabSales Invoice` | |
| on `tabSales Invoice`.name = `tabSales Invoice Item`.parent |
| frappe.query_reports["Gl Entry Report"] = { | |
| "filters": [ | |
| { | |
| "fieldname":"account", | |
| "label": __("Account"), | |
| "fieldtype": "Link", | |
| "options": "Account", | |
| "reqd": 1, | |
| "width": "80", | |
| get_query: function() { |