Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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)