Merge branch 'develop'

This commit is contained in:
Pratik Vyas
2015-06-03 17:43:38 +05:30
29 changed files with 93 additions and 58 deletions

View File

@@ -1,2 +1,2 @@
from __future__ import unicode_literals from __future__ import unicode_literals
__version__ = '5.0.16' __version__ = '5.0.17'

View File

@@ -1,6 +1,6 @@
{ {
"country_code": "ni", "country_code": "ni",
"name": "Catalogo de Cuentas", "name": "Catalogo de Cuentas Nicaragua",
"is_active": "Yes", "is_active": "Yes",
"tree": { "tree": {
"Activo": { "Activo": {
@@ -72,7 +72,7 @@
"IVA Acreditable por Importaciones": { "IVA Acreditable por Importaciones": {
"account_type": "Tax" "account_type": "Tax"
}, },
"IVA Acreditable por Prestacion de Servicios": { "IVA Acreditable por Prestacion de Servicios y Uso y Goce de Bienes": {
"account_type": "Tax" "account_type": "Tax"
}, },
"Acreditacion Proporcional": {} "Acreditacion Proporcional": {}
@@ -229,11 +229,19 @@
"Impuesto al Valor Agregado por Pagar": { "Impuesto al Valor Agregado por Pagar": {
"account_type": "Tax" "account_type": "Tax"
}, },
"Impuesto sobre la Renta": { "Impuesto sobre la Renta por Actividades Economicas": {
"account_type": "Tax" "account_type": "Tax"
}, },
"Impuestos Municipales": { "Impuestos Municipales": {
"account_type": "Tax" "Impuesto Municipal Sobre Ingresos": {
"account_type": "Tax"
},
"Recoleccion Basura": {
"account_type": "Tax"
},
"Matricula Municipal": {
"account_type": "Tax"
}
} }
}, },
"Retenciones por Pagar": { "Retenciones por Pagar": {
@@ -241,7 +249,13 @@
"Retencion Rentas del Trabajo Tarifa Progresiva": { "Retencion Rentas del Trabajo Tarifa Progresiva": {
"account_type": "Tax" "account_type": "Tax"
}, },
"Retencion Definitiva por Rentas del Trabajo": { "Retencion Definitiva 10% por Rentas del Trabajo - Indemnizacion Adicional": {
"account_type": "Tax"
},
"Retencion Definitiva 12.5% por Rentas del Trabajo - Dietas": {
"account_type": "Tax"
},
"Retencion Definitiva 15% por Rentas del Trabajo - No Residentes": {
"account_type": "Tax" "account_type": "Tax"
} }
}, },
@@ -258,11 +272,26 @@
"Retencion 5% compra Madera en Rollo": { "Retencion 5% compra Madera en Rollo": {
"account_type": "Tax" "account_type": "Tax"
}, },
"Retencion Definitiva 1.5% Actividades Economicas No Residentes": {
"account_type": "Tax"
},
"Retencion Definitiva 3% Actividades Economicas No Residentes": {
"account_type": "Tax"
},
"Retencion Definitiva 10% Actividades Economicas No Residentes": {
"account_type": "Tax"
},
"Retencion Definitiva 15% Actividades Economicas No Residentes": {
"account_type": "Tax"
},
"Otras Retenciones 10%": { "Otras Retenciones 10%": {
"account_type": "Tax" "account_type": "Tax"
} }
}, },
"Rentas y Ganancias de Capital": { "Rentas y Ganancias de Capital": {
"Retencion Defintiva 15% por Rentas de Capital": {
"account_type": "Tax"
},
"Retencion Defintiva 10% por Rentas de Capital": { "Retencion Defintiva 10% por Rentas de Capital": {
"account_type": "Tax" "account_type": "Tax"
}, },
@@ -272,10 +301,16 @@
"Retencion Definitiva 10% por Ganancia de Capital": { "Retencion Definitiva 10% por Ganancia de Capital": {
"account_type": "Tax" "account_type": "Tax"
}, },
"Retencion Definitiva Actividades Economicas No Residentes": { "Retencion Definitiva 0.25% Transacciones Bursatiles": {
"account_type": "Tax" "account_type": "Tax"
}, },
"Retencion Definitiva Transacciones Bursatiles": { "Retencion Definitiva 1% Transacciones Bursatiles": {
"account_type": "Tax"
},
"Retencion Definitiva 1.5% Transacciones Bursatiles": {
"account_type": "Tax"
},
"Retencion Definitiva 2% Transacciones Bursatiles": {
"account_type": "Tax" "account_type": "Tax"
}, },
"Retenciones Defintiva 5% Fondos de Inversion": { "Retenciones Defintiva 5% Fondos de Inversion": {

View File

@@ -40,7 +40,7 @@
{ {
"fieldname": "description", "fieldname": "description",
"fieldtype": "Text", "fieldtype": "Text",
"in_list_view": 1, "in_list_view": 0,
"label": "Description", "label": "Description",
"oldfieldname": "description", "oldfieldname": "description",
"oldfieldtype": "Text", "oldfieldtype": "Text",
@@ -452,7 +452,7 @@
], ],
"idx": 1, "idx": 1,
"istable": 1, "istable": 1,
"modified": "2015-05-27 02:47:16.341373", "modified": "2015-06-02 14:18:56.294949",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Accounts", "module": "Accounts",
"name": "Purchase Invoice Item", "name": "Purchase Invoice Item",

View File

@@ -58,7 +58,7 @@
{ {
"fieldname": "description", "fieldname": "description",
"fieldtype": "Text", "fieldtype": "Text",
"in_list_view": 1, "in_list_view": 0,
"label": "Description", "label": "Description",
"oldfieldname": "description", "oldfieldname": "description",
"oldfieldtype": "Text", "oldfieldtype": "Text",
@@ -505,7 +505,7 @@
], ],
"idx": 1, "idx": 1,
"istable": 1, "istable": 1,
"modified": "2015-05-27 02:47:15.645114", "modified": "2015-06-02 14:18:45.176726",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Accounts", "module": "Accounts",
"name": "Sales Invoice Item", "name": "Sales Invoice Item",

View File

@@ -12,7 +12,6 @@ def execute(filters=None):
invoice_list = get_invoices(filters) invoice_list = get_invoices(filters)
columns, expense_accounts, tax_accounts = get_columns(invoice_list) columns, expense_accounts, tax_accounts = get_columns(invoice_list)
if not invoice_list: if not invoice_list:
msgprint(_("No record found")) msgprint(_("No record found"))
return columns, invoice_list return columns, invoice_list
@@ -30,7 +29,8 @@ def execute(filters=None):
purchase_receipt = list(set(invoice_po_pr_map.get(inv.name, {}).get("purchase_receipt", []))) purchase_receipt = list(set(invoice_po_pr_map.get(inv.name, {}).get("purchase_receipt", [])))
project_name = list(set(invoice_po_pr_map.get(inv.name, {}).get("project_name", []))) project_name = list(set(invoice_po_pr_map.get(inv.name, {}).get("project_name", [])))
row = [inv.name, inv.posting_date, inv.supplier, inv.supplier_name, supplier_details.get(inv.supplier), row = [inv.name, inv.posting_date, inv.supplier, inv.supplier_name,
supplier_details.get(inv.supplier),
inv.credit_to, ", ".join(project_name), inv.bill_no, inv.bill_date, inv.remarks, inv.credit_to, ", ".join(project_name), inv.bill_no, inv.bill_date, inv.remarks,
", ".join(purchase_order), ", ".join(purchase_receipt)] ", ".join(purchase_order), ", ".join(purchase_receipt)]
@@ -55,7 +55,6 @@ def execute(filters=None):
# total tax, grand total, outstanding amount & rounded total # total tax, grand total, outstanding amount & rounded total
row += [total_tax, inv.base_grand_total, flt(inv.base_grand_total, 2), inv.outstanding_amount] row += [total_tax, inv.base_grand_total, flt(inv.base_grand_total, 2), inv.outstanding_amount]
data.append(row) data.append(row)
# raise Exception
return columns, data return columns, data
@@ -107,7 +106,7 @@ def get_conditions(filters):
def get_invoices(filters): def get_invoices(filters):
conditions = get_conditions(filters) conditions = get_conditions(filters)
return frappe.db.sql("""select name, posting_date, credit_to, supplier, supplier_name return frappe.db.sql("""select name, posting_date, credit_to, supplier, supplier_name,
bill_no, bill_date, remarks, base_net_total, base_grand_total, outstanding_amount bill_no, bill_date, remarks, base_net_total, base_grand_total, outstanding_amount
from `tabPurchase Invoice` where docstatus = 1 %s from `tabPurchase Invoice` where docstatus = 1 %s
order by posting_date desc, name desc""" % conditions, filters, as_dict=1) order by posting_date desc, name desc""" % conditions, filters, as_dict=1)

View File

@@ -30,7 +30,8 @@ def execute(filters=None):
delivery_note = list(set(invoice_so_dn_map.get(inv.name, {}).get("delivery_note", []))) delivery_note = list(set(invoice_so_dn_map.get(inv.name, {}).get("delivery_note", [])))
row = [inv.name, inv.posting_date, inv.customer, inv.customer_name, row = [inv.name, inv.posting_date, inv.customer, inv.customer_name,
customer_map.get(inv.customer)["customer_group"], customer_map.get(inv.customer)["territory"], customer_map.get(inv.customer, {}).get("customer_group"),
customer_map.get(inv.customer, {}).get("territory"),
inv.debit_to, inv.project_name, inv.remarks, ", ".join(sales_order), ", ".join(delivery_note)] inv.debit_to, inv.project_name, inv.remarks, ", ".join(sales_order), ", ".join(delivery_note)]
# map income values # map income values

View File

@@ -26,7 +26,7 @@
"reqd": 1 "reqd": 1
}, },
{ {
"description": "Supplier (vendor) name as entered in supplier master", "description": "",
"fieldname": "supplier", "fieldname": "supplier",
"fieldtype": "Link", "fieldtype": "Link",
"in_filter": 1, "in_filter": 1,
@@ -873,7 +873,7 @@
"icon": "icon-file-text", "icon": "icon-file-text",
"idx": 1, "idx": 1,
"is_submittable": 1, "is_submittable": 1,
"modified": "2015-05-27 02:48:02.452899", "modified": "2015-06-02 17:15:44.711032",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Buying", "module": "Buying",
"name": "Purchase Order", "name": "Purchase Order",

View File

@@ -75,7 +75,7 @@
{ {
"fieldname": "description", "fieldname": "description",
"fieldtype": "Small Text", "fieldtype": "Small Text",
"in_list_view": 1, "in_list_view": 0,
"label": "Description", "label": "Description",
"oldfieldname": "description", "oldfieldname": "description",
"oldfieldtype": "Small Text", "oldfieldtype": "Small Text",
@@ -538,7 +538,7 @@
], ],
"idx": 1, "idx": 1,
"istable": 1, "istable": 1,
"modified": "2015-05-27 02:47:16.553472", "modified": "2015-06-02 14:19:21.459032",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Buying", "module": "Buying",
"name": "Purchase Order Item", "name": "Purchase Order Item",

View File

@@ -26,7 +26,7 @@
"reqd": 1 "reqd": 1
}, },
{ {
"description": "Supplier (vendor) name as entered in supplier master", "description": "",
"fieldname": "supplier", "fieldname": "supplier",
"fieldtype": "Link", "fieldtype": "Link",
"in_filter": 1, "in_filter": 1,
@@ -660,7 +660,7 @@
"icon": "icon-shopping-cart", "icon": "icon-shopping-cart",
"idx": 1, "idx": 1,
"is_submittable": 1, "is_submittable": 1,
"modified": "2015-05-27 02:48:02.098540", "modified": "2015-06-02 17:15:57.283516",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Buying", "module": "Buying",
"name": "Supplier Quotation", "name": "Supplier Quotation",

View File

@@ -59,7 +59,7 @@
{ {
"fieldname": "description", "fieldname": "description",
"fieldtype": "Small Text", "fieldtype": "Small Text",
"in_list_view": 1, "in_list_view": 0,
"label": "Description", "label": "Description",
"oldfieldname": "description", "oldfieldname": "description",
"oldfieldtype": "Small Text", "oldfieldtype": "Small Text",
@@ -413,7 +413,7 @@
], ],
"idx": 1, "idx": 1,
"istable": 1, "istable": 1,
"modified": "2015-05-27 02:47:15.853886", "modified": "2015-06-02 14:19:33.922968",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Buying", "module": "Buying",
"name": "Supplier Quotation Item", "name": "Supplier Quotation Item",

View File

@@ -78,7 +78,7 @@ class StatusUpdater(Document):
self.status = s[0] self.status = s[0]
break break
if self.status != _status: if self.status != _status and self.status not in ("Submitted", "Cancelled"):
self.add_comment("Label", _(self.status)) self.add_comment("Label", _(self.status))
if update: if update:

View File

@@ -85,7 +85,7 @@
{ {
"fieldname": "description", "fieldname": "description",
"fieldtype": "Text", "fieldtype": "Text",
"in_list_view": 1, "in_list_view": 0,
"label": "Description", "label": "Description",
"oldfieldname": "description", "oldfieldname": "description",
"oldfieldtype": "Text", "oldfieldtype": "Text",
@@ -134,7 +134,7 @@
], ],
"idx": 1, "idx": 1,
"istable": 1, "istable": 1,
"modified": "2015-05-14 14:55:18.325286", "modified": "2015-06-02 14:18:16.622288",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "CRM", "module": "CRM",
"name": "Opportunity Item", "name": "Opportunity Item",

View File

@@ -5,7 +5,7 @@ app_publisher = "Frappe Technologies Pvt. Ltd. and Contributors"
app_description = "Open Source Enterprise Resource Planning for Small and Midsized Organizations" app_description = "Open Source Enterprise Resource Planning for Small and Midsized Organizations"
app_icon = "icon-th" app_icon = "icon-th"
app_color = "#e74c3c" app_color = "#e74c3c"
app_version = "5.0.16" app_version = "5.0.17"
error_report_email = "support@erpnext.com" error_report_email = "support@erpnext.com"

View File

@@ -425,5 +425,5 @@ def validate_bom_no(item, bom_no):
if not getattr(frappe.flags, "in_test", False): if not getattr(frappe.flags, "in_test", False):
frappe.throw(_("BOM {0} must be submitted").format(bom_no)) frappe.throw(_("BOM {0} must be submitted").format(bom_no))
if item and not (bom.item.lower() == item.lower() or \ if item and not (bom.item.lower() == item.lower() or \
bom.item.lower() == frappe.db.get_value("Item", item, "variant_of").lower()): bom.item.lower() == cstr(frappe.db.get_value("Item", item, "variant_of")).lower()):
frappe.throw(_("BOM {0} does not belong to Item {1}").format(bom_no, item)) frappe.throw(_("BOM {0} does not belong to Item {1}").format(bom_no, item))

View File

@@ -1,3 +1,6 @@
import frappe
import erpnext.setup.install
def execute(): def execute():
import erpnext.setup.install frappe.reload_doc("website", "doctype", "web_form_field", force=True)
erpnext.setup.install.add_web_forms() erpnext.setup.install.add_web_forms()

View File

@@ -139,7 +139,7 @@ erpnext.StockAnalytics = erpnext.StockGridReport.extend({
if(sl.voucher_type=="Stock Reconciliation") { if(sl.voucher_type=="Stock Reconciliation") {
var diff = (sl.qty_after_transaction * sl.valuation_rate) - item.closing_qty_value; var diff = (sl.qty_after_transaction * sl.valuation_rate) - item.closing_qty_value;
wh.fifo_stack.push([sl.qty_after_transaction, sl.valuation_rate, sl.posting_date]); wh.fifo_stack = [[sl.qty_after_transaction, sl.valuation_rate, sl.posting_date]];
wh.balance_qty = sl.qty_after_transaction; wh.balance_qty = sl.qty_after_transaction;
wh.balance_value = sl.valuation_rate * sl.qty_after_transaction; wh.balance_value = sl.valuation_rate * sl.qty_after_transaction;
} else { } else {
@@ -167,7 +167,6 @@ erpnext.StockAnalytics = erpnext.StockGridReport.extend({
}, },
update_groups: function() { update_groups: function() {
var me = this; var me = this;
$.each(this.data, function(i, item) { $.each(this.data, function(i, item) {
// update groups // update groups
if(!item.is_group && me.apply_filter(item, "brand")) { if(!item.is_group && me.apply_filter(item, "brand")) {

View File

@@ -55,7 +55,7 @@
{ {
"fieldname": "description", "fieldname": "description",
"fieldtype": "Small Text", "fieldtype": "Small Text",
"in_list_view": 1, "in_list_view": 0,
"label": "Description", "label": "Description",
"oldfieldname": "description", "oldfieldname": "description",
"oldfieldtype": "Small Text", "oldfieldtype": "Small Text",
@@ -298,12 +298,13 @@
}, },
{ {
"fieldname": "prevdoc_doctype", "fieldname": "prevdoc_doctype",
"fieldtype": "Data", "fieldtype": "Link",
"hidden": 1, "hidden": 1,
"label": "Against Doctype", "label": "Against Doctype",
"no_copy": 1, "no_copy": 1,
"oldfieldname": "prevdoc_doctype", "oldfieldname": "prevdoc_doctype",
"oldfieldtype": "Data", "oldfieldtype": "Data",
"options": "DocType",
"permlevel": 0, "permlevel": 0,
"print_hide": 1, "print_hide": 1,
"print_width": "150px", "print_width": "150px",
@@ -313,11 +314,12 @@
}, },
{ {
"fieldname": "prevdoc_docname", "fieldname": "prevdoc_docname",
"fieldtype": "Data", "fieldtype": "Dynamic Link",
"label": "Against Docname", "label": "Against Docname",
"no_copy": 1, "no_copy": 1,
"oldfieldname": "prevdoc_docname", "oldfieldname": "prevdoc_docname",
"oldfieldtype": "Data", "oldfieldtype": "Data",
"options": "prevdoc_doctype",
"permlevel": 0, "permlevel": 0,
"print_hide": 1, "print_hide": 1,
"print_width": "150px", "print_width": "150px",
@@ -390,7 +392,7 @@
], ],
"idx": 1, "idx": 1,
"istable": 1, "istable": 1,
"modified": "2015-05-27 02:47:15.474119", "modified": "2015-06-02 14:18:00.266748",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Selling", "module": "Selling",
"name": "Quotation Item", "name": "Quotation Item",

View File

@@ -43,8 +43,8 @@ def get_so_details():
def get_last_so_amt(customer): def get_last_so_amt(customer):
res = frappe.db.sql("""select base_net_total from `tabSales Order` res = frappe.db.sql("""select base_net_total from `tabSales Order`
where customer ='%(customer)s' and docstatus = 1 order by transaction_date desc where customer = %s and docstatus = 1 order by transaction_date desc
limit 1""" % {'customer': frappe.db.escape(customer)}) limit 1""", customer)
return res and res[0][0] or 0 return res and res[0][0] or 0

View File

@@ -27,12 +27,7 @@ def delete_for_doctype(doctype, company_name):
company_fieldname = meta.get("fields", {"fieldtype": "Link", company_fieldname = meta.get("fields", {"fieldtype": "Link",
"options": "Company"})[0].fieldname "options": "Company"})[0].fieldname
if meta.issingle: if not meta.issingle:
single = frappe.get_doc(doctype, doctype)
single.set(company_fieldname, "")
single.flags.ignore_mandatory = True
single.save()
else:
if not meta.istable: if not meta.istable:
# delete children # delete children
for df in meta.get_table_fields(): for df in meta.get_table_fields():

View File

@@ -215,6 +215,7 @@ $.extend(erpnext.wiz, {
slide.get_field("language") slide.get_field("language")
.set_input(erpnext.wiz.welcome.data.default_language || "english"); .set_input(erpnext.wiz.welcome.data.default_language || "english");
moment.locale("en");
} }
}); });
}, },

View File

@@ -282,7 +282,7 @@ def get_lead_or_customer():
return lead_doc return lead_doc
def get_address_docs(doctype, txt, filters, limit_start, limit_page_length=20, party=None): def get_address_docs(doctype=None, txt=None, filters=None, limit_start=0, limit_page_length=20, party=None):
if not party: if not party:
party = get_lead_or_customer() party = get_lead_or_customer()

View File

@@ -65,7 +65,7 @@
{ {
"fieldname": "description", "fieldname": "description",
"fieldtype": "Small Text", "fieldtype": "Small Text",
"in_list_view": 1, "in_list_view": 0,
"label": "Description", "label": "Description",
"oldfieldname": "description", "oldfieldname": "description",
"oldfieldtype": "Small Text", "oldfieldtype": "Small Text",
@@ -523,7 +523,7 @@
], ],
"idx": 1, "idx": 1,
"istable": 1, "istable": 1,
"modified": "2015-05-27 02:47:16.946934", "modified": "2015-06-02 14:18:34.512236",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Stock", "module": "Stock",
"name": "Delivery Note Item", "name": "Delivery Note Item",

View File

@@ -48,7 +48,7 @@
{ {
"fieldname": "description", "fieldname": "description",
"fieldtype": "Text", "fieldtype": "Text",
"in_list_view": 1, "in_list_view": 0,
"label": "Description", "label": "Description",
"oldfieldname": "description", "oldfieldname": "description",
"oldfieldtype": "Text", "oldfieldtype": "Text",
@@ -264,7 +264,7 @@
], ],
"idx": 1, "idx": 1,
"istable": 1, "istable": 1,
"modified": "2015-02-19 01:07:00.695393", "modified": "2015-06-02 14:19:45.611733",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Stock", "module": "Stock",
"name": "Material Request Item", "name": "Material Request Item",

View File

@@ -49,7 +49,7 @@
{ {
"fieldname": "description", "fieldname": "description",
"fieldtype": "Text", "fieldtype": "Text",
"in_list_view": 1, "in_list_view": 0,
"label": "Description", "label": "Description",
"oldfieldname": "description", "oldfieldname": "description",
"oldfieldtype": "Text", "oldfieldtype": "Text",
@@ -642,7 +642,7 @@
], ],
"idx": 1, "idx": 1,
"istable": 1, "istable": 1,
"modified": "2015-05-27 02:47:16.086625", "modified": "2015-06-02 14:19:13.528248",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Stock", "module": "Stock",
"name": "Purchase Receipt Item", "name": "Purchase Receipt Item",

View File

@@ -1,6 +1,6 @@
{% $.each(visible_columns || [], function(i, df) { %} {% $.each(visible_columns || [], function(i, df) { %}
{% var val = doc.get_formatted(df.fieldname); {% var val = doc.get_formatted(df.fieldname);
if((df.fieldname !== "description") && val) { %} if(val) { %}
<div class="row"> <div class="row">
<div class="col-xs-4 text-ellipsis"> <div class="col-xs-4 text-ellipsis">
<strong title="{%= __(df.label) %}">{%= __(df.label) %}:</strong> <strong title="{%= __(df.label) %}">{%= __(df.label) %}:</strong>

View File

@@ -1,4 +1,4 @@
{% var visible_columns = row.get_visible_columns(["item_code", "item_name", "description", "qty", "rate", "amount", "stock_uom", "uom", "discount_percentage", "schedule_date", "warehouse", "against_sales_order", "sales_order"]); %} {% var visible_columns = row.get_visible_columns(["item_code", "item_name", "qty", "rate", "amount", "stock_uom", "uom", "discount_percentage", "schedule_date", "warehouse", "against_sales_order", "sales_order"]); %}
{% if(!doc) { %} {% if(!doc) { %}
<div class="row"> <div class="row">

View File

@@ -1,5 +1,5 @@
{% var visible_columns = row.get_visible_columns(["item_code", "warehouse", {% var visible_columns = row.get_visible_columns(["item_code", "warehouse",
"item_name", "description", "amount", "stock_uom", "uom", "qty", "schedule_date"]); %} "item_name", "amount", "stock_uom", "uom", "qty", "schedule_date"]); %}
{% if(!doc) { %} {% if(!doc) { %}
<div class="row"> <div class="row">

View File

@@ -1,5 +1,5 @@
{% var visible_columns = row.get_visible_columns(["item_code", {% var visible_columns = row.get_visible_columns(["item_code",
"item_name", "description", "amount", "stock_uom", "uom", "qty", "item_name", "amount", "stock_uom", "uom", "qty",
"s_warehouse", "t_warehouse", "incoming_rate"]); "s_warehouse", "t_warehouse", "incoming_rate"]);
%} %}

View File

@@ -1,6 +1,6 @@
from setuptools import setup, find_packages from setuptools import setup, find_packages
version = "5.0.16" version = "5.0.17"
with open("requirements.txt", "r") as f: with open("requirements.txt", "r") as f:
install_requires = f.readlines() install_requires = f.readlines()