[minor] merge master
This commit is contained in:
commit
170be3b717
@ -150,12 +150,22 @@ class DocType(SellingController):
|
|||||||
|
|
||||||
def set_missing_values(self, for_validate=False):
|
def set_missing_values(self, for_validate=False):
|
||||||
self.set_pos_fields(for_validate)
|
self.set_pos_fields(for_validate)
|
||||||
|
|
||||||
|
if not self.doc.debit_to:
|
||||||
|
self.doc.debit_to = self.get_customer_account()
|
||||||
|
if not self.doc.due_date:
|
||||||
|
self.doc.due_date = self.get_due_date()
|
||||||
|
|
||||||
super(DocType, self).set_missing_values(for_validate)
|
super(DocType, self).set_missing_values(for_validate)
|
||||||
|
|
||||||
def set_customer_defaults(self):
|
def set_customer_defaults(self):
|
||||||
# TODO cleanup these methods
|
# TODO cleanup these methods
|
||||||
self.doc.fields.update(self.get_debit_to())
|
if self.doc.customer:
|
||||||
self.get_cust_and_due_date()
|
self.doc.debit_to = self.get_customer_account()
|
||||||
|
elif self.doc.debit_to:
|
||||||
|
self.doc.customer = webnotes.conn.get_value('Account', self.doc.debit_to, 'master_name')
|
||||||
|
|
||||||
|
self.doc.due_date = self.get_due_date()
|
||||||
|
|
||||||
super(DocType, self).set_customer_defaults()
|
super(DocType, self).set_customer_defaults()
|
||||||
|
|
||||||
@ -231,16 +241,9 @@ class DocType(SellingController):
|
|||||||
You must first create it from the Customer Master" %
|
You must first create it from the Customer Master" %
|
||||||
(self.doc.customer, self.doc.company))
|
(self.doc.customer, self.doc.company))
|
||||||
|
|
||||||
def get_debit_to(self):
|
def get_due_date(self):
|
||||||
acc_head = self.get_customer_account()
|
|
||||||
return acc_head and {'debit_to' : acc_head} or {}
|
|
||||||
|
|
||||||
|
|
||||||
def get_cust_and_due_date(self):
|
|
||||||
"""Set Due Date = Posting Date + Credit Days"""
|
"""Set Due Date = Posting Date + Credit Days"""
|
||||||
if self.doc.debit_to:
|
due_date = None
|
||||||
self.doc.customer = webnotes.conn.get_value('Account', self.doc.debit_to, 'master_name')
|
|
||||||
|
|
||||||
if self.doc.posting_date:
|
if self.doc.posting_date:
|
||||||
credit_days = 0
|
credit_days = 0
|
||||||
if self.doc.debit_to:
|
if self.doc.debit_to:
|
||||||
@ -251,9 +254,11 @@ class DocType(SellingController):
|
|||||||
credit_days = webnotes.conn.get_value("Company", self.doc.company, "credit_days")
|
credit_days = webnotes.conn.get_value("Company", self.doc.company, "credit_days")
|
||||||
|
|
||||||
if credit_days:
|
if credit_days:
|
||||||
self.doc.due_date = add_days(self.doc.posting_date, credit_days)
|
due_date = add_days(self.doc.posting_date, credit_days)
|
||||||
else:
|
else:
|
||||||
self.doc.due_date = self.doc.posting_date
|
due_date = self.doc.posting_date
|
||||||
|
|
||||||
|
return due_date
|
||||||
|
|
||||||
def get_barcode_details(self, barcode):
|
def get_barcode_details(self, barcode):
|
||||||
return get_obj('Sales Common').get_barcode_details(barcode)
|
return get_obj('Sales Common').get_barcode_details(barcode)
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
{
|
{
|
||||||
"creation": "2013-01-27 16:30:52",
|
"creation": "2013-01-27 16:30:52",
|
||||||
"docstatus": 0,
|
"docstatus": 0,
|
||||||
"modified": "2013-07-11 14:41:59",
|
"modified": "2013-08-14 12:47:45",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"owner": "Administrator"
|
"owner": "Administrator"
|
||||||
},
|
},
|
||||||
@ -19,14 +19,18 @@
|
|||||||
"name": "__common__",
|
"name": "__common__",
|
||||||
"parent": "Financial Statements",
|
"parent": "Financial Statements",
|
||||||
"parentfield": "roles",
|
"parentfield": "roles",
|
||||||
"parenttype": "Page",
|
"parenttype": "Page"
|
||||||
"role": "Accounts Manager"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"doctype": "Page",
|
"doctype": "Page",
|
||||||
"name": "Financial Statements"
|
"name": "Financial Statements"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"doctype": "Page Role"
|
"doctype": "Page Role",
|
||||||
|
"role": "Accounts Manager"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"doctype": "Page Role",
|
||||||
|
"role": "Analytics"
|
||||||
}
|
}
|
||||||
]
|
]
|
@ -389,7 +389,8 @@ erpnext.GeneralLedger = wn.views.GridReport.extend({
|
|||||||
grid: { hoverable: true, clickable: true },
|
grid: { hoverable: true, clickable: true },
|
||||||
xaxis: { mode: "time",
|
xaxis: { mode: "time",
|
||||||
min: dateutil.str_to_obj(this.from_date).getTime(),
|
min: dateutil.str_to_obj(this.from_date).getTime(),
|
||||||
max: dateutil.str_to_obj(this.to_date).getTime() }
|
max: dateutil.str_to_obj(this.to_date).getTime() },
|
||||||
|
series: { downsample: { threshold: 1000 } }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
});
|
});
|
@ -16,11 +16,14 @@ cur_frm.cscript.onload = function(doc, cdt, cdn) {
|
|||||||
if(doc.__islocal) {
|
if(doc.__islocal) {
|
||||||
var last_route = wn.route_history.slice(-2, -1)[0];
|
var last_route = wn.route_history.slice(-2, -1)[0];
|
||||||
if(last_route && last_route[0]==="Form") {
|
if(last_route && last_route[0]==="Form") {
|
||||||
|
var doctype = last_route[1],
|
||||||
|
docname = last_route.slice(2).join("/");
|
||||||
|
|
||||||
if(["Customer", "Quotation", "Sales Order", "Sales Invoice", "Delivery Note",
|
if(["Customer", "Quotation", "Sales Order", "Sales Invoice", "Delivery Note",
|
||||||
"Installation Note", "Opportunity", "Customer Issue", "Maintenance Visit",
|
"Installation Note", "Opportunity", "Customer Issue", "Maintenance Visit",
|
||||||
"Maintenance Schedule"]
|
"Maintenance Schedule"]
|
||||||
.indexOf(last_route[1])!==-1) {
|
.indexOf(doctype)!==-1) {
|
||||||
var refdoc = wn.model.get_doc(last_route[1], last_route[2]);
|
var refdoc = wn.model.get_doc(doctype, docname);
|
||||||
|
|
||||||
if(refdoc.doctype == "Quotation" ? refdoc.quotation_to=="Customer" : true) {
|
if(refdoc.doctype == "Quotation" ? refdoc.quotation_to=="Customer" : true) {
|
||||||
cur_frm.set_value("customer", refdoc.customer || refdoc.name);
|
cur_frm.set_value("customer", refdoc.customer || refdoc.name);
|
||||||
@ -30,16 +33,16 @@ cur_frm.cscript.onload = function(doc, cdt, cdn) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(["Supplier", "Supplier Quotation", "Purchase Order", "Purchase Invoice", "Purchase Receipt"]
|
if(["Supplier", "Supplier Quotation", "Purchase Order", "Purchase Invoice", "Purchase Receipt"]
|
||||||
.indexOf(last_route[1])!==-1) {
|
.indexOf(doctype)!==-1) {
|
||||||
var refdoc = wn.model.get_doc(last_route[1], last_route[2]);
|
var refdoc = wn.model.get_doc(doctype, docname);
|
||||||
cur_frm.set_value("supplier", refdoc.supplier || refdoc.name);
|
cur_frm.set_value("supplier", refdoc.supplier || refdoc.name);
|
||||||
cur_frm.set_value("supplier_name", refdoc.supplier_name);
|
cur_frm.set_value("supplier_name", refdoc.supplier_name);
|
||||||
if(cur_frm.doc.doctype==="Address")
|
if(cur_frm.doc.doctype==="Address")
|
||||||
cur_frm.set_value("address_title", cur_frm.doc.supplier_name);
|
cur_frm.set_value("address_title", cur_frm.doc.supplier_name);
|
||||||
}
|
}
|
||||||
if(["Lead", "Quotation"]
|
if(["Lead", "Quotation"]
|
||||||
.indexOf(last_route[1])!==-1) {
|
.indexOf(doctype)!==-1) {
|
||||||
var refdoc = wn.model.get_doc(last_route[1], last_route[2]);
|
var refdoc = wn.model.get_doc(doctype, docname);
|
||||||
|
|
||||||
if(refdoc.doctype == "Quotation" ? refdoc.quotation_to=="Lead" : true) {
|
if(refdoc.doctype == "Quotation" ? refdoc.quotation_to=="Lead" : true) {
|
||||||
cur_frm.set_value("lead", refdoc.lead || refdoc.name);
|
cur_frm.set_value("lead", refdoc.lead || refdoc.name);
|
||||||
|
@ -207,4 +207,4 @@ def get_delivery_notes_to_be_billed(doctype, txt, searchfield, start, page_len,
|
|||||||
"fcond": get_filters_cond(doctype, filters, []),
|
"fcond": get_filters_cond(doctype, filters, []),
|
||||||
"mcond": get_match_cond(doctype),
|
"mcond": get_match_cond(doctype),
|
||||||
"start": "%(start)s", "page_len": "%(page_len)s", "txt": "%(txt)s"
|
"start": "%(start)s", "page_len": "%(page_len)s", "txt": "%(txt)s"
|
||||||
}, { "start": start, "page_len": page_len, "txt": ("%%%s%%" % txt) }, debug=True)
|
}, { "start": start, "page_len": page_len, "txt": ("%%%s%%" % txt) })
|
@ -14,12 +14,8 @@ class SellingController(StockController):
|
|||||||
def onload_post_render(self):
|
def onload_post_render(self):
|
||||||
# contact, address, item details and pos details (if applicable)
|
# contact, address, item details and pos details (if applicable)
|
||||||
self.set_missing_values()
|
self.set_missing_values()
|
||||||
|
|
||||||
self.set_taxes("other_charges", "charge")
|
self.set_taxes("other_charges", "charge")
|
||||||
|
|
||||||
if self.meta.get_field("debit_to") and not self.doc.debit_to:
|
|
||||||
self.doc.debit_to = self.get_debit_to().get("debit_to")
|
|
||||||
|
|
||||||
def set_missing_values(self, for_validate=False):
|
def set_missing_values(self, for_validate=False):
|
||||||
super(SellingController, self).set_missing_values(for_validate)
|
super(SellingController, self).set_missing_values(for_validate)
|
||||||
|
|
||||||
|
@ -156,20 +156,23 @@ class DocType:
|
|||||||
raise_exception=InvalidLeaveApproverError)
|
raise_exception=InvalidLeaveApproverError)
|
||||||
|
|
||||||
def update_dob_event(self):
|
def update_dob_event(self):
|
||||||
if self.doc.date_of_birth:
|
if self.doc.status == "Active" and self.doc.date_of_birth:
|
||||||
get_events = webnotes.conn.sql("""select name from `tabEvent` where repeat_on='Every Year'
|
birthday_event = webnotes.conn.sql("""select name from `tabEvent` where repeat_on='Every Year'
|
||||||
and ref_type='Employee' and ref_name=%s""", self.doc.name)
|
and ref_type='Employee' and ref_name=%s""", self.doc.name)
|
||||||
|
|
||||||
starts_on = self.doc.date_of_birth + " 00:00:00"
|
starts_on = self.doc.date_of_birth + " 00:00:00"
|
||||||
ends_on = self.doc.date_of_birth + " 00:15:00"
|
ends_on = self.doc.date_of_birth + " 00:15:00"
|
||||||
|
|
||||||
if get_events:
|
if birthday_event:
|
||||||
webnotes.conn.sql("""update `tabEvent` set starts_on=%s, ends_on=%s
|
event = webnotes.bean("Event", birthday_event[0][0])
|
||||||
where name=%s""", (starts_on, ends_on, get_events[0][0]))
|
event.doc.starts_on = starts_on
|
||||||
|
event.doc.ends_on = ends_on
|
||||||
|
event.save()
|
||||||
else:
|
else:
|
||||||
webnotes.bean({
|
webnotes.bean({
|
||||||
"doctype": "Event",
|
"doctype": "Event",
|
||||||
"subject": _("Birthday") + ": " + self.doc.employee_name,
|
"subject": _("Birthday") + ": " + self.doc.employee_name,
|
||||||
|
"description": _("Happy Birthday!") + " " + self.doc.employee_name,
|
||||||
"starts_on": starts_on,
|
"starts_on": starts_on,
|
||||||
"ends_on": ends_on,
|
"ends_on": ends_on,
|
||||||
"event_type": "Public",
|
"event_type": "Public",
|
||||||
|
@ -59,7 +59,7 @@ def validate_install():
|
|||||||
return is_redhat, is_debian
|
return is_redhat, is_debian
|
||||||
|
|
||||||
def install_using_yum():
|
def install_using_yum():
|
||||||
packages = "python python-setuptools MySQL-python httpd git memcached ntp vim-enhanced screen"
|
packages = "python python-setuptools gcc python-devel MySQL-python httpd git memcached ntp vim-enhanced screen"
|
||||||
|
|
||||||
print "-"*80
|
print "-"*80
|
||||||
print "Installing Packages: (This may take some time)"
|
print "Installing Packages: (This may take some time)"
|
||||||
@ -108,7 +108,7 @@ def update_config_for_redhat():
|
|||||||
|
|
||||||
def install_using_apt():
|
def install_using_apt():
|
||||||
exec_in_shell("apt-get update")
|
exec_in_shell("apt-get update")
|
||||||
packages = "python python-setuptools python-mysqldb apache2 git memcached ntp vim screen htop"
|
packages = "python python-setuptools python-dev build-essential python-pip python-mysqldb apache2 git memcached ntp vim screen htop"
|
||||||
print "-"*80
|
print "-"*80
|
||||||
print "Installing Packages: (This may take some time)"
|
print "Installing Packages: (This may take some time)"
|
||||||
print packages
|
print packages
|
||||||
@ -145,7 +145,11 @@ def install_python_modules():
|
|||||||
print python_modules
|
print python_modules
|
||||||
print "-"*80
|
print "-"*80
|
||||||
|
|
||||||
|
if not exec_in_shell("which pip"):
|
||||||
exec_in_shell("easy_install pip")
|
exec_in_shell("easy_install pip")
|
||||||
|
|
||||||
|
exec_in_shell("pip install --upgrade pip")
|
||||||
|
exec_in_shell("pip install --upgrade virtualenv")
|
||||||
exec_in_shell("pip install -q %s" % python_modules)
|
exec_in_shell("pip install -q %s" % python_modules)
|
||||||
|
|
||||||
def install_erpnext(install_path):
|
def install_erpnext(install_path):
|
||||||
|
@ -148,6 +148,7 @@ def make_stock_entry(production_order_id, purpose):
|
|||||||
stock_entry.doc.production_order = production_order_id
|
stock_entry.doc.production_order = production_order_id
|
||||||
stock_entry.doc.company = production_order.doc.company
|
stock_entry.doc.company = production_order.doc.company
|
||||||
stock_entry.doc.bom_no = production_order.doc.bom_no
|
stock_entry.doc.bom_no = production_order.doc.bom_no
|
||||||
|
stock_entry.doc.use_multi_level_bom = production_order.doc.use_multi_level_bom
|
||||||
stock_entry.doc.fg_completed_qty = flt(production_order.doc.qty) - flt(production_order.doc.produced_qty)
|
stock_entry.doc.fg_completed_qty = flt(production_order.doc.qty) - flt(production_order.doc.produced_qty)
|
||||||
|
|
||||||
if purpose=="Material Transfer":
|
if purpose=="Material Transfer":
|
||||||
|
@ -5,7 +5,9 @@ from __future__ import unicode_literals
|
|||||||
import webnotes
|
import webnotes
|
||||||
|
|
||||||
def execute():
|
def execute():
|
||||||
for employee in webnotes.conn.sql_list("""select name from `tabEmployee` where ifnull(date_of_birth, '')!=''"""):
|
webnotes.conn.sql("""delete from `tabEvent` where repeat_on='Every Year' and ref_type='Employee'""")
|
||||||
|
for employee in webnotes.conn.sql_list("""select name from `tabEmployee` where status='Active' and
|
||||||
|
ifnull(date_of_birth, '')!=''"""):
|
||||||
obj = webnotes.get_obj("Employee", employee)
|
obj = webnotes.get_obj("Employee", employee)
|
||||||
obj.update_dob_event()
|
obj.update_dob_event()
|
||||||
|
|
@ -253,6 +253,6 @@ patch_list = [
|
|||||||
"patches.august_2013.p01_hr_settings",
|
"patches.august_2013.p01_hr_settings",
|
||||||
"patches.august_2013.p02_rename_price_list",
|
"patches.august_2013.p02_rename_price_list",
|
||||||
"patches.august_2013.p03_pos_setting_replace_customer_account",
|
"patches.august_2013.p03_pos_setting_replace_customer_account",
|
||||||
"patches.august_2013.p04_employee_birthdays",
|
|
||||||
"patches.august_2013.p05_update_serial_no_status",
|
"patches.august_2013.p05_update_serial_no_status",
|
||||||
|
"patches.august_2013.p05_employee_birthdays",
|
||||||
]
|
]
|
@ -69,12 +69,18 @@ def get_item_details(args):
|
|||||||
|
|
||||||
if cint(args.is_pos):
|
if cint(args.is_pos):
|
||||||
pos_settings = get_pos_settings(args.company)
|
pos_settings = get_pos_settings(args.company)
|
||||||
|
<<<<<<< HEAD
|
||||||
out.update(apply_pos_settings(pos_settings, out))
|
out.update(apply_pos_settings(pos_settings, out))
|
||||||
|
|
||||||
if args.doctype in ("Sales Invoice", "Delivery Note"):
|
if args.doctype in ("Sales Invoice", "Delivery Note"):
|
||||||
if item_bean.doc.has_serial_no and not args.serial_no:
|
if item_bean.doc.has_serial_no and not args.serial_no:
|
||||||
out.serial_no = _get_serial_nos_by_fifo(args, item_bean)
|
out.serial_no = _get_serial_nos_by_fifo(args, item_bean)
|
||||||
|
|
||||||
|
=======
|
||||||
|
if pos_settings:
|
||||||
|
out.update(apply_pos_settings(pos_settings, out))
|
||||||
|
|
||||||
|
>>>>>>> 3d1ecf5254c5887a48c04003c7dce8a218136ddd
|
||||||
return out
|
return out
|
||||||
|
|
||||||
def _get_serial_nos_by_fifo(args, item_bean):
|
def _get_serial_nos_by_fifo(args, item_bean):
|
||||||
|
@ -176,7 +176,8 @@ erpnext.StockAgeing = erpnext.StockGridReport.extend({
|
|||||||
xaxis: {
|
xaxis: {
|
||||||
ticks: $.map(me.data, function(item, idx) { return [[idx+1, item.name]] }),
|
ticks: $.map(me.data, function(item, idx) { return [[idx+1, item.name]] }),
|
||||||
max: 20
|
max: 20
|
||||||
}
|
},
|
||||||
|
series: { downsample: { threshold: 1000 } }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
@ -235,6 +235,7 @@ erpnext.StockLedger = erpnext.StockGridReport.extend({
|
|||||||
min: dateutil.str_to_obj(this.from_date).getTime(),
|
min: dateutil.str_to_obj(this.from_date).getTime(),
|
||||||
max: dateutil.str_to_obj(this.to_date).getTime(),
|
max: dateutil.str_to_obj(this.to_date).getTime(),
|
||||||
},
|
},
|
||||||
|
series: { downsample: { threshold: 1000 } }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
get_tooltip_text: function(label, x, y) {
|
get_tooltip_text: function(label, x, y) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user