def insert_factor_appraisal(args): try: lock.acquire() ret = {} if args['data'] != None: if not args['data']['factor_appraisal'].has_key('rec_id'): if args['data'].has_key('job_w_code'): if (args['data']['factor_appraisal'].has_key('factor_code') ): for x in args['data']['factor_appraisal'][ 'factor_code']: try: param = { "job_w_code": args['data']['job_w_code'], "factor_code": str(x).format(), "weight": (lambda x: x['weight'] if x.has_key('weight') else None)( args['data']['factor_appraisal']), } factor = set_dict_insert_factor_appraisal( param) ret = JobWorking.insert_evaluation_factor( args, factor) except Exception as ex: raise ex else: return dict( error=dict(fields=['factor_code'], code="missing")) else: lock.release() return dict( error=dict(fields=['factor_code'], code="missing")) lock.release() return ret lock.release() return dict(error="request parameter is not exist") except Exception as ex: lock.release() raise (ex)
def insert_factor_appraisal(args): try: #lock.acquire() ret = {} rs = {"upserted": 0, "error": None} if args['data'] != None: if args['data'].has_key('factor_code'): if (args['data'].has_key('job_w_code')): collection = common.get_collection('HCSLS_JobWorking') collection.update_many( { "factor_appraisal": { "$elemMatch": { "factor_code": args['data']['factor_code'] } } }, {"$set": { 'factor_appraisal': [], }}) if args['data']['job_w_code'] != None and len( args['data']['job_w_code']) > 0: for x in args['data']['job_w_code']: try: param = { "job_w_code": str(x).format(), "factor_code": args['data']['factor_code'], "rec_id": common.generate_guid(), "weight": None, "created_on": datetime.datetime.now(), "created_by": common.get_user_id(), "modified_on": None, "modified_by": '' } factor = param ret = JobWorking.insert_evaluation_factor( {"data": { "job_w_code": str(x).format() }}, factor) if ret['updatedExisting'] and ret[ 'nModified'] > 0: rs['upserted'] += ret['nModified'] except Exception as ex: raise ex #lock.release() return rs else: return dict( error=dict(fields=['job_w_code'], code="missing")) else: #lock.release() return dict(error=dict(fields=['factor_code'], code="missing")) #lock.release() return ret #lock.release() return dict(error="request parameter is not exist") except Exception as ex: #lock.release() raise (ex)