# coding: utf-8 ''' Created on 11.02.2016 Карточка создания ФЛ и аккаунта из заявки на ИЦА @author: v.popov ''' from java.text import SimpleDateFormat import json import re from com.jayway.jsonpath import JsonPath from common.numbersseries.getNextNo import getNextNoOfSeries from nci._nci_orm import personCursor from ru.curs.celesta.showcase.utils import XMLJSONConverter from edu._edu_orm import accred_cycle_requestCursor from nci.functions.persons import createAccount try: from ru.curs.showcase.core.jython import JythonDTO from ru.curs.showcase.app.api import MessageType, UserMessage except: from ru.curs.celesta.showcase import JythonDTO def cardData(context, main=None, add=None, filterinfo=None, session=None, elementId=None): u'''Карточка ФЛ''' #person = personCursor(context) accred_cycle_request = accred_cycle_requestCursor(context) record_id = JsonPath.read(session, "$.sessioncontext.related.gridContext.currentRecordId") accred_cycle_request.get(record_id) xformsdata = {"schema": {"@xmlns":"", "record": {"uid": "" , "request_id": record_id , "surname": accred_cycle_request.surname , "name": accred_cycle_request.name , "birthDate": "" , "patronymic": accred_cycle_request.patronymic , "email": "" , "phone": "" , "phoneExtra": "" , "snils": accred_cycle_request.snils , "sex": "" , "personal_data_agree": "true" , "readonly": "false" } } } xformssettings = {"properties":{"event":[{"@name":"single_click", "@linkId": "1", "action":{"@keep_user_settings": "true", '#sorted': [ {"main_context": "current"}, {"datapanel": {"@type": "current", "@tab": "current", "element": {"@id":"accredCycleRequestsGrid", "add_context": "" } }}] } }] } } return JythonDTO(XMLJSONConverter.jsonToXml(json.dumps(xformsdata)), XMLJSONConverter.jsonToXml(json.dumps(xformssettings))) def cardSave(context, main=None, add=None, filterinfo=None, session=None, elementId=None, xformsdata=None): u'''Сохранение данных о ФЛ. ''' person = personCursor(context) accred_cycle_request = accred_cycle_requestCursor(context) data_dict = json.loads(xformsdata)["schema"]["record"] # добавляем ФЛ person.surname = data_dict["surname"] person.name = data_dict["name"] person.patronymic = data_dict["patronymic"] person.snils = data_dict["snils"] person.sex = data_dict["sex"] person.email = data_dict["email"] person.phone = data_dict["phone"] person.phoneExtra = data_dict["phoneExtra"] person.birthDate = SimpleDateFormat("yyyy-MM-dd").parse(data_dict["birthDate"]) if data_dict["birthDate"] else None person.personal_data_agree = data_dict["personal_data_agree"] == "true" person.fullname = u'%s %s %s' % (person.surname or '', person.name or '', person.patronymic or '') person.uid = getNextNoOfSeries(context, 'persons') person.insert() # обновляем заявку accred_cycle_request.get(data_dict["request_id"]) accred_cycle_request.person_id = person.uid accred_cycle_request.update() # создаем аккаунт createAccount(context, person.uid, password=None, roles=['medstaff', 'address'])