mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-16 11:39:18 +00:00
moved directory structure
This commit is contained in:
109
patches/may_2012/remove_communication_log.py
Normal file
109
patches/may_2012/remove_communication_log.py
Normal file
@@ -0,0 +1,109 @@
|
||||
from __future__ import unicode_literals
|
||||
def execute():
|
||||
import webnotes
|
||||
import webnotes.model.sync
|
||||
webnotes.model.sync.sync('support', 'communication')
|
||||
webnotes.conn.commit()
|
||||
webnotes.conn.begin()
|
||||
|
||||
# change doctype property setter and custom fields, and save them
|
||||
move_customizations()
|
||||
|
||||
try:
|
||||
remove_communication_log()
|
||||
except Exception, e:
|
||||
if e.args[0] != 1146:
|
||||
raise e
|
||||
|
||||
def move_customizations():
|
||||
import webnotes.model.doc
|
||||
import webnotes.model.doctype
|
||||
|
||||
res = webnotes.conn.sql("""\
|
||||
delete from `tabProperty Setter`
|
||||
where property='previous_field'
|
||||
and doc_type = 'Communication Log'""")
|
||||
|
||||
res = webnotes.conn.sql("""\
|
||||
select name from `tabCustom Field`
|
||||
where dt='Communication Log'""")
|
||||
for r in res:
|
||||
d = webnotes.model.doc.Document('Custom Field', r[0])
|
||||
d.dt = 'Communication'
|
||||
d.save()
|
||||
from webnotes.model.db_schema import updatedb
|
||||
updatedb('Communication')
|
||||
|
||||
res = webnotes.conn.sql("""\
|
||||
select field_name from `tabProperty Setter`
|
||||
where doc_type='Communication Log' and field_name is not null""")
|
||||
|
||||
doclist = webnotes.model.doctype.get('Communication', 0)
|
||||
field_list = [d.fieldname for d in doclist if d.doctype=='DocField']
|
||||
for r in res:
|
||||
if r[0] in field_list:
|
||||
webnotes.conn.sql("""\
|
||||
update `tabProperty Setter`
|
||||
set doc_type = 'Communication'
|
||||
where field_name=%s and doc_type='Communication Log'""", r[0])
|
||||
|
||||
webnotes.conn.sql("""\
|
||||
delete from `tabProperty Setter`
|
||||
where doc_type='Communication Log'""")
|
||||
|
||||
from webnotes.utils.cache import CacheItem
|
||||
CacheItem('Communication').clear()
|
||||
|
||||
def remove_communication_log():
|
||||
import webnotes
|
||||
import webnotes.model
|
||||
import webnotes.model.doc
|
||||
import webnotes.model.doctype
|
||||
|
||||
webnotes.conn.auto_commit_on_many_writes = True
|
||||
|
||||
# get all communication log records
|
||||
comm_log_list = webnotes.conn.sql("select * from `tabCommunication Log`",
|
||||
as_dict=1)
|
||||
|
||||
field_list = [d.fieldname for d in \
|
||||
webnotes.model.doctype.get('Communication', 0) \
|
||||
if d.doctype=='DocField']
|
||||
|
||||
# copy it to communication
|
||||
for comm_log in comm_log_list:
|
||||
d = webnotes.model.doc.Document('Communication')
|
||||
|
||||
for key in comm_log.keys():
|
||||
if key not in webnotes.model.default_fields:
|
||||
d.fields[key] = comm_log[key]
|
||||
|
||||
parenttype = (comm_log.get('parenttype') or '').lower()
|
||||
if parenttype in field_list:
|
||||
d.fields[parenttype] = comm_log.get('parent')
|
||||
|
||||
d.naming_series = 'COMM-'
|
||||
d.subject = 'Follow Up'
|
||||
d.content = comm_log.get('notes') or ''
|
||||
d.medium = comm_log.get('follow_up_type') or ''
|
||||
d.sales_person = comm_log.get('follow_up_by')
|
||||
d.communication_date = comm_log.get('date')
|
||||
d.category = 'Miscellaneous'
|
||||
d.action = 'No Action'
|
||||
d.save(ignore_fields=1)
|
||||
|
||||
# delete records with parent type "Customer", "Lead", "Supplier"
|
||||
webnotes.conn.sql("""\
|
||||
delete from `tabCommunication Log`
|
||||
where parenttype in ('Customer', 'Lead', 'Supplier',
|
||||
'Opportunity', 'Quotation')""")
|
||||
|
||||
# if all records deleted, drop table communication log
|
||||
# and delete doctype communication log
|
||||
# if for some reason, records remain, dont drop table and dont delete doctype
|
||||
count = webnotes.conn.sql("select count(*) from `tabCommunication Log`")[0][0]
|
||||
if not count:
|
||||
webnotes.model.delete_doc('DocType', 'Communication Log')
|
||||
webnotes.conn.commit()
|
||||
webnotes.conn.sql("drop table `tabCommunication Log`")
|
||||
webnotes.conn.begin()
|
||||
Reference in New Issue
Block a user