blob: 489f8e25c2b318b8c44d4f03d0a41904f80407ec [file] [log] [blame]
Pratik Vyasc1e6e4c2011-06-08 14:37:15 +05301# REMEMBER to update this
2# ========================
nabinhaita56fc002011-07-01 16:32:03 +05303
Nabin Haitc0d74342011-10-14 00:14:31 +05304last_patch = 388
Pratik Vyasc1e6e4c2011-06-08 14:37:15 +05305
6#-------------------------------------------
7
8def execute(patch_no):
9 import webnotes
Pratik Vyasc1e6e4c2011-06-08 14:37:15 +053010 from webnotes.modules.module_manager import reload_doc
11
12 from webnotes.model.code import get_obj
13 sql = webnotes.conn.sql
14 from webnotes.utils import cint, cstr, flt
15 from webnotes.model.doc import Document
Rushabh Mehta33bce672011-08-25 15:15:25 +053016 from webnotes.model import delete_doc
Brahma K09307622011-07-27 12:03:34 +053017
Rushabh Mehta9e6e7fa2011-08-25 16:08:06 +053018 if patch_no == 301:
nabinhait690c6972011-06-28 14:42:07 +053019 from patches.delivery_billing_status_patch import run_patch
20 run_patch()
nabinhaitb3930002011-06-28 16:50:38 +053021 elif patch_no == 302:
22 sql("update `tabDocField` set no_copy = 1 where fieldname = 'naming_series'")
Ravi Dey4c651192011-06-28 19:36:18 +053023 elif patch_no == 303:
Ravi Dey27c5b402011-06-29 18:05:18 +053024 pass
25 elif patch_no == 304:
Rushabh Mehtac71eeb62011-06-30 08:28:36 +053026 sql("delete from `tabDocField` where parent = 'company' and label = 'Trash Company' and fieldtype = 'button'")
Ravi Deyc674e432011-06-29 18:15:12 +053027 reload_doc('setup', 'doctype', 'company')
Ravi Dey79c28652011-06-29 18:55:19 +053028 elif patch_no == 305:
29 sql("update `tabDocField` set options = 'link:Company' where options='link:Company' and fieldname='company' and fieldtype='Select'")
nabinhaitec097972011-07-01 13:34:41 +053030 elif patch_no == 306:
Ravi Dey94a332a2011-07-01 13:50:34 +053031 sql("update `tabDocField` set options = '\nAccount\nCompany\nCustomer\nSupplier\nEmployee\nWarehouse\nItem' where parent = 'Rename Tool' and fieldname = 'select_doctype'")
32 sql("update `tabDocField` set options = 'link:Item' where parent = 'Raw Materials Supplied' and fieldname = 'po_item'")
33 sql("update `tabDocField` set options = 'Sales Order' where parent = 'Indent Detail' and fieldname = 'sales_order_no'")
34 sql("update `tabDocField` set options = 'link:Company', fieldtype = 'Select' where parent = 'Stock Ledger Entry' and fieldname = 'company'")
Nabin Hait31a407d2011-07-28 11:47:45 +053035 reload_doc('utilities', 'doctype', 'rename_tool')
Ravi Dey627d01b2011-07-01 14:05:43 +053036 elif patch_no == 307:
37 sql("delete from `tabDocField` where parent = 'company' and label = 'Trash Company' and fieldtype = 'Button'")
38 reload_doc('setup', 'doctype', 'company')
nabinhaita56fc002011-07-01 16:32:03 +053039 elif patch_no == 308:
Ravi Deyc1886b52011-07-04 16:53:42 +053040 sql("update `tabDocField` set reqd = 0 where fieldname = 'select_item' and parent = 'Property Setter'")
nabinhait1bd56b12011-07-05 14:41:36 +053041 elif patch_no == 309:
42 sql("delete from `tabDocField` where fieldname = 'item_attachments_details' and parent = 'Item'")
nabinhait7f339e02011-07-05 15:43:17 +053043 sql("delete from `tabModule Def Item` where parent = 'Stock' and doc_name = 'Landed Cost Wizard'")
nabinhait5deab242011-07-06 09:23:02 +053044 elif patch_no == 310:
45 from erpnext_structure_cleanup import run_patches
46 run_patches()
nabinhait4bb8bf42011-07-06 10:11:11 +053047 elif patch_no == 311:
48 sql("update `tabDocField` set reqd = 0 where fieldname = 'select_item' and parent = 'Property Setter'")
nabinhait4c38fbb2011-07-06 10:36:53 +053049 #reload_doc('core', 'doctype', 'property_setter')
nabinhait4bb8bf42011-07-06 10:11:11 +053050 elif patch_no == 312:
51 sql("delete from `tabSessions`")
52 sql("delete from `__SessionCache`")
nabinhaitd54ec522011-07-06 12:20:21 +053053 elif patch_no == 313:
54 dt = ['GL Entry', 'Stock Ledger Entry']
55 for t in dt:
56 rec = sql("select voucher_type, voucher_no, ifnull(is_cancelled, 'No') from `tab%s` where modified >= '2011-07-06 10:00:00' group by voucher_no" % t)
57 for d in rec:
nabinhaitfccbb092011-07-06 12:23:27 +053058 sql("update `tab%s` set docstatus = %s where name = '%s'" % (d[0], d[2]=='No' and 1 or 2, d[1]))
Brahma K09307622011-07-27 12:03:34 +053059
nabinhaitd54ec522011-07-06 12:20:21 +053060 other_dt = ['Enquiry', 'Quotation', 'Sales Order', 'Indent', 'Purchase Order', 'Production Order', 'Customer Issue', 'Installation Note']
61 for dt in other_dt:
62 rec = sql("select name, status from `tab%s` where modified >= '2011-07-06 10:00:00'" % dt)
63 for r in rec:
64 sql("update `tab%s` set docstatus = %s where name = '%s'" % (dt, (r[1] in ['Submitted', 'Closed'] and 1 or r[1]=='Cancelled' and 2 or 0), r[0]))
Brahma K09307622011-07-27 12:03:34 +053065
66
nabinhaitd54ec522011-07-06 12:20:21 +053067 dt_list = ['Delivery Note', 'Purchase Receipt']
68 for dt in dt_list:
69 sql("update `tab%s` set status = 'Submitted' where docstatus = 1 and modified >='2011-07-06 10:00:00'" % dt)
70 sql("update `tab%s` set status = 'Cancelled' where docstatus = 2 and modified >='2011-07-06 10:00:00'" % dt)
71
72 dt_list = ['Enquiry', 'Quotation', 'Sales Order', 'Indent', 'Purchase Order', 'Production Order', 'Customer Issue', 'Installation Note', 'Receivable Voucher', 'Payable Voucher', 'Delivery Note', 'Purchase Receipt', 'Journal Voucher', 'Stock Entry']
73 for d in dt_list:
74 tbl = sql("select options from `tabDocField` where fieldtype = 'Table' and parent = '%s'" % d)
75 for t in tbl:
76 sql("update `tab%s` t1, `tab%s` t2 set t1.docstatus = t2.docstatus where t1.parent = t2.name" % (t[0], d))
Brahma K09307622011-07-27 12:03:34 +053077
nabinhait22f7edd2011-07-06 12:45:02 +053078 elif patch_no == 314:
79 # delete double feed
80 sql("delete from tabFeed where subject like 'New %'")
nabinhaiteb315402011-07-06 13:03:31 +053081 elif patch_no == 315:
82 # delete double feed
83 sql("delete from tabFeed where doc_name like 'New %'")
84 reload_doc('core', 'doctype', 'property_setter')
85
86 from webnotes.model.doc import Document
87 m = Document('Module Def Role')
88 m.role = 'All'
89 m.parent = 'Home'
90 m.parenttype = 'Module Def'
91 m.parentfield = 'roles'
92 m.save(1)
Ravi Dey7a6211d2011-07-07 15:49:24 +053093 elif patch_no == 316:
Ravi Dey89822722011-07-07 15:52:35 +053094 pass
95 elif patch_no == 317:
Brahma K09307622011-07-27 12:03:34 +053096 sql("update `tabPage` set name = 'profile-settings' where page_name = 'Profile Settings'")
Anand Doshi56ab7e42011-07-07 18:37:58 +053097 elif patch_no == 318:
Ravi Deycfc5dff2011-07-07 16:48:54 +053098 reload_doc('utilities', 'doctype', 'bulk_rename_tool')
Anand Doshi52b1d5a2011-07-07 18:41:12 +053099 elif patch_no == 319:
Anand Doshi56ab7e42011-07-07 18:37:58 +0530100 sql("delete from tabFeed where doc_name like 'New %'")
nabinhait63cf2b92011-07-08 13:30:46 +0530101 elif patch_no == 320:
102 reload_doc('setup', 'doctype', 'series_detail')
Ravi Deyfac96e12011-07-08 13:38:16 +0530103 elif patch_no == 321:
Ravi Dey84913842011-07-08 13:46:09 +0530104 reload_doc('hr','doctype','leave_application')
105 elif patch_no == 322:
106 sql("delete from `tabDocField` where parent = 'Leave Application' and fieldname = 'latter_head'")
Nabin Hait2acac4b2011-07-10 13:52:05 +0530107 elif patch_no == 323:
108 reload_doc('stock', 'doctype', 'stock_entry')
Nabin Haite079a6e2011-07-10 14:15:52 +0530109 sql("update `tabDocField` set options = 'get_stock_and_rate' where parent = 'Stock Entry' and label = 'Get Stock and Rate'")
110 sql("delete from `tabDocField` where label = 'Get Current Stock' and parent = 'Stock Entry'")
nabinhait54b0e7d2011-07-13 16:40:03 +0530111 elif patch_no == 324:
112 sql("delete from `tabDocField` where fieldname = 'test_field' and parent = 'Customer'")
Ravi Dey9dd0c0b2011-07-13 18:08:38 +0530113 elif patch_no == 325:
114 sql("update `tabDocField` set fieldtype = 'Data' where parent = 'Salary Slip' and fieldname = 'total_days_in_month'")
115 reload_doc('hr', 'doctype', 'salary_slip')
Rushabh Mehta61790802011-07-17 10:52:47 +0530116 elif patch_no == 326:
117 # load the new billing page
118 if cint(webnotes.conn.get_value('Control Panel',None,'sync_with_gateway')):
119 reload_doc('server_tools','page','billing')
nabinhaite6526362011-07-19 18:09:26 +0530120 elif patch_no == 327:
Rushabh Mehta391aa022011-07-25 14:07:50 +0530121 # patch for support email settings now moved to email settings
122 reload_doc('setup','doctype','email_settings')
Brahma K09307622011-07-27 12:03:34 +0530123
Rushabh Mehta391aa022011-07-25 14:07:50 +0530124 # map fields from support to email settings
125 field_map = {
126 'support_email': 'email',
127 'support_host':'host',
128 'support_username': 'username',
129 'support_password': 'password',
Rushabh Mehtab7186d42011-07-25 14:37:48 +0530130 'support_use_ssl': 'use_ssl',
Rushabh Mehta391aa022011-07-25 14:07:50 +0530131 'sync_support_mails': 'integrate_incoming',
132 'signature': 'support_signature'
133 }
Brahma K09307622011-07-27 12:03:34 +0530134
Rushabh Mehta391aa022011-07-25 14:07:50 +0530135 for key in field_map:
136 webnotes.conn.set_value('Email Settings',None,key, \
137 webnotes.conn.get_value('Support Email Settings',None,field_map[key]))
Brahma K09307622011-07-27 12:03:34 +0530138
Rushabh Mehta391aa022011-07-25 14:07:50 +0530139 # delete support email settings
Rushabh Mehta391aa022011-07-25 14:07:50 +0530140 delete_doc('DocType', 'Support Email Settings')
141
Rushabh Mehta9b8fad22011-07-25 14:45:42 +0530142 reload_doc('support','doctype','support_ticket')
Nabin Hait587ac5c2011-07-26 15:46:10 +0530143 sql("delete from tabDocField where fieldname='problem_description' and parent='Support Ticket'")
144 elif patch_no == 328:
nabinhaite6526362011-07-19 18:09:26 +0530145 if webnotes.conn.get_value('Control Panel', None, 'account_id') != 'axjanak2011':
146 sql("delete from `tabDocField` where fieldname = 'supplier_status' and parent = 'Supplier'")
Nabin Hait587ac5c2011-07-26 15:46:10 +0530147 elif patch_no == 329:
nabinhaitde9826c2011-07-20 18:02:59 +0530148 reload_doc('utilities', 'doctype', 'rename_tool')
149 reload_doc('utilities', 'doctype', 'bulk_rename_tool')
Brahma K09307622011-07-27 12:03:34 +0530150 elif patch_no == 330:
151 reload_doc('accounts', 'doctype', 'lease_agreement')
152 reload_doc('accounts', 'doctype', 'lease_installment')
153
154 reload_doc('accounts', 'search_criteria', 'lease_agreement_list')
155 reload_doc('accounts', 'search_criteria', 'lease_monthly_future_installment_inflows')
156 reload_doc('accounts', 'search_criteria', 'lease_overdue_age_wise')
Nabin Haitf541b742011-07-28 15:33:42 +0530157 reload_doc('accounts', 'search_criteria', 'lease_over_due_list')
Brahma K09307622011-07-27 12:03:34 +0530158 reload_doc('accounts', 'search_criteria', 'lease_receipts_client_wise')
159 reload_doc('accounts', 'search_criteria', 'lease_receipt_summary_year_to_date')
160 reload_doc('accounts', 'search_criteria', 'lease_yearly_future_installment_inflows')
Brahma Kbcdade52011-07-27 12:11:09 +0530161
162 reload_doc('accounts', 'Module Def', 'Accounts')
Brahma K3b1ebe02011-07-27 13:04:11 +0530163 elif patch_no == 331:
164 p = get_obj('Patch Util')
165 # permission
166 p.add_permission('Lease Agreement', 'Accounts Manager', 0, read = 1, write=1,submit=1, cancel=1,amend=1)
167 p.add_permission('Lease Agreement', 'Accounts Manager', 1, read = 1)
Nabin Haitd29916b2011-07-27 14:26:23 +0530168 elif patch_no == 332:
169 sql("update `tabDocField` set permlevel=1, hidden = 1 where parent = 'Bulk Rename Tool' and fieldname = 'file_list'")
Brahma Ke8ec9752011-08-16 12:21:07 +0530170 elif patch_no == 333:
Nabin Haitd31de592011-08-10 14:01:27 +0530171 sql("update `tabDocPerm` set `create` =1 where role = 'Accounts Manager' and parent = 'Lease Agreement'")
Brahma K2eb81012011-08-16 12:27:48 +0530172
Nabin Hait812e7182011-08-05 11:10:30 +0530173 p = get_obj('Patch Util')
174 p.add_permission('DocType Mapper', 'System Manager', 0, read = 1, write=1, create=1)
175 p.add_permission('Role', 'System Manager', 0, read = 1, write=1, create=1)
176 p.add_permission('Print Format', 'System Manager', 0, read = 1, write=1, create=1)
Nabin Haitc4e579c2011-08-05 11:21:35 +0530177 elif patch_no == 334:
178 reload_doc('knowledge_base', 'doctype', 'answer')
Nabin Haitf82b1cc2011-08-05 13:23:14 +0530179 elif patch_no == 335:
Nabin Hait2c0ab732011-08-05 13:40:04 +0530180 for dt in ['Account', 'Cost Center', 'Territory', 'Item Group', 'Customer Group']:
Anand Doshib61abff2011-08-10 11:58:05 +0530181 sql("update `tabDocField` set fieldtype = 'Link', options = %s where fieldname = 'old_parent' and parent = %s", (dt, dt))
182 elif patch_no == 336:
Anand Doshiaabf1742011-08-10 13:27:25 +0530183 reload_doc('server_tools','page','billing')
184 elif patch_no == 337:
Brahma K2eb81012011-08-16 12:27:48 +0530185 item_list = webnotes.conn.sql("""SELECT name, description_html
Anand Doshiaabf1742011-08-10 13:27:25 +0530186 FROM tabItem""")
187 if item_list:
188 for item, html in item_list:
189 if html and "getfile" in html and "acx" in html:
190 ac_id = webnotes.conn.sql("""SELECT value FROM `tabSingles` WHERE doctype='Control Panel' AND field='account_id'""")
191 sp_acx = html.split("acx=")
192 l_acx = len(sp_acx)
Brahma K2eb81012011-08-16 12:27:48 +0530193 if l_acx > 1:
Anand Doshiaabf1742011-08-10 13:27:25 +0530194 for i in range(l_acx-1):
195 sp_quot = sp_acx[i+1].split('"')
196 if len(sp_quot) > 1: sp_quot[0] = str(ac_id[0][0])
197 sp_acx[i+1] = '"'.join(sp_quot)
198 html = "acx=".join(sp_acx)
Nabin Haitd31de592011-08-10 14:01:27 +0530199 webnotes.conn.sql("""UPDATE tabItem SET description_html=%s WHERE name=%s""", (html, item))
Nabin Hait76980b02011-08-10 16:35:25 +0530200 elif patch_no == 338:
201 # Patch for billing status based on amount
202 # reload so and dn
203 reload_doc('selling','doctype','sales_order')
204 reload_doc('stock','doctype','delivery_note')
Brahma K2eb81012011-08-16 12:27:48 +0530205
Nabin Hait76980b02011-08-10 16:35:25 +0530206 # delete billed_qty field
207 sql("delete from `tabDocField` where fieldname = 'billed_qty' and parent in ('Sales Order Detail', 'Delivery Note Detail')")
Brahma K2eb81012011-08-16 12:27:48 +0530208
Nabin Hait76980b02011-08-10 16:35:25 +0530209 # update billed amt in item table in so and dn
210 sql(""" update `tabSales Order Detail` so
211 set billed_amt = (select sum(amount) from `tabRV Detail` where `so_detail`= so.name and docstatus=1 and parent not like 'old%%'), modified = now()""")
Brahma K2eb81012011-08-16 12:27:48 +0530212
Nabin Hait76980b02011-08-10 16:35:25 +0530213 sql(""" update `tabDelivery Note Detail` dn
214 set billed_amt = (select sum(amount) from `tabRV Detail` where `dn_detail`= dn.name and docstatus=1 and parent not like 'old%%'), modified = now()""")
Brahma K2eb81012011-08-16 12:27:48 +0530215
Nabin Hait76980b02011-08-10 16:35:25 +0530216 # calculate % billed based on item table
217 sql(""" update `tabSales Order` so
218 set per_billed = (select sum(if(amount > ifnull(billed_amt, 0), billed_amt, amount))/sum(amount)*100 from `tabSales Order Detail` where parent = so.name), modified = now()""")
Brahma K2eb81012011-08-16 12:27:48 +0530219
Nabin Hait76980b02011-08-10 16:35:25 +0530220 sql(""" update `tabDelivery Note` dn
221 set per_billed = (select sum(if(amount > ifnull(billed_amt, 0), billed_amt, amount))/sum(amount)*100 from `tabDelivery Note Detail` where parent = dn.name), modified = now()""")
222
223 # update billing status based on % billed
224 sql("""update `tabSales Order` set billing_status = if(ifnull(per_billed,0) < 0.001, 'Not Billed',
225 if(per_billed >= 99.99, 'Fully Billed', 'Partly Billed'))""")
226 sql("""update `tabDelivery Note` set billing_status = if(ifnull(per_billed,0) < 0.001, 'Not Billed',
227 if(per_billed >= 99.99, 'Fully Billed', 'Partly Billed'))""")
Rushabh Mehtaab5292a2011-08-16 10:04:29 +0530228
Rushabh Mehtaaf43b742011-08-11 12:37:11 +0530229 # update name of questions page
230 sql("update tabPage set name='questions' where name='Questions'")
Brahma K2eb81012011-08-16 12:27:48 +0530231 sql("update tabPage set name='question-view' where name='Question View'")
Brahma Kfce442e2011-08-16 14:48:46 +0530232 elif patch_no == 339:
Brahma Ke8ec9752011-08-16 12:21:07 +0530233 reload_doc('production','doctype','bill_of_materials')
Nabin Hait95374462011-08-22 14:40:11 +0530234 elif patch_no == 340:
235 sql("update `tabDocField` set permlevel = 0 where (fieldname in ('process', 'production_order', 'fg_completed_qty') or label = 'Get Items') and parent = 'Stock Entry'")
Brahma K82187ce2011-08-23 15:42:34 +0530236 elif patch_no == 341:
237 reload_doc('stock','doctype','delivery_note')
Brahma K67164802011-08-23 16:22:29 +0530238 reload_doc('stock','doctype','item')
239 reload_doc('selling','doctype','quotation')
Brahma K82187ce2011-08-23 15:42:34 +0530240 reload_doc('stock','Print Format','Delivery Note Packing List Wise')
241
242 if not sql("select format from `tabDocFormat` where name = 'Delivery Note Packing List Wise' and parent = 'Delivery Note'"):
243 from webnotes.model.doc import addchild
244 dt_obj = get_obj('DocType', 'Delivery Note', with_children = 1)
245 ch = addchild(dt_obj.doc, 'formats', 'DocFormat', 1)
246 ch.format = 'Delivery Note Packing List Wise'
247 ch.save(1)
Brahma Kc735d442011-08-23 18:38:48 +0530248 elif patch_no == 342:
Nabin Haita0760df2011-08-23 17:29:54 +0530249 sql("update `tabDocField` set permlevel = 0 where parent = 'Stock Entry Detail' and fieldname in ('s_warehouse', 't_warehouse', 'fg_item')")
Brahma Kb25ed702011-08-23 18:41:25 +0530250 elif patch_no == 343:
Brahma Kc735d442011-08-23 18:38:48 +0530251 reload_doc('stock','doctype','item_customer_detail')
Nabin Haitcfe8ee82011-08-25 14:02:01 +0530252 elif patch_no == 344:
Nabin Hait7b8f53c2011-08-24 11:23:34 +0530253 sql("delete from `tabDocFormat` where ifnull(format, '') = '' and parent = 'Delivery Note'")
Rushabh Mehta8cf45172011-09-08 14:17:41 +0530254 reload_doc('stock', 'doctype', 'delivery_note_detail')
255 reload_doc('stock', 'doctype', 'item_customer_detail')
Rushabh Mehta33bce672011-08-25 15:15:25 +0530256 elif patch_no == 345:
Rushabh Mehta910d9552011-08-30 16:09:01 +0530257 # rerun 343 (merge confict)
258 reload_doc('stock','doctype','item_customer_detail')
Nabin Haitcfe8ee82011-08-25 14:02:01 +0530259 sql("delete from `tabModule Def Item` where display_name = 'Salary Slip Control Panel' and parent = 'HR'")
260 reload_doc('hr','Module Def','HR')
Rushabh Mehta33bce672011-08-25 15:15:25 +0530261 elif patch_no == 346:
Rushabh Mehta96fde952011-08-29 17:54:27 +0530262 pass
Nabin Hait2c030152011-08-25 19:41:24 +0530263 elif patch_no == 347:
264 sql("delete from `tabField Mapper Detail` where from_field = to_field and map = 'Yes' and ifnull(checking_operator, '') = ''")
Nabin Hait1d5cab82011-08-29 13:16:52 +0530265 elif patch_no == 348:
266 sql("update `tabStock Ledger Entry` set is_cancelled = 'No' where voucher_type = 'Serial No'")
Nabin Haite0410da2011-08-29 14:24:19 +0530267 elif patch_no == 349:
268 delete_doc('Custom Script', 'Update Series-Server')
269 delete_doc('Custom Script', 'Profile-Client')
270 delete_doc('Custom Script', 'Event-Client')
271 delete_doc('Custom Script', 'File-Server')
Brahma K3c9a6a12011-08-31 12:55:41 +0530272
Rushabh Mehta96fde952011-08-29 17:54:27 +0530273 # reload profile with new fields for security
274 delete_doc('DocType', 'Profile')
275 reload_doc('core', 'doctype', 'profile')
Nabin Hait7282fce2011-08-30 17:34:14 +0530276 elif patch_no == 350:
277 reload_doc('stock', 'doctype', 'delivery_note_detail')
278 reload_doc('stock', 'doctype', 'item_customer_detail')
Nabin Hait93592132011-08-31 11:27:51 +0530279 elif patch_no == 351:
280 reload_doc('home', 'page', 'dashboard')
Nabin Haitef757612011-09-02 13:10:23 +0530281 elif patch_no == 352:
282 reload_doc('stock','doctype','delivery_note')
283 reload_doc('stock','doctype','item')
284 reload_doc('selling','doctype','quotation')
285 reload_doc('stock','Print Format','Delivery Note Packing List Wise')
286
287 if not sql("select format from `tabDocFormat` where name = 'Delivery Note Packing List Wise' and parent = 'Delivery Note'"):
288 from webnotes.model.doc import addchild
289 dt_obj = get_obj('DocType', 'Delivery Note', with_children = 1)
290 ch = addchild(dt_obj.doc, 'formats', 'DocFormat', 1)
291 ch.format = 'Delivery Note Packing List Wise'
292 ch.save(1)
Nabin Haitc63e62e2011-09-02 14:44:15 +0530293 elif patch_no == 353:
Rushabh Mehta5f506172011-09-13 15:48:51 +0530294 reload_doc('core', 'doctype', 'doctype')
295 sql("update `tabDocType` set default_print_format = 'Standard' where name = 'Delivery Note'")
Nabin Hait8c2618c2011-09-02 17:43:32 +0530296 elif patch_no == 354:
Rushabh Mehta5f506172011-09-13 15:48:51 +0530297 reload_doc('stock', 'doctype', 'delivery_note')
298 reload_doc('stock', 'doctype', 'delivery_note_detail')
299 elif patch_no == 355:
300 sql("update `tabDocField` set print_hide =1 where fieldname in ('pack_no', 'pack_gross_wt', 'weight_uom', 'pack_nett_wt') and parent = 'Delivery Note Detail'")
301 elif patch_no == 356:
302 sql("update `tabDocField` set print_hide =1 where fieldname = 'print_packing_slip' and parent = 'Delivery Note'")
303 elif patch_no == 357:
304 reload_doc('hr', 'doctype', 'salary_manager')
305 elif patch_no == 358:
Rushabh Mehtab5717bd2011-09-06 12:46:33 +0530306 reload_doc('setup', 'doctype','features_setup')
Brahma K3c9a6a12011-08-31 12:55:41 +0530307 reload_doc('stock','doctype','item')
308 sql("update tabDocField set label='Produced Qty',description='Updated after finished goods are transferred to FG Warehouse through Stock Entry' where parent='Production Order' and fieldname='produced_qty'")
Brahma K8e8c4822011-08-31 15:46:29 +0530309 rs = sql("select fieldname from tabDocField where parent='Features Setup' and fieldname is not null")
310 from webnotes.model.doc import Document
Nabin Hait0b5f9b02011-09-16 14:32:23 +0530311 m = Document('Features Setup')
Brahma K8e8c4822011-08-31 15:46:29 +0530312 for d in rs:
313 m.fields[d[0]] = 1
Brahma K779cfaf2011-09-02 16:55:03 +0530314 m.save()
Rushabh Mehta5f506172011-09-13 15:48:51 +0530315 elif patch_no == 359:
Nabin Hait8c2618c2011-09-02 17:43:32 +0530316 reload_doc('hr', 'doctype', 'salary_slip')
317 delete_doc('DocType', 'Salary Control Panel')
Rushabh Mehta5f506172011-09-13 15:48:51 +0530318 elif patch_no == 360:
Rushabh Mehta8cf45172011-09-08 14:17:41 +0530319 sql("delete from `tabDocField` where (fieldname in ('client_string', 'server_code_error', 'server_code_compiled', 'server_code', 'server_code_core', 'client_script', 'client_script_core', 'dt_template', 'change_log') or label = 'Template') and parent = 'DocType'")
Rushabh Mehta5f506172011-09-13 15:48:51 +0530320 elif patch_no == 361:
321 sql("update `tabModule Def Item` set doc_name = 'GL Entry' where display_name in ('Lease Agreement List', 'Lease Monthly Future Installment Inflows', 'Lease Overdue Age Wise', 'Lease Overdue List', 'Lease Receipts Client Wise', 'Lease Receipt Summary Month Wise', 'Lease Yearly Future Installment Inflows') and parent = 'Accounts'")
322 elif patch_no == 362:
323 sql("update `tabDocField` set no_copy = 1 where fieldname in ('amended_from', 'amendment_date', 'file_list', 'naming_series', 'status')")
324 elif patch_no == 363:
325 reload_doc('accounts', 'search_criteria', 'voucher_wise_tax_details')
326 reload_doc('accounts', 'Module Def', 'Accounts')
327 mappers = sql("select name, module from `tabDocType Mapper`")
328 for d in mappers:
329 if d[0] and d[1]:
330 reload_doc(d[1].lower(), 'DocType Mapper', d[0])
Rushabh Mehta27739402011-09-15 12:55:25 +0530331 elif patch_no == 364:
332 sql("""delete from `tabField Mapper Detail`
333 where to_field in ('qty', 'amount', 'export_amount')
334 and parent in ('Sales Order-Receivable Voucher', 'Delivery Note-Receivable Voucher')
335 """)
336 mappers = sql("select name, module from `tabDocType Mapper`")
337 for d in mappers:
338 if d[0] and d[1]:
339 reload_doc(d[1].lower(), 'DocType Mapper', d[0])
340 elif patch_no == 365:
341 from patches.delivery_billing_status_patch import run_patch
342 run_patch()
Nabin Haitfdb0e362011-09-19 12:22:47 +0530343 elif patch_no == 367:
Nabin Hait0b5f9b02011-09-16 14:32:23 +0530344 bin = sql("select name from tabBin")
345 for b in bin:
346 bobj = get_obj('Bin',b[0])
Nabin Haitfdb0e362011-09-19 12:22:47 +0530347 prev_sle = bobj.get_prev_sle(posting_date = '2011-09-01', posting_time = '01:00')
348 bobj.update_item_valuation(posting_date = '2011-09-01', posting_time = '01:00', prev_sle = prev_sle)
349 elif patch_no == 368:
Nabin Haitb3ce0ec2011-09-22 16:10:15 +0530350 from webnotes.utils import nestedset
351 t = [
352 ['Account', 'parent_account'], ['Cost Center', 'parent_cost_center'],
353 ['Item Group', 'parent_item_group'], ['Territory', 'parent_territory'],
354 ['Customer Group', 'parent_customer_group'], ['Sales Person', 'parent_sales_person']
355 ]
356 for d in t:
357 nestedset.rebuild_tree(d[0], d[1])
Nabin Hait7e97d1f2011-09-27 11:34:06 +0530358 elif patch_no == 369:
Nabin Haitb3ce0ec2011-09-22 16:10:15 +0530359 reload_doc('hr', 'doctype', 'appraisal')
360 reload_doc('hr', 'doctype', 'appraisal_detail')
Nabin Hait7e97d1f2011-09-27 11:34:06 +0530361 elif patch_no == 370:
362 sql("update `tabDocField` set `hidden` = 0 where fieldname = 'group_or_ledger' and parent = 'Cost Center'")
Nabin Haitb3ce0ec2011-09-22 16:10:15 +0530363 elif patch_no == 371:
364 comp = sql("select name from tabCompany where docstatus!=2")
365 fy = sql("select name from `tabFiscal Year` order by year_start_date asc")
366 for c in comp:
367 prev_fy = ''
368 for f in fy:
369 fy_obj = get_obj('Fiscal Year', f[0])
370 fy_obj.doc.past_year = prev_fy
371 fy_obj.doc.company = c[0]
372 fy_obj.doc.save()
373 fy_obj.repost()
374 prev_fy = f[0]
375 sql("commit")
376 sql("start transaction")
Nabin Haita28e3662011-09-22 16:32:02 +0530377 elif patch_no == 372:
Nabin Hait7e97d1f2011-09-27 11:34:06 +0530378 sql("update tabDocPerm set amend = 0 where parent = 'Salary Structure'")
379 sql("update tabDocPerm set cancel = 1 where parent = 'Company' and role = 'System Manager'")
380 elif patch_no == 373:
Nabin Haita28e3662011-09-22 16:32:02 +0530381 if sql("select count(name) from `tabDocField` where label = 'View Ledger Entry' and parent = 'Journal Voucher' and fieldtype = 'Button'")[0][0] > 1:
382 sql("delete from `tabDocField` where label = 'View Ledger Entry' and parent = 'Journal Voucher' and fieldtype = 'Button' limit 1")
383 if sql("select count(name) from `tabDocField` where label = 'Get Balance' and parent = 'Journal Voucher' and fieldtype = 'Button'")[0][0] > 1:
384 sql("delete from `tabDocField` where label = 'Get Balance' and parent = 'Journal Voucher' and fieldtype = 'Button' limit 1")
Nabin Haite76e2a12011-09-27 12:45:48 +0530385 elif patch_no == 374:
386 reload_doc('accounts', 'doctype', 'internal_reconciliation')
387 reload_doc('accounts', 'doctype', 'ir_payment_detail')
388 reload_doc('accounts', 'Module Def', 'Accounts')
Nabin Haitb30c4a62011-10-05 11:36:16 +0530389 elif patch_no == 375:
390 from webnotes.modules.module_manager import reload_doc
391
392 reload_doc('setup', 'doctype','features_setup')
393 flds = ['page_break', 'projects', 'packing_details', 'discounts', 'brands', 'item_batch_nos', 'after_sales_installations', 'item_searial_nos', 'item_group_in_details', 'exports', 'imports', 'item_advanced', 'sales_extras', 'more_info', 'quality', 'manufacturing', 'pos', 'item_serial_nos']
394
395 for f in flds:
396 val = sql("select value from tabSingles where field = '%s' and doctype = 'Features Setup'" % f)
397 val = val and val[0][0] or 0
398 sql("update `tabSingles` set `value` = %s where `field` = '%s' and doctype = 'Features Setup'" % (val, '__'+f))
399
400 st = "'"+"', '".join(flds)+"'"
401 sql("delete from `tabDocField` where fieldname in (%s) and parent = 'Features Setup'" % st)
402 sql("delete from `tabDefaultValue` where defkey in (%s) and parent = 'Control Panel'" % st)
403
404 get_obj('Features Setup', 'Features Setup').doc.save()
405
406 elif patch_no == 376:
407 from webnotes.modules.module_manager import reload_doc
408
409 reload_doc('setup', 'doctype','features_setup')
410 flds = ['page_break', 'projects', 'packing_details', 'discounts', 'brands', 'item_batch_nos', 'after_sales_installations', 'item_searial_nos', 'item_group_in_details', 'exports', 'imports', 'item_advanced', 'sales_extras', 'more_info', 'quality', 'manufacturing', 'pos', 'item_serial_nos']
411
412 for f in flds:
413 val = sql("select value from tabSingles where field = '%s' and doctype = 'Features Setup'" % f)
414 val = val and val[0][0] or 0
415 sql("update `tabSingles` set `value` = %s where `field` = '%s' and doctype = 'Features Setup'" % (val, 'fs_'+f))
416
417 st = "'__"+"', '__".join(flds)+"'"
418
419 sql("delete from `tabDocField` where fieldname in (%s) and parent = 'Features Setup'" % st)
420 sql("delete from `tabDefaultValue` where defkey in (%s) and parent = 'Control Panel'" % st)
421
422 get_obj('Features Setup', 'Features Setup').doc.save()
Nabin Haita55eec12011-10-05 11:47:08 +0530423 elif patch_no == 377:
424 sql("delete from `tabDocField` where fieldname = 'item_searial_nos' and parent = 'Features Setup'")
425 sql("delete from `tabDefaultValue` where defkey = 'item_searial_nos' and parent = 'Control Panel'")
Nabin Haitda50c082011-10-05 12:10:08 +0530426 elif patch_no == 378:
427 rs = sql("select fieldname from tabDocField where parent='Features Setup' and fieldname is not null")
428 from webnotes.model.code import get_obj
429 m = get_obj('Features Setup')
430 for d in rs:
431 m.doc.fields[d[0]] = 1
432 m.doc.save()
433 m.validate()
Nabin Haitc68e0452011-10-05 17:01:16 +0530434 elif patch_no == 379:
435 if sql("select count(name) from `tabDocField` where label = 'Get Specification Details' and parent = 'QA Inspection Report' and fieldtype = 'Button'")[0][0] > 1:
436 sql("delete from `tabDocField` where label = 'Get Specification Details' and parent = 'QA Inspection Report' and fieldtype = 'Button' limit 1")
Nabin Hait7a941862011-10-07 12:30:48 +0530437 elif patch_no == 380:
438 from webnotes.session_cache import clear_cache
439 clear_cache(webnotes.session['user'])
Nabin Haitddaa5a32011-10-07 12:36:13 +0530440 elif patch_no == 381:
441 reload_doc('stock', 'DocType Mapper', 'Purchase Order-Purchase Receipt')
Nabin Hait8e54aa82011-10-07 19:03:19 +0530442 elif patch_no == 382:
443 flds = ['page_break', 'projects', 'packing_details', 'discounts', 'brands', 'item_batch_nos', 'after_sales_installations', 'item_searial_nos', 'item_group_in_details', 'exports', 'imports', 'item_advanced', 'sales_extras', 'more_info', 'quality', 'manufacturing', 'pos', 'item_serial_nos']
444
445 st = "'"+"', '".join(flds)+"'"
446 sql("delete from `tabDocField` where fieldname in (%s) and parent = 'Features Setup'" % st)
447 sql("delete from `tabDefaultValue` where defkey in (%s) and parent = 'Control Panel'" % st)
448
449 from webnotes.session_cache import clear_cache
450 clear_cache(webnotes.session['user'])
Nabin Hait6a056162011-10-10 12:23:10 +0530451 elif patch_no == 383:
452 reload_doc('accounts', 'doctype', 'cost_center')
Nabin Hait15cad192011-10-10 17:10:24 +0530453 elif patch_no == 384:
454 reload_doc('stock', 'Module Def', 'Stock')
455 sql("delete from `tabModule Def Item` where display_name = 'Serial No' and parent = 'Support'")
456 sql("update `tabDocType` set subject = 'Item Code: %(item_code)s, Warehouse: %(warehouse)s' where name = 'Serial No'")
Nabin Haitc1d42812011-10-11 12:50:55 +0530457 elif patch_no == 385:
458 # Patch for adding packing related columns (packed by, checked by, shipping mark etc)
459 reload_doc('stock','doctype','delivery_note')
Nabin Hait89a9a262011-10-12 12:41:00 +0530460 elif patch_no == 386:
461 sql("update `tabDocField` set allow_on_submit = 1 where fieldname = 'page_break'")
Nabin Haitc7cf94e2011-10-12 13:16:11 +0530462 elif patch_no == 387:
463 sql("update `tabDocField` set allow_on_submit = 1 where fieldname in ('indent_details', 'po_details', 'purchase_receipt_details', 'entries', 'sales_order_details', 'delivery_note_details', 'quotation_details') and fieldtype = 'Table'")
Nabin Haitfe4c4f92011-10-13 11:07:14 +0530464 elif patch_no == 388:
Nabin Haitd84ad942011-10-13 14:04:26 +0530465 pass
Nabin Hait989462b2011-10-13 17:33:30 +0530466 elif patch_no == 389:
467 webnotes.conn.set_global('__session_status', 'stop')
468 webnotes.conn.set_global('__session_status_message', 'Patch is running. please wait...')
469 elif patch_no == 390:
470 comp = sql("select name from tabCompany where docstatus!=2")
Nabin Haitc0d74342011-10-14 00:14:31 +0530471 fy = sql("select name from `tabFiscal Year` order by year_start_date asc")
Nabin Hait989462b2011-10-13 17:33:30 +0530472 for c in comp:
473 prev_fy = ''
474 for f in fy:
475 fy_obj = get_obj('Fiscal Year', f[0])
476 fy_obj.doc.past_year = prev_fy
477 fy_obj.doc.company = c[0]
478 fy_obj.doc.save()
479 fy_obj.repost()
480 prev_fy = f[0]
481 sql("commit")
482 sql("start transaction")
483 elif patch_no == 391:
484 webnotes.conn.set_global('__session_status', '')
485 webnotes.conn.set_global('__session_status_message', '')