Fix in Purchase Return - Serial No. status issue
diff --git a/erpnext/patches/jan_mar_2012/serial_no_add_opt.py b/erpnext/patches/jan_mar_2012/serial_no_add_opt.py
new file mode 100644
index 0000000..92011b0
--- /dev/null
+++ b/erpnext/patches/jan_mar_2012/serial_no_add_opt.py
@@ -0,0 +1,18 @@
+def execute():
+ import webnotes
+ opts = webnotes.conn.sql("""\
+ SELECT options FROM `tabDocField`
+ WHERE parent='Serial No' AND fieldname='status' AND
+ fieldtype='Select'""")
+ if opts and opts[0][0]:
+ opt_list = opts[0][0].split("\n")
+ if not "Purchase Returned" in opt_list:
+ webnotes.conn.sql("""
+ UPDATE `tabDocField` SET options=%s
+ WHERE parent='Serial No' AND fieldname='status' AND
+ fieldtype='Select'""", "\n".join(opt_list + ["Purchase Returned"]))
+ webnotes.conn.commit()
+ webnotes.conn.begin()
+
+ from webnotes.modules.module_manager import reload_doc
+ reload_doc('stock', 'doctype', 'serial_no')
diff --git a/erpnext/patches/patch_list.py b/erpnext/patches/patch_list.py
index d56ba2f..bb2e441 100644
--- a/erpnext/patches/patch_list.py
+++ b/erpnext/patches/patch_list.py
@@ -50,4 +50,9 @@
'patch_file': 'email_settings_reload',
'description': "Change type of mail_port field to Int and reload email_settings doctype"
},
+ {
+ 'patch_module': 'patches.jan_mar_2012',
+ 'patch_file': 'serial_no_add_opt',
+ 'description': "Add option 'Purchase Returned' to Serial No status field"
+ },
]
diff --git a/erpnext/stock/doctype/serial_no/serial_no.txt b/erpnext/stock/doctype/serial_no/serial_no.txt
index 277a2ec..df42c7f 100644
--- a/erpnext/stock/doctype/serial_no/serial_no.txt
+++ b/erpnext/stock/doctype/serial_no/serial_no.txt
@@ -5,14 +5,14 @@
{
'creation': '2010-08-08 17:09:23',
'docstatus': 0,
- 'modified': '2011-10-10 17:08:57',
+ 'modified': '2012-01-31 15:53:38',
'modified_by': 'Administrator',
'owner': 'Administrator'
},
# These values are common for all DocType
{
- '_last_update': '1317365120',
+ '_last_update': '1325570647',
'allow_trash': 1,
'autoname': 'field:serial_no',
'colour': 'White:FFF',
@@ -25,8 +25,9 @@
'section_style': 'Tabbed',
'server_code_error': ' ',
'show_in_menu': 0,
+ 'subject': 'Item Code: %(item_code)s, Warehouse: %(warehouse)s',
'tag_fields': 'status',
- 'version': 190
+ 'version': 191
},
# These values are common for all DocField
@@ -163,7 +164,7 @@
'no_copy': 1,
'oldfieldname': 'status',
'oldfieldtype': 'Select',
- 'options': '\nIn Store\nDelivered\nNot in Use',
+ 'options': '\nIn Store\nDelivered\nNot in Use\nPurchase Returned',
'permlevel': 1,
'reqd': 1,
'search_index': 1
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index ce6f7f6..be37880 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -435,7 +435,10 @@
sl_obj.update_serial_purchase_details(self, d, serial_no, is_submit, self.doc.purpose)
if self.doc.purpose == 'Purchase Return':
- delete_doc("Serial No", serial_no)
+ #delete_doc("Serial No", serial_no)
+ serial_doc = Document("Serial No", serial_no)
+ serial_doc.status = 'Purchase Returned'
+ serial_doc.save()
def on_submit(self):
diff --git a/erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.py b/erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.py
index 64f6bd2..783f91a 100644
--- a/erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.py
+++ b/erpnext/support/search_criteria/warranty_amc_summary/warranty_amc_summary.py
@@ -26,7 +26,7 @@
lft_rgt = sql("select lft, rgt from `tab%s` where name = '%s'" % (opt,r[col_idx[opt]].strip()))
- det = sql("select COUNT(CASE WHEN t1.amc_expiry_date < '%s' THEN t1.name ELSE NULL END), COUNT(CASE WHEN t1.amc_expiry_date >= '%s' THEN t1.name ELSE NULL END), COUNT(CASE WHEN t1.warranty_expiry_date < '%s' THEN t1.name ELSE NULL END), COUNT(CASE WHEN t1.warranty_expiry_date >= '%s' THEN t1.name ELSE NULL END) from `tabSerial No` t1, `tab%s` t2 where t1.%s = t2.name and t2.lft>= '%s' and t2. rgt <= '%s' and t1.status not in ('In Store', 'Scrapped','Not in Use') and ifnull(item_group,'')!='' and ifnull(territory,'')!=''" %(nowdate,nowdate,nowdate,nowdate,opt, opt_dict[opt], lft_rgt[0][0], lft_rgt[0][1]))
+ det = sql("select COUNT(CASE WHEN t1.amc_expiry_date < '%s' THEN t1.name ELSE NULL END), COUNT(CASE WHEN t1.amc_expiry_date >= '%s' THEN t1.name ELSE NULL END), COUNT(CASE WHEN t1.warranty_expiry_date < '%s' THEN t1.name ELSE NULL END), COUNT(CASE WHEN t1.warranty_expiry_date >= '%s' THEN t1.name ELSE NULL END) from `tabSerial No` t1, `tab%s` t2 where t1.%s = t2.name and t2.lft>= '%s' and t2. rgt <= '%s' and t1.status = 'Delivered' and ifnull(item_group,'')!='' and ifnull(territory,'')!=''" %(nowdate,nowdate,nowdate,nowdate,opt, opt_dict[opt], lft_rgt[0][0], lft_rgt[0][1]))
r.append(cint(det[0][0]))
r.append(cint(det[0][1]))