Пример #1
0
def add_subscriber():
    """add blog subscriber to lead"""
    full_name = webnotes.form_dict.get('your_name')
    email = webnotes.form_dict.get('your_email_address')
    name = webnotes.conn.sql("""select name from tabLead where email_id=%s""",
                             email)

    from webnotes.model.doc import Document
    if name:
        lead = Document('Lead', name[0][0])
    else:
        lead = Document('Lead')

    if not lead.source: lead.source = 'Blog'
    lead.unsubscribed = 0
    lead.blog_subscriber = 1
    lead.lead_name = full_name
    lead.email_id = email
    lead.save()
Пример #2
0
 def add_calendar_event(self, milestone, date):
     """ Add calendar event for task in calendar of Allocated person"""
     event = Document('Event')
     event.description = milestone + ' for ' + self.doc.name
     event.event_date = date
     event.event_hour = '10:00'
     event.event_type = 'Public'
     event.ref_type = 'Project'
     event.ref_name = self.doc.name
     event.save(1)
Пример #3
0
	def set_doclist(self, doclist):
		for i, d in enumerate(doclist):
			if isinstance(d, dict):
				doclist[i] = Document(fielddata=d)
		
		self.doclist = webnotes.doclist(doclist)
		self.doc = self.doclist[0]
		if self.obj:
			self.obj.doclist = self.doclist
			self.obj.doc = self.doc
Пример #4
0
def execute():
    """
		Adds various roles to Administrator. This patch is for making master db
		ready for on premise installation
	"""
    import webnotes
    from webnotes.model.code import get_obj
    from webnotes.model.doc import Document
    sc = get_obj('Setup Control', 'Setup Control')
    sc.add_roles(Document('Profile', 'Administrator'))
Пример #5
0
    def create_records(self, master_dict):
        for d in master_dict.keys():
            rec = Document(d)
            for fn in master_dict[d].keys():
                rec.fields[fn] = master_dict[d][fn]

            rec_obj = get_obj(doc=rec)
            rec_obj.doc.save(1)
            if hasattr(rec_obj, 'on_update'):
                rec_obj.on_update()
Пример #6
0
    def set_doclist(self, docs):
        for i, d in enumerate(docs):
            if isinstance(d, dict):
                docs[i] = Document(fielddata=d)

        self.docs = self.doclist = webnotes.doclist(docs)
        self.doc, self.children = docs[0], webnotes.doclist(docs[1:])
        if self.obj:
            self.obj.doclist = self.doclist
            self.obj.doc = self.doc
Пример #7
0
	def copy(self):
		out = []
		for d in self:
			if isinstance(d, dict):
				fielddata = d
			else:
				fielddata = d.fields
			fielddata.update({"name": None})
			out.append(Document(fielddata=fielddata))
		return DocList(out)
Пример #8
0
def subscribe(arg):
	"""subscribe to blog (blog_subscriber)"""
	if webnotes.conn.sql("""select name from `tabBlog Subscriber` where name=%s""", arg):
		webnotes.msgprint("Already a subscriber. Thanks!")
	else:
		from webnotes.model.doc import Document
		d = Document('Blog Subscriber')
		d.name = arg
		d.save()
		webnotes.msgprint("Thank you for subscribing!")
Пример #9
0
def execute():
    companies_list = webnotes.conn.sql("SELECT company_name FROM `tabCompany`",
                                       as_list=1)
    for company in companies_list:
        if company and company[0]:
            edigest = Document('Email Digest',
                               "Default Weekly Digest - " + company[0])
            if edigest:
                edigest.income_year_to_date = 1
                edigest.save()
Пример #10
0
def add_default_home_page():
	if not webnotes.conn.sql("""select name from `tabDefault Home Page`
		where role='Guest' and home_page='Login Page'"""):
		d = Document('Default Home Page')
		d.parent = 'Control Panel'
		d.parenttype = 'Control Panel'
		d.parentfield = 'default_home_pages'
		d.role = 'Guest'
		d.home_page = 'Login Page'
		d.save(1)
Пример #11
0
    def set_series_for(self, doctype, ol):
        options = self.scrub_options_list(ol)

        # validate names
        for i in options:
            self.validate_series_name(i)

        if self.doc.user_must_always_select:
            options = [''] + options
            default = ''
        else:
            default = options[0]

        # update in property setter
        from webnotes.model.doc import Document
        prop_dict = {'options': "\n".join(options), 'default': default}
        for prop in prop_dict:
            ps_exists = webnotes.conn.sql(
                """SELECT name FROM `tabProperty Setter`
					WHERE doc_type = %s AND field_name = 'naming_series'
					AND property = %s""", (doctype, prop))
            if ps_exists:
                ps = Document('Property Setter', ps_exists[0][0])
                ps.value = prop_dict[prop]
                ps.save()
            else:
                ps = Document('Property Setter',
                              fielddata={
                                  'doctype_or_field': 'DocField',
                                  'doc_type': doctype,
                                  'field_name': 'naming_series',
                                  'property': prop,
                                  'value': prop_dict[prop],
                                  'property_type': 'Select',
                                  'select_doctype': doctype
                              })
                ps.save(1)

        self.doc.set_options = "\n".join(options)

        from webnotes.utils.cache import CacheItem
        CacheItem(doctype).clear()
Пример #12
0
	def add_section_breaks_and_renum(self):
		for d in self.in_doclist:
			if d.get('parentfield')=='fields':
				if d.get('fieldtype') in ('Section Break', 'Column Break', 'HTML'):
					tmp = Document(fielddata = d)
					tmp.fieldname = ''
					tmp.name = None
					tmp.save(1, ignore_fields = 1, check_links=0)
				else:
					webnotes.conn.sql("update tabDocField set idx=%s where %s=%s and parent=%s" % \
						('%s', d.get('fieldname') and 'fieldname' or 'label', '%s', '%s'), (d.get('idx'), d.get('fieldname') or d.get('label'), self.doc.name))
Пример #13
0
def add(email, sender, subject, message, text_content = None):
	"""add to bulk mail queue"""
	from webnotes.utils.email_lib.smtp import get_email
	
	e = Document('Bulk Email')
	e.sender = sender
	e.recipient = email
	e.message = get_email(email, sender=e.sender, msg=message, subject=subject, 
		text_content = text_content).as_string()
	e.status = 'Not Sent'
	e.save()
Пример #14
0
    def __init__(self, settings_doc):
        """
			settings_doc must contain
			use_ssl, host, username, password
			(by name or object)
		"""
        if isinstance(settings_doc, basestring):
            from webnotes.model.doc import Document
            self.settings = Document(settings_doc, settings_doc)
        else:
            self.settings = settings_doc
Пример #15
0
    def create_new_grp(self, arg):
        arg = eval(arg)

        grp = Document('File Group')
        grp.group_name = arg['grp_nm']
        grp.parent_group = arg['parent_grp']
        grp.description = arg['desc']
        grp.name = arg['grp_nm']
        grp.save(1)
        msgprint('Created a New Group')
        return grp.name
Пример #16
0
	def add_calender_event(self,scheduled_date,incharge_email,item_code):
		""" Add calendar event for Maintenece Schedule in calendar of Allocated person"""
		event = Document('Event')
		event.owner = incharge_email
		event.description = "Reference:%s, Item Code:%s and Customer: %s" %(self.doc.name, item_code, self.doc.customer)
		event.event_date = scheduled_date
		event.event_hour =	'10:00'
		event.event_type = 'Private'
		event.ref_type = 'Maintenance Schedule'
		event.ref_name = self.doc.name
		event.save(1)
Пример #17
0
	def update_serial_purchase_details(self, obj, d, serial_no, is_submit, purpose = ''):
		exists = sql("select name, status, docstatus from `tabSerial No` where name = '%s'" % (serial_no))
		if is_submit:
			if exists and exists[0][2] != 2 and purpose not in ['Material Transfer', 'Sales Return']:
				msgprint("Serial No: %s already %s" % (serial_no, exists and exists[0][1]), raise_exception = 1)
			elif exists:
				s = Document('Serial No', exists and exists[0][0])
				self.set_pur_serial_no_values(obj, serial_no, d, s, new_rec = 0)
			else:
				s = Document('Serial No')
				self.set_pur_serial_no_values(obj, serial_no, d, s, new_rec = 1)
		else:
			if exists and exists[0][1] == 'Delivered' and exists[0][2] != 2:
				msgprint("Serial No: %s is already delivered, you can not cancel the document." % serial_no, raise_exception=1)
			elif purpose == 'Material Transfer':
				sql("update `tabSerial No` set status = 'In Store', purchase_document_type = '', purchase_document_no = '', warehouse = '%s' where name = '%s'" % (d.s_warehouse, serial_no))				
			elif purpose == 'Sales Return':
				sql("update `tabSerial No` set status = 'Delivered', purchase_document_type = '', purchase_document_no = '' where name = '%s'" % serial_no)
			else:
				sql("update `tabSerial No` set docstatus = 2, status = 'Not in Use', purchase_document_type = '', purchase_document_no = '', purchase_date = null, purchase_rate = 0, supplier = null, supplier_name = '', supplier_address = '', warehouse = '' where name = '%s'" % serial_no)
Пример #18
0
def add_answer(arg):
    arg = load_json(arg)

    from webnotes.model.doc import Document
    a = Document('Answer')
    a.answer = arg['answer']
    a.question = arg['qid']
    a.points = 1
    a.save(1)

    webnotes.conn.set_value('Question', arg['qid'], 'modified', now())
Пример #19
0
    def __init__(self, settings_doc):
        """
			settings_doc must contain
			is_ssl, host, username, password
			(by name or object)
		"""
        if type(settings_doc) == str:
            from webnotes.model.doc import Document
            self.settings = Document(settings_doc, settings_doc)
        else:
            self.settings = settings_doc
Пример #20
0
	def set_home_page(self):
		from webnotes.model.doc import Document
		webnotes.conn.sql("""delete from `tabDefault Home Page` where role='Guest'""")
		
		d = Document('Default Home Page')
		d.parent = 'Control Panel'
		d.parenttype = 'Control Panel'
		d.parentfield = 'default_home_pages'
		d.role = 'Guest'
		d.home_page = self.doc.home_page
		d.save()
Пример #21
0
def add_node():
    from webnotes.model.doc import Document
    ctype = webnotes.form_dict.get('ctype')
    parent_field = 'parent_' + ctype.lower().replace(' ', '_')

    d = Document(ctype)
    d.fields[ctype.lower().replace(' ', '_') +
             '_name'] = webnotes.form_dict['name_field']
    d.fields[parent_field] = webnotes.form_dict['parent']
    d.is_group = webnotes.form_dict['is_group']
    d.save()
Пример #22
0
def create_contact(contact_details):
    from webnotes.model.doc import Document
    contact = Document("Contact")
    contact.first_name = contact_details['first_name']
    contact.email_id = contact_details['email_id']
    contact.mobile_no = contact_details['mobile_no']
    if contact_details['doc'] == 'Customer':
        contact.customer = contact_details['link']
    else:
        contact.referrer_physician = contact_details['link']
    contact.save()
Пример #23
0
	def add_calendar_event(self):
		""" Add calendar event for task in calendar of Allocated person"""
		event = Document('Event')
		event.owner = self.doc.allocated_to
		event.description = self.doc.name 
		event.event_date = self.doc.exp_start_date and self.doc.exp_start_date or ''
		event.event_hour =  self.doc.event_hour and self.doc.event_hour or '10:00'
		event.event_type = 'Private'
		event.ref_type = 'Task'
		event.ref_name = self.doc.name
		event.save(1)
Пример #24
0
def add_website_manager():
    """add website manager to system manager"""
    for i in webnotes.conn.sql("""select distinct parent from tabUserRole 
		where role='System Manager'"""):
        if not webnotes.conn.sql(
                """select parent from tabUserRole 
			where role='Website Manager' and parent=%s""", i[0]):
            d = Document('UserRole')
            d.parent = i[0]
            d.role = 'Website Manager'
            d.save(1)
Пример #25
0
def send_welcome_mail(email, args):
	"""send welcome mail to user with password and login url"""
	pr = Document('Profile', email)
	from webnotes.utils.email_lib import sendmail_md
	args.update({
		'company': webnotes.conn.get_default('company'),
		'password': args.get('password'),
		'account_url': webnotes.conn.get_value('Website Settings',
			'Website Settings', 'subdomain') or ""
	})
	if not args.get('last_name'): args['last_name'] = ''
	sendmail_md(pr.email, subject="Welcome to ERPNext", msg=welcome_txt % args, from_defs=1)
Пример #26
0
	def add_ac(self,arg):
		arg = eval(arg)
		ac = Document('Account')
		for d in arg.keys():
			ac.fields[d] = arg[d]
		ac.old_parent = ''
		ac_obj = get_obj(doc=ac)
		ac_obj.validate()
		ac_obj.doc.save(1)
		ac_obj.on_update()

		return ac_obj.doc.name
Пример #27
0
    def update_permissions(self, args=''):
        args = eval(args)
        di = args['perm_dict']
        doctype_keys = di.keys()  # ['Opportunity','Competitor','Zone','State']
        for parent in doctype_keys:
            for permlevel in di[parent].keys():
                for role in di[parent][permlevel].keys():

                    if role:

                        # check if Permissions for that perm level and Role exists
                        exists = sql(
                            "select name from tabDocPerm where parent = %s and role = %s and ifnull(permlevel, 0) = %s",
                            (parent, role, cint(permlevel)))

                        # Get values of dictionary of Perm Level
                        pd = di[parent][permlevel][role]

                        # update
                        if exists and (1 in pd.values()):
                            sql(
                                "update tabDocPerm set `read` = %s, `write` = %s, `create` = %s, `submit` = %s, `cancel` = %s, `amend` = %s, `match`=%s where parent = %s and role = %s and permlevel = %s",
                                (pd['read'], pd['write'], pd['create'],
                                 pd['submit'], pd['cancel'], pd['amend'],
                                 pd.get('match'), parent, role, permlevel))

                        # new
                        elif not exists and (1 in pd.values()):

                            ch = Document('DocPerm')
                            ch.parentfield = 'permissions'
                            ch.parenttype = 'DocType'
                            ch.parent = parent
                            ch.role = role
                            ch.permlevel = cint(permlevel)
                            for key in pd.keys():
                                ch.fields[key] = pd.get(key, None)
                            ch.save(1)

                        # delete
                        elif exists and (1 not in pd.values()):
                            sql(
                                "delete from tabDocPerm where parent = %s and role = %s and ifnull(permlevel,0) = %s",
                                (parent, role, cint(permlevel)))

                        sql(
                            "update tabDocType set modified = %s where name = %s",
                            (now(), parent))

        from webnotes.utils.cache import CacheItem
        CacheItem(parent).clear()

        msgprint("Permissions Updated")
Пример #28
0
	def add_acc(self,lst):
		ac = Document('Account')
		for d in self.fld_dict.keys():
			ac.fields[d] = (d == 'parent_account' and lst[self.fld_dict[d]]) and lst[self.fld_dict[d]] +' - '+ self.doc.abbr or lst[self.fld_dict[d]]
		ac_obj = get_obj(doc=ac)
		ac_obj.doc.freeze_account='No'
		ac_obj.doc.master_type = ''
		ac_obj.validate()
		ac_obj.doc.save(1)
		ac_obj.on_update()
		sql("commit")
		sql("start transaction")
Пример #29
0
 def add_user_role(self, args):
     arg = eval(args)
     sql("delete from `tabUserRole` where parenttype='Profile' and parent ='%s'"
         % (cstr(arg['user'])))
     role_list = arg['role_list'].split(',')
     for r in role_list:
         pr = Document('UserRole')
         pr.parent = arg['user']
         pr.parenttype = 'Profile'
         pr.role = r
         pr.parentfield = 'userroles'
         pr.save(1)
Пример #30
0
 def create_profile(self, user_email, user_fname, user_lname, pwd=None):
     pr = Document('Profile')
     pr.first_name = user_fname
     pr.last_name = user_lname
     pr.name = pr.email = user_email
     pr.enabled = 1
     pr.save(1)
     if pwd:
         webnotes.conn.sql(
             "UPDATE `tabProfile` SET password=PASSWORD(%s) WHERE name=%s",
             (pwd, user_email))
     self.add_roles(pr)